LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

many to one notification

Hi,

 

I have already left a comment in idea exchange, as I thought there is no NI VI for this case.

I am looking for a VI which can handle many-to-one "notification" so that one VI has to wait until several other VIs meet a certain point and continue.

Comments welcome.

 

Sia

0 Kudos
Message 1 of 16
(3,387 Views)

Hi Siamak,

see the Rendevouz. This do what you have described.

 

Mike

Message Edited by MikeS81 on 08-20-2009 11:02 PM
Message 2 of 16
(3,382 Views)
You mean sort of like the way it's done in the "Wait for All Notifications Demo" example VI?
Message 3 of 16
(3,381 Views)

Wait for All Notifications Demo.VI is the true example of the One-to-one nature of the Notifier. In this example, we see an array of notifiers being fired for each other on a one-to-one basis.

 

Although the many-to-one mechanism can be done using notifiers, we don't see unique VIs responsible for this strategy.

 

Sia

Message Edited by Siamak on 08-24-2009 06:27 AM
0 Kudos
Message 4 of 16
(3,335 Views)

Rendezvous do not perform what I want of course. If you use them in different VIs, when reaching the point, they all WAIT for each other, so it is many-to-many so to say.

 

a many-to-one strategy can look like one VI when reaching a point, waiting for several others. Those others, when reaching the "notification" point fire some flag and continue. When all have fired the flag, the waiting VI can carry on.

 

Sia

0 Kudos
Message 5 of 16
(3,333 Views)

Hi Sia,

you can also use a normal queue or notifier.

 

See the attached example.

 

Mike

Message 6 of 16
(3,331 Views)

Sure, but this solution is both resource and design space hungry.

Sia

0 Kudos
Message 7 of 16
(3,296 Views)

Siamak wrote:

Sure, but this solution is both resource and design space hungry.

Sia


 

Sia,

what is your solution?

 

Mike

0 Kudos
Message 8 of 16
(3,271 Views)

I don't see that Mike's solution is resource hungry at all.

 

And for designe space, of course you would make it a sub Vi...

 

One flaw is: If a sender sends more than once, it will let the receiver run although not all senders have send their notification yet. 

Here one more idea based on queues:

For each sender there is a seperate queue of size one (this way, it will send no more than 2 times before the receiver finished). The receiver has n dequeue primitives (one for each queue). Could be inside a for loop as well. 

 

Felix 

Message 9 of 16
(3,253 Views)

Hi Felix,

another solution would be that each sender send's an ID which will be checked against a buffer.

 

Mike

0 Kudos
Message 10 of 16
(3,251 Views)