“全悠清洗机通讯文档”的版本间的差异

来自东骏科技波塞冬平台开发者文档
跳转至: 导航搜索
 
第54行: 第54行:
 
== 业务协议 ==
 
== 业务协议 ==
  
=== 下发唤醒指令 ===
+
=== 上报工作组件的工作状态及工作模式 ===
  
==== 下发唤醒指令请求 ====
+
==== 工作模式上报请求 ====
  
 
关联设备命令:0x01
 
关联设备命令:0x01
第62行: 第62行:
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
| '''发送方''' || 服务器
+
| style="width:70px" | '''发送方''' || 通信模块
 +
|-
 +
| '''说明''' || 设备主动上报工作模式(状态改变时上报)
 +
|-
 +
| '''开始标志''' || 1byte,“_”
 +
|-
 +
| '''响应类型''' || 2byte,RP
 +
|-
 +
| '''命令''' || 3byte,WKM
 +
|-
 +
| '''会话ID''' || 6byte,A21001
 +
|-
 +
| '''内容长度''' || 3byte,表示内容长度,ASCII数字表示
 +
|-
 +
| '''内容''' || 工作状态(2byte,01-自动模式开启,02-制氧机开启,04 抽水泵开启)
 +
 
 +
|-
 +
| '''结束标志''' || 2byte,\r\n(0x0D 0x0A)
 +
|}
 +
 
 +
'''示例:'''
 +
 
 +
_RP WKM A21001 002 01<0x0D> <0x0A>
 +
 
 +
==== 工作模式上报响应 ====
 +
 
 +
关联设备命令:0x01
 +
 
 +
{| class="wikitable"
 +
|-
 +
| '''发送方''' || 通信模块
 +
|-
 +
| '''说明''' || 返回服务端请求接收状态
 +
|-
 +
| '''开始标志''' || 1byte,“_”
 +
|-
 +
| '''响应类型''' || 2byte,RS
 +
|-
 +
| '''命令''' || 3byte,WKM
 +
|-
 +
| '''会话ID''' || 6byte,A21001
 +
|-
 +
| '''内容长度''' || 3byte,表示内容长度,ASCII数字表示
 +
|-
 +
| '''内容''' || 无
 +
 
 +
|-
 +
| '''结束标志''' || 2byte,\r\n(0x0D 0x0A)
 +
|}
 +
 
 +
'''示例:'''
 +
 
 +
_RS WKM A21001 000 <0x0D> <0x0A>
 +
 
 +
=== 上报传感器参数 ===
 +
 
 +
==== 各项传感器参数上报请求 ====
 +
 
 +
关联设备命令:0x02
 +
 
 +
{| class="wikitable"
 +
|-
 +
| style="width:70px" | '''发送方''' || 通信模块
 +
|-
 +
| '''说明''' || 设备主动上报传感器参数(实时上报,约1s一次)
 +
|-
 +
| '''开始标志''' || 1byte,“_”
 +
|-
 +
| '''响应类型''' || 2byte,RP
 +
|-
 +
| '''命令''' || 3byte,WKD
 +
|-
 +
| '''会话ID''' || 6byte,A21002
 +
|-
 +
| '''内容长度''' || 3byte,表示内容长度,ASCII数字表示
 +
|-
 +
| '''内容''' || 进水口阀门输入电压(4bytes,0234 表示电压 2.34V)#/#
 +
 
 +
进水口阀门输出(反馈)电压(4bytes,同上)#/#
 +
 
 +
出水口阀门输入电压(4bytes,同上)#/#
 +
 
 +
出水口阀门输出(反馈)电压(4bytes,同上)#/#
 +
 
 +
进水口检测压力(4bytes,0~1250 映射范围 0.0250~(-0.1000MPa))#/#
 +
 
 +
出水口检测压力(4bytes,0~7500 映射范围(-0.1500MPa)~0.6000MPa)#/#
 +
 
 +
水泵的工作电流(4bytes,1000 表示 1000mA)#/#
 +
 
 +
气泵的工作电流(4bytes,1000 表示 1000mA)#/#
 +
 
 +
箱体内温度参数(2bytes,25 表示 25 摄氏度)
 +
 
 +
|-
 +
| '''结束标志''' || 2byte,\r\n(0x0D 0x0A)
 +
|}
 +
 
 +
'''示例:'''
 +
 
 +
_ RP WKD A21002 058 0234#/#0234#/#0234#/#0234#/#1250#/#7500#/#1000#/#1000#/#25<0x0D> <0x0A>
 +
 
 +
==== 传感器参数上报响应 ====
 +
 
 +
关联设备命令:0x02
 +
 
 +
{| class="wikitable"
 +
|-
 +
| '''发送方''' || 通信模块
 +
|-
 +
| '''说明''' || 返回服务端请求接收状态
 +
|-
 +
| '''开始标志''' || 1byte,“_”
 +
|-
 +
| '''响应类型''' || 2byte,RS
 +
|-
 +
| '''命令''' || 3byte,WKD
 +
|-
 +
| '''会话ID''' || 6byte,A21002
 +
|-
 +
| '''内容长度''' || 3byte,表示内容长度,ASCII数字表示
 +
|-
 +
| '''内容''' || 无
 +
 
 +
|-
 +
| '''结束标志''' || 2byte,\r\n(0x0D 0x0A)
 +
|}
 +
 
 +
'''示例:'''
 +
 
 +
_RS WKD A21002 000 <0x0D> <0x0A>
 +
 
 +
=== 上报工作参数设定值(报警上限值) ===
 +
 
 +
==== 工作参数设定值上报请求 ====
 +
 
 +
关联设备命令:0x03
 +
 
 +
{| class="wikitable"
 +
|-
 +
| style="width:70px" | '''发送方''' || 通信模块
 +
|-
 +
| '''说明''' || 设备主动上报各类参数的设定值或报警上限值(有改变时发送)
 +
|-
 +
| '''开始标志''' || 1byte,“_”
 +
|-
 +
| '''响应类型''' || 2byte,RP
 +
|-
 +
| '''命令''' || 3byte,LMT
 +
|-
 +
| '''会话ID''' || 6byte,A21003
 +
|-
 +
| '''内容长度''' || 3byte,表示内容长度,ASCII数字表示
 +
|-
 +
| '''内容''' || 进水口压力设定值(4bytes,0~1250 映射范围 0.0250~(-0.1000MPa))#/#
 +
 
 +
出水口压力设定值(4bytes,0~7500 映射范围(-0.1500MPa)~0.6000MPa)#/#
 +
 
 +
水泵的工作电流上限参数(4bytes,1000 表示 1000mA)#/#
 +
 
 +
气泵的工作电流上限参数(4bytes,1000 表示 1000mA)#/#
 +
 
 +
箱体内温度上限参数(2bytes,25 表示 25 摄氏度)
 +
 
 +
|-
 +
| '''结束标志''' || 2byte,\r\n(0x0D 0x0A)
 +
|}
 +
 
 +
'''示例:'''
 +
 
 +
_ RP LMT A21003 030 1250#/#7500#/#1000#/#1000#/#25<0x0D> <0x0A>
 +
 
 +
==== 工作参数设定值上报响应 ====
 +
 
 +
关联设备命令:0x03
 +
 
 +
{| class="wikitable"
 +
|-
 +
| '''发送方''' || 通信模块
 
|-
 
|-
| '''说明''' || 服务端询问设备状态
+
| '''说明''' || 返回服务端请求接收状态
 
|-
 
|-
 
| '''开始标志''' || 1byte,“_”
 
| '''开始标志''' || 1byte,“_”
 
|-
 
|-
| '''报文长度''' || 3byte,表示整个报文的总长度,ASCII数字表示
+
| '''响应类型''' || 2byte,RS
 +
|-
 +
| '''命令''' || 3byte,LMT
 
|-
 
|-
| '''命令''' || 3byte,WKU
+
| '''会话ID''' || 6byte,A21003
 
|-
 
|-
| '''会话ID''' || 6byte,服务器生成
+
| '''内容长度''' || 3byte,表示内容长度,ASCII数字表示
 
|-
 
|-
| '''分隔符''' || 1byte,“/”
+
| '''内容''' ||
 +
 
 
|-
 
|-
| '''参数''' || 设备编号(8bytes 的 16 进制字符串)
+
| '''结束标志''' || 2byte,\r\n(0x0D 0x0A)
 +
|}
 +
 
 +
'''示例:'''
  
订单号(10bytes 的 16 进制字符串)
+
_RS LMT A21003 000 <0x0D> <0x0A>
  
开锁方式(1-开锁 2-不开锁)
+
=== 上报自动工作设定的定时值 ===
 +
 
 +
==== 自动工作设定的定时值上报请求 ====
 +
 
 +
关联设备命令:0x04
 +
 
 +
{| class="wikitable"
 +
|-
 +
| style="width:70px" | '''发送方''' || 通信模块
 +
|-
 +
| '''说明''' || 设备主动上报自动工作设定的定时值(有改变时上报)
 +
|-
 +
| '''开始标志''' || 1byte,“_”
 +
|-
 +
| '''响应类型''' || 2byte,RP
 +
|-
 +
| '''命令''' || 3byte,TIM
 +
|-
 +
| '''会话ID''' || 6byte,A21004
 +
|-
 +
| '''内容长度''' || 3byte,表示内容长度,ASCII数字表示
 +
|-
 +
| '''内容''' || 定时时间(2byte,10 表示 10 分钟)
  
时间戳(10bytes 的 Unix 时间戳)
 
 
|-
 
|-
 
| '''结束标志''' || 2byte,\r\n(0x0D 0x0A)
 
| '''结束标志''' || 2byte,\r\n(0x0D 0x0A)
第89行: 第294行:
 
'''示例:'''
 
'''示例:'''
  
_045 WKU LCZXk8/1A5B0C18 0207636116 1 1612666945<0x0D> <0x0A>
+
_ RP TIM A21004 002 10<0x0D> <0x0A>
  
==== 下发唤醒指令响应 ====
+
==== 自动工作设定的定时值上上报响应 ====
  
关联设备命令:0x01
+
关联设备命令:0x04
  
 
{| class="wikitable"
 
{| class="wikitable"
第99行: 第304行:
 
| '''发送方''' || 通信模块
 
| '''发送方''' || 通信模块
 
|-
 
|-
| '''说明''' || 返回服务端查询内容
+
| '''说明''' || 返回服务端请求接收状态
 
|-
 
|-
 
| '''开始标志''' || 1byte,“_”
 
| '''开始标志''' || 1byte,“_”
第105行: 第310行:
 
| '''响应类型''' || 2byte,RS
 
| '''响应类型''' || 2byte,RS
 
|-
 
|-
| '''命令''' || 3byte,WKU
+
| '''命令''' || 3byte,TIM
 +
|-
 +
| '''会话ID''' || 6byte,A21004
 +
|-
 +
| '''内容长度''' || 3byte,表示内容长度,ASCII数字表示
 +
|-
 +
| '''内容''' || 无
 +
 
 
|-
 
|-
| '''会话ID''' || 6byte,服务器生成
+
| '''结束标志''' || 2byte,\r\n(0x0D 0x0A)
 +
|}
 +
 
 +
'''示例:'''
 +
 
 +
_RS TIM A21004 000 <0x0D> <0x0A>
 +
 
 +
=== 上报报警信息 ===
 +
 
 +
==== 报警信号上报请求 ====
 +
 
 +
关联设备命令:0x05
 +
 
 +
{| class="wikitable"
 +
|-
 +
| style="width:70px" | '''发送方''' || 通信模块
 +
|-
 +
| '''说明''' || 设备主动上报报警信号(有报警时发送)
 +
|-
 +
| '''开始标志''' || 1byte,“_”
 +
|-
 +
| '''响应类型''' || 2byte,RP
 +
|-
 +
| '''命令''' || 3byte,ERR
 +
|-
 +
| '''会话ID''' || 6byte,A21005
 
|-
 
|-
 
| '''内容长度''' || 3byte,表示内容长度,ASCII数字表示
 
| '''内容长度''' || 3byte,表示内容长度,ASCII数字表示
 
|-
 
|-
| '''内容''' || 设备编号#/#  
+
| '''内容''' || 警报值(2bytes):
 +
 
 +
      01 - 出水口压力超监测上限(出水口压力传感器检测的上限压力 0.6MPa)
 +
      02 - 进水口压力超监测上限(进水口压力传感器检测的上限压力-0.1MPa)
 +
      05 - 出水口压力超出设定值范围报警
 +
      06 - 进水口压力超出设定值范围报警
 +
      07 - 初始出水压力报警(定时工作前检测到不是初始传感器 0MPa 左右参数)
 +
      08 - 初始进水压力报警(定时工作前检测到不是初始传感器 0MPa 左右参数)
 +
      09 - 水泵过流保护报警(超过设定水泵工作电流上限值)
 +
      0A - 气泵过流保护报警(超过设定气泵工作电流上限值)
 +
      0B - 超温报警(箱体内温度超过设定温度上限值)
 +
      0C - 出水阀门反馈信号故障(超时没有接收到阀门反馈电压信号)
 +
      0D - 出水阀门反馈信号故障(超时没有接收到阀门反馈电压信号)
 +
 
 +
'''注:当警报值为 05/06 时,参数会增加最多 15 条的报警时出/进水口压力数值,长度为 4bytes,以#/#分 隔。
 +
 
 +
(暂不确定设备是否会不停的发送报警信息,后面看情况加入重传序号)'''
 +
 
 +
|-
 +
| '''结束标志''' || 2byte,\r\n(0x0D 0x0A)
 +
|}
 +
 
 +
'''示例:'''
 +
 
 +
_ RP ERR A21005 002 01<0x0D> <0x0A>
 +
 
 +
_ RP ERR A21005 009 05#/#7500<0x0D> <0x0A>
 +
 
 +
_ RP ERR A21005 107 06#/#1250#/#1250#/#1250#/#1250#/#1250#/#1250#/#1250#/#1250#/#1250#/#1250#/#1250#/#1250#/#1250#/#1250#/#1250<0x0D> <0x0A>
 +
 
 +
==== 报警信号上报响应 ====
 +
 
 +
关联设备命令:0x05
  
订单号#/#
+
{| class="wikitable"
 +
|-
 +
| '''发送方''' || 通信模块
 +
|-
 +
| '''说明''' || 返回服务端请求接收状态
 +
|-
 +
| '''开始标志''' || 1byte,“_”
 +
|-
 +
| '''响应类型''' || 2byte,RS
 +
|-
 +
| '''命令''' || 3byte,ERR
 +
|-
 +
| '''会话ID''' || 6byte,A21005
 +
|-
 +
| '''内容长度''' || 3byte,表示内容长度,ASCII数字表示
 +
|-
 +
| '''内容''' || 无
  
接收结果(1-接收成功,2-数据不完整,3-射频模块未就绪)
 
 
|-
 
|-
 
| '''结束标志''' || 2byte,\r\n(0x0D 0x0A)
 
| '''结束标志''' || 2byte,\r\n(0x0D 0x0A)
第122行: 第406行:
 
'''示例:'''
 
'''示例:'''
  
_RS WKU LCZXk8 025 1A5B0C18#/#0207636116#/#1 <0x0D> <0x0A>
+
_RS ERR A21005 000 <0x0D> <0x0A>
  
=== 上报开锁结果 ===
+
=== 上报报警信号解除 ===
  
==== 开锁结果上报请求 ====
+
==== 报警信号解除上报请求 ====
 +
 
 +
关联设备命令:0x06
  
 
{| class="wikitable"
 
{| class="wikitable"
第132行: 第418行:
 
| style="width:70px" | '''发送方''' || 通信模块
 
| style="width:70px" | '''发送方''' || 通信模块
 
|-
 
|-
| '''说明''' || 设备主动上报开锁结果
+
| '''说明''' || 设设备主动上报解除报警信号(报警解除时上报)
 
|-
 
|-
 
| '''开始标志''' || 1byte,“_”
 
| '''开始标志''' || 1byte,“_”
第138行: 第424行:
 
| '''响应类型''' || 2byte,RP
 
| '''响应类型''' || 2byte,RP
 
|-
 
|-
| '''命令''' || 3byte,ULU
+
| '''命令''' || 3byte,EOK
 +
|-
 +
| '''会话ID''' || 6byte,A21006
 +
|-
 +
| '''内容长度''' || 3byte,表示内容长度,ASCII数字表示
 +
|-
 +
| '''内容''' || 无
 +
 
 +
|-
 +
| '''结束标志''' || 2byte,\r\n(0x0D 0x0A)
 +
|}
 +
 
 +
'''示例:'''
 +
 
 +
_ RP EOK A21006 000<0x0D> <0x0A>
 +
 
 +
==== 报警信号解除上报响应 ====
 +
 
 +
关联设备命令:0x06
 +
 
 +
{| class="wikitable"
 +
|-
 +
| '''发送方''' || 通信模块
 +
|-
 +
| '''说明''' || 返回服务端请求接收状态
 +
|-
 +
| '''开始标志''' || 1byte,“_”
 +
|-
 +
| '''响应类型''' || 2byte,RS
 +
|-
 +
| '''命令''' || 3byte,EOK
 +
|-
 +
| '''会话ID''' || 6byte,A21006
 +
|-
 +
| '''内容长度''' || 3byte,表示内容长度,ASCII数字表示
 +
|-
 +
| '''内容''' || 无
 +
 
 +
|-
 +
| '''结束标志''' || 2byte,\r\n(0x0D 0x0A)
 +
|}
 +
 
 +
'''示例:'''
 +
 
 +
_RS EOK A21006 000 <0x0D> <0x0A>
 +
 
 +
=== 下发设置 ===
 +
 
 +
==== 下发参数设置请求 ====
 +
 
 +
关联设备命令:0x02
 +
 
 +
{| class="wikitable"
 +
|-
 +
| '''发送方''' || 服务器
 +
|-
 +
| '''说明''' || 服务端下发设置指令
 +
|-
 +
| '''开始标志''' || 1byte,“_”
 +
|-
 +
| '''报文长度''' || 3byte,表示整个报文的总长度,ASCII数字表示
 +
|-
 +
| '''命令''' || 3byte,SET
 +
|-
 +
| '''会话ID''' || 6byte,服务器生成
 +
|-
 +
| '''分隔符''' || 1byte,“/”
 +
|-
 +
| '''参数''' || 操作命令码(2bytes):
 +
      01:设置工作组件或设置工作模式
 +
            01:打开自动工作模式(2bytes)
 +
            02:关闭自动工作模式(切换为手动模式)
 +
            03:打开制氧机
 +
            04:关闭制氧机
 +
            05:打开抽水泵
 +
            06:关闭抽水泵
 +
            '''注:自动模式下抽水泵及制氧机由 MCU 控制,其他设备无法操控'''
 +
     
 +
      02:设置进水阀门调控参数
 +
            0500:进水阀门输入值(4bytes,参数值为 500 表示把出水阀门输入电压调为 5V,即阀门开 50%, 参数范围 300~1000)
 +
     
 +
      03:设置出水阀门调控参数
 +
            0500:出水阀门输入值(4bytes,意义同上,参数范围 30~1000)
 +
     
 +
      04:设置进水压力设定参数
 +
            0500:进水压力设定值(4bytes,参数范围 0~1250 映射 0.0250~(-0.1000MPA))
 +
   
 +
      05:设置出水压力设定参数
 +
            0500:出水压力设定值(4bytes,参数范围 0~7500 映射(-0.150MPa)~0.6000MPa)
 +
     
 +
      06:设置水泵工作的上限电流
 +
            00500:水泵的上限电流参数(5bytes,参数范围 0~10000)
 +
     
 +
      07:设置气泵(制氧机)工作的上限电流
 +
            00500:气泵的上限电流参数(5bytes,参数范围 0~10000)
 +
     
 +
      08:设置温度的上限参数
 +
            0100:温度上限参数(4bytes,参数范围 0~100)
 +
     
 +
      09:设置工作定时设定参数
 +
            0240:工作定时参数(4bytes,参数范围 10~240(暂定)调控刻度为 5)
 +
     
 +
      0A:发送解除报警信号
 +
            无参数
 +
|-
 +
| '''结束标志''' || 2byte,\r\n(0x0D 0x0A)
 +
|}
 +
 
 +
'''示例:'''
 +
 
 +
_014 SET KX7l9t/0101<0x0D> <0x0A> 解析:打开自动工作模式
 +
 
 +
_014 SET KX7l9t/0105<0x0D> <0x0A> 解析:打开抽水泵
 +
 
 +
_016 SET KX7l9t/020700<0x0D> <0x0A> 解析:进水阀门打开 70%
 +
 
 +
_016 SET KX7l9t/040250<0x0D> <0x0A> 解析:设置进水压力为 0MPa
 +
 
 +
_017 SET KX7l9t/0610000<0x0D> <0x0A> 解析:设置水泵工作的上限电流为 10000mA
 +
 
 +
_016 SET KX7l9t/080100<0x0D> <0x0A> 解析:设置箱体内温度上限为 100℃
 +
 
 +
_016 SET KX7l9t/090200<0x0D> <0x0A> 解析:设置自动工作的定时时间为 200 分钟
 +
 
 +
_012 SET KX7l9t/0A<0x0D> <0x0A> 解析:解除报警信号
 +
 
 +
==== 下发参数设置响应 ====
 +
 
 +
关联设备命令:0x02
 +
 
 +
{| class="wikitable"
 +
|-
 +
| '''发送方''' || 通信模块
 +
|-
 +
| '''说明''' || 返回服务端查询内容
 +
|-
 +
| '''开始标志''' || 1byte,“_”
 
|-
 
|-
| '''会话ID''' || 6byte,A15001
+
| '''响应类型''' || 2byte,RS
 +
|-
 +
| '''命令''' || 3byte,SET
 +
|-
 +
| '''会话ID''' || 6byte,服务器生成
 
|-
 
|-
 
| '''内容长度''' || 3byte,表示内容长度,ASCII数字表示
 
| '''内容长度''' || 3byte,表示内容长度,ASCII数字表示
 
|-
 
|-
| '''内容''' || 设备编号(8bytes 的 16 进制字符串)#/#  
+
| '''内容''' || 操作命令码(2bytes)#/#  
  
订单号(10bytes 的 16 进制字符串)#/#
+
接收结果(1-接收成功,2-参数错误)
  
开锁状态(1-开锁成功,2-开锁失败,3-锁已打开,4-不开锁上报,5-重放非法)#/#
+
|-
 +
| '''结束标志''' || 2byte,\r\n(0x0D 0x0A)
 +
|}
 +
 
 +
'''示例:'''
  
电池电量(0-255)#/#  
+
_RS SET KX7l9t 006 01#/#1 <0x0D> <0x0A>
  
重传序号:DLB 重传序号,服务端接收到该指令以后必须立刻返回 DLB 通知设备收到此条数据,否则设备 会一直发送直到服务端确认收到。该序号在返回 DLB 通知的时候需要带回来的序号。
+
=== 删除重传队列 ===
  
 +
{| class="wikitable"
 +
|-
 +
| '''发送方''' || 服务器
 +
|-
 +
| '''说明''' || 服务端收到设备上报带有重传序号的请求后后,回应设备让设备删除重传列表中的该条数据。
 +
|-
 +
| '''开始标志''' || 1byte,“_”
 +
|-
 +
| '''报文长度''' || 3byte,表示整个报文的总长度,ASCII数字表示
 +
|-
 +
| '''命令''' || 3byte,DLB
 +
|-
 +
| '''会话ID''' || 6byte,服务器生成
 +
|-
 +
| '''分隔符''' || 1byte,“/”
 +
|-
 +
| '''参数''' || 重传序号(通讯模块生成)
 
|-
 
|-
 
| '''结束标志''' || 2byte,\r\n(0x0D 0x0A)
 
| '''结束标志''' || 2byte,\r\n(0x0D 0x0A)
第160行: 第607行:
 
'''示例:'''
 
'''示例:'''
  
_RP ULU A15001 036 1A5B0C18#/#0207636116#/#2#/#118#/#16<0x0D> <0x0A>
+
_ 018 DLB 123456 / 56 <0x0D> <0x0A>

2021年2月7日 (日) 11:14的最新版本

协议结构

命令结构

定义:服务器发送,通讯模块接收的数据报文。

1 2 3 4 5 6 7

1:开始标识(1byte) “_”

2:报文长度(3byte)(ASCII数字)

3:命令(3byte)(英文大写,第一字节A为保留字段)

4:会话ID(6byte)(每一字节0x00-0x3D之间数字+偏移量0x31,当然如果使用A-Za-z0-9就一定再这个范围之内了,也就满足要求了),每次不同的通讯的会话ID都需要不一样(服务器发起的通讯至少连续的20次通讯不一样,除了特殊说明以外,当然我们的建议还是让每次通讯的会话ID尽可能的不一样),通常设备会在获取到服务器指令执行以后需要回复结果的会返回相同的会话ID给服务器,服务端可以通过会话ID获得设备当前回应的数据是哪一个会话的。同一个会话ID设备会认为是同一次通讯的重复发送,如果设备已经处理了相关的指令,就会丢弃之后相同会话ID的指令。设备由于内存限制,比对的会话ID是之前10次通讯的会话ID,为了可靠期间服务端只要保证连续的20次服务器发起的通讯会话ID不一致就可以了确保设备不会触发丢弃操作而影响指令的执行。另外如果有些命令服务器为了使设备一定收到,但设备只需要执行一次的,这样的命令多次发送用同一会话ID发送就可以了

5:分隔符(1byte) “/”

6:参数(如果没有参数则没有该部分)

7:结束标识(2byte) (0x0D 0x0A)

响应结构

定义:通讯模块发送,服务器接收的报文。

1 2 3 4 5 6 7

1:开始标识(1byte) “_”

2:响应类型(2byte) PG-ping,DV-设备号(IMEI),ID-SIM卡ICCID号,CM-客户端命令,RP-数据上报,RS-命令响应, RJ-Json数据上报

3:命令(3byte)(大写英文,回传服务器请求的命令,如果没有服务器请求则为AAA)

4:会话ID(6byte)(无服务器会话ID则返回”000000”,文档中指令的会话ID有特殊定义的,已定义为准)

5:内容长度(3byte)(ASCII数字)6的长度

6:内容(内容长度可以为空)

7:结束标识(2byte) (0x0D 0x0A)

命令限制

  1. ADV(设备号IMEI号) AID(SIM卡ICCID号) AXT(心跳) AAA(空指令) 为系统内置命令不能用于其他接口
  2. 业务级别的接口命令不得用 A 开头

业务协议

上报工作组件的工作状态及工作模式

工作模式上报请求

关联设备命令:0x01

发送方 通信模块
说明 设备主动上报工作模式(状态改变时上报)
开始标志 1byte,“_”
响应类型 2byte,RP
命令 3byte,WKM
会话ID 6byte,A21001
内容长度 3byte,表示内容长度,ASCII数字表示
内容 工作状态(2byte,01-自动模式开启,02-制氧机开启,04 抽水泵开启)
结束标志 2byte,\r\n(0x0D 0x0A)

示例:

_RP WKM A21001 002 01<0x0D> <0x0A>

工作模式上报响应

关联设备命令:0x01

发送方 通信模块
说明 返回服务端请求接收状态
开始标志 1byte,“_”
响应类型 2byte,RS
命令 3byte,WKM
会话ID 6byte,A21001
内容长度 3byte,表示内容长度,ASCII数字表示
内容
结束标志 2byte,\r\n(0x0D 0x0A)

示例:

_RS WKM A21001 000 <0x0D> <0x0A>

上报传感器参数

各项传感器参数上报请求

关联设备命令:0x02

发送方 通信模块
说明 设备主动上报传感器参数(实时上报,约1s一次)
开始标志 1byte,“_”
响应类型 2byte,RP
命令 3byte,WKD
会话ID 6byte,A21002
内容长度 3byte,表示内容长度,ASCII数字表示
内容 进水口阀门输入电压(4bytes,0234 表示电压 2.34V)#/#

进水口阀门输出(反馈)电压(4bytes,同上)#/#

出水口阀门输入电压(4bytes,同上)#/#

出水口阀门输出(反馈)电压(4bytes,同上)#/#

进水口检测压力(4bytes,0~1250 映射范围 0.0250~(-0.1000MPa))#/#

出水口检测压力(4bytes,0~7500 映射范围(-0.1500MPa)~0.6000MPa)#/#

水泵的工作电流(4bytes,1000 表示 1000mA)#/#

气泵的工作电流(4bytes,1000 表示 1000mA)#/#

箱体内温度参数(2bytes,25 表示 25 摄氏度)

结束标志 2byte,\r\n(0x0D 0x0A)

示例:

_ RP WKD A21002 058 0234#/#0234#/#0234#/#0234#/#1250#/#7500#/#1000#/#1000#/#25<0x0D> <0x0A>

传感器参数上报响应

关联设备命令:0x02

发送方 通信模块
说明 返回服务端请求接收状态
开始标志 1byte,“_”
响应类型 2byte,RS
命令 3byte,WKD
会话ID 6byte,A21002
内容长度 3byte,表示内容长度,ASCII数字表示
内容
结束标志 2byte,\r\n(0x0D 0x0A)

示例:

_RS WKD A21002 000 <0x0D> <0x0A>

上报工作参数设定值(报警上限值)

工作参数设定值上报请求

关联设备命令:0x03

发送方 通信模块
说明 设备主动上报各类参数的设定值或报警上限值(有改变时发送)
开始标志 1byte,“_”
响应类型 2byte,RP
命令 3byte,LMT
会话ID 6byte,A21003
内容长度 3byte,表示内容长度,ASCII数字表示
内容 进水口压力设定值(4bytes,0~1250 映射范围 0.0250~(-0.1000MPa))#/#

出水口压力设定值(4bytes,0~7500 映射范围(-0.1500MPa)~0.6000MPa)#/#

水泵的工作电流上限参数(4bytes,1000 表示 1000mA)#/#

气泵的工作电流上限参数(4bytes,1000 表示 1000mA)#/#

箱体内温度上限参数(2bytes,25 表示 25 摄氏度)

结束标志 2byte,\r\n(0x0D 0x0A)

示例:

_ RP LMT A21003 030 1250#/#7500#/#1000#/#1000#/#25<0x0D> <0x0A>

工作参数设定值上报响应

关联设备命令:0x03

发送方 通信模块
说明 返回服务端请求接收状态
开始标志 1byte,“_”
响应类型 2byte,RS
命令 3byte,LMT
会话ID 6byte,A21003
内容长度 3byte,表示内容长度,ASCII数字表示
内容
结束标志 2byte,\r\n(0x0D 0x0A)

示例:

_RS LMT A21003 000 <0x0D> <0x0A>

上报自动工作设定的定时值

自动工作设定的定时值上报请求

关联设备命令:0x04

发送方 通信模块
说明 设备主动上报自动工作设定的定时值(有改变时上报)
开始标志 1byte,“_”
响应类型 2byte,RP
命令 3byte,TIM
会话ID 6byte,A21004
内容长度 3byte,表示内容长度,ASCII数字表示
内容 定时时间(2byte,10 表示 10 分钟)
结束标志 2byte,\r\n(0x0D 0x0A)

示例:

_ RP TIM A21004 002 10<0x0D> <0x0A>

自动工作设定的定时值上上报响应

关联设备命令:0x04

发送方 通信模块
说明 返回服务端请求接收状态
开始标志 1byte,“_”
响应类型 2byte,RS
命令 3byte,TIM
会话ID 6byte,A21004
内容长度 3byte,表示内容长度,ASCII数字表示
内容
结束标志 2byte,\r\n(0x0D 0x0A)

示例:

_RS TIM A21004 000 <0x0D> <0x0A>

上报报警信息

报警信号上报请求

关联设备命令:0x05

发送方 通信模块
说明 设备主动上报报警信号(有报警时发送)
开始标志 1byte,“_”
响应类型 2byte,RP
命令 3byte,ERR
会话ID 6byte,A21005
内容长度 3byte,表示内容长度,ASCII数字表示
内容 警报值(2bytes):
     01 - 出水口压力超监测上限(出水口压力传感器检测的上限压力 0.6MPa) 
     02 - 进水口压力超监测上限(进水口压力传感器检测的上限压力-0.1MPa) 
     05 - 出水口压力超出设定值范围报警 
     06 - 进水口压力超出设定值范围报警 
     07 - 初始出水压力报警(定时工作前检测到不是初始传感器 0MPa 左右参数) 
     08 - 初始进水压力报警(定时工作前检测到不是初始传感器 0MPa 左右参数) 
     09 - 水泵过流保护报警(超过设定水泵工作电流上限值) 
     0A - 气泵过流保护报警(超过设定气泵工作电流上限值) 
     0B - 超温报警(箱体内温度超过设定温度上限值) 
     0C - 出水阀门反馈信号故障(超时没有接收到阀门反馈电压信号) 
     0D - 出水阀门反馈信号故障(超时没有接收到阀门反馈电压信号) 

注:当警报值为 05/06 时,参数会增加最多 15 条的报警时出/进水口压力数值,长度为 4bytes,以#/#分 隔。

(暂不确定设备是否会不停的发送报警信息,后面看情况加入重传序号)

结束标志 2byte,\r\n(0x0D 0x0A)

示例:

_ RP ERR A21005 002 01<0x0D> <0x0A>

_ RP ERR A21005 009 05#/#7500<0x0D> <0x0A>

_ RP ERR A21005 107 06#/#1250#/#1250#/#1250#/#1250#/#1250#/#1250#/#1250#/#1250#/#1250#/#1250#/#1250#/#1250#/#1250#/#1250#/#1250<0x0D> <0x0A>

报警信号上报响应

关联设备命令:0x05

发送方 通信模块
说明 返回服务端请求接收状态
开始标志 1byte,“_”
响应类型 2byte,RS
命令 3byte,ERR
会话ID 6byte,A21005
内容长度 3byte,表示内容长度,ASCII数字表示
内容
结束标志 2byte,\r\n(0x0D 0x0A)

示例:

_RS ERR A21005 000 <0x0D> <0x0A>

上报报警信号解除

报警信号解除上报请求

关联设备命令:0x06

发送方 通信模块
说明 设设备主动上报解除报警信号(报警解除时上报)
开始标志 1byte,“_”
响应类型 2byte,RP
命令 3byte,EOK
会话ID 6byte,A21006
内容长度 3byte,表示内容长度,ASCII数字表示
内容
结束标志 2byte,\r\n(0x0D 0x0A)

示例:

_ RP EOK A21006 000<0x0D> <0x0A>

报警信号解除上报响应

关联设备命令:0x06

发送方 通信模块
说明 返回服务端请求接收状态
开始标志 1byte,“_”
响应类型 2byte,RS
命令 3byte,EOK
会话ID 6byte,A21006
内容长度 3byte,表示内容长度,ASCII数字表示
内容
结束标志 2byte,\r\n(0x0D 0x0A)

示例:

_RS EOK A21006 000 <0x0D> <0x0A>

下发设置

下发参数设置请求

关联设备命令:0x02

发送方 服务器
说明 服务端下发设置指令
开始标志 1byte,“_”
报文长度 3byte,表示整个报文的总长度,ASCII数字表示
命令 3byte,SET
会话ID 6byte,服务器生成
分隔符 1byte,“/”
参数 操作命令码(2bytes):
     01:设置工作组件或设置工作模式 
           01:打开自动工作模式(2bytes) 
           02:关闭自动工作模式(切换为手动模式) 
           03:打开制氧机 
           04:关闭制氧机 
           05:打开抽水泵 
           06:关闭抽水泵 
           注:自动模式下抽水泵及制氧机由 MCU 控制,其他设备无法操控 
     
     02:设置进水阀门调控参数 
           0500:进水阀门输入值(4bytes,参数值为 500 表示把出水阀门输入电压调为 5V,即阀门开 50%, 参数范围 300~1000) 
     
     03:设置出水阀门调控参数 
           0500:出水阀门输入值(4bytes,意义同上,参数范围 30~1000) 
     
     04:设置进水压力设定参数 
           0500:进水压力设定值(4bytes,参数范围 0~1250 映射 0.0250~(-0.1000MPA)) 
    
     05:设置出水压力设定参数 
           0500:出水压力设定值(4bytes,参数范围 0~7500 映射(-0.150MPa)~0.6000MPa) 
     
     06:设置水泵工作的上限电流 
           00500:水泵的上限电流参数(5bytes,参数范围 0~10000) 
     
     07:设置气泵(制氧机)工作的上限电流
           00500:气泵的上限电流参数(5bytes,参数范围 0~10000) 
     
     08:设置温度的上限参数 
           0100:温度上限参数(4bytes,参数范围 0~100) 
     
     09:设置工作定时设定参数 
           0240:工作定时参数(4bytes,参数范围 10~240(暂定)调控刻度为 5) 
     
     0A:发送解除报警信号 
           无参数
结束标志 2byte,\r\n(0x0D 0x0A)

示例:

_014 SET KX7l9t/0101<0x0D> <0x0A> 解析:打开自动工作模式

_014 SET KX7l9t/0105<0x0D> <0x0A> 解析:打开抽水泵

_016 SET KX7l9t/020700<0x0D> <0x0A> 解析:进水阀门打开 70%

_016 SET KX7l9t/040250<0x0D> <0x0A> 解析:设置进水压力为 0MPa

_017 SET KX7l9t/0610000<0x0D> <0x0A> 解析:设置水泵工作的上限电流为 10000mA

_016 SET KX7l9t/080100<0x0D> <0x0A> 解析:设置箱体内温度上限为 100℃

_016 SET KX7l9t/090200<0x0D> <0x0A> 解析:设置自动工作的定时时间为 200 分钟

_012 SET KX7l9t/0A<0x0D> <0x0A> 解析:解除报警信号

下发参数设置响应

关联设备命令:0x02

发送方 通信模块
说明 返回服务端查询内容
开始标志 1byte,“_”
响应类型 2byte,RS
命令 3byte,SET
会话ID 6byte,服务器生成
内容长度 3byte,表示内容长度,ASCII数字表示
内容 操作命令码(2bytes)#/#

接收结果(1-接收成功,2-参数错误)

结束标志 2byte,\r\n(0x0D 0x0A)

示例:

_RS SET KX7l9t 006 01#/#1 <0x0D> <0x0A>

删除重传队列

发送方 服务器
说明 服务端收到设备上报带有重传序号的请求后后,回应设备让设备删除重传列表中的该条数据。
开始标志 1byte,“_”
报文长度 3byte,表示整个报文的总长度,ASCII数字表示
命令 3byte,DLB
会话ID 6byte,服务器生成
分隔符 1byte,“/”
参数 重传序号(通讯模块生成)
结束标志 2byte,\r\n(0x0D 0x0A)

示例:

_ 018 DLB 123456 / 56 <0x0D> <0x0A>