Sign Up

Communicable State Machine(CSM) by NEVSTOP - Toolkit for LabVIEW Download

LabVIEW Application Framework extended from JKI State Machine(JKISM)

D Discussion Watch * 4 ↓140
ReleasedNov 29, 2023
Publisher NEVSTOP
License Not Specified
LabVIEW VersionLabVIEW>=14.0
Operating System Windows, Mac, and Linux
Project links Homepage   Documentation   Repository   Discussion


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:

- For instructions on JKI State Machine(JKISM), visit:
- For information on Communicable State Machine(CSM), visit:


1. Template of CSM Module
- With Event Structure Template
- No-Event Strcture Template
- With Event Structure Template(Tiny)

2. Advance API for Module Managment
- List Modules
- Check if Module Exists
- Start Async/Sync Call

3. Examples
- Base Concepts
- Create a reuse Module
- Caller is CSM Scenario
- Caller is Other Framework Scenario
- Advance Examples
- CSM with Side Loop as a Module
- Action Workers Example
- Build-in Error Handler framework example

4. Tools
- Localization API/Template Tool
- Debug Tool for monitoring system change
- Debug Tool for state dashboard
- Debug Tool for state table

Release Notes

2023.11.29.94143 (Nov 29, 2023)

# Core
[add] #144 add build-in chain of responsibility mode "$" as key words in module name.
[add] add CSM - Break Down Multiple States
[add] #184 add CSM - for exposing keywords of CSM
[add] #161 Response/Async Response carry the Error information from target CSM module
[add] Allowed Messages(Empty for all) terminal for Parse State
[improve] make Parse State block diagram clear
[imporve] #140 Improve CSM - Send Message and Wait for and CSM - Post
[fix] #173 fix bug that sync message(-@) is blocking by mass of async message(->).
[fix] fix No source module name for "Macro: Exit"
[fix] show pre-state argument for Response(sync-call)
[fix] show pre-state/pre-argument for "Target Error","Target Timeout Error" or "Traget Busy Error"

# Arguments
[add] Convert Error with Argument API and example

# Template
[critical] Change Error Status Arguments to SafeString as Default in template
[add] add a stub string constant which is for exiting sub-modules
[update] #186 show "Init State("Macro: Initialize")" control for templates
[update] init error shift resgister in front of loop
[fix] #179 Show documentation case by default

# documentation
[fix] #180 Update description of quick-drop VIs in documentation palette

yao was a contributor to this release

Download Package

All Contributors
Featured in

  Post an Idea   Post a Resource

Recent Posts