Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .github/workflows/Check_Broken_VIs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,4 +52,3 @@ jobs:
Parameter2: NOPASSWORD
Parameter3: YES
Parameter4: -placeContent
timeout-minutes: 5
5 changes: 5 additions & 0 deletions Communicable State Machine(CSM).lvproj
Original file line number Diff line number Diff line change
Expand Up @@ -589,6 +589,11 @@
<Item Name="Global_Interface.ctl" Type="VI" URL="/&lt;resource&gt;/Framework/Providers/API/Global_Interface.ctl"/>
<Item Name="Item_Interface.ctl" Type="VI" URL="/&lt;resource&gt;/Framework/Providers/API/Item_Interface.ctl"/>
<Item Name="provcom_StringGlobals.vi" Type="VI" URL="/&lt;resource&gt;/Framework/Providers/Common/provcom_StringGlobals.vi"/>
<Item Name="InitCSMs.vi" Type="VI" URL="../testcases/CSM/InitCSMs.vi"/>
<Item Name="StartCSMs.vi" Type="VI" URL="../testcases/CSM/StartCSMs.vi"/>
<Item Name="GetPathByPrototypeName.vi" Type="VI" URL="../testcases/CSM/GetPathByPrototypeName.vi"/>
<Item Name="Prototypes.vi" Type="VI" URL="../testcases/CSM/Prototypes.vi"/>
<Item Name="Build CSM to PPL.vi" Type="VI" URL="../testcases/CSM/Build CSM to PPL.vi"/>
</Item>
<Item Name="Build Specifications" Type="Build">
<Item Name="Communicable State Machine.lvlibp" Type="Packed Library">
Expand Down
479 changes: 232 additions & 247 deletions Communicable State Machine(CSM).vipb

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -140,12 +140,13 @@ API: Do Something Else -@ csm
-- <b>Controls</b> --
- <b>Current Module ("" to Generate an ID)</b>: Name of the current module. If empty, a temporary ID is generated for debugging purposes to identify the location.
- <b>CSM Scripts</b>: CSM commands to execute.
- <b>Sync Response Only (F)</b>: Whether <b>Response</b> should include only responses from synchronous messages. Disabled by default.
- <b>Continue If Error? (F)</b>: Whether to continue execution if an error occurs. The default is FALSE, which specifies to not continue.
- <b>Wait (5000 ms)</b>: Timeout duration for waiting module to be alive. The default is 5000 ms.
- <b>Response Timeout (-2 Using Global Settings)</b>: Timeout for synchronous calls. The default is -2, which uses the global setting. You can set the global timeout using the CSM - Set TMO of Sync-Reply VI.

-- <b>Indicators</b> --
- <b>Response</b>: Returned results from executing the script. Only synchronous messages carry returns. The corresponding column for other commands will be an empty string.
- <b>Response</b>: Results returned by the script. When <b>Sync Response Only (F)</b> is enabled, this output includes only responses from synchronous messages. Otherwise, each script line, including blank lines and comments, produces one result in order. Non-synchronous commands return an empty string.
- <b>Scripts Left</b>: Remaining unexecuted scripts.

## CSM - Broadcast Event.vi
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,17 @@ Starts the CSM Watchdog thread to monitor whether the main program has exited. I

> - Ref: CSM WatchDog Implementation Principle

-- <b>Controls</b> --
- <b>Wait(5000ms)</b>: The time the Watchdog thread waits for modules to process `Macro: Exit` and exit, in milliseconds (ms). The default value is 5000 ms.

### CSM Watchdog Thread.vi
The CSM Watchdog thread is used to ensure that all asynchronously started CSM modules can exit normally after the main program exits.

> - Ref: CSM WatchDog Implementation Principle

-- <b>Controls</b> --
- <b>Watchdog Queue</b>: Watchdog queue resource.
- <b>Wait(5000ms)</b>: The time the Watchdog thread waits for modules to process `Macro: Exit` and exit, in milliseconds (ms). The default value is 5000 ms.

## CSM File Logger Addon

Expand Down Expand Up @@ -111,6 +115,9 @@ The loop can be ended by removing `-><loop>`. You can use the following VIs to r
> [!WARNING]
> <b>Add to Front? (F)</b> is usually FALSE because once a loop state starts, it does not end immediately. Before insertion into the state queue, it is considered a sub-state of the current state. If the current state was called via a synchronous message, it would not return immediately. For example, if a set of continuous acquisition states is defined in `API: Start DAQ` and this message is sent synchronously from outside, the logic should be to start the loop and then return immediately. Only set <b>Add to Front? (F)</b> to TRUE if the logic is to wait for the loop to end before returning.

> [!WARNING]
> Be careful not to connect <b>State Queue</b> and <b>Loop States</b> in reverse. If reversed, it may cause synchronous messages sent externally to fail to return, and external messages can no longer be processed.

-- <b>Controls</b> --
- <b>States Queue</b>: Connect the entire state queue to this input.
- <b>Loop States</b>: Loop states.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -141,12 +141,13 @@ API: Do Something Else -@ csm
-- <b>输入控件(Controls)</b> --
- <b>Current Module ("" to Generate an ID)</b>: 当前模块名称,当没有输入时,生成一个临时ID,便于调试判断位置。
- <b>CSM Scripts</b>: 待运行的CSM指令。
- <b>Sync Response Only (F)</b>: <b>Response</b>中是否仅包含同步消息的响应,默认不启用。
- <b>Continue If Error? (F)</b>: 发生错误时是否继续执行, 默认不继续执行。
- <b>Wait (5000 ms)</b>: 等待超时时间,默认为5000 ms。
- <b>Response Timeout (-2 Using Global Settings)</b>: 同步调用的超时时间,默认为-2,使用全局设置。你可以通过CSM - Set TMO of Sync-Reply VI设置全局超时时间。

-- <b>输出控件(Indicators)</b> --
- <b>Response</b>: 执行脚本的返回结果。只有同步消息才会携带返回,其他的指令对应列为空字符串
- <b>Response</b>: 执行脚本的返回结果。<b>Sync Response Only (F)</b>启用时仅包含同步消息的响应,否则每一行指令,包括空行和注释,都对应了一个返回结果,按照顺序排列,非同步消息的响应为空字符串
- <b>Scripts Left</b>: 剩余未执行的脚本。

## CSM - Broadcast Event.vi
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,17 @@

> - Ref: CSM WatchDog实现的原理

-- <b>输入控件(Controls)</b> --
- <b>Wait(5000ms)</b>: Watchdog线程等待模块处理"Macro: Exit"退出的时间,单位为毫秒(ms),默认值为5000ms。

### CSM Watchdog Thread.vi
CSM Watchdog线程,用于保证在主程序退出后,所有的异步启动的CSM模块都能正常退出。

> - Ref: CSM WatchDog实现的原理

-- <b>输入控件(Controls)</b> --
- <b>Watchdog Queue</b>: Watchdog队列资源。
- <b>Wait(5000ms)</b>: Watchdog线程等待模块处理"Macro: Exit"退出的时间,单位为毫秒(ms),默认值为5000ms。

## CSM File Logger Addon

Expand Down Expand Up @@ -114,6 +118,9 @@ CSM - Start File Logger VI中原本使用的线程VI。已废弃,目前使用C
>
> <b>Add to Front? (F)</b> 通常为FALSE,因为循环状态一旦开始,就不会立即结束,插入状态队列前,会被认为是当前状态的子状态,此时如果当前状态如果是以同步消息调用,就不会立即返回。例如: 假如`API: Start DAQ`中,定义了一组连续采集的状态,此时外部同步发送该消息,逻辑应为启动循环,然后立即返回。只有逻辑为等待循环结束后返回,才设置<b>Add to Front? (F)</b>为TRUE。

> [!WARNING]
> 注意<b>State Queue</b> 和 <b>Loop States</b> 的连线不要连反了,如果连反了,可能会造成外部发送的同步消息无法返回,并无法再处理外部消息的情况。

-- <b>输入控件(Controls)</b> --
- <b>States Queue</b>: 整个状态队列被连接到此输入。
- <b>Loop States</b>: 循环状态。
Expand Down
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

Large diffs are not rendered by default.

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
34 changes: 24 additions & 10 deletions testcases/CSM-New-Testcases.lvproj
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,15 @@
<Property Name="server.vi.callsEnabled" Type="Bool">true</Property>
<Property Name="server.vi.propertiesEnabled" Type="Bool">true</Property>
<Property Name="specify.custom.address" Type="Bool">false</Property>
<Item Name="CSM-Testcase.lvlib" Type="Library" URL="../CSM/CSM-Testcase.lvlib"/>
<Item Name="CSM" Type="Folder">
<Item Name="CSM-Testcase.lvlib" Type="Library" URL="../CSM/CSM-Testcase.lvlib"/>
<Item Name="Build CSM to PPL.vi" Type="VI" URL="../CSM/Build CSM to PPL.vi"/>
<Item Name="InitCSMs.vi" Type="VI" URL="../CSM/InitCSMs.vi"/>
<Item Name="Prototypes.vi" Type="VI" URL="../CSM/Prototypes.vi"/>
<Item Name="StartCSMs.vi" Type="VI" URL="../CSM/StartCSMs.vi"/>
<Item Name="GetPathByPrototypeName.vi" Type="VI" URL="../CSM/GetPathByPrototypeName.vi"/>
<Item Name="InitCSMs(backup).vi" Type="VI" URL="../CSM/InitCSMs(backup).vi"/>
</Item>
<Item Name="testcase-CSMSystemLevelModule.lvclass" Type="LVClass" URL="../testcase-CSMSystemLevelModule/testcase-CSMSystemLevelModule.lvclass"/>
<Item Name="testcase-CSMNonCSMCallerSupportAPI.lvclass" Type="LVClass" URL="../testcase-CSMNonCSMCallerSupportAPI/testcase-CSMNonCSMCallerSupportAPI.lvclass"/>
<Item Name="testcase-CSMManagementAPI.lvclass" Type="LVClass" URL="../testcase-CSMManagementAPI/testcase-CSMManagementAPI.lvclass"/>
Expand Down Expand Up @@ -361,19 +369,23 @@
<Item Name="NI_FileType.lvlib" Type="Library" URL="/&lt;vilib&gt;/Utility/lvfile.llb/NI_FileType.lvlib"/>
<Item Name="Check if File or Folder Exists.vi" Type="VI" URL="/&lt;vilib&gt;/Utility/libraryn.llb/Check if File or Folder Exists.vi"/>
<Item Name="NI_PackedLibraryUtility.lvlib" Type="Library" URL="/&lt;vilib&gt;/Utility/LVLibp/NI_PackedLibraryUtility.lvlib"/>
<Item Name="imagedata.ctl" Type="VI" URL="/&lt;vilib&gt;/picture/picture.llb/imagedata.ctl"/>
<Item Name="8.6CompatibleGlobalVar.vi" Type="VI" URL="/&lt;vilib&gt;/Utility/config.llb/8.6CompatibleGlobalVar.vi"/>
<Item Name="NI_LVConfig.lvlib" Type="Library" URL="/&lt;vilib&gt;/Utility/config.llb/NI_LVConfig.lvlib"/>
<Item Name="Space Constant.vi" Type="VI" URL="/&lt;vilib&gt;/dlg_ctls.llb/Space Constant.vi"/>
<Item Name="Parse State Queue__JKI_lib_State_Machine.vi" Type="VI" URL="/&lt;vilib&gt;/addons/_JKI Toolkits/State Machine/_JKI_lib_State_Machine.llb/Parse State Queue__JKI_lib_State_Machine.vi"/>
<Item Name="TRef TravTarget.ctl" Type="VI" URL="/&lt;vilib&gt;/Utility/traverseref.llb/TRef TravTarget.ctl"/>
<Item Name="VI Scripting - Traverse.lvlib" Type="Library" URL="/&lt;vilib&gt;/Utility/traverseref.llb/VI Scripting - Traverse.lvlib"/>
<Item Name="LVPositionTypeDef.ctl" Type="VI" URL="/&lt;vilib&gt;/Utility/miscctls.llb/LVPositionTypeDef.ctl"/>
<Item Name="LVDeltaXY32Cluster.ctl" Type="VI" URL="/&lt;vilib&gt;/Utility/miscctls.llb/LVDeltaXY32Cluster.ctl"/>
<Item Name="LVPointTypeDef.ctl" Type="VI" URL="/&lt;vilib&gt;/Utility/miscctls.llb/LVPointTypeDef.ctl"/>
<Item Name="NI_LVConfig.lvlib" Type="Library" URL="/&lt;vilib&gt;/Utility/config.llb/NI_LVConfig.lvlib"/>
<Item Name="Space Constant.vi" Type="VI" URL="/&lt;vilib&gt;/dlg_ctls.llb/Space Constant.vi"/>
<Item Name="8.6CompatibleGlobalVar.vi" Type="VI" URL="/&lt;vilib&gt;/Utility/config.llb/8.6CompatibleGlobalVar.vi"/>
<Item Name="Draw Flattened Pixmap.vi" Type="VI" URL="/&lt;vilib&gt;/picture/picture.llb/Draw Flattened Pixmap.vi"/>
<Item Name="imagedata.ctl" Type="VI" URL="/&lt;vilib&gt;/picture/picture.llb/imagedata.ctl"/>
<Item Name="FixBadRect.vi" Type="VI" URL="/&lt;vilib&gt;/picture/pictutil.llb/FixBadRect.vi"/>
<Item Name="RectSize.vi" Type="VI" URL="/&lt;vilib&gt;/picture/PictureSupport.llb/RectSize.vi"/>
<Item Name="Point2Rect.vi" Type="VI" URL="/&lt;vilib&gt;/picture/PictureSupport.llb/Point2Rect.vi"/>
<Item Name="PointInRect.vi" Type="VI" URL="/&lt;vilib&gt;/picture/PictureSupport.llb/PointInRect.vi"/>
<Item Name="InsetRect.vi" Type="VI" URL="/&lt;vilib&gt;/picture/PictureSupport.llb/InsetRect.vi"/>
<Item Name="RectCentroid.vi" Type="VI" URL="/&lt;vilib&gt;/picture/PictureSupport.llb/RectCentroid.vi"/>
<Item Name="Compare Two Paths.vi" Type="VI" URL="/&lt;vilib&gt;/Utility/libraryn.llb/Compare Two Paths.vi"/>
<Item Name="Simple Error Handler.vi" Type="VI" URL="/&lt;vilib&gt;/Utility/error.llb/Simple Error Handler.vi"/>
<Item Name="TRef Traverse.vi" Type="VI" URL="/&lt;vilib&gt;/Utility/traverseref.llb/TRef Traverse.vi"/>
Expand All @@ -382,9 +394,11 @@
<Item Name="Communicable State Machine.lvlib" Type="Library" URL="../../src/user.lib/_NEVSTOP/Communicable State Machine(CSM)/Communicable State Machine.lvlib"/>
<Item Name="CSM Shared.lvlib" Type="Library" URL="../../src/user.lib/_NEVSTOP/Communicable State Machine(CSM)/_Shared/CSM Shared.lvlib"/>
<Item Name="CSM Loop Support.lvlib" Type="Library" URL="../../src/user.lib/_NEVSTOP/Communicable State Machine(CSM)/addons/Loop-Support/CSM Loop Support.lvlib"/>
<Item Name="Generate testcase Started User Log.vi" Type="VI" URL="../_previous/_support/Generate testcase Started User Log.vi"/>
<Item Name="CSM Attributes API(VIM).lvlib" Type="Library" URL="../../src/user.lib/_NEVSTOP/Communicable State Machine(CSM)/addons/AttributesVIM/CSM Attributes API(VIM).lvlib"/>
<Item Name="CSM File Logger.lvlib" Type="Library" URL="../../src/user.lib/_NEVSTOP/Communicable State Machine(CSM)/addons/Logger/CSM File Logger.lvlib"/>
<Item Name="Generate testcase Started User Log.vi" Type="VI" URL="../_support/Generate testcase Started User Log.vi"/>
<Item Name="Check CSM Modules Exist Or Not.vi" Type="VI" URL="../_support/Check CSM Modules Exist Or Not.vi"/>
<Item Name="Package Error Info.vi" Type="VI" URL="../_support/Package Error Info.vi"/>
<Item Name="DebugConsole.lvlib" Type="Library" URL="../../src/user.lib/_NEVSTOP/Communicable State Machine(CSM)/_tool/_debugConsole/DebugConsole.lvlib"/>
<Item Name="_csmlite.lvlib" Type="Library" URL="../../src/user.lib/_NEVSTOP/Communicable State Machine(CSM)/_tool/_csmlite/_csmlite.lvlib"/>
<Item Name="CSM-Helper API with lvcsm Support.lvlib" Type="Library" URL="../../src/user.lib/_NEVSTOP/Communicable State Machine(CSM)/_csmHelper/API with lvcsm Support/CSM-Helper API with lvcsm Support.lvlib"/>
Expand Down Expand Up @@ -413,7 +427,7 @@
<Property Name="Bld_localDestDirType" Type="Str">relativeToProject</Property>
<Property Name="Bld_modifyLibraryFile" Type="Bool">true</Property>
<Property Name="Bld_previewCacheID" Type="Str">{A89D9A51-BD9C-4565-8F45-AD1D68D344FD}</Property>
<Property Name="Bld_version.build" Type="Int">346</Property>
<Property Name="Bld_version.build" Type="Int">349</Property>
<Property Name="Bld_version.major" Type="Int">1</Property>
<Property Name="Destination[0].destName" Type="Str">CSM-Testcase.lvlibp</Property>
<Property Name="Destination[0].path" Type="Path">../CSM/CSM-Testcase.lvlibp</Property>
Expand All @@ -428,7 +442,7 @@
<Property Name="Source[0].itemID" Type="Str">{8ACD2EE0-7F2A-4DDF-9C13-67BB3F9ECC94}</Property>
<Property Name="Source[0].type" Type="Str">Container</Property>
<Property Name="Source[1].destinationIndex" Type="Int">0</Property>
<Property Name="Source[1].itemID" Type="Ref">/My Computer/CSM-Testcase.lvlib</Property>
<Property Name="Source[1].itemID" Type="Ref">/My Computer/CSM/CSM-Testcase.lvlib</Property>
<Property Name="Source[1].Library.allowMissingMembers" Type="Bool">true</Property>
<Property Name="Source[1].Library.atomicCopy" Type="Bool">true</Property>
<Property Name="Source[1].Library.LVLIBPtopLevel" Type="Bool">true</Property>
Expand All @@ -454,7 +468,7 @@
<Property Name="Bld_localDestDirType" Type="Str">relativeToProject</Property>
<Property Name="Bld_modifyLibraryFile" Type="Bool">true</Property>
<Property Name="Bld_previewCacheID" Type="Str">{DF3A8CD5-4937-4FE8-B30A-163F6FCA54B2}</Property>
<Property Name="Bld_version.build" Type="Int">311</Property>
<Property Name="Bld_version.build" Type="Int">313</Property>
<Property Name="Bld_version.major" Type="Int">1</Property>
<Property Name="Destination[0].destName" Type="Str">CSM-Testcase2.lvlibp</Property>
<Property Name="Destination[0].path" Type="Path">../CSM/CSM-Testcase2.lvlibp</Property>
Expand All @@ -469,7 +483,7 @@
<Property Name="Source[0].itemID" Type="Str">{91CC6082-CCFF-40D6-836F-F2075D5067B7}</Property>
<Property Name="Source[0].type" Type="Str">Container</Property>
<Property Name="Source[1].destinationIndex" Type="Int">0</Property>
<Property Name="Source[1].itemID" Type="Ref">/My Computer/CSM-Testcase.lvlib</Property>
<Property Name="Source[1].itemID" Type="Ref">/My Computer/CSM/CSM-Testcase.lvlib</Property>
<Property Name="Source[1].Library.allowMissingMembers" Type="Bool">true</Property>
<Property Name="Source[1].Library.atomicCopy" Type="Bool">true</Property>
<Property Name="Source[1].Library.LVLIBPtopLevel" Type="Bool">true</Property>
Expand Down
Binary file added testcases/CSM/Build CSM to PPL.vi
Binary file not shown.
1 change: 0 additions & 1 deletion testcases/CSM/CSM-Testcase.lvlib
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,4 @@
<Item Name="Chain5.vi" Type="VI" URL="../Chain5.vi"/>
<Item Name="Chain6.vi" Type="VI" URL="../Chain6.vi"/>
<Item Name="Normal-CSM.vi" Type="VI" URL="../Normal-CSM.vi"/>
<Item Name="InitCSMs.vi" Type="VI" URL="../InitCSMs.vi"/>
</Library>
Binary file modified testcases/CSM/Chain4.vi
Binary file not shown.
Binary file modified testcases/CSM/Chain6.vi
Binary file not shown.
Binary file added testcases/CSM/GetPathByPrototypeName.vi
Binary file not shown.
Binary file added testcases/CSM/InitCSMs(backup).vi
Binary file not shown.
Binary file modified testcases/CSM/InitCSMs.vi
Binary file not shown.
Binary file modified testcases/CSM/Normal-CSM.vi
Binary file not shown.
Binary file added testcases/CSM/Prototypes.vi
Binary file not shown.
Binary file added testcases/CSM/StartCSMs.vi
Binary file not shown.
Binary file modified testcases/CSMTestSuite/New.vi
Binary file not shown.
Binary file modified testcases/CSMTestSuite/setUp.vi
Binary file not shown.
Binary file removed testcases/testcase-CSMBroadcast/InitCSMs.vi
Binary file not shown.
Binary file modified testcases/testcase-CSMBroadcast/globalSetUp.vi
Binary file not shown.
Binary file not shown.
Binary file modified testcases/testcase-CSMBroadcast/test19-1ToNInterruptStatus.vi
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading