The JKI State Machine makes its public debut

Posted on Monday 13 October 2008

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:

  1. Download and install the JKI State Machine.
  2. Watch this great video tutorial.
  3. Take a look at how we refactored the 3-button dialog (VI that ships with LabVIEW) using the JKI State Machine.
  4. Tell us what you think.

10 Comments for 'The JKI State Machine makes its public debut'

    October 14, 2008 | 6:08 pm

    I’ve added a new video here, which goes through some of the design thought process of the 3 button dialog re-factoring.

    October 21, 2008 | 6:57 am

    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

    October 21, 2008 | 3:45 pm

    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.

    October 22, 2008 | 5:05 am

    Thanks Jim for your explanation. I’m looking forward to your next tutorial on using subVIs for User Events.

    John Rouse
    October 24, 2008 | 9:10 am

    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.

    October 24, 2008 | 9:15 am

    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?

    John Rouse
    October 24, 2008 | 9:33 am


    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.

    February 12, 2009 | 1:23 am

    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 ?


    February 12, 2009 | 5:06 am

    Hi JIm,
    Dont Bother. I got it. Its in the System Control Pallete.


    February 12, 2009 | 7:04 am

    Ritesh: Yes, that’s right. The JKI State Machine uses a System Button.

Leave a comment



Information for comment users
Line and paragraph breaks are implemented automatically. Your e-mail address is never displayed. Please consider what you're posting.

Use the buttons below to customise your comment.

RSS feed for comments on this post |


Bad Behavior has blocked 775 access attempts in the last 7 days.