Jump to content

bjustice

Members
  • Posts

    159
  • Joined

  • Last visited

  • Days Won

    11

Posts posted by bjustice

  1. @Porter @Antoine Chalons

    There's some background info here.  A few things.

    Both of those libraries are branches of the Erdos Miller code.
    However, I communicated all of my modifications to Antoine, who then re-implemented them in his library.
    I have little intention of making additional changes to my branch.
    Conversely, I suspect that Antoine intends to continue to support his branch, if only in a limited manner.

    BlueTOMLSerializer is not just a TOML library.  It was written as a TOML-based plugin for the BlueSerialization engine.
    https://www.vipm.io/package/blue_origin_lib_blueserialization/
    This is a large piece of code that handles serialization and deserialization of classes quite well.
    The user can select an implementation of JSON, TOML, or other by choosing a different plugin library.

    I fully intend to modify BlueTOMLSerializer to drop all the TOML code and directly consume Antoine's library as a dependency.
    This, for example, is what I do for JSONtext.
    Unfortunately, I'm waiting on a specific feature request to be implemented in Antoine's library:
    https://github.com/AntoineChalons/lv-toml/issues/24

    Hope this helps

    • Like 1
  2. My goal is always to produce a user interfaces that users won't recognize as being written in LabVIEW unless you told them.

    2 examples of this that I've seen online come to mind:

    • VIPM (VI Package Manager.  This received a major UI overhaul in 2020.)
    • Scout TDMS viewer (From Signal.X)
  3. lockup.vi

    I ran into a strange LabVIEW (bug?) today.  (Note, I'm using LabVIEW 2020 SP1)  Figured it was worth sharing, maybe you guys have insight here.  I've attached a VI that demonstrates the behavior.

    Basically, if you click the "Do" button, then LabVIEW will completely lockup.  You have to hit the abort button or task kill to escape the lockup.

    In the "False" case below, the event structure loop doesn't get kicked off.  However, it seems like LabVIEW locks up when the Do button is pressed... perhaps indicating that LabVIEW is waiting for the event structure to fire off the event... which, of course, never happens in the False case.

    What's even stranger is that if you flip the disabled structure, you'll see that the code doesn't lockup if the case structure is given a constant False input.  This tells me that compiler shenanigans are at play.

    Weird weird weird

    lockup.png.d2d7ee0785f6b569515cd6137e60b241.png

  4. Argh, you're right, there is a limitation.

    It looks text properties (size, color, style, fontname) are global for each individual cell.  i.e. I can't have a cell with both Segoe UI font and then also some text using Symbol font in the same cell.  This means if I put Symbol arrows in a header cell, then I can't place descriptive text next to the arrow.

  5. In many modern non-LabVIEW UIs, tables can be sorted by clicking on the header.  There is then usually a glyph to communicate this feature.  Non-LabVIEW example:

    image.png.d78be7f2c2b80106e13cd011b6001454.png

     

    I'm trying to reproduce this behavior in LabVIEW, but I keep hitting roadblocks.  Notably:

    • LabVIEW doesn't allow for symbols in table headers
    • LabVIEW ascii table doesn't have any up or down arrows.  There is an up carrot ^, but not a down carrot.

    I'd love to know if anyone has any suggestions or workarounds.

     

  6. @jdpowell @LogMAN @Antoine Chalons @Aristos Queue

    I recommend that you guys take a peak at this code.  We're not normally able to release code like this to the community, but I managed to collect approval for this particular library on grounds that it was very low level and very intertwined with other open-source community code.  (literally recursively entwined with JSONtext lol.)

    A few notes:

    ___

    This library leverages the new "LVClass Serializer" input to JSONtext:

    image.png.67259853c6e2d1b2356258c1b5d80379.png

    Soo, thanks at JDP for adding this input.  Very helpful.

    __

    Antoine, the TOML serializer here is not yet directly consuming your LV-TOML library.  I would realllly love to make this happen though.

    In order to consume LV-TOML, we'll need to add a "LVClass Serializer" input to LV-TOML in exactly the same manner as JDP added this to JSONtext.

    For the moment, the TOML code in this library is a branch of the old Erdos Miller TOML library... except that I've added the code required to hook into class deserialization stuff.

    __

    Logman, I took a look at your recently published "JSONtext Object Serialization" library

    https://www.vipm.io/package/pnr_lib_jsontext_object_serialization/

    Very cool code!  Your LabVIEW composition library has been quite useful.  In fact, it's a dependency to this library!

    So, a big different between your library and this Blue library is that we chose not to use composition for serializing/deserializing classes.  We had a few reasons for this, and it's actually described in more detail on the repo readme.

    However, this Blue library ships with a very nifty "BlueVariantView" package.  This exports any LabVIEW data structure to a colorized tree control.  (I was inspired by the LAVA VariantProbe library, so I made my own... but better.)  I used your composition library within this tool to decompose maps, sets, and classes.  Take a look, super cool!

    __

    Lastly, Aristos, I'll just cryptically say that your an inspiration, and I hope this code benefits you

     

  7. LAVA friends,

    Do you like JSONtext?  Do you like LV-TOML?

    But do you always wish that either of these libraries supported LabVIEW classes?

    Well, with this library, now they do!

    The more in-depth documentation can be found at the official source code repo:

    https://github.com/justiceb/BlueSerialization

    The VIP packages can either be downloaded here, or directly from VIPM.

    On a related note, if you like the code, consider checking out the following link:

     

     

  8. 4 hours ago, hooovahh said:

    Oh wow never heard of this thing, and now that I'm looking at it, it sure seems like trying to solve a problem that has already been solved with state machine templates or State Diagram Toolkit, with an RT or FPGA.

    My understanding is that the functional safety editor, paired with the yellow c-series safety modules yield a SIL-3 (safety integrity level) certified hardware/software solution.  This SIL level is often a requirement for situations that could put humans at risk of harm.  Neither the LabVIEW nor NXG environments would be able to carry this rating, so they stripped out a slim version of NXG and pushed it through a bunch of verification to obtain the safety rating.

    I played around with it, and it was pretty neat.  I wouldn't regard it as anything more than a smart/configurable relay capable of fitting into a c-series slot and sending data back to the controller via the backplane.

  9. Correct.

    Ahh, I typically only read the files.  But yeah, the writer portion of the code doesn't in-place edit a file, so yeah, the comments would be lost.  Good point.  I'm not sure of the way around this.

    How is JDP handling this?  I assume that he's going to have the same issue with JSONtext (since he added comments in the latest JSONtext release)

  10. Does anyone know if it's possible to compose/decompose map/sets in LabVIEW?

    @LogMAN wrote a fantastic "LabVIEW Composition" library which is able to :

    • compose/decompose LabVIEW classes
    • decompose maps
    • decompose sets

    However, there is no support for composition of maps/sets.
    (Link: https://github.com/LogMANOriginal/LabVIEW-Composition)

     

    @jdpowell and @Antoine Chalons had an interesting discussion on a JSONtext issue ticket about this subject:

    (link: https://bitbucket.org/drjdpowell/jsontext/issues/74/add-support-for-maps-set)

    However, it doesn't look like there has been resolution yet?

    Thanks for any input/insight

×
×
  • Create New...

Important Information

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