12-26-2016 12:05 PM
I've successfully used the Event Registration Channel to "shut down" the Event Loop in a Producer/Consumer-like pattern that uses Messenger Channels instead of Queues. I just created a second Top-Level routine in the same Project (the two are completely independent -- one generates and saves data to disk, the other is designed for off-line analysis of the saved data). What I discovered, and haven't figured out how to "fix" it, is that while the first Event Registration Channel showed the Channel Value as the TypeDef that was used to define the channel, when I did the same thing in my second VI, the Event Loop shows the Channel Value as "element".
This shows the behavior, although in a single VI. The top loop comes from my original routine, and shows the User Event in the Event Loop retaining its TypeDef name, while the second loop (which comes from an independent top-level VI in the same Project) just says "element".
Poking around shows that the Registration wire coming out of the second Reader is missing the Type Name (NB State) that was used to create it.
I suspect this is an "implemention Feature", but from a User perspective, it is a bug disappointing feature. Any comments?
Bob "Still a Channel Enthusiast" Schor
12-26-2016 12:45 PM - edited 12-26-2016 12:47 PM
I just tried to come up with a "simple" version of this observation, namely a TypeDef'ed Enum to define the Event Registration Channel, then calling it twice with two Event Loops. Works like a charm (of course). Put it inside a Project all by itself -- still works. However, inside my Project (which is working, by the way), where my Main routine has four parallel loops with I think two Messenger Channels, a Stream, and an Event Registration Channel (and looks fine), while the Analysis routine I'm currently developing has three loops, two Messenger Channels (the same as the Main Routine) and an Event Registration Channel (again, same as Main), the User Event Type in the Event case is "element", not the actual Type shown on the Channel Wire, NB State. So you need something "complicated" to see this issue ... Sigh.
BS
P.S. -- forgot to mention that just to be safe, I forced the Channels to regenerate just now to ensure I wasn't being bytten by some "old" code -- same problem.
05-11-2017 10:55 AM
Hmm, sorry I revive this post, but I found it interesting, and read it through. May I ask about these "Event Registration Channels"? It seams my LabVIEW (16.0 f2) does not know about it...
When I pull your snippet into an empty block diagram, I get missing files warnings (see below the screenshot). Maybe I should generate them first, then the snippet would work? But how, I could not find in the Channel writers creation menu...
Are these official VIs in LV2016 or I misunderstood your post? 🙂
Thanks!
05-11-2017 12:06 PM
It does not exist in LV 2016. You have to install it separately. There's a post from me elsewhere in the forums.
05-11-2017 12:12 PM
Thanks for the info! I will check it out.
Regards,