Jump to content
News about the LabVIEW Wiki! Read more... ×

Francois Normandin

Members
  • Content Count

    1,131
  • Joined

  • Last visited

  • Days Won

    26

Francois Normandin last won the day on July 16

Francois Normandin had the most liked content!

Community Reputation

143

1 Follower

About Francois Normandin

  • Rank
    Son of Scotland
  • Birthday 02/26/1975

Profile Information

  • Gender
    Male
  • Location
    Montreal, Canada
  • Interests
    LabVIEW (!!!), Astrophysics, Science-Fiction, Kilts.

LabVIEW Information

  • Version
    LabVIEW 2017
  • Since
    1999

Contact Methods

Recent Profile Visitors

7,224 profile views
  1. Francois Normandin

    Sending sensor data from a TCP socket in python(RPI) to LABVIEW

    Hi Diego, to speed things up, you should consider separating the TCP read and the file writing in two separate loops. For example, if you make two parallel loops: one that reads and adds data to a queue, and a second which reads the queue and writes to file, then you can read multiple datapoints at once and write less frequently to the file. Investigate the use of a Producer-Consumer architecture. I took the liberty of reorganizing your example to demonstrate the concept. I'd probably approach your task where your Python code is the client that publishes data and LabVIEW would act as a server (instead of the other way around), but I wanted to keep with the spirit of your example. Client.vi
  2. to the OP: Be mindful that the "Traverse for GObjects" serves the array in the reverse order from Panel:Controls[] method, probably because of the way it stores the references in the recursion loop. @infinitenothing You're totally right. Tab order it is, with newly created controls added at the end of the list.
  3. The method you invoke on the Panel reference always returns the Controls in the order that they were created. aka. If you delete the second element and create a new one (even with same label), it will be added to the end of the list.
  4. Francois Normandin

    Secondary Project Provider for ByRef Architecture Scaffolding

    Indeed, not a State Machine... "JKI State Machine Objects" gets its name from the use of "JKI State Machine" as its core "Process.vi", which is not a state machine. It is an Event-driven Queued Message Handler (QMH). State Machine was a misnomer and the name stuck around as it was (still is) a very popular template.
  5. Francois Normandin

    Secondary Project Provider for ByRef Architecture Scaffolding

    The reason for this typecast is to break type propagation that plagues edit-time performance which occur when you have a large class hierarchy. It is not because it makes scripting easier (on the contrary). In essence, when you edit a class' private member, the class' mutation history is modified and the LabVIEW IDE goes through a series of checks and recompiles to propagate the changes. For very small projects, this is completely trivial and does not affect edit-time performance, but for larger hierarchies (think Actor framework...) it becomes a real issue. One way to reduce this performance lag is to never put typedefs in the class private data... but this is up to the developer to stick to that rule or not. When you use an integer, using typedefs does not affect the edit time performances at all. As Rolf mentions, this pattern was popularized by GOOP (now OpenGDS). When creating a framework, you can never predict how the developers will use it... Obviously, if you use a framework and it starts to lag as your project's complexity increases, you are quickly going to blame the framework for the performance degradation (just like we blame Windows for running slower after we've bloated our computers with a bunch of apps, but that's another topic...). So it is very tempting to use tricks like this typecast to an integer to break this slow type propagation. As was mentioned by Smithd, it is risky... but if it stays in the private methods of your class, it is totally safe. In JKI SMO, you'll notice that this is used through two private methods and the DVR type is typedef'ed. You can very well create SMOs that do not use this trick.
  6. Francois Normandin

    Open Package Building Discussion

    Shaun, can you elaborate on why you needed to reinstall the other toolkits when you update your encryption library? If the project-specific librairies all pointed to vi.lib, why did their linkage break?
  7. Francois Normandin

    How to learn to talk with hardware in Labview?

    There are a couple of LabVIEW drivers and example codes on their website. Depending on the positioner model you have, choose the ASCII or Binary version at https://www.zaber.com/zaber-software
  8. Francois Normandin

    LabVIEW 2018 and sbRIO-9626

    Use Vivado 2017 tool.
  9. Francois Normandin

    LabVIEW 2018 and sbRIO-9626

    Have you checked the compatibility chart for getting the right version? http://www.ni.com/product-documentation/53056/en/ sbRIO-9627 is a Zynq FPGA. Check if ISE 14.7 might be reqiured.
  10. Francois Normandin

    VIPM LAVA Repo

    I meant that LAVAG should verify that the code it hosts does not infringe on licenses, or at least have a process to summarily verify. You are right that VIPM handles the actual license from the user's perspective.
  11. Francois Normandin

    VIPM LAVA Repo

    This is a good idea, but I think it would require a more thorough editorial review of submissions to put them on the such a repository. Other than the obvious code reviews, "LAVAG" would need to examine for possible license issues, consistency across versions, develop more precise guidelines for submissions, etc. The hardest part would be to maintain the same standards over the years, as people's commitment to their "review committee duties" will undoubtedly fluctuate over time. As for the actual repository, you don't need a server running. The package publisher needs VIPM Pro to modify and manage the destination folder. The content of the repository is stored as files on any accessible drive, so it's a matter of adding it to the list of network URLs. (requires VIPM Pro as well, as mentioned above, unless on LVTN or JKI Package Network)
  12. Francois Normandin

    LabVIEW Security Vulnerability

    Password protected == freeware... != open source.
  13. Francois Normandin

    JKI Caraya on a real time target

    The core process skips showing the UI when on RT. You can modify this in the Basic Test Manager's process by removing the conditional disable structure. However, you should probably make a request on the open source project (https://github.com/JKISoftware/Caraya) or fork the original repo. Modifying this in vi.lib will not make it persistent and is a bad idea... It might be that the logic could be smarter in that if the RT target does not have a UI, it would skip it, but not assume that all RT targets don't allow UIs. There might also be the possibility to modify the test suite setup to inject your own override code, for which you could simply change the behavior of the basic test manager.
  14. If you already have the packages installed on your present PC, you can retrieve them manually from the cache directory: <ProgramData>\JKI\VIPM\cache This is just a temporary workaround... maybe you can notify JKI on the VIPM forum if this issue persists.
×

Important Information

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