Jump to content

drjdpowell

Members
  • Posts

    1,966
  • Joined

  • Last visited

  • Days Won

    172

Posts posted by drjdpowell

  1. 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.

  2. 2 hours ago, mischl said:

    how to set up a REGEXP?

    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.  

  3. The "pretty print" includes a length check, and keeps small objects compact.  You can see it in the code; it's 40 characters or less, I think.  This was added to improve the readability of arrays of small objects.  

    Unfortunately, "pretty" is subjective, and it is hard to come up with simple rules that work for all possible input JSON.

  4. If this is an EXE, see if libpq.dll and other dlls are included with the EXE, in its "data" folder.  This should happen automatically (because the dlls are part of the PQ class), but I've seen this fail before.  If they aren't there try using "Always Include" to include them.  The data folder should look like this:

    880985272_2019-07-0310_32_46-TestPQProperties.png.5c045053bf59532f8f04a8773dd653a1.png

  5. A note on "Messaging":

    A Messaging system is one where different bits of information "messages" come through and are handled one-by-one at the same point.  Because different messages are mixed together, the communication cannot be lossy.  Even if you have no messages that represent must-not-be-missed commands, you will still have the problem of missing the latest update of an indicator, because of an update to a different indicator. 

    This is different from the case of using multiple separate (possibly lossy) communication methods to update independant indicators (often, this kind of system uses the terminology of "tags").  Because they are separate, the latest value of each "tag" is never lost.  But this is not "messaging".  

    Considerations of whether to use "messaging" or "tags" is another conversation.

  6. Hi Max,

    Recovering from a stuck hardware actor is often impossible, as it is some dll call that is stuck and LabVIEW cannot abort the call.  Nor can the dll be reloaded without restarting the entire application.  However one still needs to recognise and report the problem.  I use the "Timeout Watchdog" recently added to the library.  The main actor uses that on the handling of some message that periodically comes from the hardware actor.

    Now, another unreliable actor is one that handles potentially large blocks of memory.  An out-of-memory error will abort the actor, invalidating it's address, and you can use an "Address Watchdog" to notify Main.  In that case you probably can restart the actor and recover.

    • Thanks 1
  7. I ask about performance because I wouldn't have thought your new method would in general be faster.  

    When I was considering how to improve the performance of this library I became convinced that I should produce a new package that delt directly with strings, abandoning the objects and variant attributes used here.  That package is JSONtext, which I use in all new work.  So I am unlikely to make more than minor improvements to this library.  However, someone else could continue development of LAVA JSON if they like.

     

×
×
  • Create New...

Important Information

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