11-08-2022 04:17 PM - edited 11-08-2022 04:31 PM
LabVIEW queue won't work across different applications. Network streams should work great, but you need to know how to set them up on both the FlexLogger plugin side and the LV application side. In your FlexLogger plugin, I would put the Create Network Stream Writer Endpoint VI in the Process VI so you don't need to worry about whether the FlexLogger plugin starts first or the LV application (i.e. If you put it in Configure Sessio nor Initialize, it may get called once and if LV code isn't ready yet, it could either miss it if you specify a timeout or hang if you specify -1 for the timeout. Specify a timeout of 10ms for example in the Process.vi when you call the Create Network Stream Writer Endpoint.vi and keep trying every iteration of your Process.vi to establish a connection. Once it's established, you can save the session and a flag to indicate you're connected in the private data of your plugin so you know next iteration not try connecting, but to just use the stored session. If you ever lose connection, reset the flag so th Process.vi will try connecting again on subsequent iterations.
On the FlexLogger Plugin, make sure the Create Network Stream Writer Endpoint uses a URL like: "//localhost/reader" and a name like "writer". The LabVIEW code should use a Create Network Stream Reader Endpoint with a name "reader" and it looks like the URL is optional based on the article I mention below. On the LV side, set the timeout for Create Network Stream Reader Endpoint to -1 (or loop with a timeout) and it will wait for FlexLogger Plugin to be ready before continuing.
Here's an article that talks about Network streams: https://www.ni.com/en-us/innovations/white-papers/10/lossless-communication-with-network-streams--co...
Here's another one that talks about different options for communicating between machines (or within the same machine but across different processes):
If you still need help, please include all your LV code and all the source code for your FlexLogger plugin.
Hope this helps,
11-09-2022 10:57 AM
Thanks for the reply! Your guidance was helpful. The only additional thing I needed to figure out was that the application context needed to be specified in the endpoints.
I couldn't find straight forward documentation on the application context, but eventually figured it out.
I attached a simple example of streaming out of a plug-in that is an extension of the Calculation plug-in template. Hopefully it can help anyone else out that is having this issue.
11-10-2022 08:05 AM
It sounds like you got this working in this thread, so attaching link here: