Sign Up

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

LabVIEW Application Framework extended from JKI State Machine(JKISM)

D Discussion Watch * 9 ↓2,021
 screenshot
Version2025.2.28.95859
ReleasedFeb 28, 2025
Publisher NEVSTOP-LAB
License MIT
LabVIEW VersionLabVIEW>=17.0
Operating System Windows, Mac, and Linux
Dependencies jki_lib_state_machine  
Used By nevstop_lib_csm_tcp_router_example   nevstop_lib_csm_api_string_arguments_support   nevstop_lib_csm_massdata_parameter_support   nevstop_programming_palette   nevstop_lib_csm_mermaid_plugin   nevstop_lib_csm_continuous_meausrement_and_logging_example   nevstop_lib_csm_ini_static_variable_support  
Project links Homepage   Documentation   Repository   Discussion

Description

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.

Grammar:

// Local Message Example
DoSth: DoA >> Arguments
// Sync Call Example
API: xxxx >> Arguments -@ TargetModule
// Async Call Example
API: xxxx >> Arguments -> TargetModule
// Async Call without Reply Example
API: xxxx >> Arguments ->| TargetModule
// Broadcast normal status:
Status >> StatusArguments ->
// Broadcast Interrupt status:
Interrupt >> StatusArguments ->
// Register Source Module's status to Handler Module
Status@Source Module >> API@Handler Module ->
// Unregister Source Module's status
Status@Source Module >> API@Handler Module ->

Hightlights:

- Pure text process control makes documentation, scripting and testing easy.
- Easy to change program behavior even after application is built.
- Easy to build 1:1, 1:N and M:N communication.
- No need to directly invoke LabVIEW queues or user events.
- Parameters and data are passed through "encoding", "transmission" and "decoding" with arguments.
- User's code is highly concentrated; most visible code is user-generated.
- VIs serve as modules, and their Singleton/Cloneable behavior is defined by VI attributes.
- Detailed global log interface with multiple debugging tools built on it.
- Compatible with JKISM Editor.

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 NEVSTOP-LAB, visit: https://github.com/NEVSTOP-LAB

Release Notes

2025.2.28.95859 (Feb 28, 2025)

# Core
[add] #379 Modules starting with '.' are recognized as system-level and excluded from "CSM - List Module.vi".
[update] Removed inline option for "Parse State Queue++.vi" to reduce CSM module loading time.
[update] #288 CSM now stops the loop before processing "Macro: Exit".
[fix] #387 "CSM - Forward States to CSM.vi" now generates a notify user-event to break event structure waiting.

# Template
[add] #386 Added a new DQMH-Style Template, moving UI handler out of the CSM-message loop.

# Tool
[add] #322 Added "Make Bent Wire Straight.vi" to CSMHelper.
[add] #381 Added tool to fix JKISM State Editor RCM entry for CSM.
[add] Added tool to create CSM palette in functions root palette.
[add] #374 Added "Go to State" RCM for String Constant.
[update] Added Exit toolbar button to post "Macro: Exit" to the selected CSM module.
[update] #384 Adapted to changes in jkism 2024, fixing State Editor RCM issues.

# Example
[fix] Minor documentation fixes (#380, #383).

# Installer
[update] Brought installing window to topmost (NI Knowledge Base: https://knowledge.ni.com/KnowledgeArticleDetails?id=kA03q000000YOu6CAG&l=en-US)
[update] Improved installing window.
[update] #382 Updated copyright year.

# CSM Loop Support
[update] Changed all APIs to subroutines.
[obsolete] #288 CSMLS - Add Exit State(s) with Loop Check.vi is no longer needed. "Parse State Queue++.vi" handles this automatically.

# Testcase
[add] #373 Added testcase to check dependencies; fails if unexpected dependencies are included.
[add] Added testcase to check for VI path length.
[add] Added testcase to validate CSM RCM dependencies.

yao was a contributor to this release


Recent Posts

Best Effluent Treatment Plant Manufacturers in Delhi – High-Tech STP Systems
Netsol Water is one of the best Effluent Treatment Plant Manufacturers in Delhi, offering high-tech…

by Sewage Treatment Plants, 5 days, 21 hours ago, 0 , 0
suggestion
Enhancing Your Gaming Experience with Console Extenders
Console extenders are a game-changer for avid gamers looking to optimize their setups. These device…

by bakersopie2, 9 months, 3 weeks ago, 0 , 0
suggestion

Forum Posts

LOAN PraJeev App CUSTOMER CARE HELPLINE NUMBER (91)∆O❼❾⓿❹❾❻❹❺❻❷///7904964562@)\x{Call Now
LOAN PraJeev App CUSTOMER CARE HELPLINE NUMBER (91)∆O❼❾⓿❹❾❻❹❺❻❷///7904964562@)\x{Call NowLOAN Pra…

 
How to recover wrongly transferred money in PhonePe?
Phone Pe for a wrong transaction, you should immediately contact PhonePe's customer support: 0846…

 
How do I complain to Anjani Courier Service?
To get a refund from Anjani Courier, you can contact their customer support team by: Calling 0997…