<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:webfeeds="http://webfeeds.org/rss/1.0">
    <channel>
        <title><![CDATA[Workers for LabVIEW Community]]></title>
        <description><![CDATA[Workers for LabVIEW Community]]></description>
        <link>https://community.workersforlabview.io</link>
        <generator>Bettermode RSS Generator</generator>
        <lastBuildDate>Sat, 11 Apr 2026 20:19:01 GMT</lastBuildDate>
        <atom:link href="https://community.workersforlabview.io/rss/feed" rel="self" type="application/rss+xml"/>
        <pubDate>Sat, 11 Apr 2026 20:19:01 GMT</pubDate>
        <copyright><![CDATA[2026 Workers for LabVIEW Community]]></copyright>
        <language><![CDATA[en-US]]></language>
        <ttl>60</ttl>
        <webfeeds:icon></webfeeds:icon>
        <webfeeds:related layout="card" target="browser"/>
        <item>
            <title><![CDATA[How to disable Workers application running when LabVIEW starts up.]]></title>
            <description><![CDATA[When I launch LabVIEW the Workers init splash screen takes a long time and I don't want it running at all as I don't use it regularly, but I pay the penalty for having it installed.

Is there a way to ...]]></description>
            <link>https://community.workersforlabview.io/ask-the-community-az5ilws8/post/how-to-disable-workers-application-running-when-labview-starts-up-Tw5MSf4ArtjWw3A</link>
            <guid isPermaLink="true">https://community.workersforlabview.io/ask-the-community-az5ilws8/post/how-to-disable-workers-application-running-when-labview-starts-up-Tw5MSf4ArtjWw3A</guid>
            <dc:creator><![CDATA[Norman Kirchner Jr.]]></dc:creator>
            <pubDate>Tue, 31 Mar 2026 13:51:24 GMT</pubDate>
            <content:encoded><![CDATA[<p>When I launch LabVIEW the Workers init splash screen takes a long time and I don't want it running at all as I don't use it regularly, but I pay the penalty for having it installed. <br><br>Is there a way to disable this init on Load?</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Integrate Existing Implementation on WORKERS 5.0]]></title>
            <description><![CDATA[Hello everyone.

I’m currently working on an application that’s basically a large GUI with some communication modules for different systems. This GUI manages a large number of different panels. Many of ...]]></description>
            <link>https://community.workersforlabview.io/ask-the-community-az5ilws8/post/integrate-existing-implementation-on-workers-5-0-Pk1V6sxUbylkG0c</link>
            <guid isPermaLink="true">https://community.workersforlabview.io/ask-the-community-az5ilws8/post/integrate-existing-implementation-on-workers-5-0-Pk1V6sxUbylkG0c</guid>
            <category><![CDATA[application]]></category>
            <category><![CDATA[Workers 5.0]]></category>
            <dc:creator><![CDATA[EAzkona]]></dc:creator>
            <pubDate>Fri, 27 Mar 2026 11:59:11 GMT</pubDate>
            <content:encoded><![CDATA[<p>Hello everyone.</p><p>I’m currently working on an application that’s basically a large GUI with some communication modules for different systems. This GUI manages a large number of different panels. Many of these panels come from existing systems that aren’t implemented for WORKERS 5.0, and many don’t even follow a QMH scheme for their operation. Many are nothing more than simple state machines.</p><p>I have currently integrated it using a somewhat crude ‘patch’.</p><p>Is there a simple way to make a VI a Worker-compatible VI without it having a QMH as such?</p><p></p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Overrides of methods in a worker base class instead of override of MHL cases in childs]]></title>
            <description><![CDATA[Hi,

I´ve checked the examples under https://docs.workersforlabview.io/getting-started/example-projects [https://docs.workersforlabview.io/getting-started/example-projects], especially the Workers DMM HAL Project.

The abstraction is done by using a worker base class "DMM ...]]></description>
            <link>https://community.workersforlabview.io/ask-the-community-az5ilws8/post/overrides-of-methods-in-a-worker-base-class-instead-of-override-of-mhl-1bnMngNCj9HHutT</link>
            <guid isPermaLink="true">https://community.workersforlabview.io/ask-the-community-az5ilws8/post/overrides-of-methods-in-a-worker-base-class-instead-of-override-of-mhl-1bnMngNCj9HHutT</guid>
            <dc:creator><![CDATA[Helmut Muehleck]]></dc:creator>
            <pubDate>Wed, 25 Mar 2026 14:04:23 GMT</pubDate>
            <content:encoded><![CDATA[<p>Hi,</p><p>I´ve checked the examples under <a class="text-interactive hover:text-interactive-hovered" rel="noopener noreferrer nofollow" href="https://docs.workersforlabview.io/getting-started/example-projects">https://docs.workersforlabview.io/getting-started/example-projects</a>, especially the Workers DMM HAL Project.</p><p>The abstraction is done by using a worker base class "DMM HAL" and the concrete devices<br>are overriding the MHL cases of the base class<a class="text-interactive hover:text-interactive-hovered" rel="noopener noreferrer nofollow" href="https://files-us-east-1.t-cdn.net/files/FqgMCKXXTT8mFym4dtMJj">https://files-us-east-1.t-cdn.net/files/FqgMCKXXTT8mFym4dtMJj</a> .</p><p>Original Implementation:</p><figure data-align="center" data-size="best-fit" data-id="Sl0mS6iyXEYXUQVuBsxeO" data-version="v2" data-type="image"><img data-id="Sl0mS6iyXEYXUQVuBsxeO" src="https://tribe-s3-production.imgix.net/Sl0mS6iyXEYXUQVuBsxeO?auto=compress,format"></figure><figure data-align="center" data-size="best-fit" data-id="CQ75KF6Dd9bhbhwgmH6XY" data-version="v2" data-type="image"><img data-id="CQ75KF6Dd9bhbhwgmH6XY" src="https://tribe-s3-production.imgix.net/CQ75KF6Dd9bhbhwgmH6XY?auto=compress,format"></figure><p>My question is , why not creating a method like "xReadMeasurement" in the base class and then just override this method without the override of the MHL case?<br>Is there any disadvantage? Is this against the framework somehow?</p><p>My suggestion:</p><figure data-align="center" data-size="best-fit" data-id="wp3YaXvueEHcdhbSEjjRA" data-version="v2" data-type="image"><img data-id="wp3YaXvueEHcdhbSEjjRA" src="https://tribe-s3-production.imgix.net/wp3YaXvueEHcdhbSEjjRA?auto=compress,format"></figure><p>In my opinion unit testing would be easier but I´m afraid of running in some problems I do not see at the moment for the reason just starting with the framework.</p><p>So I would be happy for some feedback 😃 </p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Dear Workers for LabVIEW Community]]></title>
            <description><![CDATA[I´m Helmut and I had this week the possibility to join the inspiring presentation "Introduction to Workers 5.0" from Peter.

LabVIEW I´m using since Version 7 as a test engineer to develop software for ...]]></description>
            <link>https://community.workersforlabview.io/introduce-yourself-qo3lp8xp/post/dear-workers-for-labview-community-Mppvq6lNQHnG6H6</link>
            <guid isPermaLink="true">https://community.workersforlabview.io/introduce-yourself-qo3lp8xp/post/dear-workers-for-labview-community-Mppvq6lNQHnG6H6</guid>
            <dc:creator><![CDATA[Helmut Muehleck]]></dc:creator>
            <pubDate>Fri, 20 Mar 2026 09:09:01 GMT</pubDate>
            <content:encoded><![CDATA[<p>I´m Helmut and I had this week the possibility to join the inspiring presentation "Introduction to Workers 5.0" from Peter.</p><p>LabVIEW I´m using since Version 7 as a test engineer to develop software for different types test benches for production and R&amp;D. </p><p>In the past I´ve started with custom frameworks then switched to NI Actor Framework and DQHM.<br>Now I´ve decided to start the journey with Workers for LabVIEW.</p><p>LinkedIn: <a class="text-interactive hover:text-interactive-hovered" rel="noopener noreferrer nofollow" href="http://www.linkedin.com/in/helmut-muehleck">http://www.linkedin.com/in/helmut-muehleck</a></p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Call-Chain Viewer not showing workers after migrating project to LabVIEW 2025 Q3]]></title>
            <description><![CDATA[Hi everyone,

I’ve recently updated my environment to LabVIEW 2025 Q3 and I'm using Workers Framework.

While the framework itself is running perfectly (Workers are launching and communicating as expected...]]></description>
            <link>https://community.workersforlabview.io/ask-the-community-az5ilws8/post/call-chain-viewer-not-showing-workers-after-migrating-project-to-labview-sBmoLoCgkn2NRxF</link>
            <guid isPermaLink="true">https://community.workersforlabview.io/ask-the-community-az5ilws8/post/call-chain-viewer-not-showing-workers-after-migrating-project-to-labview-sBmoLoCgkn2NRxF</guid>
            <dc:creator><![CDATA[Diogo Silva]]></dc:creator>
            <pubDate>Mon, 09 Mar 2026 11:47:05 GMT</pubDate>
            <content:encoded><![CDATA[<p>Hi everyone,</p><p>I’ve recently updated my environment to <strong>LabVIEW 2025 Q3</strong> and I'm using <strong>Workers Framework</strong>.</p><p>While the framework itself is running perfectly (Workers are launching and communicating as expected), I’ve encountered an issue with the <strong>Call-Chain Viewer</strong> utility. It fails to list any active workers in my legacy project.</p><p><strong>Here is what I’ve observed:</strong></p><ul><li><p><strong>New Projects:</strong> If I create a brand new project in LabVIEW 2025 Q3 and launch a Worker, the Call-Chain Viewer works perfectly and displays the hierarchy.</p></li><li><p><strong>Migrated Projects:</strong> In the project I migrated from <strong>LabVIEW 2020</strong>, the Call-Chain Viewer opens but remains empty, even though the Workers are definitely running in memory.</p></li></ul><p><strong>What I’ve tried so far:</strong></p><ol><li><p>Verified that <strong>VI Scripting</strong> is enabled in Tools -&gt; Options.</p></li><li><p>Performed a <strong>Mass Compile</strong> on the project and the framework folders.</p></li><li><p>Cleared the <strong>Compiled Object Cache</strong>.</p><p></p></li></ol><p>Has anyone experienced this specific "ghosting" of Workers in the Call-Chain Viewer after a version upgrade? Any tips on how to force the Viewer to re-link or recognize the instances in a migrated <code>.lvproj</code>?</p><p>Thanks in advance for the help!</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Worker Reuse Patterns: The Four Types of Structure and Behavior Reuse in the Workers Framework]]></title>
            <description><![CDATA[
Modern modular LabVIEW applications grow quickly, and without structured development they can become difficult to maintain, scale, and test.

The Workers framework for LabVIEW was designed around a ...]]></description>
            <link>https://community.workersforlabview.io/blog-9abfh5hq/post/worker-reuse-patterns-the-four-types-of-reuse-in-the-workers-framework-uSacSihFWXJrxKd</link>
            <guid isPermaLink="true">https://community.workersforlabview.io/blog-9abfh5hq/post/worker-reuse-patterns-the-four-types-of-reuse-in-the-workers-framework-uSacSihFWXJrxKd</guid>
            <dc:creator><![CDATA[Peter Scarfe]]></dc:creator>
            <pubDate>Fri, 20 Feb 2026 19:35:00 GMT</pubDate>
            <content:encoded><![CDATA[<figure data-align="center" data-size="best-fit" data-id="dHgpoymfVowZwSRyzoydJ" data-version="v2" data-type="image"><img data-id="dHgpoymfVowZwSRyzoydJ" src="https://tribe-s3-production.imgix.net/dHgpoymfVowZwSRyzoydJ?auto=compress,format"></figure><p><br>Modern modular LabVIEW applications grow quickly, and without structured development they can become difficult to maintain, scale, and test.</p><p>The Workers framework for LabVIEW was designed around a simple but important principle:</p><p><strong>Reuse is not primarily about saving time today.<br>It is about controlling complexity tomorrow.</strong></p><p>The framework provides several structured ways to reuse functionality, each suited to a different design need. This allows you to build systems using:</p><ul><li><p>reusable boilerplate</p></li><li><p>shared behavior</p></li><li><p>reusable functional modules</p></li><li><p>shared APIs with interchangeable implementations</p></li></ul><p>Each of these represents a different architectural reuse pattern.</p><p>This article explains the <strong>four architectural reuse patterns</strong> available in the Workers framework and helps you understand when and where to use each.</p><p>Let’s get started.</p><h2 class="text-xl" data-toc-id="5f8abfe6-c247-4c03-8ede-76994e1c98ec" id="5f8abfe6-c247-4c03-8ede-76994e1c98ec"><strong>1️⃣ Template Workers</strong></h2><h3 class="text-lg" data-toc-id="bea2b792-6a02-4015-81dd-1337ff1c1130" id="bea2b792-6a02-4015-81dd-1337ff1c1130"><em>Multiple different Workers that share the same starting boilerplate</em></h3><p>Every time you create a new Worker using the <strong>Create/Add Worker</strong> tool, the framework generates it from a template. You can also define your own templates to establish consistent starting structures for future Workers.</p><p>Use a Worker template when you want to create new Workers that start with the same structure but will eventually diverge in behavior.</p><p>A template provides:</p><ul><li><p>the same Main VI structure (MHL and/or EHL(s), default cases)</p></li><li><p>the same virtual folder layout</p></li><li><p>the same naming conventions and icons</p></li></ul><p>Each generated Worker becomes its own independent asynchronous process at run-time. Changes made later to the template do not propagate to existing Workers.</p><h3 class="text-lg" data-toc-id="79fd4d05-c263-48a0-b124-9ce3984ec1a7" id="79fd4d05-c263-48a0-b124-9ce3984ec1a7"><strong>Use a Worker template when:</strong></h3><ul><li><p>You need several Workers that begin with the same boilerplate</p></li><li><p>The Workers will diverge in logic or purpose</p></li><li><p>You want consistent structure and style across your application</p></li></ul><h3 class="text-lg" data-toc-id="4481c4ba-9443-4bbf-ae86-cc02734a1f0a" id="4481c4ba-9443-4bbf-ae86-cc02734a1f0a"><strong>Example</strong></h3><p>The framework provides two default Worker templates:</p><ul><li><p><strong>Worker with EHL</strong> (EHL + MHL)</p></li><li><p><strong>Worker without EHL</strong> (MHL only)</p></li></ul><p>Every Worker you create begins from one of these templates and then evolves as you add custom functionality to it.</p><h2 class="text-xl" data-toc-id="88923327-38a3-4dd6-94b0-890171af7dec" id="88923327-38a3-4dd6-94b0-890171af7dec"><strong>2️⃣ Multiple Instances</strong></h2><h3 class="text-lg" data-toc-id="9b9cab51-87c1-4452-a1b9-76bcec615fff" id="9b9cab51-87c1-4452-a1b9-76bcec615fff"><em>Same Worker, multiple roles</em></h3><p>Every Worker is a class, which means you can create <strong>multiple instances</strong> of it at run-time. By either statically-linking the same Worker multiple times or dynamically loading it, you create multiple clones of the same Worker's Main VI, with each running independently.</p><p>Using multiple Worker instances gives you:</p><ul><li><p>identical logic and behavior</p></li><li><p>the same Public API</p></li><li><p>differences only in Alias, configuration, or role</p></li></ul><p>This is the most maintainable pattern when all instances behave the same.</p><p>At run-time, each Worker instance is assigned a unique <strong>alias and address</strong>, making it easy to identify and communicate with each instance in your application and from the Workers Debug Server.</p><p>Because all instances use the same Worker class, you maintain <strong>one codebase</strong>.</p><h3 class="text-lg" data-toc-id="7875d4d0-e7be-4243-874f-9bfd520de8e0" id="7875d4d0-e7be-4243-874f-9bfd520de8e0"><strong>Use multiple Worker instances when:</strong></h3><ul><li><p>All instances should behave identically</p></li><li><p>You want low maintenance overhead</p></li><li><p>You need only Alias or configuration differences</p></li></ul><h3 class="text-lg" data-toc-id="1bbbe76d-e9e4-4792-be77-6bb8b5bb8a2e" id="1bbbe76d-e9e4-4792-be77-6bb8b5bb8a2e"><strong>Example</strong></h3><p>You have one Worker class:</p><ul><li><p><strong>NI USB-6009 Device</strong></p></li></ul><p>You want to control three separate NI USB-6009 devices, so you add multiple static instances:</p><ul><li><p>NI USB-6009 Device 1</p></li><li><p>NI USB-6009 Device 2</p></li><li><p>NI USB-6009 Device 3</p></li></ul><p>All instances share the same implementation (i.e. logic) but represent different physical devices or logical channels.</p><h2 class="text-xl" data-toc-id="015c1062-bddb-4828-93cf-5c141f100d8b" id="015c1062-bddb-4828-93cf-5c141f100d8b"><strong>3️⃣ Worker User Library</strong></h2><h3 class="text-lg" data-toc-id="027b85b9-485d-41ea-93c6-e74f2a6a26fc" id="027b85b9-485d-41ea-93c6-e74f2a6a26fc"><em>Pre-built, fully functional Workers reused across projects</em></h3><p>The <strong>Worker User Library </strong>tool allows you to reuse entire, fully implemented Workers, not just structure or behavior, by adding a copy of a functional Worker (or library of Workers) directly into your LabVIEW projects.</p><p>Workers stored in your Worker User Library:</p><ul><li><p>contain complete, working functionality</p></li><li><p>can be integrated into new applications using their Public APIs</p></li><li><p>help standardize functionality across teams and projects</p></li><li><p>eliminate the need to reimplement common features</p></li><li><p>become part of your organization’s internal “Worker toolbox”</p></li></ul><p>These Workers are often team-developed, well-tested modules that can be dropped into new projects with confidence.</p><h3 class="text-lg" data-toc-id="b7988f0e-4969-4226-81dd-7ffaa2748813" id="b7988f0e-4969-4226-81dd-7ffaa2748813"><strong>Use the Worker User Library when:</strong></h3><ul><li><p>You want to reuse functionality, not just structure</p></li><li><p>A Worker already exists that solves your problem</p></li><li><p>You want consistent, proven behavior across projects</p></li><li><p>Your team wants a shared library of reusable Workers</p></li></ul><h3 class="text-lg" data-toc-id="d6a5b82b-a4c3-4d83-a0c0-a4ce5f2dda44" id="d6a5b82b-a4c3-4d83-a0c0-a4ce5f2dda44"><strong>Example</strong></h3><p>Your organization maintains reusable Workers such as:</p><ul><li><p>Modbus TCP Client</p></li><li><p>OPC UA Tag Monitor</p></li><li><p>PID Controller</p></li><li><p>MySQL Data Logger</p></li><li><p>Digital Output Device</p></li></ul><p>Once part of your Worker User Library, these modules can be added to any new application without recreating their functionality.</p><h2 class="text-xl" data-toc-id="98e381b6-3839-4692-8ced-6329e1b67433" id="98e381b6-3839-4692-8ced-6329e1b67433"><strong>4️⃣ API Abstractions (e.g. HALs)</strong></h2><h3 class="text-lg" data-toc-id="25e74c06-34ce-4b21-a831-2a0d6a199cea" id="25e74c06-34ce-4b21-a831-2a0d6a199cea"><em>One Public API shared by multiple Workers</em></h3><p>API abstraction is the most flexible form of Worker reuse. It is ideal when you need true polymorphic behavior:</p><blockquote><p>Multiple Workers share the same Public API but implement different functionality internally.</p></blockquote><p>This pattern is provided directly by the framework’s <strong>Public API Builder</strong> tool.</p><p>To implement this pattern, you create:</p><ul><li><p>a <strong>Worker base class</strong> defining a shared Public API</p></li><li><p>multiple <strong>derived Workers</strong> implementing device-specific logic</p></li></ul><p>Callers (and systems such as NI TestStand) interact only with the Public API defined in the base class. <strong>This is the abstraction layer.&nbsp;</strong>Specific implementations, i.e. the derived Workers, can then be loaded and swapped dynamically at run-time.</p><h3 class="text-lg" data-toc-id="bb44d6cb-0d4c-4978-9f25-ce1b5bfccb93" id="bb44d6cb-0d4c-4978-9f25-ce1b5bfccb93"><strong>Use this pattern when:</strong></h3><ul><li><p>Devices or logic vary behind a common Public API</p></li><li><p>You need run-time interchangeability</p></li><li><p>You want clean API polymorphism</p></li><li><p>You want maximum design flexibility</p></li></ul><h3 class="text-lg" data-toc-id="26ead651-74b4-4b05-ba51-4095ad278f06" id="26ead651-74b4-4b05-ba51-4095ad278f06"><strong>Example (taken from the </strong><a class="text-interactive hover:text-interactive-hovered" rel="noopener noreferrer nofollow" href="https://community.workersforlabview.io/training-course">Workers Training Course</a><strong>)</strong></h3><p>Base Worker class:</p><ul><li><p><strong>DMM HAL </strong>(shared Public API)</p></li></ul><p>Derived Workers:</p><ul><li><p>Fluke DMM (device logic)</p></li><li><p>Keysight DMM (device logic)</p></li><li><p>Keithley DMM (device logic)</p></li></ul><p>All three Workers share the same Public API that exists in the <strong>DMM HAL </strong>base class but contain their own device-specific logic. The implemented behavior is abstracted <strong>behind </strong>the Public API in the base class.</p><h2 class="text-xl" data-toc-id="45e091ea-1fa1-4b4a-9be7-d89b5faa0daa" id="45e091ea-1fa1-4b4a-9be7-d89b5faa0daa"><strong>🎯 Conclusion</strong></h2><p>The Workers framework for LabVIEW provides you with four flexible Worker reuse patterns, each suited to a different design need:</p><ul><li><p><strong>Template Workers</strong> establish consistent starting structure.</p></li><li><p><strong>Multiple Instances</strong> reuse one implementation across multiple roles at run-time.</p></li><li><p><strong>The Worker User Library</strong> enables reuse of complete functional modules across projects.</p></li><li><p><strong>API Abstractions </strong>provides <strong>run-time</strong> flexibility through shared Public APIs and interchangeable implementations.</p></li></ul><p>As your applications grow, you may find yourself using different reuse patterns for different parts of the system. The key is that you should never need to duplicate code when reuse is possible.</p><p>The Workers framework gives you the tools to build systems that are modular, maintainable, and scalable, whether you are developing a simple application or a large, multi-device, multi-team system.</p><p>Thanks for reading — and remember: architect first.</p><p>— <em>Peter Scarfe, Creator of Workers for LabVIEW</em></p><hr><p><br>📬 If you’d like to receive future articles like this directly in your inbox, consider joining the Workers Community website. By <a class="text-interactive hover:text-interactive-hovered" rel="noopener noreferrer nofollow" href="https://community.workersforlabview.io/auth/signup">signing up</a>, you’ll stay up to date with new articles, discussions, framework updates, and developments within the Workers ecosystem.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Just started ...]]></title>
            <description><![CDATA[Dear Workers Community,

I am Stefan and I have just recentley recognized Workers. I am curious on how It can help simplify debugging and code maintenance. I have had received a formal LabVIEW training ...]]></description>
            <link>https://community.workersforlabview.io/introduce-yourself-qo3lp8xp/post/just-started-8LRf2pH9yAi2Phi</link>
            <guid isPermaLink="true">https://community.workersforlabview.io/introduce-yourself-qo3lp8xp/post/just-started-8LRf2pH9yAi2Phi</guid>
            <category><![CDATA[Introduction]]></category>
            <dc:creator><![CDATA[Stefan Pertl]]></dc:creator>
            <pubDate>Mon, 09 Feb 2026 15:59:50 GMT</pubDate>
            <content:encoded><![CDATA[<p>Dear Workers Community,</p><p>I am Stefan and I have just recentley recognized Workers. I am curious on how It can help simplify debugging and code maintenance. I have had received a formal LabVIEW training to level CLD.</p><p>Looking forward to exercise and learn about Workers together!</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Allow Public API Responses in the EHL]]></title>
            <description><![CDATA[Consider allowing Public API Responses to be used in the EHL.

One of the things I REALLY LIKE about Workers is that receiving a Public API message (request or response) requires a case only in the MHL,...]]></description>
            <link>https://community.workersforlabview.io/wishlist-9gjrv181/post/allow-public-api-responses-in-the-ehl-r8Ob8u0Zqcg4mqB</link>
            <guid isPermaLink="true">https://community.workersforlabview.io/wishlist-9gjrv181/post/allow-public-api-responses-in-the-ehl-r8Ob8u0Zqcg4mqB</guid>
            <dc:creator><![CDATA[Chris White]]></dc:creator>
            <pubDate>Fri, 19 Dec 2025 22:53:20 GMT</pubDate>
            <content:encoded><![CDATA[<p>Consider allowing Public API Responses to be used in the EHL.</p><p>One of the things I REALLY LIKE about Workers is that receiving a Public API message (request or response) requires a case only in the MHL, whereas receiving the same kind of message in an event-based framework requires a case in both the EHL and MHL.</p><p>Currently, though, sending a Public API Response in Workers to announce a user action (e.g. button click) requires an EHL case to capture the user action and an MHL case to send the response. Also needed is a Local API Request to go from EHL to MHL.</p><p>It would be great to eliminate the need for the MHL case when sending a response.</p><p>Seems like there are two ways this change could be implemented, in order to share the Response Cases with the EHL.</p><ol><li><p>Send an event to the EHL from the MHL Initialize case.</p></li><li><p>Store the Response Cases in a DVR and use read/write VIs instead of bundle/unbundle.</p></li></ol><p>Thanks for considering this idea!</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Remove Unnecessary VI Outputs]]></title>
            <description><![CDATA[Consider removing outputs from Core and generated VIs that do not modify data.

A few years ago, I read this post [https://dqmh.org/just-passing-through/] that recommends removing unneeded outputs. Once I got used to this approach, there was ...]]></description>
            <link>https://community.workersforlabview.io/wishlist-9gjrv181/post/remove-unnecessary-vi-outputs-ZpVIfcM2Au8tVcF</link>
            <guid isPermaLink="true">https://community.workersforlabview.io/wishlist-9gjrv181/post/remove-unnecessary-vi-outputs-ZpVIfcM2Au8tVcF</guid>
            <dc:creator><![CDATA[Chris White]]></dc:creator>
            <pubDate>Fri, 19 Dec 2025 22:10:54 GMT</pubDate>
            <content:encoded><![CDATA[<p>Consider removing outputs from Core and generated VIs that do not modify data.</p><p>A few years ago, I read <a class="text-interactive hover:text-interactive-hovered" rel="noopener noreferrer nofollow" href="https://dqmh.org/just-passing-through/">this post</a> that recommends removing unneeded outputs. Once I got used to this approach, there was no turning back. There are fewer wires and it is obvious which VIs change data (or generate errors) and which VIs do not.</p><p>If you decide to implement this change, it need not break existing code. You could put the new version of the palette VI inside the old version of the palette VI.</p><p>A reason for retaining the "dup" outputs is that it gives the option to wire the unneeded outputs or not to wire them. So it is understandable if you decide to retain the "dup" outputs.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Pub/Sub or data broadcasting possibilities]]></title>
            <description><![CDATA[I am about to start a new software application and am exploring options. I am enjoying what I see so far for Workers, but had a question for how you see the "standard" way of streaming data from N to ...]]></description>
            <link>https://community.workersforlabview.io/ask-the-community-az5ilws8/post/pub-sub-or-data-broadcasting-possibilities-mn0tZcIc9ixNTGs</link>
            <guid isPermaLink="true">https://community.workersforlabview.io/ask-the-community-az5ilws8/post/pub-sub-or-data-broadcasting-possibilities-mn0tZcIc9ixNTGs</guid>
            <category><![CDATA[Data Streaming]]></category>
            <category><![CDATA[Workers 5.0]]></category>
            <dc:creator><![CDATA[Jon Jay]]></dc:creator>
            <pubDate>Fri, 19 Dec 2025 22:05:52 GMT</pubDate>
            <content:encoded><![CDATA[<p>I am about to start a new software application and am exploring options. I am enjoying what I see so far for Workers, but had a question for how you see the "standard" way of streaming data from N to N.<br><br>Our system would have N number of Hardware Workers that handle all of the interaction with each piece of hardware. These would be subWorkers from a "control" worker. I want to broadcast that data so that any other worker can receive it, if they have subscribed to it. (I'm imaging using User Events for this.) The number of subscribers could be N number and would need to operate asynchronously. Imagine these as "reporters" that could be writing to file, database, or display. The User Event would be created at the Top Level Worker and be given to all subWorkers as they are generated, to ensure a single shared User Event that any given Worker can choose to subscribe to or not.<br><br>I know this inherently breaks the 1 to 1 messaging Workers has, but unsure how else to stream data like this in the framework. All the rest of messaging would follow the standard Workers API. <br><br>The data being streamed would all be some child of a custom Data.lvclass hierarchy, so handling the data types wouldn't be a concern at this level.<br><br>Is there a better way of doing this in the Workers framework that I am not seeing?<br><br></p>]]></content:encoded>
        </item>
    </channel>
</rss>