Dynamic Events Problem

I am fairly new to LabVIEW and I am trying to make a GUI that uses
events to pass messages between three separate event loops, GUI,
Messaging and Logging. GUI controls the state of the other two event
loops by generating control events and using semaphores. While the
messaging semaphore is released by the GUI, Messaging generates
messages and raises them as events. Some message events are handled by
the GUI event loop and others by the Logging event loop. Logging, once
it receives a 'logging ON' control event dynamically registers for
certain message events and logs the message events it handles to file.
When Logging receives a 'logging OFF' control event, it dynamically
unregisters the message events. The logging control events are
registered for the life of the Logging event loop.
I have created a cut-down version of my GUI that exhibits the same
problem. The problem is that after I have turned Logging on and off
once, it no longer responds to logging control events from the GUI.
Even though the GUI is still generating the events. I have looked at
the dynamic logging example in LabVIEW and thought I did the same sort
of thing but I just can't get it to work that way. The only way I got
it working was by creating a clean event registration with all events
each time I want to change the event registration. This is how I have
done it in the example file and it works. But I don't want to use this
method, I don't want to have to re-register the control events each
time I unregister/register message events.
If anyone knows what I'm doing wrong please edit the example vis and post them back.
Notes for the example:
Files are LabVIEW 7.1.1
Just open the front panels for all the vis before running the GUI vi.
The Display vi just does the same thing as the logging vi.
Run the GUI vi and turn on Messaging then turn Logging on and off a few times.
The example works, but if you wire the event registration refnum
input when doing dynamic event registration, Logging will only turn on
and off once, then no longer respond to log control events... what's
going on?

I can't tell you how to solve you problems - without code this is always quite tricky.
But in case you want to log messages to a log file, have a look at this thread
http://forums.ni.com/ni/board/message?board.id=170&message.id=172117&view=by_date_ascending&page=1
 where I posted a logging-library.
Maybe it is a useful help for you.
Thomas
Using LV8.0
Don't be afraid to rate a good answer...

Similar Messages

  • Dynamic Event Registration Error

    Hi,
    I'm getting to grips with Dynamic events in LabVIEW. However, I've encountered an issue i'm not sure on. When I try to register a cluster of control refs to the Register for Events function I get an error.. See Dynamic Event Registration.vi for small vi highlighting the issue.
    Thoughts?
    Strokes 
    Attachments:
    Dyanmic Event Registration Error.vi ‏9 KB

    Steve Chandler wrote:
    You can wire a reference or an array of references to register for events. Of course you probably already know that you have to wire the output of register for events to the dynamic registration terminal of the event structure.
    Steve Chandler wrote:
    You can wire a reference or an array of references to register for events. Of course you probably already know that you have to wire the output of register for events to the dynamic registration terminal of the event structure.
    That helped me somewhat, however, I'm still experiencing problems. My events seem to be registering correctly but don't seem to generate when I trigger them. I've configured the event structure to execute should one of the controls in my cluster change value. However, the only event case that get's executed is the timeout case.
    I've attached a vi highlighting my problem named Dynamic Event Problem.vi. My real vi is much larger and contains many sub vis so hopefully what I've attached suffices..
    Attachments:
    Process Data Control Refs Edit.ctl ‏14 KB
    Dynamic Event Problem.vi ‏22 KB

  • Peculiar problem in dynamic event, which is registering randomly

    Hello,
    I am using a dynamic event to pass a data (variant) to a vi which i call dynamically. reference of the event is stored in LV2G.
    so both main and called vi can access. data when written to the generate user event vi is triggering event at random time when executed.
    I am attaching snapshot of the vi which i used to register event.
    One interesting thing i noticed is if i put a probe in the error out of the generate user event vi then event will start triggering.
    Need help. I am struggling to get a solution.
    Regards,
    Vibin
    Attachments:
    Capture.PNG ‏21 KB

    Post any code you have on the issue.  There may be something simple that will fix the problem.  It sounds a lot like a race condition.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • 2012 Dynamic Event Registration Array of Controls

    In upgrading to LV2012, I have discoverd what may be a bug, or at least an incompatability between 2011 and 2012 with respect dynamic event registration of an array of controls as opposed to individual control references.
    This bit of code worked in 2011 but doesn't in 2012, with error 1 generated at the reg events block when run in 2012. I have been in contact with technical support, but haven't yet heard their take on this.
    Any thoughts.
    Solved!
    Go to Solution.
    Attachments:
    Top Application.png ‏13 KB
    SubVI.png ‏23 KB

    I've got the bug too -- it appears this bug is present when arrays of control refs are connected to the ConPane. Link to cross-post on LAVA about the original problem. As Patrick@Vision mentions above, one workaround is to ensure that the array of control refs is no longer on the ConPane by collapsing the Register for Events node onto the caller.
    a.lia-user-name-link[href="/t5/user/viewprofilepage/user-id/88938"] {color: black;} a.lia-user-name-link[href="/t5/user/viewprofilepage/user-id/88938"]:after {content: '';} .jrd-sig {height: 80px; overflow: visible;} .jrd-sig-deploy {float:left; opacity:0.2;} .jrd-sig-img {float:right; opacity:0.2;} .jrd-sig-img:hover {opacity:0.8;} .jrd-sig-deploy:hover {opacity:0.8;}

  • 1043 error when trying to use dynamic events on RT system

    Hello,
    I am trying to define some dynamic events as specified it the LabView help for RT targets. But when trying to run the vi I get the 1043 error. What am I doing wrong?
    Thank you,
    Przemek
    Attachments:
    RT test.vi ‏17 KB

    Dear Przemek,
    to fully understand you problem and to be able to help you, I will have to ask you a few questions:
    What version of LabVIEW are you using?
    What RT target are you using?
    What specific help file are you referring to?
    Are you creating an executable? If yes, this document could be helpful:
    http://digital.ni.com/public.nsf/allkb/1E180530E05E4DB28625731C006CCB5A?OpenDocument
    Regards,
    Mateusz Stokłosa
    Applications Engineer
    National Instruments

  • Extending EventDispatcher with dynamic event types

    I'm currently trying to write my own class to extend the
    EventDispatcher class. My goal is to create a Service class which
    acts as a switchboard for incoming socket data. Incoming socket
    data is parsed to create an Event which is Dispatched to the
    appropriate Service object which dispatches the event to any
    registered listeners.
    The problem I'm having is that I'm confused about how to
    handle the event types -- the string parameter which is always
    supplied as the first argument to the addEventListener() function.
    In all the examples I've seen, the value supplied is a class
    constant like MouseEvent.CLICK or VideoEvent.READY. In the case of
    my application, I want the developer to define their own Event
    types without having to go and edit my class files. In other words,
    I'd like to use dynamic event types with my class--maybe something
    like the code I've attached.
    I'm not new to Actionscript but am very new to the
    EventDispatcher class. I'm wondering a bit what that first
    parameter really does in a strict programming sense -- i haven't
    seen it explained all that well in the piles of documentation I've
    read on the Adobe site so I don't really know if I need to define
    my own Event class or what and whether I have to define all those
    possible event type constants/strings in advance or what.
    Any help/advice would be much appreciated.

    I have looked it up here:
    Actionscript
    3.0 Language Reference
    and it just says that the first arg to 'addEventListener' is
    "The type of event" with no further explanation at all.
    I have read this:
    Flash
    Quick Starts: Programming With Actionscript 3.0: Event handling
    It doesn't help much either. It tells me I need the
    appropriate event object which makes me wonder DO I NEED MY OWN
    CLASS? For that first ard to addEventListener, it merely says
    "Substitute the appropriate constant". Given that I want to use
    dynamic types (i think so anyway) that is not helpful information
    either. Every single example on that page uses a class constant for
    event type.
    It links to
    this
    which says "First, the name of the specific event you want to
    respond to. Once again, each event is affiliated with a specific
    class, and that class will have a special value predefined for each
    event--sort of like the event's own unique name, which you should
    use for the first parameter." Still no useful detail about what
    that arg does and the insistence on constants.
    The quick start page also has a link title "Handling Events"
    in Programming ActionScript 3.0 but it links to some documentation
    titled "Working with XML". The only discussion of events in that 10
    or so pages is because some user posted a comment.
    I have read this
    entire
    article which is more helpful than anything in the flash docs
    but still doesn't answer all my questions which (AGAIN) are:
    1) What is the real function of the first argument to
    addEventListener? I have not seen a clear explanation anywhere.
    2) Do I need to write my own Event class?
    3) What about dynamic event types that are defined at
    runtime? Are there any pitfalls or risks that arise from using a
    string instead of a predefined constant as the first param to
    addEventListener() ?
    Please stop telling me to read the documentation. I've been
    reading it for days.

  • Dynamic event registrati​on wont work with Tab control

    In LTR volume 11 No1 we find the "Dynamic Event Handling.vi".
    I had placed the controls on a Tab control and now this example wont work.
    Is there a solution to this problem?
    Scientia est potentia!
    Attachments:
    Dynamic_Event_Registration.vi ‏51 KB
    Dynamic_Event_Registration(controls_on_Tab).vi ‏64 KB

    Yes. The first stage of the code registers mouse down events for all the controls. When you added a tab control that meant that a mouse down event was registered for the tab as well. So now when you click on an object on the tab LabVIEW must decide whether to fire the mouse down on the tab-event, or the mouse down on the object on the tab event...It goes for the first but since there is no description for the tab no dialog will be displayed. If you add a description for the tab you'll see that it fires the event with the tab and you get a dialog with the tab description.
    So - how to fix. Well, it's not that simple, one might think that to exclude the reference to the tab when you register the events would do the trick, but it rather seems that LV will always t
    hink mouse clicks are on the tab and not on the objects on the tab.
    The solution though is to get the references to the objects by reading the controls on page property of the tab control. So instead of reading the controls array from the front panel read the pages references of the tab and then the controls on page array from that and then register mouse down events on that array.
    MTO

  • How can we change the name of dynamic events selector label in Event Structure

    When retriving references to Control that are contained in a cluster. The default name that
    appear in the Event Structure is: : Mouse down.
    I have found a workaround to correct the problem. But I would apreciate a more convinient way to do this.
    This is the workaround I found to change the names in the Event Structure
    I cast the References using a Reference constant and I change the label of
    that constant.
    See the VI for more detail. It is well commented.
    Is there any way to change the name of a dynamic event without doing the
    cast trick?
    Attachments:
    DynEventStructureName.vi ‏44 KB

    I agree!
    I can't top this approach.
    Ben
    Ben Rayner
    I am currently active on.. MainStream Preppers
    Rayner's Ridge is under construction

  • Dynamic event registrati​on - FP not in memory ?

    Hello,
    I have problem that I don't understand tith dynamic event registration.
    In my app I have many threads that are initialised when app starts and I switch between them using subpanel.
    In one of this modules I want to register some dynamic events to find whitch controll in cluster was pressed.
    Why I get error 1001?
    I have static reference for all modules in main thread. I start modules but I don't open their FP.
    Solved!
    Go to Solution.
    Attachments:
    err.png ‏30 KB

    Well your image is confusing because you can't run without wiring that reference.  But if you did do that then the error comes from the fact that your VI doesn't have a front panel that is open when you register for it.  So that control reference doesn't really exists.  I mean it exists but you can't reference a control that hasn't been opened.
    I think what you'll want to do is open the front panel, but then set it to hidden.  Then after the front panel has been opened, and hidden, register for the control event.
    Unofficial Forum Rules and Guidelines - Hooovahh - LabVIEW Overlord
    If 10 out of 10 experts in any field say something is bad, you should probably take their opinion seriously.

  • Continous dynamic event loss

    Hello,
    we are experiencing a continous dynamic event loss.
    The test-main-VI is Button Menue 15.vi, all received and generated counts should be the same.
    Button Menue 14.vi is included as a "not really doing some real work" example, an seems to be running flawlessly also on the customer machine. But if we replace the sleep with some larger loops then we easily can see a big difference.
    On the customer machine the continous loss can be seen quite easily, here we have to run about 12000 cycles so see a small difference,
    We are using a german LabView 8.2.1.
    Attachments:
    ButtonTest.zip ‏106 KB

    You splitted the Event Registration refnum:
    This is a no-no, have a look at this post (and the rest of the thread)
    In order to solve your problem you should NOT share the Event Registration Refnum in the sub-vi but create a new one:
    If I run that code I have no problem  and seeing no missed events.
    Viel Spass
    Ton
    Message Edited by TonP on 09-17-2007 05:45 PM
    Free Code Capture Tool! Version 2.1.3 with comments, web-upload, back-save and snippets!
    Nederlandse LabVIEW user groep www.lvug.nl
    My LabVIEW Ideas
    LabVIEW, programming like it should be!
    Attachments:
    Button Menue 20.png ‏1 KB
    Button Wrapper 20.png ‏5 KB

  • Dynamic events miss some events

    I use an event structure in LabVIEW 7.1.1 that's driven by dynamic events. Sometime, the structure misses 10% of events happened on a control. Beside that, the structure works well. Initialization of the event register is made by a constant and unregistered at the end of the VI. Anybody has expected that kind of problem?
    Thanks
    Eric

    Can you post an example or does this only happen in a certain VI?
    How do you know that the event structure is missing 10% of the events?
    Try to take over the world!

  • What are the Dynamic Events avaliable in the LabView 6.1 Event Structure?

    I recieved LabView 6.1 recently and I am working with the Event Structure, and I'm trying to figure out what Dynamic Events are avaliable in the event structure, and how to access them. If you don't understand what I'm talking about, open a new VI in LabView 6.1 and drop an event structure on the diagram. Add an event and look at the dialog box that appears on the screen, specifically the Event Sources section. The third option in this area of the screen is "grayed out" but reads "Dynamic". I'm curious what these events are, and how I access them. I'm running WinNT 4 SP6.
    Thanks,
    Chris Davis

    I believe this is part of a feature which is not yet present in LabVIEW 6.1, but may be present in a future release.

  • Resetting a variable in an event structure (dynamic event)

    I'm working on moving an event structure into a sub VI. This means I have to register dynamic events. 
    The event structure is handling some button clicks. The state of the button (mechanical action = latch when released) resets itself automatically as long as the variable is placed within the value change case.  Leaving the button in this case is not possible when the event structure is put in a sub VI and the variable is located in the parent VI.  How do I make sure the button unlatches after clicking on it?  I have attached an example where all the code is in one VI (the local variable must be moved outside the event structure in order for it to be moved into a sub VI).  Any ideas?
    If you open the VI and run it, you can click Start which will cause the counter to start incrementing.  The button only unlatches as long as the variable is located in the value change case.
    (Btw, how do you put images inline in a post?)
    Rob
    LV2011,LV2012,LV2013
    Attachments:
    img.png ‏18 KB
    main.vi ‏17 KB

    Race conditions are the primary reason not to do that. But since your treating your variable as a latch, I doubt your using the value you read from it anywhere, and in that case it can't create a race condition. There's also the possibility that the control's reference could become invalid. But since this is a sub VI of the control's VI that can't happen (even if it could you can check the error out of the value property node to see when it happens and deal with it).
    I'm not sure about the flickering, Since I can't seem to duplicate it with a simple test case on my machine. It might related to whatever else you're doing in the event apart from reseting the value to false.

  • Dynamic event with global variable (vi)

    I have registered a dynamic event to fire when a control in a global vi value changes. All works fine when I open the global vi and change the value of the control manually. When I have another vi modify the value of the global, the dynamic event does not fire.
    I have tried leaving the front panel of the global vi open and observed the value being changed...
    Any help appreciated...

    Hi,
    Please refer to the following document that explains why programmatic changes to the global doesn't get detected.
    Event Structure Does Not Capture the Value Changed Event...
    I hope this helps.
    Sincerely,
    Feroz
    National Instruments

  • Are you ever required to wire the dynamic event terminals through an event case?

    I remember some time ago, I ran into an issue while using an event case where my program was not functioning properly until, on a whim, I wired the dynamic event through that event case... now the reason I'm asking this in a general sense is because I don't remember what particular code I had this issue with and I could have been failing to update a shift register or something.
    In code I'm currently writing, I'm simply passing the dynamic event wire in a shift reg.  I was just wondering if there's any difference between wiring it through the event cases or simply passing it to the output shift register (without passing through the event cases)...
    any info appreciated!
    Thx
    -pat

    You do not have to wire it through. You don't need a shift register for references since the value will be the same for each iteration. In fact using a shift register is probably what caused issues. You probably updated it with the default value somewhere.
    =====================
    LabVIEW 2012

Maybe you are looking for

  • IPhone 2.0 doesn't work with my exchange server

    My tech support guys have been working on my iPhone for an entire day and couldn't get it to work with the server. They are telling me that the phone isn't compatible with the exchange server and it would require an entire overhaul of our server and

  • Spry Hint Issue

    I am using hints to label the fields. It was working on all the fields but when I fixed an error in the password confirmation it broke for the two password fields. This is the truncated code. <span id="sprytextfield12"> <input name="password1" type="

  • Panasonic HC-X900 and Adobe Premiere Elements 11

    Hi,Anyone have experience working with Panasonic HC-X900 and Adobe Premiere Elements 11, on a MacBook? I'm trying to find the best configurations so that I can make an HD movie but no matter what I do, the quality is always a little fuzzy. I'm a newb

  • Production order Printing status

    Hello, In which table , the status for the production order printing is stored, say , it printed n times or never printed etc,, Thanks for the help Nic

  • PRINT SORT OF PAYMENT ADVICE NOTE

    Hi everybody, i have a problem with payment advice note print sort. I define in variant for program ZRFFOAVIS_FPAYM that print sort will be by vendor number. I also define in fbzp this variant for payment method. finally,the payment advice note not s