Boolean reference is strict in Event Callback

In my LabVIEW app, I havea an ActiveX webBrowser for which I've created an Event Handler for the DocumentComplete event (Fired when the document being navigated reaches the ReadyState_Complete).  To the UserParameter I pass a cluster of references - two are string indicators and one is boolean.  In the callback's User Parameter, the string references show up, but the boolean reference has an orange asterisk next to it that says 'strict', so then it doesn't show up when I try to unbundle the cluster.  Why is the boolean 'strict' ?

I don't see that problem here.  The boolean reference is a strict type, but I can unbundle it just fine and use a property node on it.
Open the two vi's attached.  Run the main.
- tbob
Inventor of the WORM Global
Attachments:
ClusterOfRefsMainVi.vi ‏8 KB
ClusterOfRefsSubvi.vi ‏9 KB

Similar Messages

  • References won't close in UserMessage Event Callback example.

    I download the following example:
    http://zone.ni.com/devzone/cda/epd/p/id/2606.
    I was going to use some of the features of this example to pass variables from my OI to TestStand.  Well unfortunately, this example with the modified UserMessageCallback locks up everything with an R6025 error.  Well, it actually will also give me the Property Object warning dialog ONLY if I have the Debug Options set within the Station Options->Preferences tab set to report Object Leaks, otherwise I get the R6025 error.  Only solution is to go to Task Manager and close out LabVIEW.
    I attached a picture of the callback, I believe I am closing ALL possible references.  I don't understand why TestStand still thinks that the SequenceContext reference is open?   Is there something I have to do special to close the SequenceContext reference because of the Variant to Data function?
    I am running TestStand 4.2.1 and LabVIEW 2010.
    Thanks,
    PH
    Attachments:
    UserMessage Event Callback.png ‏53 KB
    Debug Warnings.PNG ‏19 KB
    R6025 Error.JPG ‏12 KB

    The original example failed, hence it did not work  Again, it did not work with TS 4.2 and LV 2010.
    All I was trying to do is use that example, to pass data from my Operator Interface to TestStand using the SequenceContext.  It was mentioned as an example in a previous post here:
    http://forums.ni.com/t5/NI-TestStand/Passing-Variable-from-Operator-Interface-to-Process-Model/td-p/...
    I attempted to add a fix for the Variant to Data function per reference to the KB, proposed by Anand Jain, in the previous posts!
    In the long run, I will have to go with the method proposed by Ray Farmer. 'The simplest way is just store it in the StationGlobals.'   Not exactly the method I prefer to use, but it seems to be working.
    Thanks,
    PH

  • Problem with register event callback in use of instrument control

    now, i use the register event callback to register a value change of a boolean control on the front panel, and wire the cluster's ref of the instrument control parameters to the user parameter input, then create the callback vi. In the callback vi, i select the pump-control subvi, and pass the user parameter to the subvi. The problem is that,  when i press the boolean control, the instrument (here is pump) can act, but immediately, the code crashes.
    I use labview 8.6
    Attachments:
    callback vi.png ‏8 KB
    register event callback.png ‏8 KB

    You would wire the event registration wire that comes out of the Register for Events node into an event structure.  You will need to right click on the event structure and check off "Show Dynamic Event Terminals" and it into that.  Then you can create a new Event Case that uses the dynamic event.  You can place your subVI in that event in whatever way you want.  (Just drop the subVI in or do a Call by Reference there, or whatever.)  Look in the Example Finder for "Dynamically Register for Events.vi".

  • How to place event callback components and "main-VI" components in the same Front Panel?

    What I'm trying to accomplish:
    Place a .NET component, which generates events, and other standard LabVIEW components in the same Front Panel. The standard LabVIEW components should be updated when events are being generated in the .NET component.
    How I tried to solve it:
    Problem:
    The event callback code must reside in a separate event callback VI. In order to "pass the event up" to the main VI I tried to use a global variable. The interrupt does occur:
    but I was hoping that the string indicator would be updated when the event occurred, but it wasn't.
    Questions:
    What's the best way to solve what I try to accomplish? If I want to solve the problem on the picture above, how would I do it (it may not be the best solution, but I'm still curious what's wrong)? Please feel free to be over-explicit when replying as I am novice LabVIEW programmer. Thanks in advance for any help.

    There are two bundle functions for creating clusters. The function simply called Bundle operates almost exactly like the Build Array function I showed. The type of the output cluster depends on whatever you wire in as inputs. You don't have to supply a specific type parameter.
    The function called Bundle by Name takes in a specific type of cluster in the top input and allows you to fill in the values of that specific type of cluster. To create the specific type of cluster you want, you need to create a cluster of string references. Here's how to do that:
    Go to the Front panel and drop down an empty cluster shell.
    Go to the Refnum palette and drop down a Generic Control Refnum. Now here's a cool trick to turn that generic refnum into a string-specific refnum (a so-called strictly-typed refnum). Grab a string from the controls palette and drag it into the Generic Control Refnum. Once you drop it, you'll see the refnum change its icon to display a string picture.
    Make copies of this string refnum (as many as you need) and add it to the cluster shell.
    Now, if you're making specific types of clusters to work with, now is the absolute best time to learn about typedefs if you haven't already. It will save you hours and hours (if not days) of development time in the future. Trust me!
    Jarrod S.
    National Instruments

  • Data is not updating in calss & Convert vi reference to strictly type reference vi

    Hi,
    In the attached project file there is a Class called 'ClassSample.lvclass' having 3 different data types Boolean, Numeric and Variant(not really sure, Variant can be use for strict data type reference). From this three we careated the 'VIs for data member access' you can see them in project file
    My questions are,(Please refer attached screenshot)
    1. Though member of same class, why value is not updating at probe 16 ?
    2. How to convert vi reference to strictly type reference vi ?
    Thank you.
    Attachments:
    Capture.JPG ‏426 KB
    ClassSample Project.zip ‏116 KB

    It depends a bit on your final intention. Bascially you have a shared state that you want to access asynchronously from different places. If you know that the actual object is only created once (terminilogie here is a bit shaky as every wire split would create a copy of the LVOOP object but I hope you know what I mean), you could use a global or Action Engine to store the state. Using a DVR for this state and adding the DVR to your object class data is however a more scalable approach as it will allow you to instantiate more than one object of that class and each one will contain its own DVR that will reference the same value for the specific object instance even if you split the object wire, creating actually two copies of that object (but for the purpose of this discussion they would be still the same object instance).
    Queues could work if you create a single element queue but you would always need to use Preview Queue rather than Dequeue in order to maintain the value in there.
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • Event Callback Problems during compilation

    Hi
    I try to register a callback vi with the "Register Event Callback"-node. I
    pass a reference of an array as user parameter into to the "Register Event
    Callback"-node. Everything works well in the development environment. But
    when I try to build an executable I get the Error "1003 . The vi is not
    executable".
    What is wrong?
    Mareike

    Hello Mareike,
    you can surch in the http://www.ni.com/support/ for "error" and "1003". There you will find a lot of links where this error is discussed. With a little luck, there will be an answer.
    Regards ThomasD 

  • Event Callback from a Reentrant VI Recursion Error

    Greetings,
    I am using Register Event Callback with an ActiveX object to respond to user mouse events. The problem is that when I run the VI (the main, calling vi) as reentrant, Labview gives an error that the "Callback.vi" is attempting to recursively call "Main.vi".
    Is there a way around this problem? I intend to run two copies of "Main.vi", so reentrant execution seems necessary.
    - Colin Holbrook

    Hi Colin,
    Are you placing the Register Event Callback inside of the Main VI and then wiring the same Main VI to the VI Reference terminal?  If so, then that explains why you are getting an error.  You cannot use the Register Event Callback to call a VI within itself.  If this is not the case, then please post a simple VI that demonstrates the problem. 

  • Recursive ActiveX register event callback VI

    Hi!
    I am trying to control a motor in LV2013 using the ActiveX concept. When I use a "register event callback VI" function, can I call the same VI that calls a VI (with the "stop rule" controlled be the user data terminal, of course, inside)? By default, callback Vis that one can create for this are all reentrant (preallocated clone) and synchronious (according to help). However, both when I use the "server VI reference" ("This VI") and when I create a reference and browse for the same file - "register event callback" shows me a broken wire.

    _Basil_ wrote:
    As far as I understood, putting a  movement method in the loop will not give any result, so I tought in the direction of the recursive callback. However, I found this post. Would you in general agree that the callback VI cannot be recursive? I attach my code in LV13 (if you need me to convert, I will)
    Sorry, I'm still on LabVIEW 2012 here, so can't look at your VIs. I don't understand your comments in these sentences though. What do you mean by putting a movement method in a loop will not give any result? And why would you ever want a recursive callback? The callback is called each time the event occurs. There's no sense in making it recursive, nor would you want to re-register for a callback on an event inside a callback VI. Normally a callback should contain very little logic; it should primarily pass some piece of information (through a queue, user event, etc) back to the main thread and let the main logic handle it.

  • Configure Event Callbacks in test stand using labview

    Hi,
    I was going through Full OI - Configure Event Callbacks.vi in the test stand example. Can you please explain me how the vi works and what is techniwue behind it?
    When i open the individual VI's in the reference, I could see more that 1 control in the front panel. But Only the user parameter is wired in the vi? Why is it so?
    Regards
    Gopal

    Hi Gopal,
    When the TestStand Engine fires events, this VI specifies how your Operator Interface will respond.  For example, let's examine the first event callback registered in Full OI - Configure Event Callbacks.vi , Exit Application.   When the TestStand Engine receives the message to shutdown, and then finishes its neccessary shutdown procedures, it will send a message to the Operator Interface.  For the Operator Interface to receive this message, it must "listen" for it.  In LabVIEW, this is done by Registering an Event Callback.  See the links below for details on how to implement this. 
    The answer to your specific question is in step 7 of the first link below.  When TestStand sends the message to LabVIEW, there is information that is always passed.  The other input controls contain this information.  To create a VI that always includes these controls, right-click on the VI Ref input to the Reg Event Callback Property Node, and then select Create Callback VI.
    Here are two references that talk about handling ActiveX callbacks in LabVIEW in general:
    Registering and Handling .NET and ActiveX Events
    Register Event Callback (Not in Base Package)
    Cheers,
    David Goldberg
    National Instruments
    Software R&D

  • I created boolean references in my main vi block diagram and copied them to my sub vi front panel. when wire my reference in my main vi to one the input node of the sub vi the wire is broken. the error says its a class conflict why?

    i created boolean references in my main vi block diagram and copied them to my sub vi front panel. when wire my reference in my main vi to one the input node of the sub vi the wire is broken. the error says its a class conflict why?

    Expanding and clarifying what BJD said;
    After you create the temporary sub-VI that BJD mentioned, open its front panel and copy the reference control that LV created when it created the sub-VI.
    This reference control will be correct class etc that you need. Use the control to replace the original control that you were attempting to wire up.
    The technique of "create sub-VI...copy" always works for me.
    There is one more thing that you should watch out for.
    The mechanical action of the boolean can not be set for latch action when attempting to read the value using a value property node.
    Trying to help,
    Ben
    Ben Rayner
    I am currently active on.. MainStream Preppers
    Rayner's Ridge is under construction

  • Is there any event callback for "pre/post-register/unregister" object?

    Dear all,
    We noticed that there are rich set of event callback provided by TopLink, including "pre/post-Refresh/Build/Clone/Merge". However, we cannot found any callback method for "pre/post-register/unregister" events. They will be very useful, if we to manage the internal status of register/unregister to indicate whether it is still under the control of TopLink.
    Thanks and regards,
    William

    William,
    Those specific events do not exist. The postClone event is called after an object is registered. This is frequently used to copy non-persistent values from the cached original into the working copy.
    There is also the ability to customize the clone/copy policy used by TopLink in creating the working copies in the UnitOfWork.
    http://download-west.oracle.com/otn_hosted_doc/toplink/1013/DP4/_html/descfg028.htm#sthref3950
    Doug

  • How to access new data in User Message Event Callback?

    I am using the Simple LabVIEW OI as the model for my TestStand user interface.
    The sequence sends a User Message to the OI to request the string array of tests to run.
    But I am having great difficulty making this string array data available to the event callback VI.
    I do not want to use a global variable and so my unsuccessful method so far has been as follows:
    1. Use a Refnum to the Array and pass it into the Config Event Callbacks VI via the cluster 
    2. The "Selected Tests" in the input cluster in the Config Event Callbacks VI is a generic Control Refnum
    3. This Selected Tests (at the bottom) is then bundled and passed into the User Parameter
    4. But how do I convert the Selected Tests Control refnum back into the original string array in the actual callback?
    Also if there is anyone that can suggest a better way of doing this then please let me know.
    The bottom line is - how to get the latest data into the event callback function when it is called?
    Many thanks,
    Ronnie
    TestStand 4.2.1, LabVIEW 2009, LabWindows/CVI 2009
    Solved!
    Go to Solution.

    Hi Ray,
    The 'Selected Tests' array refnum is #4 in the cluster order and matches all the way through - so I think that's OK.
    In the final diagram above, I can get the Selected Tests cluster from the 'User Parameter', but it is still in the form of a refnum.
    My problem is a lack of understanding in how to convert this 'Selected Tests' refnum back to the original data type (a string array).
    Basically I want to get the string array from the 'Selected Tests' refnum.
    As you can see from above I tried to use a property node. I've also tried to 'cast' the refnum to a 'more specific class' by choosing 'Array' but it's still ends up as a refnum.
    I hope you see what I mean?
    Thanks,
    Ronnie
    TestStand 4.2.1, LabVIEW 2009, LabWindows/CVI 2009

  • Active x and event callback in Labview

    I have an active x written by Aanderaa Instruments (makes
    weather and hydrology sensors), it contain various methods and events to get
    the next line of records from a sensory scanning unit. The connection is
    through the COM1, so far i have wired it up only using the methods to get next
    record level, but then I have found that sometimes it does not get the complete
    record from the COM port. So to solve that I have to use an event in the active
    x to check for new record available. So what I want to do is send the event
    (when complete record available) to VI that uses the get next record method to
    pick up the data from the COM1 port and then send the data back to the main VI
    for processing, plotting and writing.
    My problem is that when I connect the output from the GetNextRecord method to a
    indicator that I then wire on the connector pane to be an output from this
    VI  get an error that there is a wire function conflict. I have tried to
    explain a bit better in the attached pdf file with diagrams.
    The reason why I want to export the data back in the main VI is because it runs
    continuously collecting data every 2 min and I plot them on a graph and write
    them to a file so it will no work to have all that done in the event callback
    VI that will only run ever 2 min, then it will reset the graph the whole time
    and I want continuous data plotting for 10 days of historic data records. I
    also have a few other sensors that come in through a connector board that are
    written o the same file.
    hope somebody can give me some hints
    Attachments:
    labview question.pdf ‏721 KB

    Duplicate post, click here for the original: http://forums.ni.com/ni/board/message?board.id=170&message.id=135639#M135639
    LabVIEW Champion . Do more with less code and in less time .

  • Event callback with active x in labview

    I have an active x written by Aanderaa Instruments (makes
    weather and hydrology sensors), it contain various methods and events to get
    the next line of records from a sensory scanning unit. The connection is
    through the COM1, so far i have wired it up only using the methods to get next
    record level, but then I have found that sometimes it does not get the complete
    record from the COM port. So to solve that I have to use an event in the active
    x to check for new record available. So what I want to do is send the event
    (when complete record available) to VI that uses the get next record method to
    pick up the data from the COM1 port and then send the data back to the main VI
    for processing, plotting and writing.
    My problem is that when I connect the output from the GetNextRecord method to a
    indicator that I then wire on the connector pane to be an output from this
    VI  get an error that there is a wire function conflict. I have tried to
    explain a bit better in the attached pdf file with diagrams.
    The reason why I want to export the data back in the main VI is because it runs
    continuously collecting data every 2 min and I plot them on a graph and write
    them to a file so it will no work to have all that done in the event callback
    VI that will only run ever 2 min, then it will reset the graph the whole time
    and I want continuous data plotting for 10 days of historic data records. I
    also have a few other sensors that come in through a connector board that are
    written o the same file.
    hope somebody can give me some hints 
    Attachments:
    labview question.pdf ‏721 KB

    Hello!
    I checked the PDF file with snippets of your code and it looks alright, no issues or comments regarding that from my side. However it is really difficult for us to troubleshoot when we don’t have the ActiveX control available and even though we had access to the control it would still be quite tricky to find the cause of the problems you are experiencing since we don’t have the hardware and so on.
    I found one link only that mentioned wire conflicts when talking about COM objects and ActiveX and you can find it here:
    http://digital.ni.com/public.nsf/websearch/0CED780​C5D5EDCD5862569D9005AE1FA?OpenDocument
    Regards,
    Jimmie A.
    Applications Engineer, National Instruments
    Regards,
    Jimmie Adolph
    Systems Engineer Manager, National Instruments Northern Region
    Bring Me The Horizon - Sempiternal

  • Photoshop crash on mac in 'slct' event callback

    Hi,
    I am getting consistent  Photoshop crash on mac (12.0.4) when handling 'slct' event callback in my extension
    The crash itself produce the same repor (see bellow) t as described  here: http://forums.adobe.com/message/3473893#3473893
    I narrowed it down to the case when you have 2 or more documents in "consolidate all to tabs" mode and you try to  pull out one of them.
    If you have a callback registered like this for 'slct' ExternalInterface.addCallback("PhotoshopCallback" + CSXSInterface.instance.getExtensionId(), eventCallback) and you try to access Photoshop.app.activeDocument Photoshop crashes with the bellow report
    It's hapening onlyon mac.
    Do you have any advice how to workaround it or even better a fix?
    Regards
       Lukas
    Process:         Adobe Photoshop CS5 [2734] Path:            /Applications/Adobe Photoshop CS5/Adobe Photoshop CS5.app/Contents/MacOS/Adobe Photoshop CS5 Identifier:      com.adobe.Photoshop Version:         12.0.4 (12.0.4x20110407.r.1265) (12.0.4) Code Type:       X86-64 (Native) Parent Process:  Adobe Flash Builder 4.5 [1259] Date/Time:       2012-04-03 17:57:37.438 +0200 OS Version:      Mac OS X 10.6.8 (10K549) Report Version:  6 Interval Since Last Report:          -2676258 sec Crashes Since Last Report:           36 Per-App Interval Since Last Report:  -1577868 sec Per-App Crashes Since Last Report:   36 Anonymous UUID:                      3253FFFA-8C14-41BE-B83D-82BE373CCD9F Exception Type:  EXC_BAD_ACCESS (SIGSEGV) Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000000 Crashed Thread:  0  Dispatch queue: com.apple.main-thread Thread 0 Crashed:  Dispatch queue: com.apple.main-thread 0   com.adobe.owl                      0x000000010371d186 OWLDockGetAnchor + 8186 1   com.adobe.owl                      0x0000000103683bc2 0x103652000 + 203714 2   com.adobe.owl                      0x000000010368acb6 OWLHandleNSApplicationEvent + 40 3   com.adobe.Photoshop                0x000000010024e831 0x100000000 + 2418737 4   com.adobe.Photoshop                0x0000000100278615 0x100000000 + 2590229 5   com.adobe.PSAutomate               0x0000000121ccfbcf CPsWActionControl::Get(CPsWActionReference const&, CPsWActionDescriptor&) + 31 6   com.adobe.PSAutomate               0x0000000121cac44b CPsDocuments::DocumentCount() + 85 7   com.adobe.PSAutomate               0x0000000121c93b3f CPsApplication::GetActiveDocument(MultiScript::InterfacePtr&) const + 77 8   com.adobe.PSAutomate               0x0000000121c47ffe CPsApplication::HostGet(int, ScCore::Variant&) const + 2606 9   com.adobe.PSAutomate               0x0000000121ce72d8 MultiScript::TProxyBase::get(int, ScCore::Variant&, ScCore::Error*) const + 240 10  com.adobe.AdobeScCore              0x00000001221d72e2 ScCore::LiveObject::get(ScCore::String const&, ScCore::Variant&, ScCore::Error*) + 242 11  com.adobe.AdobeScCore              0x000000012222c4a1 _getProperty(APEDOMObjectRef*, ScCore::Variant const&, ScCore::Variant&, ScCore::Error&) + 113 12  com.adobe.AdobeScCore              0x000000012222dad7 APEObjectGetPropertyCB(Opaque_APEPlayer*, void*, void*, APEOpaqueAtom*) + 263 13  com.adobe.adobeswfl                0x0000000122932cf3 APXGetHostAPI + 21603 14  com.adobe.adobeswfl                0x0000000122fa4914 SWFLPlayer_Initialize + 2208548 15  ???                                0x000000012ab64e0e 0 + 5011557902 16  ???                                0x000000012ab652ec 0 + 5011559148 17  ???                                0x000000012abc2883 0 + 5011941507 18  com.adobe.adobeswfl                0x0000000122fa2915 SWFLPlayer_Initialize + 2200357 19  com.adobe.adobeswfl                0x0000000122f85d6d SWFLPlayer_Initialize + 2082685 20  com.adobe.adobeswfl                0x0000000122fa4914 SWFLPlayer_Initialize + 2208548 21  ???                                0x00000001267cb5e3 0 + 4940674531 22  ???                                0x00000001267cbc43 0 + 4940676163 23  ???                                0x000000012a04b807 0 + 4999919623 24  com.adobe.adobeswfl                0x0000000122a273b7 APXGetHostAPI + 1022759 25  com.adobe.adobeswfl                0x0000000122a28a83 APXGetHostAPI + 1028595 26  com.adobe.adobeswfl                0x0000000122d317dc APXGetHostAPI + 4210508 27  com.adobe.adobeswfl                0x0000000122d91276 SWFLPlayer_Initialize + 31878 28  com.adobe.ape                      0x00000001207c7946 APEInitialize + 1398

    Sure, I know about PSEvenScrubber. This on is different beast though. When activeDocument is null it's just it and you get an exception in the script if you try to use it, but in this case code like this:
    var ho:HostObject=app.activeDocument.hostObjectDelegate or
    var d:int=Photoshop.app.documents.length;
    cause the crash of the whole Photoshop
    Keep in mind that if i just switch between the documents without pulling them out of the dock everything works fine.
    But it can be releated though as it seems that something is not initialized properly, but in this case on deeper level than actionScript

Maybe you are looking for

  • How do i enable my phone once it has been disabled and told to connect to itunes?

    My daughter entered the wrong passcode and now her phone is disabled and is telling us to connect to itunes. What do I do because it wont sync?

  • Repaint problem while clicking the popup menuitem

    Hi all, iam facing repainting problem in my application. User can initiate a single action from different options such as JButton, double-click of mouse and clicking the menu item form the JPopupMenu. All these will execute the same code. But when ia

  • Problem with creating an account

    my internet (safari) working well.but the connection doctor fails when to detect the network.and i canot getting the new mail also.help me

  • To Get BT Vision or Not

    I'm currently with Sky paying over £40pcm. Half of the stations I get I never watch. Due to losing my job I need to make cutbacks so I'm looking to see what other TV packages are out there. Sky can give me the basic package for £20.00. Somebody I use

  • Update problem resulted in settings changes

    After accepting a software update for the Desktop Manager something malfunctioned and the phone locked up during a sync. I was able to get it working, however all the settings have changed (ringtones, call waiting settings, etc.). I want to go back t