Jump to content

JKI State Machine for LabVIEW 7


jplandry

Recommended Posts

Hello JKI Software,

 

I am a frequent lurker in NI, LAVA, and OpenG forums and greatly admire OpenG and Mr. Kring's work in general. I have used an early form of the OpenGOOP framework to build a data acquisition and analysis application suite (5000+ VI count) for a research optical biosensor (my PhD dissertation project). For an application of this size, it is no surprise that I learned and applied the state machine paradigm many times over. I found a flavor that suited my needs and style best (queued state machine, with states in enums), but there were still many flaws in my code organization schemes. I've been too busy adding needed features to sit down and figure out how to resolve those stylistic problems. That is, until I saw the screen shots of the JKI state machine! I picked up two key features that would greatly clean up my own state machines:

 

(1) Create named local variables by circulating a cluster in a shift register. In particular, the trick of using named constants in an initialization state was new to me.

 

(2) The flexibility of string-based states.

 

Although string-based states are prone to typing-errors, I think the fact that you don't need to maintain a state enum type-def compensates. In short, the JKI State Machine looks great, but I'm writing this post because I can't use it! Right now, I'm locked-in to LabVIEW 7 Express. I know many slick features, such as the drag and drop code generation, are inherently LabVIEW 8.2 features, but I suspect that the "core" of the state machine (the state parser, the state builder, the state adder) could be saved in an earlier version. Is this possible and is this something JKI Software would be willing to do for those of us locked-in to pre-LV8 versions? If it's not, then I will probably put together my own imitation of your state machine. In either case, thanks for sharing your hard earned design so openly!

 

Cheers,

jplandry

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

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