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 ↓1,553
 screenshot
Version2024.12.31.83809
ReleasedDec 31, 2024
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_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

2024.12.31.83809 (Dec 31, 2024)

#Core
[fix] #323 fix grammar of unregister, to make it more friendly for new CSM user
[update] #297 Internal Status registration will be automatically removed after csm exits.

#API
[update] update ctrl palette for CSM
[fix] minor fix #347

#Template
[update] #349 make template looks simple. Thanks @drjdpowell

#Tool
[update] improve csm tools performance

#Documentation
[add] add a new example VI to compare the teamplates of JKISM and CSM
[fix] #348 fix unreadable description issue. Thanks @drjdpowell
[update] Update utility VI icons

#utility
[add] add Global Log History Cacher.vi and quick drop snippet of Global Log monitoring loop
[update] #344 show argument in filted periodic log in debug tools
[update] Add "Skip in Runtime(T)" option for CSM - Internal State Debug Log History.vi

yao was a contributor to this release


Recent Posts

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, 7 months, 2 weeks ago, 0 , 0
suggestion