跳到主要内容
版本:4.0.0

指令状态变更通知队列

默认队列名称 : 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
  • 终端网关由于各种原因(如指令参数有误)不能完成对指令的编码时。此时 CmdStateChange.status 应设置为 TermCmd.CMD_STATUS__BAD_CMD
  • 终端发送应答,应答码不为0时。此时 CmdStateChange.status 应设置为 TermCmd.CMD_STATUS__EXECUTE_FAILED
  • 确认终端不在线时。此时 CmdStateChange.status 应设置为 TermCmd.CMD_STATUS__NO_CONNECTION 。(企业应用可能不能准确确定终端是否不在线,这种情况下,可以不产生这种通知)。

如果企业应用不支持某个指令,忽略即可。

消息结构 (JSON)

属性数据类型必要说明
idstringY终端指令记录ID。
reqTmstringY指令的请求时间,格式:yyyy-MM-dd HH:mm:ss。(对应 TermCmd 中的reqTm属性)
statusintY指令的新的状态:
  • 1: 已下发
  • 2:终端已应答
  • -1:执行异常
  • -2:指令格式不正确,无效格式,服务器无法下发
  • -3:指令不支持
  • -4: 用户取消
  • -5: 终端不在线
  • -6: 超时
(对应 TermCmd 中的status属性)
tmstringY指令状态的变更时间,格式:yyyy-MM-dd HH:mm:ss
initMsgIdstringY下发指令时指令的消息号(对应 TermCmd 中的msgId属性)
subCmdTypstring下发指令时指令的子命令类型(对应 TermCmd 中的subCmdTyp属性)
msgSnint下发指令时的消息流水号(对应 TermCmd 中的msgSn属性)
simNostringY下发指令时指令的终端识别号(对应 TermCmd 中的simNo属性)
ackMsgIdstring终端应答自身的指令消息号,JT/T 808,JT/T 1078 指令消息号。仅当status == 2时有效
ackSeqNoint终端应答自身的指令消息流水号。仅当status == 2时有效
ackCodeint终端应答的应答码。仅当status == 2且应答消息有应答码时有效。具体参见各指令说明
ackParamsobject终端应答的数据内容。仅当status == 2且应答消息有应答内容时有效。具体参见各指令说明