Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


drjdpowell last won the day on September 11

drjdpowell had the most liked content!

Community Reputation



About drjdpowell

  • Rank
    <customize this text>

Profile Information

  • Gender
  • Location
    Oxford, UK

LabVIEW Information

  • Version
    LabVIEW 2017
  • Since

Contact Methods

Recent Profile Visitors

7,252 profile views
  1. You certainly can do this with LAVA JSON, but I would suggest you use the JSONtext library instead, if possible:
  2. Your right, there is a reference leak here. That Queue is a reference created in the actor's calling code, and is used to trigger the "Autoshutdown" message when the caller stops, thus invalidating the Queue. There is an async component called the "ReferenceMonitor" which watches that Queue and sends the Autoshutdown message then closes. ReferenceMonitor also polls the actor's address, so it can shut itself down if the actor dies. However, I forgot to destroy the Queue in that case. Here is an image where I have added the needed Close operation: Thank for spotting this, -- James
  3. Yes, these references are intended to only be closed when the actor that created them stops running. The term "reference leak" is used by the trace toolkit to indicate any reference cleaned up by LabVIEW when a vi goes idle, regardless of whether it is an actual leak.
  4. A JSONtext example, ssumming all dictonary items are the same type: Alternately, keep items in JSON format so they can be treated differently at a later step:
  5. Don't quite understand that. JSON is a standard data format, widely reusable. Your weird Variant/Cluster/Dictionary thingies are very non-standard.
  6. This idea, though it is a request for the reverse operation, illustrates how one can convert a cluster (in a variant) into an array-of-variants that contain the individual cluster elements. This did not exist when the OpenG Variant Tools were made, and OpenG is based on the (much slower) operation of manipulating flattened data.
  7. If you can access the original JSON string, then you have more options to convert it, such as with the in-built JSON primatives or JSONtext, both of which should be quicker and use less memory. The code would be simpler too.
  8. One suggestion is to use Variant-to-Data to convert your Cluster-in-a-Variant to an Array of Variants containing the Cluster elements. Then use the Data type palette to get element names. This will be much faster and less memory intensive than using OpenG Vis.
  9. The problem is, if there are two dialogue actors, which should be on top. Only one dialog can be interacted with, but that one isn't necessarily on top.
  10. I do that. But the problems I have are reported by Users of the EXEs
  11. Does anyone have a solution to the problem of ordering of floating windows, where for example a modal dialog box is behind another floating window, and thus can never be dismissed? Or a floating window opens a file-selection dialog, and it opens behind the first window. Is there a way to determine which modal window has control (and must be dismissed first) and then force that to the front?
  12. The programming term you should look into is Futures and Promises. It is about handling results not yet received (such as defining their order, as you wish to do). Single-element Queues, as TomOrr0W suggests, is what I usually use.
  13. You can easily customise a standard boolean by swapping out the on/off elements for whatever decoration you want. Then you can colour on and off states differently. Alternately you can use PNG images (already coloured) for the on/off states.
  14. I'm afraid I don't even have easy access to a Real-Time unit to try 2019 on. My clients are all 2017 or 2018.
  15. You would need to compile a loadable extension to add that functionality. As an example, I compiled extension-functions.c in order to allow advanced math functions like standard deviation, so you could have a look at that. I note that there is a regexp.c extension on the SQLite website, so you could try and compile that using the loadable extension instructions.
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.