Triggering dynamic events across VIs
Hi,
I want a dynamic event triggered in one VI to run a case in another VI. Is this possible?
If so, how do I pass the event references and the data associated with the event between the 2 VIs.
Regards.
Hi tdog,
You could possibly use notifiers to pass the Event Registration Refnum from the VI creating the event to the other VI.
1). Add into both VIs an Obtain Notifier, using the same name (eg. 'DynamicVINotifer')
2). Use Send Notifier in the VI creating the event
3). Use Wait on Notification in the receiving VI, wiring the output to the dynamic event tunnel
Charlie Rodway
Test Design Engineer
Rolls-Royce Controls and Data Services Ltd
Similar Messages
-
Missing dynamic user events across VIs
We have a sub-Vi Statemachine.vi, which has its own event structure with a 5ms time-out, everything enclosed into a loop.
This sub-VI is called repeatedly from the main application with command lists to execute. This can be a longer list or e.g. an empty list.
It turned out, that we can miss successfully sent events, despite the documented internal queues.
Placing the event structure into an added parallel executing, non-terminating loop in the sub-VI seems to help.
Is there a link to further informations about this behaviour? We are using a german LV 8.2.1.Martin,
I don't know of a good document describing the use of the user event in the way the you and I are using them.
I've learned from bits and pieces lying around and my collegue. After using it for two years now I have a framework in which the use of user events is relatively easy.
I know this doesn't help you a lot, but I know that if get the hang of it, it will provide a good and usable architecture.
I hope the attachments helps you a bit. It is the way I define user event for inter process communication. It will get rid of a lot of wiring.
Kind regards,
André
Regards,
André
Using whatever version of LV the customer requires. (LV5.1-LV2012) (www.carya.nl)
Attachments:
Event buffer.zip 13 KB -
How to populate dropdown without triggering PAI event ?
Hi,
I have a screen with two fields- One input field and one drop down list field which has to be populated based on the value given in the first field.
How can I populate the drop down list dynamically based on first input field without pressing enter ( i.e with out triggering PAI event ) . I tried using DYNP_VALUES_READ in value request event.
Please give me your suggestions .Hhhhmm, I thought initially it should work, but I must admit I couldn't get it to work with a listbox. I just tried a simple report with selection screen, see below. Just enter something for the first parameter and then choose the value help for the second field. You will see that it will pick up the value from the first field, if we don't use a listbox.
Once you comment in the coding the LISTBOX and replace it with the normal field, you can see that the value help works as one would hope. It seems that the problem is that the values for the dropdown list get populated too early (i.e. start-up of the report). I don't have the time at the moment to check this out further, but I'm assuming others must have tried this before. Any comments?
REPORT zvaluehelp.
PARAMETERS:
p_statva TYPE stacust-statva,
p_status TYPE stacust-status AS LISTBOX VISIBLE LENGTH 3. " Doesn't work
* p_status TYPE char1. " Value-help works for this
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_status.
PERFORM value_help.
FORM value_help.
DATA:
dynpread TYPE dynpread,
dynpread_tab TYPE STANDARD TABLE OF dynpread,
stacust TYPE stacust,
stacust_tab TYPE STANDARD TABLE OF stacust.
dynpread-fieldname = 'P_STATVA'.
APPEND dynpread TO dynpread_tab.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
dyname = sy-repid
dynumb = sy-dynnr
perform_conversion_exits = 'X'
TABLES
dynpfields = dynpread_tab
EXCEPTIONS
OTHERS = 1.
CHECK sy-subrc = 0.
READ TABLE dynpread_tab INTO dynpread INDEX 1.
CHECK dynpread-fieldvalue IS NOT INITIAL.
SELECT * FROM stacust INTO TABLE stacust_tab
WHERE statva = dynpread-fieldvalue.
CHECK sy-subrc = 0.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
ddic_structure = 'STACUST'
retfield = 'STATUS'
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'P_STATUS'
value_org = 'S'
TABLES
value_tab = stacust_tab
EXCEPTIONS
OTHERS = 0.
ENDFORM.
The coding above was just intended as a quick test - so I know it's not proper (i.e. check of return codes, etc.).
Cheers, harald -
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 KBPost 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 -
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 KBSteve 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 -
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... -
Triggering an event when the new AIR application installation has done for first time in machine
I am installing AIR application from web page by using a badge.Is it possible to call a function once the installation of AIR app was finished[once we click finish button in the installer] to update the AIR application version dynamically inside our code.If so please share. Any suggestion would be appreciated.
Hi Rizwana,
So as you said that you had created a event linkage between change document object and Business object you can now switch on the event trace SWELS and go to the particular transaction by which the event of this Business Object gets triggered ( the event you mentioned in SWEC). Switch of the event trace (SWELS) and check the Business object that had triggered in SWEL transaction.
Hope this would help you.
Any clarification.. then please revert back.
Good luck
Narin -
Generate dynamic event of producer loop in multiple consumer loop
I have one producer loop which used event case to interface with FP controls and 5 consumer loops
If I have to use the fifth consumer loop to generate dynamic event which send to event case in produer loop.
I have to wire register event with dynamic event terminal in producer loop . Also I need to wire user event to consumer loop (at the bottom of screen window) which is far away from producer loop. It is hard to wire them.
Is there any other method to let many consumer loop to communicate with one producer loop through dynamic event (the same user event)?I like to use an Action Engine to hold control my Event Reference. Then anybody can send the event commands.
You may also want to look at the VIs I recently submitted for OpenG here.
There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines -
I'm trying to see if I can use one Dynamic User Event to control multiple Event Structures. It seems that sometimes once a dynamic event occurs and its "interrupt" is answered by an event case, other VIs only have a short amount of time (<50ms) to reach their event case state for accepting this event otherwise the event seems to be cleared and the other VIs are oblivious that the event even occured.
My Question: Is it possible to use one dynamic event to control multiple Event Structures reliably?
A previous post somewhat speaks of this issue but does not provide a solution or anything insightful.
http://forums.ni.com/ni/board/message?board.id=170&message.id=223495&query.id=135563#M223495
I've included an example of my issue
Attachments:
DynamicUE.zip 61 KBThanks to both of you. I found the answer to my question in the second posted link. "the common, correct use case is to have one Event structure per dynamic event registration". I tested this out with the previous attachment by registering the User Event refnum from the ESTOP functional global to another Event Registration node. I then ran this refnum to the top loop. (instread of the top loop sharing the registration refnum with the middle loop). Now I can put a delay of 2000+ ms and not even miss an event. cooool. This will probably NOT be my final solution but its good to know in the future.
Most likely I am going to design each of my main VIs to have a main while loop with a User Event Structure listening for dynamic events. Associated with each of these VIs will be a functional global which contains its User Event Refnum and Registration Refnum. This functional global will act as a gateway into the associated VI for other VIs/Subvis to use. This will follow the "one Event structure per dynamic event registration" rule while keeping my API organized and allowing room for scalability by simply adding more functional globals in the future.
Just putting this info out there for other users.
Thanks again,
Craig -
How to drag and drop events across months while in month view?
Is there a way to drag an event across months when the view is set to monthly view? I know the events can be dragged and dropped across the days in the month on the screen, but how can I carry through the end of the month - there does not seem to be a way to move the screen view to the next month while the event is being dragged!
Hi,
You can do it with keyboard shortcuts.
Select the event. Press Cmd+X. Press Cmd and right or left arrow (depending if it is forward or back in months) until you are in the correct month. Press Cmd+V to pase on the same day in the new month.
Best wishes
John M -
All-day events across multiple days
Okay, this is a very specifc question about a very specific situaiton, but I am curious to know what is going on. When I have an all-day event scheduled for one day in iCal and I sync it with my phone (Motorola v551) it shows up as a nice little note at the top of my calendar on my phone. When I have an all-day event scheduled across multiple days in iCal it shows up as an actual event across all the hours of the day for as long as I have it scheduled on my phone.
I have discovered a work-around by taking that one-day, all-day event and having it repeat the number of days of the event, but it just doesn't look right in iCal.The calendar on your phone likely doesn't support events that span mutiple days. The solution of a repeating event is the correct answer.
-
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 DavisI 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 KBRace 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. -
Info Package Group Management? and Triggering of Event Chains ?
Hi GURU's
Info Package Group Management? and Triggering of Event Chains ?
Thanks
Bhima Chandra Sekhar GHi Bhima!
IP GROUP:
http://help.sap.com/saphelp_nw04/helpdata/en/80/1a65b5e07211d2acb80000e829fbfe/content.htm
About chains and triggering events:
http://help.sap.com/saphelp_nw04/helpdata/en/41/243d3828135856e10000009b38f842/content.htm
Hope it helps!
Bye,
Roberto -
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 KBI'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;}
Maybe you are looking for
-
How can I find fingerprint reader driver and software for windows 8.1 Pro - HP Dv5 1225et
I have Hp dv5 1225et Laptop. There are drivers in Hp's web site for win 7 and vista.. I need validity sensors driver and software for windows 8.1 Pro (64Bit)... Thanks a lot all of users.
-
Boot Camp: sees 64-bit Win 7 USB install as 32-bit, why??
Attempting to use the Boot Camp Assistant on my new iMac 27 (late 2012) with a regular 1TB HDD. I had boot camp create a install disk on a USB flash drive from an existing Windows 7 Pro 64-bit ISO... it's the same ISO I used to install 64-bit Win7
-
I can`t access to itunes stores. I red a lot of about these issue but the problems continous.
-
Macbook Pro, audio input
I have a Macbook Pro 13". I would like to use the "Headphone" port as a "Microphopne" port and connect to an external audio input source (Mixer in a DJ set-up) and record my mixes. I have followed the instructions listed on various forums to do this
-
Change of Source client in transport request
Hi Gurus, I want to change source client of transport request Since I want to transport request between clients of same server. I did it using scc1 But when I want to make any changes to form which was included in that request it is saying Request/ta