Jump to content

Francois Normandin

Members
  • Posts

    1,206
  • Joined

  • Last visited

  • Days Won

    46

Everything posted by Francois Normandin

  1. 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.
  2. 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.
  3. 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?
  4. 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
  5. 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.
  6. 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.
  7. 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)
  8. Password protected == freeware... != open source.
  9. 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.
  10. In 2018, you can use the NI Package Manager to install NXG and a bunch of other stuff. All three versions of NXG are available from that tool.
  11. Maybe of interest to those who have used this tool with OpenOffice 4 and are getting trouble. Check out this alternative tool by Gribo. (I have not downloaded nor tested it, but this is worth looking into)
  12. New version is available. (LV2018 32-bit) http://www.ni.com/download/labview-development-system-2018/7406/en/
  13. Hi Ashwin, Try with "Sheet1" instead of "sheet1". Otherwise, I am getting corruptions as well... but they can be repaired. Check out my post from April 16th 2016 above. It might be the reason this does not work (newer version of OADL 1.3)
  14. I think it's been 7 years since my last LAVA BBQ. Excited that I'll join this year!
  15. Have you tried shifting your register address by 1? Depending on the library you use, it might not shift it automatically. Holding register addresses range from 40001-49999. (The library will prepend the 4xxxx to your register address)
  16. It seems the DLL folder is missing from the source code. **EDIT** I've updated the repo to include the files. **END** In the meantime, use VI Package Manager to install the VIP file which correctly includes the DLLs. You can extract the whole missing folder from there if you want to play with the source. https://lavag.org/applications/core/interface/file/attachment.php?id=11167
  17. Yeah, I guess I abused of my privileged position with access to JKI Package Network and uploaded it straight there. I now updated UI Tools page with version 1.4.1 to match.
  18. OK, I found the problem. The Two Button Dialog box does not initialize the excluded references before computing the text position. To correctly compute the position, one needs to exclude the text indicator so that the rest of the components are aligned properly. A quick fix while I rebuild and publish the package is to add the string reference with "Set Exclusions.vi" in the Init case of "Dialog_TwoButtons.lvclass:Dialog Box.vi". (Edit: Actually, the Set Exclusion node needs to be the first called... as opposed to the image below.)
  19. Thanks for the report. I'll give a try to the VI you provided on a few of my installs and let you know.
  20. Hi Bruce, I just saw your post. As cbl mentioned, the best place for support on SMOs is the issues section on GitHub. https://github.com/JKISoftware/JKI-State-Machine-Objects/issues Are you still having issues or you've solved it? It is most likely a re-entrancy settings issue, perhaps with the Splash screen template creator method. Try setting the reentrancy of the Creator method to Shared Reentrant. Francois
  21. Bonjour Antoine, I didn't resubmit on LVTN. The approval process was long last time. I'll release it on the JKI Package Network at the first convenience!
  22. NI has been stabilizing LabVIEW for many releases now, and has been mainly focused on performance and reliability. Speaking for myself, the absence of cool new language features or redefinition of the IDE and work flows are the main reasons I've been mostly inactive from LAVAG over the past few years. Once I've gone around the garden and experienced most of the things I am personally atuned to, I find it harder to keep an interest in the daily chatter that happens. I hope I'd get a renewed interest if I found a new topic that piqued my interest, but it might be wishful thinking. When on LAVAG, I kind of feel like I'm sitting in my favorite café: the discussions are background noise and I can't possibly follow them all, but they contribute to me feeling that I belong. It's comfortable. It's cozy. I like to sit next to familiar faces. If the ambiant noise is lower than before, it might simply be a realization that we've grown up as a community to the point where not everything needs to be said. Hey, LAVAG might be like an old couple that just takes comfort in the presence of the other, who knows.
×
×
  • Create New...

Important Information

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