<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Question about storing references in LabVIEW</title>
    <link>https://ni.lithium.com/t5/LabVIEW/Question-about-storing-references/m-p/1672156#M596202</link>
    <description>&lt;P&gt;Yes, I would love to see Mark post a nugget too!&lt;/P&gt;</description>
    <pubDate>Tue, 16 Aug 2011 14:17:07 GMT</pubDate>
    <dc:creator>vt92</dc:creator>
    <dc:date>2011-08-16T14:17:07Z</dc:date>
    <item>
      <title>Question about storing references</title>
      <link>https://ni.lithium.com/t5/LabVIEW/Question-about-storing-references/m-p/1671222#M595974</link>
      <description>&lt;P&gt;I have been using Notifiers for a long time - to send string data to "status bar" type indicators on the&amp;nbsp;GUI.&amp;nbsp;I also may use them for synchronization.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In the case of&amp;nbsp;sending data to the Notifier, the Notifier wire&amp;nbsp;gets to be a pain nesting into sub vi's. I have been&amp;nbsp;experimenting with various methods of using the Notifiers "wirelessly",&amp;nbsp;while maintaining efficiency and speed, avoiding memory leaks, etc.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In &lt;A href="http://forums.ni.com/t5/LabVIEW/obtain-notifier-memory/m-p/775711#M355027" target="_self"&gt;this tread&lt;/A&gt;, Mr. Grey mentions storing a Notifier reference in a "look-up" table. Can someone explain what this may be? An array of references?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 15 Aug 2011 20:22:41 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/LabVIEW/Question-about-storing-references/m-p/1671222#M595974</guid>
      <dc:creator>Broken_Arrow</dc:creator>
      <dc:date>2011-08-15T20:22:41Z</dc:date>
    </item>
    <item>
      <title>Re: Question about storing references</title>
      <link>https://ni.lithium.com/t5/LabVIEW/Question-about-storing-references/m-p/1671232#M595976</link>
      <description>&lt;P&gt;Simple AEs/LV2globals do the job nicely. Whenever you want it wireless, it's a good choice. Second, you can place an obtain notifier on first call inside.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Felix&lt;/P&gt;</description>
      <pubDate>Mon, 15 Aug 2011 20:32:59 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/LabVIEW/Question-about-storing-references/m-p/1671232#M595976</guid>
      <dc:creator>F._Schubert</dc:creator>
      <dc:date>2011-08-15T20:32:59Z</dc:date>
    </item>
    <item>
      <title>Re: Question about storing references</title>
      <link>https://ni.lithium.com/t5/LabVIEW/Question-about-storing-references/m-p/1671250#M595978</link>
      <description>&lt;P&gt;Yeah, I normally have an AE store the reference to the FP object, and then have various actions to update the value or other properties.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;There may be a better way, but it's 'wireless' and I think since it avoids copying the reference, it should be memory friendly.&lt;/P&gt;</description>
      <pubDate>Mon, 15 Aug 2011 20:46:37 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/LabVIEW/Question-about-storing-references/m-p/1671250#M595978</guid>
      <dc:creator>PiMaster</dc:creator>
      <dc:date>2011-08-15T20:46:37Z</dc:date>
    </item>
    <item>
      <title>Re: Question about storing references</title>
      <link>https://ni.lithium.com/t5/LabVIEW/Question-about-storing-references/m-p/1671260#M595980</link>
      <description>&lt;P&gt;For instance, I often have a three-line scrolling string indicator.&amp;nbsp; Attached is the AE to update it.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 15 Aug 2011 20:49:52 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/LabVIEW/Question-about-storing-references/m-p/1671260#M595980</guid>
      <dc:creator>PiMaster</dc:creator>
      <dc:date>2011-08-15T20:49:52Z</dc:date>
    </item>
    <item>
      <title>Re: Question about storing references</title>
      <link>https://ni.lithium.com/t5/LabVIEW/Question-about-storing-references/m-p/1671276#M595987</link>
      <description>&lt;P&gt;We developed a LVOOP class that allows whatever code or components in our system to post messages. We also have a router that directs the messages. The event classes are generic and require no wires to be passed to them. The class handles all of the communication details. The component generating the message simply needs to invoke our "Post Event" object. Components that generate the messages advertise the types of messages they generate. Consumers of these messages register with the router to receive the messages. The consumer is responsible for decoding the actual message content beyond the basics (time stamp, message ID, etc.). However, since it is requesting specific messages it makes sense for it to know the content. In addition, our router is capable of broadcasting a single message to multiple recipients. We use queues for sending and receiving the messages. Each application has a predefined name for teh primary routing queues. This is how teh Post Event can obtain the queue in a generic fashion. Consumers of the messages register with the router which messages it wants to receive and the name of it's receiving queue.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We have found this to be a very flexible design.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The only change we are making now is to change the queues to network based queues. This will allow us to route messages across application boundaries.&lt;/P&gt;</description>
      <pubDate>Mon, 15 Aug 2011 21:10:50 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/LabVIEW/Question-about-storing-references/m-p/1671276#M595987</guid>
      <dc:creator>Mark_Yedinak</dc:creator>
      <dc:date>2011-08-15T21:10:50Z</dc:date>
    </item>
    <item>
      <title>Re: Question about storing references</title>
      <link>https://ni.lithium.com/t5/LabVIEW/Question-about-storing-references/m-p/1672074#M596182</link>
      <description>&lt;P&gt;Mark, any chance to post the code, or a Nugget?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Schubert: Thanks for the idea of the First Call. I had an AE (set, get) version of my wireless status updater built and running fine. But, I found it to be bulky for that purpose of simply updating a string on the front panel which isn't a priority - just a convenience feature of the GUI.&amp;nbsp; Not to stray off topic, bit I've been thinking a bit about my own use of AE's after reading &lt;A href="http://forums.ni.com/t5/LabVIEW-Idea-Exchange/Convert-Global-Variable-To-Functional-Global/idc-p/1528250#M11663" target="_self"&gt;this post by Aristos Queue,&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;To the AE's credit, it does work well in this scenario, because this isn't a Write Once Read Many&amp;nbsp;(where, in such cases, I have started using&amp;nbsp;Globals again for the first time in years). This is a Write Many Read Constantly scenario. However, continually Obtaining, Sending, and Releasing the&amp;nbsp;notifier also guarantees no race conditions and is wireless, but undoubtedly at a performance hit (speed wise), and is just as bulky as the AE.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have also tried (for fun mostly) programmatically "finding" the reference to the notifier (by name) and running wirelessly that way. Bulky still, of course. Oddly, seems fast.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Maybe there's something to keeping stuff on wires.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 16 Aug 2011 13:32:50 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/LabVIEW/Question-about-storing-references/m-p/1672074#M596182</guid>
      <dc:creator>Broken_Arrow</dc:creator>
      <dc:date>2011-08-16T13:32:50Z</dc:date>
    </item>
    <item>
      <title>Re: Question about storing references</title>
      <link>https://ni.lithium.com/t5/LabVIEW/Question-about-storing-references/m-p/1672156#M596202</link>
      <description>&lt;P&gt;Yes, I would love to see Mark post a nugget too!&lt;/P&gt;</description>
      <pubDate>Tue, 16 Aug 2011 14:17:07 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/LabVIEW/Question-about-storing-references/m-p/1672156#M596202</guid>
      <dc:creator>vt92</dc:creator>
      <dc:date>2011-08-16T14:17:07Z</dc:date>
    </item>
    <item>
      <title>Re: Question about storing references</title>
      <link>https://ni.lithium.com/t5/LabVIEW/Question-about-storing-references/m-p/1672166#M596206</link>
      <description>&lt;P&gt;I'm working on getting permission to post post the code. It is code that was developed at my company and I need to clear it with them.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Also, one of the features of our messaging/routing system is file logging and UI updates. I presented the code at NI Week this year. Unfortunately the slides of the presentation are not enough to give a full picture of what there is. I am in the process of writing up some supporting documentation for the slides to give a better overview. At a minimum my addition information will contain some screen shots of some of the code highlighting some of the key features.&lt;/P&gt;</description>
      <pubDate>Tue, 16 Aug 2011 14:19:38 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/LabVIEW/Question-about-storing-references/m-p/1672166#M596206</guid>
      <dc:creator>Mark_Yedinak</dc:creator>
      <dc:date>2011-08-16T14:19:38Z</dc:date>
    </item>
    <item>
      <title>Re: Question about storing references</title>
      <link>https://ni.lithium.com/t5/LabVIEW/Question-about-storing-references/m-p/1672224#M596217</link>
      <description>&lt;P&gt;BA-&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Interesting discussion and I'll add my two cents.&amp;nbsp; Obviously there is going to be a performance hit every time you updat a FP obect without a wire to a local or to a terminal.&amp;nbsp; and a Global still requires you to update the FP of the GUI by timely reading the Global.&amp;nbsp; Creating an AE with a VI referance to the FP object on a SR (a "special AE type I call a "Resource Module") as duplicated by PiMaster (See my Nugget Series: Application Development for examples of a distributed component oriented GUI update method) still requires the overhead of writing values via property nodes (with all the overhead associated with both a subvi call and a property node write/read). so lets look at a method that might make sense for opimizing this problem.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;REQ:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;lossless data access to FP object on a GUI&lt;/LI&gt;
&lt;LI&gt;Race condition free (blocking)&lt;/LI&gt;
&lt;LI&gt;data maintained privately to the method.(encapulated)&lt;/LI&gt;
&lt;LI&gt;high performance.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Mark seems to get there with the class (And I'd love a peek too (Hint- nuggetize the class based generic message system)_ but have you considered the simple expediant of using a subpanel to a vi that has 1 string control visible ? Wire the rest as an AE BUT use the terminals rather than a SR.&amp;nbsp; Place the sub.vi's FP in a subpanel on the GUI and BAM! a "nearly 0 overhead" method to write/read a GUI object since all the overhead is in the call to open the FP in a subpanel.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 16 Aug 2011 14:39:05 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/LabVIEW/Question-about-storing-references/m-p/1672224#M596217</guid>
      <dc:creator>JÞB</dc:creator>
      <dc:date>2011-08-16T14:39:05Z</dc:date>
    </item>
    <item>
      <title>Re: Question about storing references</title>
      <link>https://ni.lithium.com/t5/LabVIEW/Question-about-storing-references/m-p/1672280#M596225</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;Jeff Bohrer wrote: &lt;BR /&gt;
&lt;P&gt;REQ:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;lossless data access to FP object on a GUI&lt;/LI&gt;
&lt;LI&gt;Race condition free (blocking)&lt;/LI&gt;
&lt;LI&gt;data maintained privately to the method.(encapulated)&lt;/LI&gt;
&lt;LI&gt;high performance.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Mark seems to get there with the class (And I'd love a peek too (Hint- nuggetize the class based generic message system)_ but have you considered the simple expediant of using a subpanel to a vi that has 1 string control visible ? Wire the rest as an AE BUT use the terminals rather than a SR.&amp;nbsp; Place the sub.vi's FP in a subpanel on the GUI and BAM! a "nearly 0 overhead" method to write/read a GUI object since all the overhead is in the call to open the FP in a subpanel.&amp;nbsp;&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;I agree for very basic things this works nicely. In our use case we have lots of low level components that get reused in many different applications. We never know what will get logged, what will get displayed and what messages will be of interest to the application. Therefore we chose this method to allow the low level modules to fire off messages. It will do so whether anyone is listening or not. In fact, the lower level code doesn't care. THis approach is very flexible and it really decouples the functionality from the UI. Yes, there is some overhead associated but it does provide a very versatile and flexible architecture.&lt;/P&gt;</description>
      <pubDate>Tue, 16 Aug 2011 15:00:39 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/LabVIEW/Question-about-storing-references/m-p/1672280#M596225</guid>
      <dc:creator>Mark_Yedinak</dc:creator>
      <dc:date>2011-08-16T15:00:39Z</dc:date>
    </item>
    <item>
      <title>Re: Question about storing references</title>
      <link>https://ni.lithium.com/t5/LabVIEW/Question-about-storing-references/m-p/1672294#M596230</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://ni.lithium.com/t5/user/viewprofilepage/user-id/2210"&gt;@Mark&lt;/a&gt; Yedinak wrote:&lt;BR /&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;Therefore we chose this method to allow the low level modules to fire off messages. It will do so whether anyone is listening or not. In fact, the lower level code doesn't care. THis approach is very flexible and it really decouples the functionality from the UI. Yes, there is some overhead associated but it does provide a very versatile and flexible architecture.[..............&lt;/BLOCKQUOTE&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;img id="smileyvery-happy" class="emoticon emoticon-smileyvery-happy" src="https://ni.lithium.com/i/smilies/16x16_smiley-very-happy.gif" alt="Smiley Very Happy" title="Smiley Very Happy" /&gt;&lt;img id="smileyvery-happy" class="emoticon emoticon-smileyvery-happy" src="https://ni.lithium.com/i/smilies/16x16_smiley-very-happy.gif" alt="Smiley Very Happy" title="Smiley Very Happy" /&gt;&amp;nbsp; Yup- my thoughts exactly! versitale, component based, High reuseability, Nice decoupling, .... Looking forward to the nugget and link to the slides (I missed NI Week again&lt;img id="smileysad" class="emoticon emoticon-smileysad" src="https://ni.lithium.com/i/smilies/16x16_smiley-sad.gif" alt="Smiley Sad" title="Smiley Sad" /&gt;)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 16 Aug 2011 15:05:03 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/LabVIEW/Question-about-storing-references/m-p/1672294#M596230</guid>
      <dc:creator>JÞB</dc:creator>
      <dc:date>2011-08-16T15:05:03Z</dc:date>
    </item>
    <item>
      <title>Re: Question about storing references</title>
      <link>https://ni.lithium.com/t5/LabVIEW/Question-about-storing-references/m-p/1672388#M596251</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://ni.lithium.com/t5/user/viewprofilepage/user-id/9395"&gt;@Jeff&lt;/a&gt; Bohrer wrote:&lt;BR /&gt;
&lt;P&gt;BA-&lt;/P&gt;
&lt;P&gt;[...] _ but have you considered the simple expediant of using a subpanel to a vi that has 1 string control visible ? Wire the rest as an AE BUT use the terminals rather than a SR.&amp;nbsp; Place the sub.vi's FP in a subpanel on the GUI and BAM! a "nearly 0 overhead" method to write/read a GUI object since all the overhead is in the call to open the FP in a subpanel.&amp;nbsp;&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;Very&lt;/STRONG&gt; good idea for this type of isolated indicator! No, I haven't thought of it. It works great. Gives me the willies because its simplicity&amp;nbsp;seems so akin to writing to multiple locals, but it isn't.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 16 Aug 2011 15:40:34 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/LabVIEW/Question-about-storing-references/m-p/1672388#M596251</guid>
      <dc:creator>Broken_Arrow</dc:creator>
      <dc:date>2011-08-16T15:40:34Z</dc:date>
    </item>
    <item>
      <title>Re: Question about storing references</title>
      <link>https://ni.lithium.com/t5/LabVIEW/Question-about-storing-references/m-p/1672394#M596253</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://ni.lithium.com/t5/user/viewprofilepage/user-id/49730"&gt;@broken&lt;/a&gt; Arrow wrote:&lt;BR /&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://ni.lithium.com/t5/user/viewprofilepage/user-id/9395"&gt;@Jeff&lt;/a&gt; Bohrer wrote:&lt;BR /&gt;
&lt;P&gt;BA-&lt;/P&gt;
&lt;P&gt;[...] _ but have you considered the simple expediant of using a subpanel to a vi that has 1 string control visible ? Wire the rest as an AE BUT use the terminals rather than a SR.&amp;nbsp; Place the sub.vi's FP in a subpanel on the GUI and BAM! a "nearly 0 overhead" method to write/read a GUI object since all the overhead is in the call to open the FP in a subpanel.&amp;nbsp;&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;Very&lt;/STRONG&gt; good idea for this type of isolated indicator! No, I haven't thought of it. It works great. Gives me the willies because its simplicity&amp;nbsp;seems so akin to writing to multiple locals, but it isn't.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;And--- (BONUS) since the subpanel is in scope of the GUI FP you ARE registered for events! (well, most of them I seam to remember there are a couple that are not avalable for subpanels like panel cose?) &lt;/P&gt;</description>
      <pubDate>Tue, 16 Aug 2011 15:44:24 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/LabVIEW/Question-about-storing-references/m-p/1672394#M596253</guid>
      <dc:creator>JÞB</dc:creator>
      <dc:date>2011-08-16T15:44:24Z</dc:date>
    </item>
    <item>
      <title>Re: Question about storing references</title>
      <link>https://ni.lithium.com/t5/LabVIEW/Question-about-storing-references/m-p/1672408#M596256</link>
      <description>&lt;P&gt;Jeff....... &lt;A href="http://forums.ni.com/t5/LabVIEW/Micro-Nuggets-Post-em-if-you-got-em/m-p/1276066#M531859" target="_self"&gt;Micro-Nugget?&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 16 Aug 2011 15:48:00 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/LabVIEW/Question-about-storing-references/m-p/1672408#M596256</guid>
      <dc:creator>Broken_Arrow</dc:creator>
      <dc:date>2011-08-16T15:48:00Z</dc:date>
    </item>
  </channel>
</rss>

