Communicable State Machine(CSM) Framework
Brief of Communicable State Machine(CSM)
Communicable State Machine(CSM) is a LabVIEW application framework that builds upon JKI State Machine(JKISM). It follows the pattern of JKISM and extends the keywords to describe message communication between modules, including concepts such as Sync-Message, Async-Message, Subscription/Unsubscription of status - essential elements for creating reusable code modules. For more information, please visit the CSM wiki: https://nevstop-lab.github.io/CSM-Wiki/
- For instructions on JKI State Machine(JKISM), visit: http://jki.net/state-machine/
- For information on Communicable State Machine(CSM), visit: https://github.com/NEVSTOP-LAB
📓 For more details, read the technical details section of the wiki.
Features at a glance
- Completely inherits the characteristics of JKISM, including extensibility, string-formatted messages, and state machines mechanism
- Decouples modules through message communication, supporting both synchronous and asynchronous messages as well as state subscription/unsubscription
- Both synchronous and asynchronous messages support responses and handle errors that occur during execution
- CSM Modules actually are VIs, which can be called as sub-VIs
- CSM Modules can be used not only within the CSM framework but also in non-CSM frameworks
- Use plug-ins to enhance parameter passing capabilities beyond just carrying string data, which is a limitation of JKISM
- Built-in Error Handling mechanism
- Built-in worker mode for concurrency task implementation
- Built-in responsibility of chain mode support
- Debugging tools
📓 Note: There are numerous CSM debugging tools currently in development, so please stay tuned.
Download
CSM is released as a VIPM Library, which you can download in the following ways:
- 🥇 Recommended: Search for CSM through the VIPM and install
-
Download the package(.vip file) of CSM and click install
- Download the latest release of CSM from https://www.vipm.io/ and click install:
https://www.vipm.io/package/nevstop_lib_communicable_state_machine/ - Download the latest release of CSM from GitHub and click install:
https://github.com/NEVSTOP-LAB/Communicable-State-Machine/releases
- Download the latest release of CSM from https://www.vipm.io/ and click install:
📓 For more information, please refer to the page download.
License
This work is open sourced under the Apache License, Version 2.0. You can find the details of the Apache 2.0 open source agreement in the LICENSE.
The following open source projects or services are used in this wiki website:
- visual-studio-code as an editor
- copilot as a hinting tool and to supplement some content
- markdownlint for syntax checking of markdown files
- GitHub Pages as a service for publishing pages
- Jekyll as a static website generator
- sighingnow/jekyll-gitbook as a theme
- untra/polyglot, a Jekyll plugin for multilingual support
- gildesmarais/jekyll-loading-lazy, a Jekyll plugin for lazy load support