I’m very happy to announce that JKI has released the JKI State Machine™ to the public as a free download. This is the very same template that is used by the JKI team, nearly every day, in our products and various projects.

This tool is the direct result of putting some of the best LabVIEW minds together for several years, tasked with the challenge of creating a LabVIEW architectural design pattern that would allow easy coding, readability, and maintenance. As you might imagine the JKI team has created something truly special that we hope will have a significant impact on LabVIEW users everywhere.
This has been in the works for quite some time and we’re excited that the time has finally come to share this tool with you, now.
Please take this challenge:
- Download and install the JKI State Machine.
- Watch this great video tutorial.
- Take a look at how we refactored the 3-button dialog (VI that ships with LabVIEW) using the JKI State Machine.
- Tell us what you think.
I’ve added a new video here, which goes through some of the design thought process of the 3 button dialog re-factoring.
Great tool, Michael. Thanks for sharing. I’m thinking on using it to refactor one of my small projects. I did have a question, though. Is there a benefit to passing arguments as strings (via the >>) instead of using variant data? With variants you can pass booleans, strings, clusters, references,etc. -Thanks
Hi John: What we’ve found is that using string arguments is great for simple stuff. However, when you start needing to pass lots of argument data, you’re better off calling a subVI. Now, you’re probably wondering how calling a subVI is going to execute a frame of your state machine — we do that by generating user events inside the subVI that the state machine’s event structure is registered for. Bottom like, use strings for simple stuff like “UI: Set Front Panel State >> Open” and don’t overuse string arguments. If you’re finding yourself needing to pass complex arguments, use subVIs. Note: we’ll be talking about how to add User Events to the JKI State Machine, soon.
Thanks Jim for your explanation. I’m looking forward to your next tutorial on using subVIs for User Events.
Would be nice to see it. If only I could actually download it using VIPM 1.1.1 community edition and LV 8.5.1.
Hi John: Sorry about any confusion — it’s probably our fault, since VIPM 1.1 doesn’t tell you the problem when you try to download the package. The JKI State Machine requires VIPM 2.0.2 or later (see requirements). Can you upgrade to this latest version?
Yep
installed 2.0.2 and same thing.
All other packages show up just fine and dialog says
no new packages available. I’ll await your email thx.
Hi Jim,
I’ve just started working on JKI State machine, and i must tell you that it has saved me alot of time, particularly writing small applications.
and, i really liked the “OK” button in the State Machine template. When the cursor goes over it, the border changes to Orange. Otherwise it remains green.
and i found that there is no event processing going to make that button look so.
Could you please tell me how did you create that button ?
Thanks,
Ritesh
Hi JIm,
Dont Bother. I got it. Its in the System Control Pallete.
Ritesh
Ritesh: Yes, that’s right. The JKI State Machine uses a System Button.