# 命令系统文档

本目录包含 JRSoft Subway 协议的命令系统相关文档。

## 📚 文档列表

### [Simple 命令](./simple-command.md)
点对点的简单命令：
- 快速执行的单一操作
- 一次请求，一次响应
- 适用于开关控制、参数读写等
- 完整的路由流程和错误处理

### [Batch 命令](./batch-command.md)
批量控制命令：
- 向同一设备的多个子硬件发送相同命令
- 通过 progress_update 报告进度
- 支持范围语法（如 "1-10,30-40"）
- 适用于批量设置光柱颜色、屏幕内容等

### [Complex 命令](./complex-command.md)
复杂交互命令：
- 支持多次响应的长时间运行命令
- 通过 progress_update 持续反馈
- 适用于健康检查、数据导出、日志收集等
- 设备端可自主控制响应节奏

### [强类型命令](./typed-commands.md)
基于 C# 模型的类型安全命令：
- 从 C# 模型自动生成 TypeScript 类型
- 编译时类型检查
- IntelliSense 支持
- 运行时验证

## 🎯 命令类型对比

| 特性 | Simple | Batch | Complex |
|------|--------|-------|---------|
| 响应次数 | 1次 | 多次(进度+结果) | 多次(进度+结果) |
| 执行时间 | 短(秒级) | 中等(分钟级) | 长(分钟到小时) |
| 适用场景 | 单一操作 | 批量操作 | 复杂任务 |
| 进度反馈 | 无 | 有 | 有 |
| 实现复杂度 | 低 | 中 | 中高 |

## 🚀 快速选择指南

- **需要控制单个设备？** → 使用 [Simple 命令](./simple-command.md)
- **需要批量控制多个子硬件？** → 使用 [Batch 命令](./batch-command.md)
- **需要执行长时间任务并获取进度？** → 使用 [Complex 命令](./complex-command.md)
- **需要类型安全和编译时检查？** → 使用 [强类型命令](./typed-commands.md)

## 🔗 相关文档

- [协议规范](../01-protocol/) - 了解底层协议
- [示例代码](../05-examples/) - 查看实际使用示例
- [API 参考](../06-reference/api.md) - 详细的 API 文档