协议的基础数据定义都是以ProtoBuff的语法形式来进行定义,通讯数据编码和解码也是基于ProtoBuff来实现。
值类型定义
enum ValueType { Unknown = 0; Integer = 1; // 整数类型 Double = 2; // 浮点类型 Boolean = 3; // 布尔类型 String = 4; // 字符串类型 Bytes = 5; // 字节流类型 }
存档压缩定义
message CompressSpec { bool enable = 1; // 压缩设置启用标识 默认 false float value = 2; // 工程量参数 int64 maxElapse = 3; // 最大上送周期 (s) }
位号元数据
元数据定义
message MetaTag { int32 version = 1; // 位号版本,位号信息发生变化时进行更新 string name = 2; // 位号名称(字符开头,不能包含非法字符) string showName = 3; // 位号可读名称 (任意字符,可选) string description = 4; // 位号描述 (可选) ValueType type = 5; // 位号值类型 string unit = 6; // 位号单位 (可选) string range = 7; // 位号量程(下限-上限),值域取闭区间,如0-100 (可选) RtdValue defaultValue = 8; // 位号默认值 (可选) bool storage = 9; // 位号存档置,true:表示记存档,false:表示不记存档。设备首次接入时生效,后续修改平台侧不再生效。(可选) CompressSpec compress = 10; // 位号压缩设置 (可选) }
元数据列定义
message MetaTagSequence { repeated MetaTag tags = 1; }
实时数据
实时数据定义
message RtdValue { int64 timeStamp = 1; // UTC毫秒时间戳 int64 quality = 2; // 质量码,0-标识正常值 oneof value { int64 intVal = 3; double dblVal = 4; bool boolVal = 5; string strVal = 6; bytes bytVal = 7; } }
命名实时数据定义
message NamedValue { string name = 1; // 位号名称 RtdValue value = 2; // 位号实时值 }
实时数据列定义
message ValueSequence { repeated NamedValue values = 1; }
续传数据
同ValueSequence
事件数据
message RtdEvent { string topic = 1; bytes payload = 2; }
时间同步
message GatewayCoordinate { int64 localTimeStamp =1; } message ServerCoordinate { int64 localTimeStamp =1; int64 serverTimeStamp =2; }