协议边界
Automation Laboratory Language(ALL)规定调用方、实验方法服务与设备服务之间可观察的通信语义。Function State Protocol(FSP)是 ALL 内部用于设备发现、技能披露、分类请求和结果返回的设备通信协议。 ALL 不规定服务端内部的驱动、队列、数据库、控制器或设备总线。现有设备可以通过适配器接入,不需要修改固件或放弃原有接口。远程连接
正式部署应当提供稳定的 HTTPS 端点:请求消息
统一方法命名空间
标准方法统一位于fsp/*:
read、write 和 invoke 是请求分类,不是设备全部指令的固定清单;每个设备可以声明多条具体技能,并以 command_id 区分。
fsp/get_capabilities 支持渐进式披露。调用方先读取技能摘要,再按 command_ids 获取准备使用的完整技能定义;不得仅凭摘要构造写入或物理动作请求。
成功响应
result_type 只能是:
异步受理响应
task_id 是 FSP 运行时标识,不得被当作研究对象标识或能力版本。
协议错误
请求未进入设备执行前发生的协议错误使用 JSON-RPCerror:
result 返回,并保留任务状态、实际状态和诊断,不能伪装成未执行的协议错误。
修订号
以下数据必须携带修订号:- 设备技能定义;
- 研究对象当前状态;
- 合格设备技能库记录;
- 设备绑定的执行计划。
if_revision 避免重复读取未变化的数据。改变状态的请求应当携带 expected_revision;修订号不一致时,服务端不得按过期状态继续执行。
日期与单位
- 时间使用 RFC 3339 字符串;
- 数值和单位分字段表达;
- 参数单位必须与能力描述一致;
- 未知值使用
null,不得用0或空字符串冒充测量值。