概述
消息语义定义 NRCP 帧头之上的通用协议角色。它只描述消息在协议中的通用作用,不描述具体业务能力
Message Type
Message Type 用于标识当前帧的通用协议语义。它不表示具体业务能力,具体业务能力由 Operation Name 或 Flow Name 定义
Flags
Flags 用于表达少量跨 Message Type 的通用修饰语义。Flags 是掩码,但不是所有 Flag 都允许与所有 Message Type 组合
ACK 与 Error
ACK 与 Error 是协议通用反馈机制。它们不表示具体业务能力,也不属于 Flow 机制
Operation
Operation 是 NRCP 中用于一次性 Request/Response 交互的协议抽象。一次 Operation 调用称为 Call,由一个 Request 和一个 Response 或 Error 构成
Flow
Flow 是 NRCP 中用于持续数据流的协议抽象,对标 ROS Topic。状态反馈、连续控制指令、机器人本体故障通知等持续数据都应建模为 Flow
协议层 Event
协议层 Event 用于通知 NRCP 协议自身的状态变化或异常,不用于承载机器人本体业务故障
Payload 与 Schema
Payload Codec 定义 Payload 的编码方式,Schema 定义 Payload 的结构语义
能力发现
能力发现用于让 Client 获取当前 Server 支持的协议能力。当前章节只定义通用语义,具体 Operation 放到接口定义章节