指令状态变更通知队列
默认队列名称 : cmd-state-chg
消息发送者 : 企业应用
当终端指令状态发生以下状态变更时,企业应用应答构造CmdStateChange 消息对象,推送到此消息队列:
- 收到终端的应答
- 应答码为0时。此时
CmdStateChange.status应设置为TermCmd.CMD_STATUS__ACK。- 如果是特定的应答指令(如查询音视频资源指令的应答指令为终端上传音视频资源列表),则构造
JT1078AckParams_1205_QryAvResAck对象,填入CmdStateChanged.ackParams。
- 如果是特定的应答指令(如查询音视频资源指令的应答指令为终端上传音视频资源列表),则构造
- 应答码不为0时。此时
CmdStateChange.status应设置为TermCmd.CMD_STATUS__EXECUTE_FAILED。应答码填入CmdStateChanged.ackCode。
- 应答码为0时。此时
- 终端网关由于各种原因(如指令参数有误)不能完成对指令的编码时。此时
CmdStateChange.status应设置为TermCmd.CMD_STATUS__BAD_CMD - 终端发送应答,应答码不为0时。此时
CmdStateChange.status应设置为TermCmd.CMD_STATUS__EXECUTE_FAILED - 确认终端不在线时。此时
CmdStateChange.status应设置为TermCmd.CMD_STATUS__NO_CONNECTION。(企业应用可能不能准确确定终端是否不在线,这种情况下,可以不产生这种通知)。
如果企业应用不支持某个指令,忽略即可。
消息结构 (JSON)
| 属性 | 数据类型 | 必要 | 说明 |
|---|---|---|---|
| id | string | Y | 终端指令记录ID。 |
| reqTm | string | Y | 指令的请求时间,格式:yyyy-MM-dd HH:mm:ss。(对应 TermCmd 中的reqTm属性) |
| status | int | Y | 指令的新的状态:
status属性) |
| tm | string | Y | 指令状态的变更时间,格式:yyyy-MM-dd HH:mm:ss。 |
| initMsgId | string | Y | 下发指令时指令的消息号(对应 TermCmd 中的msgId属性) |
| subCmdTyp | string | 下发指令时指令的子命令类型(对应 TermCmd 中的subCmdTyp属性) | |
| msgSn | int | 下发指令时的消息流水号(对应 TermCmd 中的msgSn属性) | |
| simNo | string | Y | 下发指令时指令的终端识别号(对应 TermCmd 中的simNo属性) |
| ackMsgId | string | 终端应答自身的指令消息号,JT/T 808,JT/T 1078 指令消息号。仅当status == 2时有效 | |
| ackSeqNo | int | 终端应答自身的指令消息流水号。仅当status == 2时有效 | |
| ackCode | int | 终端应答的应答码。仅当status == 2且应答消息有应答码时有效。具体参见各指令说明 | |
| ackParams | object | 终端应答的数据内容。仅当status == 2且应答消息有应答内容时有效。具体参见各指令说明 |