Jump to content

Francois Normandin

Members
  • Posts

    1,209
  • Joined

  • Last visited

  • Days Won

    46

Posts posted by Francois Normandin

  1. resizing_subpanels.vi

    @jhoskins, I'm not sure which part you were having problems with, but here is an example with loads of empty subpanels. It is already slow without any panels loaded in, so definitely not something you can use in any "reactive" UI without having to recompute the whole positions. What I'm saying is that it won't work if you expect to recompute on Pane Resize user events...

    From some trials and errors, I think the Windows Bounds to Rectangle is not the most useful method to get the "Owner Pane" rectangle, so I just fudged it to roughly account for scrollbars. It's not a perfect mathematical calculation because the distance with the sides is not really constant as a function of subpanel size and pane size.

  2. Hi Richard, 

    I was referring to the Save a Copy on a LVLIB that contains classes A and A1, instead of saving individual classes sequentially.

    You'd start with Template.lvlib:A.lvclass * Template.lvlib:A1.lvclass, and end up with Clone.lvlib:A.lvclass & Clone.lvlib:A1.lvclass
    Your new clone lvlib will maintain the linkage within its own namespace. It then becomes a renaming operation for the Clone.lvlib:AX.lvclass to Clone.lvlib:BX.lvclass

    This only work if your template has all dependent classes in the same lvlib, hence why I called that a "special case". Your solution is more generic.
    Even when I don't want the classes to end up in the same lvlib, I prefer to extract them after they have been cloned...

     

    image.png.2c558af23ea148d6c64dcd4eaf9c47d1.pngimage.png.1bd3ded9cf7f73263026f9897f918f8c.png

    • Like 1
  3. 0-BSD is the only OSI-certified license that gives the same level of restrictions as Public Domain, while still, as you well know from those other presentations you referred to, being recognized in (almost) all countries. Public domain and The Unlicense are not recognized universally.

    Like Shaun points out, the biggest worry is that someone can claim my work as theirs because the license is open enough that you can copy any part, or the whole, without attribution. 

    Honestly, I don't think the prospect of someone claiming I cheated would meet any level of credibility, since all the development is done in a 3rd-party public repository and I never squash my commits. Easy to prove I went through the development process and I couldn't temper with the commit hashes/timestamps of those commits. You can see all the mistakes, dead-ends, reworks, fixes... Anyway, whether or not you use a more restrictive license would not prevent someone from falsely claiming their work predates yours. If that were to happen, I trust the LabVIEW Community will hold the reputation of the original developer. 

    If the work you want to release is owned by a company, I would recommend to not use 0-BSD. Make sure there is at least an attribution clause.
     

    • Thanks 1
  4. No you cannot. 

    Your simplified example, if the interface is truly abstract, is equivalent to trying to prevent someone from dropping a "empty string constant" on the block diagram. 

    Fundamentally though, it would prevent you from using the direct cast to exercise the override, as shown in the bottom example.


    image.png.da189c191bb874755effadee90e6a047.png

     

    The only restriction is that one cannot create a DVR of the interface from outside the interface itself.
    I have to admit that I have not investigated the consequence of such a pattern in the context of interfaces...

    image.png.cc7330564ffa66d2721ec33873ba8bbe.png
     

    • Like 1
  5. This is not strictly the answer to your question, but if you only use this for elapsed time, I suggest you switch to UTC time instead... There is no daylight savings time in UTC frame of reference, so you are certain it won't hit you.

    Also, here's a library (shameless plug) you might find useful: https://www.vipm.io/package/labview_open_source_lib_epoch_datetime/
    It serves Unix, GPS and ISO time, including support for leap years (and even leap seconds... all 37 of them)

  6. Networks Streams implement (and abstract) the concept of Quality of Service without the developer needing to add code for managing intermittent connections. A handshake ensures that all the data transmitted has reached the other endpoint in the order they were sent. Yes, it is probably just a buffer on the sender's side and some ACK replies from the receiver (and incoming buffer), bundled into a seemingly unidirectional stream. For sure there's an overhead compared to straight TCP, but I'm not sure the overhead is that large if you take into account the handshaking that you would need to reproduce the same QoS feature.

    TCP is more flexible and interoperable.

    If you need to add QoS to your app, and your app is all LabVIEW on both sides, then Network Streams make sense for reliable 1-to-1 high speed data transfers. If you send lots of small messages, an IoT protocol over TCP is probably more suited for the task (MQTT, etc.).

     

  7. Quote

    "Improved Python node now supports 3.6 through 3.9"

    We've been calling 3.9 with LabVIEW 2019 without a glitch. Not exactly sure what "support" means in this context.

    _ _ _

    Different topic... If the statement below were a regular expression, wouldn't a "?" be more appropriate? It would stand a better chance of matching at least one element 😉
    image.png.a0381a215b2a7237fad026f4841671b5.png

     

    • Haha 1
  8. On 3/31/2021 at 2:43 AM, JKSH said:

    What license is the code published under?

    It's not listed on the repo, but it is under the MIT license. (It's now been added to the repo)

    • Like 1
×
×
  • Create New...

Important Information

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