Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation since 12/17/2017 in all areas

  1. 2 points
    Get the JKI State Machine Editor (just check VIPM for package updates) Version 2013.4.0.186 This new release adds a right-click option called "Find Data Accessors" to Bundle by Name and Unbundle by Name nodes in a JKI State Machine. Using this feature will open a dialog showing all the frames of the JKI State Machine that access the data, as shown below:
  2. 2 points
    I found one problem that occurs to me. "Find Data Accessors" is available in any VI (not only JKI State Machine) for the Unbudle by Name function, but its call does not cause the appropriate list to be displayed in the dialog box, although the application is started and consumes processor resources. Calling it several times on a notebook with an i5-4210M processor results in 100% CPU load. I've attached a screenshot for the FMSM example from LabVIEW example projects. As you can see, also Add Dynamic Events and JKI State Machine Editor... are visible - only when pop-up on Bundle/Unbundle by Name.
  3. 1 point
    Tell me where to download the latest version state machine
  4. 1 point
    Update from JKI: This issue is planned to been fixed in VIPM 2018. So I can successfully build packages with VIMs in them. But I found that if I need to make a package, that depends on a package, which contains a VIM, the build will fail. First install the hooovahh_array_vims-1.0.0.6 package. Then try to build the File IO package, which at the moment only contains one VI. If it is like my setup the build will fail with this error. If I remove the VIM dependency by replacing it with the OpenG one the build is successful. Build Fail VIM Dependency.zip
  5. 1 point
    I really like this template. It works great, is easy to use, easy to debug, keeps things well organized, etc, etc, etc. The one issue that I have with it is how it processes events. I do not like the event structure being inside the idle case. This one particular app I wrote runs test sequences consisting of multiple states back to back (essentially a macro). If the user presses the ESC key, they can interrupt the test sequence and skip to the end. To implement this, I had to poll the IDLE case in every one of the states of the test sequence to see if this event had happened. I didn't like doing that so I removed it and I thought I would share how I did it. I like this method much better because it will process the events as they happen but can also, in a way, prioritize the events. So obviously, I had to pull out the event structure and place it in its own process loop. You'll notice the UI Event queue for passing states to the state machine. Next, I create a VI that reads from the queue, with a very small timeout, and adds the event state to the front of the JKI state queue. This VI goes in front of the Parse State Queue VI so that the event is added to the font of the state queue. And within the state machine, I added a UI: Process Event state that accepts two arguments: first is the control and the second is the value associated with the control action. This works for my application but may need to be changed for other needs. Within the state, I can now determine whether to process the event immediately (as in the case of the ESC button scenario that I mentioned above) or I can choose to add another state to the end of the queue to be processed after the current queue is empty. I think this method keeps the UI responsive and doesn't require the additional requests to the IDLE states scattered throughout your program. I would definitely suggest enabling and disabling controls to only allow events to happen that make sense at that point in time. This would prevent a flood of events being added to the front of the queue if the user decides to go on a clicking spree.
  6. 1 point
    One of my colleagues almost fell down; he was so happy when I showed him this new feature. Excellent idea & implementation.
  7. 1 point
    I've been tasked with trying to build packages on MacOS, but so far I have not been able to successfully build anything. The builds complete without error, but when I try to open the packages I just built they do not contain any files. I'm running MacOS High Sierra which is not explicitly supported by any version of LabVIEW at the moment, but I'm using LabVIEW 2016. Has anyone successfully built packages on High Sierra?
  8. 1 point
    I've looked into the LabVIEW based API for VIPM, and was wondering if there is an equivalent for MacOS? In general, is there anyway to automate applying vipc files on MacOS? I'm looking to use VIPM as dependency management for a large application that supports windows and mac and I'd like to make applying a vipc part of the automated build process. I understand that the current VIPM API vi package is not compatible with MacOS. But on a low level it seems to just call an executable with key-value pairs as command line arguments, so I'm hopeful that VIPM on Mac is capable of similar functionality.
  9. 1 point
    Whoops, my bad. I don't really know VIPM very well. My co worker wrote: "I think you're looking at a re-packaged version of JKI VI Tester for MacOS that I made locally. VI Tester still shouldn't be available for mac through VIPM. "
  10. 1 point
    I installed VIPM (2014 because that's the latest build for Mac) on MacOS. It's showing plenty of packages such as ones from NI, MGI, etc... But oddly, no JKI packages. So I can't find VI tester in the list. Any idea what could be causing that?
  11. 1 point
    Thanks @Jim Kring for the quick response! Glad I wasn't crazy for thinking it could be done "in theory". My team is definitely in need of VIPM pro but in the near future we would need a way to automate applying vipc files during our build process. Using command line is actually great for our purposes.
  12. 1 point
    On my MacOS machine, VIPM can't find JKI VI Tester and all of the weblinks are vipm:// links and don't seem to work on MacOS. Is there a plan old download link for vi tester .vip file?
  13. 1 point
    I am using a class that I want to generate an xml to archive as final data. I can't just wire the class to the easy generate xml_jki Easy.vi. so I have to use a constant cluster and unbundle and rebundle. Is there an easier way to do this. Thanx Norm
  14. 1 point
    Yes I can see the JKI packages. I noticed there appears to now be a "MacOS JKI VI Tester" package
  15. 1 point
    It worked. Only issue is when opening the visual tester it looks for some stuff from registry.llb (or dll I can't remember) and I have to ignore it, but the tester ran fine after ignoring those files.
  16. 1 point
    I understand cleaning up references is generally a good thing, but is there a reason the JKI State Machine attempts to close the This VI reference of a VI that is in memory? This in my mind is basically a no-op and can be removed because the close can't remove the VI from memory since that is the VI that is running. Which brings me to question why we even get a copy of the This VI reference and put it in the shift register. If you have a property or invoke node set to the VI Server class "VI" then you can leave the reference unwired and it assumes "This VI", which is actually seen in the "Initialize Core Data" case. Is there a good reason to keep a copy of This VI in the cluster? And if so is there a good reason to have a Close Reference in cleanup?
  17. 1 point
    I have a colleague that is interested in learning LabVIEW and I want to get him started on the JKI SM (and SMOs) right out of the gate. Are there any ready-made presentations that demonstrate the common pitfalls facing a new developer, and how the JKI SM handles them? Thank you, Jim
  18. 1 point
    Perfect Jim, thanks. I'll try the workaround and keep an eye out for the fix. I'm not permitted to follow that link, is the workaround the same as Jens Gräwe suggests here?: https://support.jki.net/hc/en-us/community/posts/360000027103-Error-in-Deactivation-Infos-in-VIPM-Pro Cheers, Steen
  19. 1 point
    Confirmed this error on LabVIEW 2017 (no SP1 yet), and VIPM 2017.0.0f1. I'll try it on LabVIEW 2017 SP1 in a few days.
  20. 1 point
    Hello JKI, I wanted to follow up on this issue as it seems that Deactivation still does not work when Binding a license in VIPM Pro. When a product uses this feature in VIPM, and a customer tries to deactivate, they are given an error "Unknown Error". This error is not given if a developer uses the "add-on Licensing Tool" inside LabVIEW and doesn't bind a license during build time. Here is how to reproduce the problem: Install TPLAT from VIPM: vipm://ni_lib_tplat License an LVLIB using TPLAT Standard Mode (Tools > Add-on Licensing Tool) Delete the licensed source code, but keep the .lf file that was created Create a VIPM build spec with the unlicensed lvlib Enable "Bind License to Library at Build Time" in "Licensing and Activation tab. Enable deactivation and use the credentials as described in your help document (http://jkisoft.com/vipm/docs/2014/index.html?turl=licensingactivation.htm) Build package Install Package on test machine Create a test license in SOLO server for the product Activate the product in LabVIEW with test license Deactivate the product in LabVIEW and receive an "UNKNOWN ERROR!" Has there been any investigation into this issue and is there any timeline for resolving it? Please let me know if you need any information from our side. Thanks for your help, David
  21. 1 point
    There are a number of items that are not adequately covered in the documentation OR (in the case of the video) actually show you the wrong way to do things. This is not intentional on JKI's part but rather the result of improvements to the VI Tester which didn't get added to the pinned getting started stuff. Important things to be aware of (tested with LabVIEW 2014 32 bit): *) Don't copy the testExample.vit as per the video as you won't be able to see your tests EVER! The .vit is a template file and the VI Tester ignores all templates. You need to right click on the testExample.vit and select "New from template" and save your VI starting with the word test and ending with .vi (not.vit) eg. test-anything.vi Rob Calhoun also makes the following important points in this post Test Cases that do not have any test methods do not appear in VI Tester hierarchy. (Maybe this is a feature, but it's not what I would expect.) After creating and saving a new test method the Test Case still does not appear in the VI Tester hierarchy. This is because the Test Case (class) has not been saved, so it still has no test methods from the point of the VI Tester Only test methods that start with the word "test" (at least this appears to be case-insensitive) are considered test methods.
  22. 1 point
    Note that if you do this you are committed to making sure that any sequence of “states” you call must be able to handle any possible external interruption at any point. In other words, you must be super vigilant against race conditions. With the “idle” method, one can choose where in a sequence of steps one will accept outside input. For example, if you had the macro: Take Data Analysis Data Save Analysis and also a “Set Parameter” event that changes a parameter used in Analysis and Save, then you have a race condition where the analysis may be saved with a different parameter value, if the “Set Parameter” happens between Analysis and Save.
  23. 1 point
    Hello, I've been trying to implement an application using the state machine template. Using Javier Ruiz's excellent webinar as a guide, I configured the template using a 9022 RT with a 9116 chassis. The FPGA code runs well but I get this message when executing the RT: Error 53 occurred at Property Node (arg 1) in RT Main.vi Possible reason(s): LabVIEW: Manager call not supported. I am using LV 2014sp1. I've tried this using the 9024 RT and a sbRIO9641 - both issue the same error. Any ideas as to my (obvious) incompetence? Thanks!
  24. 1 point
    Hello Javier, Ah yes, that solved my problem. You are a giant among LabVIEW developers! Thank you so much. Regards, Kurt
  25. 1 point
    In this example, we show how you can refactor existing code. We have taken the 3 button dialog that ships with the base version of LabVIEW and upgraded it to use the JKI State Machine template. We have not added or changed any functionality. Also, we have not changed the way the functionality is implemented. Here is a screenshot showing how the VI looked before the refactoring: Here is a screenshot showing how the VI looked after applying the JKI State Machine template: We've attached the the refactored VI that has been written in LabVIEW 8.2. Remember that you need to have the JKI State Machine package installed in your version of LabVIEW. Click here for information on how to install the JKI State Machine. Three_Button_Dialog_CORE___JKI.vi The original VI is located at: \Utility\error.llb\Three Button Dialog CORE.vi Click here to watch a video that describes some of the design thought process used in the re-factoring: Video: Refactoring the LabVIEW three button dialog
×

Important Information

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