<?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: User event architecture question in LabVIEW</title>
    <link>https://ni.lithium.com/t5/LabVIEW/User-event-architecture-question/m-p/2983415#M856445</link>
    <description>&lt;P&gt;Put the popup in your consumer loop....not in the event structure.&lt;/P&gt;</description>
    <pubDate>Mon, 08 Sep 2014 15:31:14 GMT</pubDate>
    <dc:creator>aputman</dc:creator>
    <dc:date>2014-09-08T15:31:14Z</dc:date>
    <item>
      <title>User event architecture question</title>
      <link>https://ni.lithium.com/t5/LabVIEW/User-event-architecture-question/m-p/2983331#M856434</link>
      <description>&lt;P&gt;Hello.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have some doubts about using User events in application because I have small experience with them&lt;/P&gt;
&lt;P&gt;I want to split program into 3 loops: GUI, IO and Processing module.&lt;/P&gt;
&lt;P&gt;There is also some async thread running in background working on Listbox.&lt;/P&gt;
&lt;P&gt;GUI needs to sent and get data from IO.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So this is what I am thinking:&lt;/P&gt;
&lt;P&gt;Async user event for listbox functionality&lt;/P&gt;
&lt;P&gt;To GUI&amp;nbsp;user event for Init/shutdown etc and way to sent messages to gui&lt;/P&gt;
&lt;P&gt;Queues for other loops&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have written simple&amp;nbsp;concept here:&lt;/P&gt;
&lt;P&gt;&lt;IMG src="https://ip1.i.lithium.com/d7a7b1b4c83a4577e80ac1381b9d91c5cfed8fc7/68747470733a2f2f6e692e6c69746869756d2e636f6d2f74352f696d6167652f736572766572706167652f696d6167652d69642f31353335323769334544414533454438463436414430392f696d6167652d73697a652f6f726967696e616c3f763d6d70626c2d312670783d2d31" border="0" alt="Architecture.png" title="Architecture.png" align="center" /&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;My intuition says this is a bad idea but couldn't come with something better tooday...&lt;/P&gt;</description>
      <pubDate>Mon, 08 Sep 2014 14:42:46 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/LabVIEW/User-event-architecture-question/m-p/2983331#M856434</guid>
      <dc:creator>pawhan11</dc:creator>
      <dc:date>2014-09-08T14:42:46Z</dc:date>
    </item>
    <item>
      <title>Re: User event architecture question</title>
      <link>https://ni.lithium.com/t5/LabVIEW/User-event-architecture-question/m-p/2983365#M856437</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;pawhan11 wrote: &lt;BR /&gt;
&lt;P&gt;My intuition says this is a bad idea but couldn't come with something better tooday...&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;What's wrong with this setup?&amp;nbsp; I use it all the time.&amp;nbsp; Just be careful about when you close the references to the queues and user events and be sure to use commands through the queue to close down your queued loops.&lt;/P&gt;</description>
      <pubDate>Mon, 08 Sep 2014 14:57:51 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/LabVIEW/User-event-architecture-question/m-p/2983365#M856437</guid>
      <dc:creator>crossrulz</dc:creator>
      <dc:date>2014-09-08T14:57:51Z</dc:date>
    </item>
    <item>
      <title>Re: User event architecture question</title>
      <link>https://ni.lithium.com/t5/LabVIEW/User-event-architecture-question/m-p/2983403#M856441</link>
      <description>&lt;P&gt;I also use this setup.&amp;nbsp; One thing I do is put all of my Synchronization references and user events into a FGV so I don't have the wires cluttering up the diagram.&amp;nbsp; Personal preference.&lt;/P&gt;
&lt;P&gt;&lt;IMG src="https://ip1.i.lithium.com/495f2d184785c055d6b49b77d8d9aa976a092862/68747470733a2f2f6e692e6c69746869756d2e636f6d2f74352f696d6167652f736572766572706167652f696d6167652d69642f31353335333369303330334232393031384543304534312f696d6167652d73697a652f6f726967696e616c3f763d6d70626c2d312670783d2d31" border="0" alt="refs.PNG" title="refs.PNG" align="middle" /&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 08 Sep 2014 15:19:53 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/LabVIEW/User-event-architecture-question/m-p/2983403#M856441</guid>
      <dc:creator>aputman</dc:creator>
      <dc:date>2014-09-08T15:19:53Z</dc:date>
    </item>
    <item>
      <title>Re: User event architecture question</title>
      <link>https://ni.lithium.com/t5/LabVIEW/User-event-architecture-question/m-p/2983413#M856444</link>
      <description>&lt;P&gt;I also put those references in FGV or in Global variable as variant atributes to avoid these annoing vires. My teacher used to put them all into cluster to get only one wire.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;My concern is because in GUI I will for sure have&amp;nbsp;have some popups/login/panels/forms and other stuff that blocks this loop and waits for user interaction. When IO writes some important message when Popup is active it won't be serviced until popup is finished by user...&lt;/P&gt;</description>
      <pubDate>Mon, 08 Sep 2014 15:29:03 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/LabVIEW/User-event-architecture-question/m-p/2983413#M856444</guid>
      <dc:creator>pawhan11</dc:creator>
      <dc:date>2014-09-08T15:29:03Z</dc:date>
    </item>
    <item>
      <title>Re: User event architecture question</title>
      <link>https://ni.lithium.com/t5/LabVIEW/User-event-architecture-question/m-p/2983415#M856445</link>
      <description>&lt;P&gt;Put the popup in your consumer loop....not in the event structure.&lt;/P&gt;</description>
      <pubDate>Mon, 08 Sep 2014 15:31:14 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/LabVIEW/User-event-architecture-question/m-p/2983415#M856445</guid>
      <dc:creator>aputman</dc:creator>
      <dc:date>2014-09-08T15:31:14Z</dc:date>
    </item>
    <item>
      <title>Re: User event architecture question</title>
      <link>https://ni.lithium.com/t5/LabVIEW/User-event-architecture-question/m-p/2983429#M856447</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://ni.lithium.com/t5/user/viewprofilepage/user-id/210874"&gt;@pawhan11&lt;/a&gt; wrote:&lt;BR /&gt;
&lt;P&gt;I also put those references in FGV or in Global variable as variant atributes to avoid these annoing vires.&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;I make an &lt;A href="https://ni.lithium.com/t5/LabVIEW/Community-Nugget-4-08-2007-Action-Engines/m-p/503801" target="_blank"&gt;Action Engine&lt;/A&gt; for each of my communication Queue/Notifier/Event.&amp;nbsp; That way I don't have to pass any wires around and anybody can send a message to anybody else.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can check out my templates here: &lt;A href="http://lavag.org/topic/16171-new-messaging-vis/" target="_blank"&gt;http://lavag.org/topic/16171-new-messaging-vis/&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 08 Sep 2014 15:43:07 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/LabVIEW/User-event-architecture-question/m-p/2983429#M856447</guid>
      <dc:creator>crossrulz</dc:creator>
      <dc:date>2014-09-08T15:43:07Z</dc:date>
    </item>
    <item>
      <title>Re: User event architecture question</title>
      <link>https://ni.lithium.com/t5/LabVIEW/User-event-architecture-question/m-p/2984211#M856526</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://ni.lithium.com/t5/user/viewprofilepage/user-id/75897"&gt;@crossrulz&lt;/a&gt; wrote:&lt;BR /&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://ni.lithium.com/t5/user/viewprofilepage/user-id/210874"&gt;@pawhan11&lt;/a&gt; wrote:&lt;BR /&gt;
&lt;P&gt;I also put those references in FGV or in Global variable as variant atributes to avoid these annoing vires.&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;I make an &lt;A href="https://ni.lithium.com/t5/LabVIEW/Community-Nugget-4-08-2007-Action-Engines/m-p/503801" target="_blank"&gt;Action Engine&lt;/A&gt; for each of my communication Queue/Notifier/Event.&amp;nbsp; That way I don't have to pass any wires around and anybody can send a message to anybody else.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can check out my templates here: &lt;A href="http://lavag.org/topic/16171-new-messaging-vis/" target="_blank"&gt;http://lavag.org/topic/16171-new-messaging-vis/&lt;/A&gt;&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;I have to look at this.&amp;nbsp; It sounds SWEET.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;[edit]&lt;/P&gt;
&lt;P&gt;oops, kudos&lt;/P&gt;
&lt;P&gt;[/edit]&lt;/P&gt;</description>
      <pubDate>Mon, 08 Sep 2014 21:11:13 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/LabVIEW/User-event-architecture-question/m-p/2984211#M856526</guid>
      <dc:creator>billko</dc:creator>
      <dc:date>2014-09-08T21:11:13Z</dc:date>
    </item>
    <item>
      <title>Re: User event architecture question</title>
      <link>https://ni.lithium.com/t5/LabVIEW/User-event-architecture-question/m-p/2984543#M856581</link>
      <description>&lt;P&gt;Moving some things to other loop solved my problem.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I had other idea tooday.&lt;/P&gt;
&lt;P&gt;I always wanted to handle all GUI in one loop. Placing all controlls in tab controll switch pages and resize app&amp;nbsp;window at runtime to make it look good. &amp;nbsp;Is that good practise??&lt;/P&gt;</description>
      <pubDate>Tue, 09 Sep 2014 07:05:14 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/LabVIEW/User-event-architecture-question/m-p/2984543#M856581</guid>
      <dc:creator>pawhan11</dc:creator>
      <dc:date>2014-09-09T07:05:14Z</dc:date>
    </item>
    <item>
      <title>Re: User event architecture question</title>
      <link>https://ni.lithium.com/t5/LabVIEW/User-event-architecture-question/m-p/2984653#M856601</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://ni.lithium.com/t5/user/viewprofilepage/user-id/210874"&gt;@pawhan11&lt;/a&gt; wrote:&lt;BR /&gt;
&lt;P&gt;I had other idea tooday.&lt;/P&gt;
&lt;P&gt;I always wanted to handle all GUI in one loop. Placing all controlls in tab controll switch pages and resize app&amp;nbsp;window at runtime to make it look good. &amp;nbsp;Is that good practise??&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;That's what I do.&amp;nbsp; And then I update the GUI from other threads using User Events that the Event Structure is registered for.&amp;nbsp; Makes things a lot simpler when you can separate things like that.&lt;/P&gt;</description>
      <pubDate>Tue, 09 Sep 2014 09:06:04 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/LabVIEW/User-event-architecture-question/m-p/2984653#M856601</guid>
      <dc:creator>crossrulz</dc:creator>
      <dc:date>2014-09-09T09:06:04Z</dc:date>
    </item>
    <item>
      <title>Re: User event architecture question</title>
      <link>https://ni.lithium.com/t5/LabVIEW/User-event-architecture-question/m-p/2984683#M856605</link>
      <description>&lt;P&gt;Thanks for reply. &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I attached simple concept of what I mean. You are doing it like that?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So I can resize FP bounds and change active tab to allow user see what He needs,&amp;nbsp;keeping all clean in one loop without Popup windows..&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;But some things trouble me. FP bounds reffer to global screen coordinates. So changing resolution and monitor may cause some problems. So next step would be to get resolution and make it scalable for different resolutions&amp;nbsp;?&lt;/P&gt;</description>
      <pubDate>Tue, 09 Sep 2014 09:41:45 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/LabVIEW/User-event-architecture-question/m-p/2984683#M856605</guid>
      <dc:creator>pawhan11</dc:creator>
      <dc:date>2014-09-09T09:41:45Z</dc:date>
    </item>
    <item>
      <title>Re: User event architecture question</title>
      <link>https://ni.lithium.com/t5/LabVIEW/User-event-architecture-question/m-p/2984753#M856614</link>
      <description>&lt;P&gt;For something like that, I prefer to use subpanels.&amp;nbsp; It keeps things a lot more organized and scalable.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The idea with subpanels is you have a bunch of VIs off running on their own.&amp;nbsp; You can then choose which VI gets put into the subpanel.&lt;/P&gt;</description>
      <pubDate>Tue, 09 Sep 2014 11:12:12 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/LabVIEW/User-event-architecture-question/m-p/2984753#M856614</guid>
      <dc:creator>crossrulz</dc:creator>
      <dc:date>2014-09-09T11:12:12Z</dc:date>
    </item>
    <item>
      <title>Re: User event architecture question</title>
      <link>https://ni.lithium.com/t5/LabVIEW/User-event-architecture-question/m-p/2984773#M856618</link>
      <description>&lt;P&gt;Thanks.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I hav never used subpanels in projects before. &amp;nbsp;So by using subpanels I create more running loops? It will make more communication problems between them? Like pressing button on panel 1 shows panel 2 etc?&lt;/P&gt;</description>
      <pubDate>Tue, 09 Sep 2014 11:42:02 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/LabVIEW/User-event-architecture-question/m-p/2984773#M856618</guid>
      <dc:creator>pawhan11</dc:creator>
      <dc:date>2014-09-09T11:42:02Z</dc:date>
    </item>
    <item>
      <title>Re: User event architecture question</title>
      <link>https://ni.lithium.com/t5/LabVIEW/User-event-architecture-question/m-p/2984785#M856621</link>
      <description>&lt;P&gt;User Events are wonderful, wonderful things.&amp;nbsp; So you just send a User Event to the main VI to open the other screen.&lt;/P&gt;</description>
      <pubDate>Tue, 09 Sep 2014 11:54:07 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/LabVIEW/User-event-architecture-question/m-p/2984785#M856621</guid>
      <dc:creator>crossrulz</dc:creator>
      <dc:date>2014-09-09T11:54:07Z</dc:date>
    </item>
    <item>
      <title>Re: User event architecture question</title>
      <link>https://ni.lithium.com/t5/LabVIEW/User-event-architecture-question/m-p/2985599#M856760</link>
      <description>&lt;P&gt;mistake&lt;/P&gt;</description>
      <pubDate>Tue, 09 Sep 2014 20:24:16 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/LabVIEW/User-event-architecture-question/m-p/2985599#M856760</guid>
      <dc:creator>apapasd1sd</dc:creator>
      <dc:date>2014-09-09T20:24:16Z</dc:date>
    </item>
    <item>
      <title>Re: User event architecture question</title>
      <link>https://ni.lithium.com/t5/LabVIEW/User-event-architecture-question/m-p/2985621#M856762</link>
      <description>&lt;P&gt;Thanks,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have made another simple conceptual demo. Code isn't perfect but it is more about idea how it will work than style. Could You take a look and tell me if I think correctly??&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So I have one GUI loops that controlls other demons displayed in GUI subpanel.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Demons can communicate with GUI by user event. Using Queue or other mechanism should work good too.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Sending some data to demons... Lets say I need to sent some data from IO loop to one demon. Queues should be good? But having separate queue for all demons will require a lot of effort and can be hard to manage...&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Is it safe to kill demons only when GUI loop stops?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If You are doing projects by using these subpanels Could You please tell me about some benefits of using them?? This seems to be hard to maintain and debug. Previous solution with resized GUI and tab controlls was doing the same thing and was done in few minutes....&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks in advice &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Edit. It Seems that I can't log out of my university account...&lt;/P&gt;</description>
      <pubDate>Tue, 09 Sep 2014 20:26:36 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/LabVIEW/User-event-architecture-question/m-p/2985621#M856762</guid>
      <dc:creator>apapasd1sd</dc:creator>
      <dc:date>2014-09-09T20:26:36Z</dc:date>
    </item>
    <item>
      <title>Re: User event architecture question</title>
      <link>https://ni.lithium.com/t5/LabVIEW/User-event-architecture-question/m-p/2987361#M856950</link>
      <description>&lt;P&gt;I experimented with that design tooday and It seems to be working. But I got error insane object that crashed labview 2 times. I have no ide why.&lt;/P&gt;</description>
      <pubDate>Wed, 10 Sep 2014 12:56:01 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/LabVIEW/User-event-architecture-question/m-p/2987361#M856950</guid>
      <dc:creator>pawhan11</dc:creator>
      <dc:date>2014-09-10T12:56:01Z</dc:date>
    </item>
  </channel>
</rss>

