From 7e844872c6816ba31d828022b15cddb40db1ee65 Mon Sep 17 00:00:00 2001 From: "anthropic-code-agent[bot]" <242468646+Claude@users.noreply.github.com> Date: Mon, 23 Mar 2026 14:47:43 +0000 Subject: [PATCH 1/2] Add CSM-FileSync.md module description file Co-authored-by: nevstop <8196752+nevstop@users.noreply.github.com> Agent-Logs-Url: https://github.com/NEVSTOP-LAB/CSM-ModSets-FileSync/sessions/08cf01f8-9c46-4224-8abf-2ef92242bed4 --- CSM-FileSync.md | 193 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 193 insertions(+) create mode 100644 CSM-FileSync.md diff --git a/CSM-FileSync.md b/CSM-FileSync.md new file mode 100644 index 0000000..7347307 --- /dev/null +++ b/CSM-FileSync.md @@ -0,0 +1,193 @@ +# `CSM-FileSync` — CSM 模块接口文档 + +--- + +## 功能简述 + +`CSM-FileSync` 是一个基于 Communicable-State-Machine(CSM) 的文件同步模块,用于将本地的数据文件备份到网络服务器中。 + +本模块支持 `文件拷贝(针对NAS)` 和 `FTP协议`,其他协议可以通过继承 Protocol.lvclass 实现拓展。支持本地冗余备份、监控文件夹目录结构保存到服务器、支持续传(程序再次启动后会继续未完成任务)。 + +--- + +## 模块信息 + +| 属性 | 值 | +| --- | --- | +| LabVIEW 版本 | ≥ 2020 | +| 支持的操作系统 | Windows / Linux | +| 支持 RT | ✅ 支持 | +| 支持 64-bit | ✅ 支持 | + +--- + +## 依赖项 + +| 依赖 | 类型 | +| --- | --- | +| [Communicable-State-Machine](https://github.com/NEVSTOP-LAB/Communicable-State-Machine) | 必须 | +| NEVTOP-Programming-Palette | 必须 | +| MGI | 必须 | + +--- + +## API 接口(消息接口) + +### FileSync 模块 + +FileSync 是文件同步的后台引擎模块。它持续监控本地数据文件夹,将新产生的文件按原始目录结构上传到远程服务器(支持 FTP 或文件拷贝/NAS 协议)。未完成的任务会被持久化,程序重启后自动续传。 + +#### `API: Start` + +启动文件同步服务,开始监控源文件夹并上传文件到服务器。 + +- **参数**:N/A +- **响应**:N/A + +#### `API: Stop` + +停止文件同步服务。 + +- **参数**:N/A +- **响应**:N/A + +### FileSyncWindow 模块 + +FileSyncWindow 是 FileSync 的可选 UI 模块,用于展示文件同步的实时状态。 + +#### `API: Link to Sync Engine` + +将 FileSyncWindow 链接到指定的 FileSync 引擎,建立状态订阅关系。 + +- **参数**:用户自定义 — `String`:FileSync 模块名称 +- **响应**:N/A + +#### `API: Update List` + +更新界面中的待上传文件列表显示。 + +- **参数**:用户自定义 — `String`:待上传文件列表 +- **响应**:N/A + +#### `API: Update Connected Status` + +更新界面中的服务器连接状态显示。 + +- **参数**:用户自定义 — `String`:状态描述字符串 +- **响应**:N/A + +#### `API: Update Statusbar` + +更新界面底部状态栏信息。 + +- **参数**:用户自定义 — `String`:状态栏文本 +- **响应**:N/A + +### 参数类型说明 + +| 类型 | 说明 | 链接 | +| --- | --- | --- | +| 用户自定义 | 由模块自行解析的字符串,无需额外插件 | — | + +--- + +## 状态广播接口 + +以下是本模块**发出**的消息,用于通知订阅者内部状态变化。 + +### `Status Change` + +**广播类型**:`Status` + +同步引擎连接状态发生变化时广播。 + +- **参数**:用户自定义 — `String`:状态描述字符串 + +### `Uploading List Change` + +**广播类型**:`Status` + +待上传文件队列发生变化时广播。 + +- **参数**:用户自定义 — `String`:待上传文件列表 + +--- + +## 配置说明 + +### External API VI 配置 + +可以通过 `CSM-FileSync.lvlib` 中的 External API VI 进行配置: + +| External API VI | 说明 | +| --- | --- | +| `Config FTPSync.vi` | 配置 FTP 协议同步参数(服务器地址、账号、端口、源路径、目标路径等) | +| `Config LocalSync.vi` | 配置本地文件拷贝/NAS 协议同步参数(源路径、目标路径等) | + +--- + +## 调用限制与注意事项 + +- [ ] FileSync 可以在无 UI 的情况下独立运行 +- [ ] FileSyncWindow 是可选的 UI 展示模块,需要通过 `API: Link to Sync Engine` 与 FileSync 建立连接 +- [ ] 未完成的任务会被持久化,程序重启后自动续传 +- [ ] 支持通过继承 Protocol.lvclass 拓展其他协议(如 webDAV 等) + +--- + +## 使用示例 + +### FileSync 基本生命周期 + +```text +// 启动文件同步服务 +API: Start -> FileSync + +// ... 文件同步正在运行 ... + +// 停止文件同步服务 +API: Stop -> FileSync +``` + +### 配置 FTP 同步 + +使用 `Config FTPSync.vi` 配置 FTP 协议同步参数后启动服务: + +```text +API: Start -> FileSync +``` + +### 配置本地/NAS 同步 + +使用 `Config LocalSync.vi` 配置本地文件拷贝/NAS 协议同步参数后启动服务: + +```text +API: Start -> FileSync +``` + +### FileSyncWindow 与 FileSync 联动 + +```text +// 将 FileSyncWindow 链接到 FileSync 引擎 +API: Link to Sync Engine >> FileSync -> FileSyncWindow + +// FileSync 会自动广播状态到 FileSyncWindow +// FileSyncWindow 订阅 FileSync 的状态广播 +Status Change@FileSync >> API: Update Connected Status@FileSyncWindow -> +Uploading List Change@FileSync >> API: Update List@FileSyncWindow -> +``` + +--- + +## 备注 + +- FileSync 和 FileSyncWindow 是两个独立的 CSM 模块,采用松耦合设计 +- FileSync 是文件同步的后台引擎,可以在无 UI 的情况下独立运行 +- FileSyncWindow 是可选的 UI 展示模块,通过 CSM 的状态订阅机制与 FileSync 连接 +- 支持 FTP 协议和文件拷贝/NAS 协议,可通过继承 Protocol.lvclass 拓展其他协议 +- 监控文件夹目录结构会保存到服务器,支持续传功能 + +--- + +*完整 CSM 语法参考:* +*CSM Wiki:* From c4d8616049f618da7cfa3877945630e0b18d20af Mon Sep 17 00:00:00 2001 From: "anthropic-code-agent[bot]" <242468646+Claude@users.noreply.github.com> Date: Mon, 23 Mar 2026 15:22:44 +0000 Subject: [PATCH 2/2] Split module documentation into separate files per template guidelines Co-authored-by: nevstop <8196752+nevstop@users.noreply.github.com> Agent-Logs-Url: https://github.com/NEVSTOP-LAB/CSM-ModSets-FileSync/sessions/80db277e-9e7d-4a83-9bbc-3c0d60bb3d18 --- CSM-FileSync.md | 79 +++++++--------------- CSM-FileSyncWindow.md | 153 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 176 insertions(+), 56 deletions(-) create mode 100644 CSM-FileSyncWindow.md diff --git a/CSM-FileSync.md b/CSM-FileSync.md index 7347307..21ce818 100644 --- a/CSM-FileSync.md +++ b/CSM-FileSync.md @@ -4,9 +4,9 @@ ## 功能简述 -`CSM-FileSync` 是一个基于 Communicable-State-Machine(CSM) 的文件同步模块,用于将本地的数据文件备份到网络服务器中。 +`CSM-FileSync` 是一个 CSM 模块,用于将本地的数据文件备份到网络服务器中。 -本模块支持 `文件拷贝(针对NAS)` 和 `FTP协议`,其他协议可以通过继承 Protocol.lvclass 实现拓展。支持本地冗余备份、监控文件夹目录结构保存到服务器、支持续传(程序再次启动后会继续未完成任务)。 +本模块是文件同步的后台引擎,持续监控本地数据文件夹,将新产生的文件按原始目录结构上传到远程服务器。支持 `文件拷贝(针对NAS)` 和 `FTP协议`,其他协议可以通过继承 Protocol.lvclass 实现拓展。未完成的任务会被持久化,程序重启后自动续传。 --- @@ -18,6 +18,7 @@ | 支持的操作系统 | Windows / Linux | | 支持 RT | ✅ 支持 | | 支持 64-bit | ✅ 支持 | +| 所属模块组 | CSM-FileSync.lvlib | --- @@ -33,56 +34,22 @@ ## API 接口(消息接口) -### FileSync 模块 +以下是外部调用者可以发送给本模块的消息。 -FileSync 是文件同步的后台引擎模块。它持续监控本地数据文件夹,将新产生的文件按原始目录结构上传到远程服务器(支持 FTP 或文件拷贝/NAS 协议)。未完成的任务会被持久化,程序重启后自动续传。 - -#### `API: Start` +### `API: Start` 启动文件同步服务,开始监控源文件夹并上传文件到服务器。 - **参数**:N/A - **响应**:N/A -#### `API: Stop` +### `API: Stop` 停止文件同步服务。 - **参数**:N/A - **响应**:N/A -### FileSyncWindow 模块 - -FileSyncWindow 是 FileSync 的可选 UI 模块,用于展示文件同步的实时状态。 - -#### `API: Link to Sync Engine` - -将 FileSyncWindow 链接到指定的 FileSync 引擎,建立状态订阅关系。 - -- **参数**:用户自定义 — `String`:FileSync 模块名称 -- **响应**:N/A - -#### `API: Update List` - -更新界面中的待上传文件列表显示。 - -- **参数**:用户自定义 — `String`:待上传文件列表 -- **响应**:N/A - -#### `API: Update Connected Status` - -更新界面中的服务器连接状态显示。 - -- **参数**:用户自定义 — `String`:状态描述字符串 -- **响应**:N/A - -#### `API: Update Statusbar` - -更新界面底部状态栏信息。 - -- **参数**:用户自定义 — `String`:状态栏文本 -- **响应**:N/A - ### 参数类型说明 | 类型 | 说明 | 链接 | @@ -128,25 +95,27 @@ FileSyncWindow 是 FileSync 的可选 UI 模块,用于展示文件同步的实 ## 调用限制与注意事项 -- [ ] FileSync 可以在无 UI 的情况下独立运行 -- [ ] FileSyncWindow 是可选的 UI 展示模块,需要通过 `API: Link to Sync Engine` 与 FileSync 建立连接 +- [ ] 本模块可以在无 UI 的情况下独立运行 - [ ] 未完成的任务会被持久化,程序重启后自动续传 - [ ] 支持通过继承 Protocol.lvclass 拓展其他协议(如 webDAV 等) +- [ ] 可配合 `CSM-FileSyncWindow` 模块展示同步状态(需单独文档说明) --- ## 使用示例 -### FileSync 基本生命周期 +> 将 `CSM-FileSync` 替换为启动模块 VI 时实际使用的名称。 + +### 基本生命周期 ```text // 启动文件同步服务 -API: Start -> FileSync +API: Start -> CSM-FileSync // ... 文件同步正在运行 ... // 停止文件同步服务 -API: Stop -> FileSync +API: Stop -> CSM-FileSync ``` ### 配置 FTP 同步 @@ -154,7 +123,7 @@ API: Stop -> FileSync 使用 `Config FTPSync.vi` 配置 FTP 协议同步参数后启动服务: ```text -API: Start -> FileSync +API: Start -> CSM-FileSync ``` ### 配置本地/NAS 同步 @@ -162,30 +131,28 @@ API: Start -> FileSync 使用 `Config LocalSync.vi` 配置本地文件拷贝/NAS 协议同步参数后启动服务: ```text -API: Start -> FileSync +API: Start -> CSM-FileSync ``` -### FileSyncWindow 与 FileSync 联动 +### 订阅状态广播 ```text -// 将 FileSyncWindow 链接到 FileSync 引擎 -API: Link to Sync Engine >> FileSync -> FileSyncWindow +// 将 CSM-FileSync 的状态路由到处理模块 +Status Change@CSM-FileSync >> API: OnStatusChange@[处理模块] -> +Uploading List Change@CSM-FileSync >> API: OnListChange@[处理模块] -> -// FileSync 会自动广播状态到 FileSyncWindow -// FileSyncWindow 订阅 FileSync 的状态广播 -Status Change@FileSync >> API: Update Connected Status@FileSyncWindow -> -Uploading List Change@FileSync >> API: Update List@FileSyncWindow -> +// 取消订阅 +Status Change@CSM-FileSync >> API: OnStatusChange@[处理模块] -> ``` --- ## 备注 -- FileSync 和 FileSyncWindow 是两个独立的 CSM 模块,采用松耦合设计 -- FileSync 是文件同步的后台引擎,可以在无 UI 的情况下独立运行 -- FileSyncWindow 是可选的 UI 展示模块,通过 CSM 的状态订阅机制与 FileSync 连接 +- 本模块是文件同步的后台引擎,可以在无 UI 的情况下独立运行 - 支持 FTP 协议和文件拷贝/NAS 协议,可通过继承 Protocol.lvclass 拓展其他协议 - 监控文件夹目录结构会保存到服务器,支持续传功能 +- 可配合 `CSM-FileSyncWindow` 模块(另见 `CSM-FileSyncWindow.md`)通过状态订阅机制展示同步状态 --- diff --git a/CSM-FileSyncWindow.md b/CSM-FileSyncWindow.md new file mode 100644 index 0000000..1005146 --- /dev/null +++ b/CSM-FileSyncWindow.md @@ -0,0 +1,153 @@ +# `CSM-FileSyncWindow` — CSM 模块接口文档 + +--- + +## 功能简述 + +`CSM-FileSyncWindow` 是一个 CSM 模块,用于展示文件同步的实时状态。 + +本模块是 CSM-FileSync 的可选 UI 展示模块,通过订阅 CSM-FileSync 模块的状态广播,实时显示文件同步进度、待上传文件列表和服务器连接状态。 + +--- + +## 模块信息 + +| 属性 | 值 | +| --- | --- | +| LabVIEW 版本 | ≥ 2020 | +| 支持的操作系统 | Windows / Linux | +| 支持 RT | ✅ 支持 | +| 支持 64-bit | ✅ 支持 | +| 所属模块组 | CSM-FileSync.lvlib | + +--- + +## 依赖项 + +| 依赖 | 类型 | +| --- | --- | +| [Communicable-State-Machine](https://github.com/NEVSTOP-LAB/Communicable-State-Machine) | 必须 | +| CSM-FileSync | 必须 | +| NEVTOP-Programming-Palette | 必须 | +| MGI | 必须 | + +--- + +## API 接口(消息接口) + +以下是外部调用者可以发送给本模块的消息。 + +### `API: Link to Sync Engine` + +将 FileSyncWindow 链接到指定的 FileSync 引擎,建立状态订阅关系。 + +- **参数**:用户自定义 — `String`:FileSync 模块名称 +- **响应**:N/A + +### `API: Update List` + +更新界面中的待上传文件列表显示。 + +- **参数**:用户自定义 — `String`:待上传文件列表 +- **响应**:N/A + +### `API: Update Connected Status` + +更新界面中的服务器连接状态显示。 + +- **参数**:用户自定义 — `String`:状态描述字符串 +- **响应**:N/A + +### `API: Update Statusbar` + +更新界面底部状态栏信息。 + +- **参数**:用户自定义 — `String`:状态栏文本 +- **响应**:N/A + +### 参数类型说明 + +| 类型 | 说明 | 链接 | +| --- | --- | --- | +| 用户自定义 | 由模块自行解析的字符串,无需额外插件 | — | + +--- + +## 状态广播接口 + +本模块不对外广播状态。 + +--- + +## 配置说明 + +### External API VI 配置 + +可以通过 `CSM-FileSync.lvlib` 中的 External API VI 进行配置: + +| External API VI | 说明 | +| --- | --- | +| `Link UI.vi` | 将 FileSyncWindow 链接到 FileSync 引擎,等同于调用 `API: Link to Sync Engine` | + +--- + +## 调用限制与注意事项 + +- [ ] 本模块必须与 `CSM-FileSync` 模块配合使用 +- [ ] 需要通过 `API: Link to Sync Engine` 或 `Link UI.vi` 建立与 FileSync 引擎的连接 +- [ ] 建立连接后会自动订阅 FileSync 的 `Status Change` 和 `Uploading List Change` 状态 +- [ ] 本模块为可选的 UI 展示模块,FileSync 可以在没有本模块的情况下独立运行 + +--- + +## 使用示例 + +> 将 `CSM-FileSyncWindow` 和 `CSM-FileSync` 替换为启动模块 VI 时实际使用的名称。 + +### 基本生命周期 + +```text +// 启动 FileSync 引擎 +API: Start -> CSM-FileSync + +// 启动 FileSyncWindow 并链接到 FileSync +API: Link to Sync Engine >> CSM-FileSync -> CSM-FileSyncWindow +``` + +### 使用 Link UI.vi 建立连接 + +使用 `Link UI.vi` 将 FileSyncWindow 链接到 FileSync: + +```text +// FileSync 已启动,使用 Link UI.vi 建立 UI 连接 +// Link UI.vi 会自动建立状态订阅关系 +``` + +### 手动订阅状态广播 + +如果需要手动建立状态订阅关系: + +```text +// 将 FileSync 的状态广播路由到 FileSyncWindow +Status Change@CSM-FileSync >> API: Update Connected Status@CSM-FileSyncWindow -> +Uploading List Change@CSM-FileSync >> API: Update List@CSM-FileSyncWindow -> + +// 取消订阅 +Status Change@CSM-FileSync >> API: Update Connected Status@CSM-FileSyncWindow -> +Uploading List Change@CSM-FileSync >> API: Update List@CSM-FileSyncWindow -> +``` + +--- + +## 备注 + +- 本模块是可选的 UI 展示模块,CSM-FileSync 可以在没有本模块的情况下独立运行 +- 通过 CSM 的状态订阅机制与 CSM-FileSync 建立松耦合连接 +- 调用 `API: Link to Sync Engine` 或 `Link UI.vi` 后会自动订阅 FileSync 的状态广播 +- 实时显示文件同步进度、待上传文件列表和服务器连接状态 +- 另见 `CSM-FileSync.md` 了解 FileSync 引擎模块的详细信息 + +--- + +*完整 CSM 语法参考:* +*CSM Wiki:*