|
该文件是中国移动物联网公司M5310-A芯片的MQTT使用指导
4 q, a% s! n3 b& W8 O中国移动
" t) k# S% X( s$ w$ q/ `7 cChina Mobie! y! C( w6 x* V$ R. {9 ]. d
M531MQT使用指导
9 Z. d/ k9 h& i关于文档' o' m$ u- e! _1 T1 g: M
文档中) f1 b: _. a% h; z& y
系列产品特指9 H: M& S+ w' o/ O
模组
6 q S: ?' Y! C+ d$ u7 ^更新记录
+ g- O. X! i: W/ i! aVersion2 B t, w$ r' i, W$ g
Date
' N' b: J3 P+ b+ L" v& U. cAuthor( U, b R9 J% F4 E
Description0 B4 K) `2 Z9 A2 \2 i. \
1.09 G2 d* q# b- X9 g) ?) q
2018-6-11
& o! _: B3 N' Z ], k$ F' q' y5 m杯紫微
& b% F! r' R2 v6 E- r首次创建
! q4 @5 B) W: g3 V9 [0 q1.1" d5 N* n7 L% ?. }2 w2 @- G7 W
2018-820
% t0 v# F$ r0 \+ t: m3 n1 V杯紫微
" F) ~" ]( ~# w# j V) {* z增加声明页,+ MQTTPUBLISH末尾增加rn
* d5 a8 x& t: @ N7 g5 C0 D1.2 J& i! O1 a+ {: X* t ?: S, t5 M
20189-12
! Z6 X( O& U/ Q- z杯紫微修正UR上报中的参数误
. _, z* |% l* h- F4 X- }3 D1.3. q G4 R9 h, c3 T {
2018-9-19
. {) L* ]/ g3 \杯紫微
! ]5 e% w' h+ V: B$ ]增加M531X系列描述;更改+ MQTTSUB返回值错误描述;更
, p! _5 }" W- K( T; _正+ MQTTPUB一处参数描述错误
% B2 ]' q+ Y$ I% J) o+ {8 P中国移动* c/ e! {! f5 Z2 r
hina mobile! z5 S6 u& ^- v; [
# I4 G+ H* J7 ?: x3 S( i' ^! x9 ~/ `+ W中国移动 [" q) p4 D- U p6 e% Y" z
China Mobie
+ i( b% T% T! F4 ~M531MQT使用指导
( ?1 |2 Z b: l! @Content" |0 u. ^' W1 Z/ [
1M531X系列 MQTT AT命令……# b% B: A. m" H$ |+ K! ^
:::::::::::::::·16 R/ [6 q! P s; P
1.1 AT+MQTTCFG..) e u+ E7 G: P
1.2 AT+MQTTOPEN..4 b& Q2 B5 Q: B( E- E _# O
1.3 AT+MQTTSTAT../ z( w5 a$ O \* }& f( e
1.4 AT+MQTTSUB....) K: H! Q: C% }# Q! `5 h
1.5 AT+MQTTPUB2 t1 U5 F! H2 i$ i
1.6 AT+MQTTUNSUB
7 N# i% u @. t4 r1.7AT+ MQTTD|SC……. N, L2 a1 i$ w' [* C9 |
1.8 AT+MQTTDEL............) S' q3 i9 d4 {
·::.:.:a::::::::a::a
# r: c: t" U* ~1.9 AT+MQTTTO
6 r9 |! r" X; ?7 f9 n1.10 AT+MQTTPING1 U3 o) r j; M' u4 o& T8 W* u
111 MQTT URC上报
4 X" [2 ?0 K+ h" j3 |' B6
, z9 @5 S; T) u( C2MQT使用例程+ {0 J5 j/ P) Y) u0 ^8 R# ]
21 MaTT client参数配置7 ]# n2 U( {% q4 X( [7 _
22连接-订阅-推送取消订阅.
( P; t$ j' d- s' G% {/ \- t2 y' z23断开连接-销毁参数配置
( Z% u2 g4 w- F. h2.4关于连接断开问题的说明.5 e& c7 _3 V {& q7 E- F. D
8
; g5 I/ [. o# C+ m; \' i. F4 F2 n: `9 c' m1 L6 m$ N
中国移动6 M1 p$ D5 O+ U- t* n
China Mobie9 n9 u; H3 l3 I: z- L; Y4 D' Z2 m
M531MQT使用指导; }0 x1 T; G' A' a! }
1M531X系列 MQTT AT命令- \' U1 B! |) I4 w1 h/ L
1.1! e! X1 k" ?; V( E/ x I: m4 w
作用该命令配置MTT连接参数! M1 T5 X& @( ^
设置命AT+ QTTCFG=host,port),,,cle& v8 x R; J a# ~1 z) |
an>[,< encrypt冫]
+ e y+ p7 n; ^- P# r3 e9 m返回|04 j" Z' M& C9 V. Q% Y! D2 `; n
读取命令AT+ QTTCFG?- T5 N A) M& k
AT+MQTTCFG: , port,, id,, keepAlive,, user>,x**xkk clea& @5 Z" ^/ t2 }& L" y
返回
" I* p' F. F4 H# E# x. D# G' kn), encrypt>; b0 B, g% o3 G4 I& z7 e
host, e' E8 S2 [1 S1 ]* |* H
qtt服务器IP或域名地址 a& h7 V1 l7 g+ ~4 W& t/ l1 x% S1 I
port
+ c$ ]2 s; Z7 R; V2 d* i% amqtt服务器端口
6 }8 r _8 V. S9 x+ D! R客户端ID, U2 ^5 ^, V- q& L! Z. d# g; p
eepAlive keepalive时间
7 G2 M( ^2 i: w1 {% s9 V& X参数说明4 a& u0 O% C1 _$ t1 M
user
! H0 o" z6 ~5 w0 j8 w5 [用户名& T! {/ ~ X: a% {7 l0 [
密码
0 B+ L, _5 k" R) Iclean( r4 T" T0 u1 i5 V6 i& E" q8 k
是否删除 session.1:删除;0:不删除0 O* E! c. }; M7 v- o4 D
encrypt是否开启TLS加密(M5310-A暂不支持该参数)! R \8 D" L7 w% C
举例, \8 L9 E0 A% s: ?7 \; ~
AT+ MQTTCFG-"183.230.40.39”,6002,"4069959”,60,"75829","IIOu0 oFUglguk20 ornTK1 uzAcoM",1
6 Z) S+ u+ _$ h6 m& \+ _OK: {- O# d3 k: B& `
+ MQTTCFG:"183.230.40.s9”,6002,"4069959",60,”75$ w9 u8 W. M6 ^: M/ }! C
K) Z. a# r( W/ W g' q
注意
3 y2 F% ^3 m+ G如果 keepAlive时间小于服务器ACK响应检测时间(通过AT+MQTT0设置),会出现 PINGREQ
2 p; t3 [: H% v! z# E5 _6 v7 P9 S检测不到断网的情况
* `" l% F( X( p Z( f5 P, j作用连接MQTT服务器
- T7 i( G q4 y' k( mAT+MQTTOPENESusrFlag,pwdFlag, wil flag>, wilIRetain,, willQ
2 z0 B1 ?, e5 @. D/ ]设置命令
: x6 {4 i; N; H" bOS
* }. Y5 ?3 z8 u4 V) b9 \W1' ?4 w8 }5 x+ j6 }
返回|OK( R/ k2 ], j) X% s+ [
usrF1ag该标志位被设置表示一个客户端需使用用户名0 P3 k5 m8 y- K& R. U
参数说明 pwd Iag该标志位被设置表示一个客户端需使用密码; i6 c# ]7 C; t4 a1 k7 Q
willflag被设置为1后,当服务器与客户端通信遇到1/0错误或, O2 Z m2 j# w1 S2 X2 f* F5 B% Y) d* C
* M W5 B1 G4 D! a2 \
中国移动0 L0 q/ i3 N. H' r
China Mobie- U0 L# A2 @- w
M531MQT使用指导! U" V! t/ i6 i: y4 \0 c
客户端没冇在一定时间计划内保持连接时,会发布一个2 a) H8 S/ S8 Y! ?1 a- V4 C' b3 U
message。服务器从客户端接收到 DISCONNECT消息时,
2 m& J+ h) \# u, L8 }3 X并不会触发服务器发送一条Wi1 message
: L6 c6 X2 b j+ l6 @willRetain当客户端意外的断开连接时,服务器是否应该保留被服
0 S3 ~! M' w9 ~+ U. M1 v4 A& ~务器发布的Wi1l7 C9 r* d' O T6 W" C4 M: `
willQos指定要发布的消息使用的QoS级别
# C0 d$ x# h* D% I) Xwill- topic Will message的主题名称' r8 f6 ]% K0 P- D: b! {% ?7 b
11消息体
9 V: x- B3 A s. t举例
- j/ O3 S' r- S+ L# kAT+ MQTTOPEⅤ-1,1,0,0,0,","//需要用户名密码(FG配置合令中设置),wi1不设置, P3 \: O: r$ q! Y( U
+MQTTOPEN: OK/ U3 J' ^4 V4 Q* m) F$ _( E9 v3 b
注意
6 o) p0 }( N5 H相关命令参数请参照QTTv3.1协议。当连接服务器失败(非密码验证错误)/ACK超付/数据
; C, ^0 E) [) j- Q发送失败/PING超时时会引起终端重连,重连数次失败后停止重连并会上报+ QTTDISC消息,
* f* U: Q& x. n7 L/ C* P2 O8 A之后是否重连由客户自行处理;
- N0 A& ~6 d/ e作用该命令查询QT连接状态0 L' H Z$ w7 R* O! y
查询命令A+ MQTTSTAT?
& j# y( \& D5 I$ Y( jMQTTSTAT: stat B# C- I) Z- i7 H3 T# f0 h* t
返回, {# \1 L y) m, f- M
Stat& z4 Z2 F8 v: F% f" m6 Z0 q
当前连接状态' h: r3 Q9 b6 f, F! m7 c$ I9 [/ l* Y
未初始化+ t& h' ^8 l' c6 \/ T" {% h5 L
L初始化
3 g' y$ s1 z1 O/ L已断开
% e. e2 Y c: Y% U( H$ c参数说明
7 `. k9 L$ r' o$ D! x发送 Connect包5 d( O& Q. ^1 P+ H8 b9 L
4; Z! q* c5 t7 u5 J' M! Q7 t
正在重连服务器: w! ~ I% p! d+ z% `- a2 [
已连接
+ T2 } n* f. @! o2 _6
# X4 H0 ?1 d* s1 T- P! at连接服务器中# m* J4 ]) X7 `8 z$ k; Z8 a
1.4. r' `6 a- w5 Y/ Z3 [' \& H- k
作用该命令订阅消息
9 D3 n* |7 Z, I6 Q k' G4 ]设置命令AT+ MQTTSUB=< topIc>,qos>[,< index M) d% F- a+ r5 _7 T9 ?0 @# M
返回|如果收到服务器订阅ACK信息,会收到LR
L. _. N, G: E: i0 q; ?! kMQTTSUBACK0 T& h/ D2 L" f
t
# q1 X/ Y; W% ?* E! ^1 k! Y- u% h9 o
中国移动" T+ H5 @5 U% L9 M: R7 O+ _7 w2 \& S
China Mobie' F" T# R A" ~: {3 O5 V' d
M531MQT使用指导
. \6 G5 T& U( S# w* A) ~& ]读取命令AT+ MQTTSUB?
2 h* J7 p8 i P# l u: tIQTTSUB
# \3 i. ^% `! j$ y3 o返回
8 @3 Q s& I3 G4 s- V5 _
& Q* }9 o* Q" e- t3 {# w H2 dtopic
0 H: [" o4 c# a! g7 Y订阅的主题
( ~2 k4 Q/ X2 |1 `订阅的消息交付质量等级,0-2
. Y; z5 s6 r8 }- |2 ?! x# i) kpackEd1 Y+ {, n* S5 D
数据包Id
, D4 [: k' T- | c: w. kindex5 c' g G4 l6 _0 S, Z
接收到 topic发布信息时的操作索引,日前仅支持0,从
& g9 h, j' w, ~& a- j. u+ X2 nAT口输出发布信息" y8 j. W9 c z
参数说明code
4 R9 o/ ?7 L ~, C0 y* o0 `( u服务器反馈码! p7 P9 C' z+ p% U* {) M
Maximum Qoso Success
5 J) j+ i# T" ^1 x$ V6 XMaximum QoS1 Success6 t, k E" U' {4 {9 B; _! k
0x023 h7 }8 J9 d+ Y, E7 O, \# J
Lx imum QoS2 Success3 n5 k* {+ S8 s+ N; t
0x804 _" ~. ]0 w( Q2 Y" ?
Failure
& T7 F% [. v% T0 z, r: hsubscribe list& {. e2 K( X+ Z: H" j
已订阅列表7 N2 H' h C2 E: C0 k( x
举例
* B% e+ |' j1 WAT+MQTtSUB-"dev/gsm/u, 22 b( l1 U3 X6 J+ U0 A
+MQTTSUBACK: 2, 2, dev/gsm/u
/ |$ l2 X$ O; K w4 bT+MQTTSIB?8 H3 e# g1 G1 a# b0 `3 s: D8 p
+MQTTSUB! T+ r/ ]& { Q E* v, }- M2 Q- t
dev/gsm/u
: m3 \+ h, D* e: Z中国移动/ o# U1 i6 t: v; k/ d$ c
①注意:
. o; h" e. L* v s y6 x3 `订阅消息,订阅成功后存入订阅列表,目前只支持一次增加一个订闶3 m% n! d+ {- L, N2 S7 r0 T3 ]/ W
1.5
F# k5 @! r* X3 k作用该命令发布消息5 V0 ?! U# r# B4 z3 j
设置命令AT+ MQTTPUB= topic>,qos>)< retain>,],< message! k+ c, k7 Q3 u& D b+ z& M
返回|03 t: ^7 |! _ d1 }; T
topic( a3 R6 ]9 Y. W6 x1 F
订阅的主题
) t& l! f7 j: v6 z* \& qqos
7 y- f0 L1 { N7 ~订阅的消息的QoS等级,支持0-2
6 E, F( @' s& E: ^retain; |- \5 K: F4 P0 K. s! I2 l& Q N, u
服务器是否储存该消息,并问新订阅者发送最新订阅消( n9 Q) ?" }' r) F9 D' N
参数说明3 l9 ]' E; ~+ r8 a$ v
重发标志,0-18 n- O- @) e$ a. z" G
msg len
- A7 G8 i8 Z, H3 Z- C" R6 ~& S输入消息类型,O-字符串输入,1-16进制串输入,缺省时
) z# L- b% x& G S+ f1 l为 mcssagc解析为字符串输入5 O/ T; M$ _+ p0 M/ N+ j7 C
message
& g9 K: T5 B+ S. I% F9 } A O消息内容) ]+ t# \8 w2 L; T9 P; v7 g. c/ M
9 [! Y! e( d+ o- g. e7 D- a中国移动! j! _/ C2 {3 ~- X: T
China Mobie
' r& K0 B! k$ v. [% g. bM531MQT使用指导
/ o- ]; s }+ i r举例
: q0 B- R9 d! ?8 Z( qAT+MQTTPUB-"dev/gsm/u", 2, 1, 0, 0, update message
$ t; x& f U7 r+MQTTPUbrEC: 10.0
) w. s& N+ F% D3 \& S+M1 QTTPUBCOMP:⊥0,0
9 ~0 {4 Q& k( i* oAT+MQTTPUB= dev/gsm/u, 2, 1, 0, 2, 1890( H0 e: g$ L. O" E
+MQITPUBREC: 11, 0
, }) a; K* o( ?$ E* }3 X+MQTTPUBCOMP: 11, 0
, D' N9 p$ v) G: n/ f注意
$ U" Z' w: L" `$ N1 o& k3 l川标志将被内部设置为0
! S1 x+ |. q2 }1.64 m* \ o' y! o- |+ P
作用该命令取消订阅5 g+ K0 p, Z" a9 P3 _6 @
设置命令AT+ MQTTUNSUB-< topic
w' J5 G0 L! {# [3 e9 t返回当收到服务器取消订阅ACE时,返回
7 |+ g6 B& F& O+ |% U6 `1 Q+MQTTUNSUBACK: packed>, topic>) k1 C4 Z: N: |
topic
- \: P: y2 d T3 n+ n$ v已订阅的主题
/ N! d. ?/ V! z参数说明
# c% x8 M: ?: e' [6 E' rpackⅠ
# G- w- x5 m- UId
0 r& N& ^: |/ R" w' j2 z( H' e数据包Id
9 w( n! E5 T( q举例; F D+ l+ L; [5 B' g) ]1 O1 o3 I
AT+MQTTLNSUB=dev/gsm/u: f+ I' W4 V, X2 ]
+MQTTUNSUBACK:8, dev/gsm/u
/ p2 D, I/ J. C+ @& Xhina mobile
; v8 c% Q3 ?1 w注意: A8 Z. {6 x8 n+ T2 [
>目前只支持一次取消一个订阅
( k2 `3 B! C( ^( d' k$ g作用该命令主动断开连接,并发送 DISCONNECT包
/ _5 a! _ u& {执行命令AT+ MQTTDISC
) R8 d4 u7 W" K' j& H3 C返回当连接断开后,返回+QTDc:表明连接已经断开" u! @8 q7 ]( R) Y) l$ {
当前连接未建立时使用该命令返回+ CME ERROR:37 I' d, B# c l, G( z
举例
/ [, W S* U0 d& B0 VAT+MQTTDISC
" n% c2 G) Y# Z! F$ \7 B+MQtTDISC: OK9 @' H# ]# A: s
3 h! e% b7 e+ F& B* E- c5 d3 V中国移动
4 D. O: U" T5 y) Q+ e! g* ~4 ^China Mobie& H, N; X+ k( i C* l
M531MQT使用指导
$ l3 Y1 Q4 V/ n. u6 C$ l" V作用该命令刖除MQT客户端实例,并释放资源
, L% h+ N: v) f+ A执行命令AT+ MQTTDET
) K+ _4 |) M# l6 y/ e1 D返回|0k: n+ `: M& k1 X4 N
举例
7 L. k1 R! z) V0 lAT+MOTTDEL$ Y8 |% @; B G0 I% X
OK* I a1 {8 `: u
作用该命令设置ACK超时时间,应配置小于 keepalive时间" N: r" j/ |- c9 S; k; G. ]
设置命令AT+MQmT0< timeout) Z+ o1 R9 C/ E, l) t
返回0K
" {& Z- ^3 H! N h: X3 k5 H自动上报+QTT:type. s% G" O1 L% f7 x6 o! r" H7 _8 _
timeout5 j) e* l: N5 |0 n+ m2 k
超时时间,如果终端在超时时间内未收到服务器ACK,则
/ b$ f) D {/ D- c会上报+ MQTTTO,默认10s
- g0 y3 u# P5 y* Ztypc4 v! t) j$ ~- j1 V
超时类型! D7 x3 e d- N2 V2 n
连接超时
+ R6 K4 r x5 K6 P0 ?参数说明
9 S% T& k) [ |0 L* ]23456
! N8 V1 w$ Q8 a6 |PHR a mobile2 a; d8 h; h5 P+ q {1 ]( @) R
发布' a9 o- [" f% ] d6 c" v
订阅响% x$ Z3 l2 p0 y8 w8 L' I' L
取消订阅响应超时
3 q- T' V6 S& j. `5 ?/ `ping超时$ [1 I- ?" L( k/ f' x: {
未知类型" t1 g+ r. {6 A! `3 ] _0 P1 R; }
作用该命令设置运行心跳包ACK显示,当未检测到服务器ACK时会引起重连
9 V! P5 k1 t$ E6 h7 ?设置命令AT+ MQTTPING=< pecHo
9 b0 a' _3 B: |4 \) C. z返回OK
2 S# P$ I5 G, f9 \' b7 S3 y参数说明 reecho是否回显+ IQTTPINGRSP消息,默认为0) p; G o! \8 Z% x+ g6 o9 N
举例:+ ?; _; n: q! \6 F
+MQTTPI\GRSP: OK- F- J/ k5 l9 b* \, a3 l; S1 A
开启回显时如果收到png包响应结果$ ~$ [0 @/ r0 z7 R0 C1 N
MQTTPI\GRSP: OK+ K* H# x; t1 O$ F# ?" ~
* t. ?* ` i' p6 m
中国移动- F/ u. z" e$ o$ |( V9 r
China Mobie
0 g2 M9 B( k0 DM531MQT使用指导& Z& F3 W8 r% S+ N+ ?; C
上报
0 m8 ]; q1 q5 Y' x1 `5 l% I1 Y. t- f4 @描述MQTT相关命令LRC自动上报9 S. |5 [! v/ C* a
e +MQTTPUBLISH: dup,, gos>,retained>,, topic>, msg; w- K' m, U4 f! I2 Y
len>,
4 B0 d* w# b7 |1 f1 I( A,(topic)7 {/ o6 b. w/ Y- h, s' f
code响应值如下
/ v- U; l) o: p! u5 ~7 E9 c0x00 h( k* U0 u* U" g. k3 s0 [
Maximum QoSo subscribe Success/ G4 Y; m Y4 w$ t; g' e, ?
OxO5 u" e: G9 t, U. W- B1 e
Maximum QoSI subscribe Success8 U- c3 j" I, d/ k4 V- ?+ U
0x02
% g0 q& f$ c& b) eMaximum Qos2 subscribe Success
' q. q! R6 g0 C# V( b消息订阅时的服务器ACK消息上报/ x \/ A- E, k! v* j5 o. x
0 +MQTTPUBACK: packEd>,
0 [ F6 A8 H( B) {0 u2 L' ?QoS1模式下消息发布响应ACK上报, packEd为包序号% g' `1 M# S3 U6 U7 O
O +MQTTPLBREC: packEd>, ( _" ~( K* S4 u& X' e2 u
Qos2模式下的发布响应2
- F( g6 O3 V! C6 o2 Q返回& j; m9 A( {! c1 e
0 +MQTTPUBREL: packEd),
4 m/ _+ Q; ]7 ^$ x5 sQos2模式下的发布响应3# q+ [+ ~2 J N' x( H# H/ g% R
移多/ f- ?) ?$ s3 L; G
0 +MQTTPLBCOMP: < packld>, (dup)% C p3 Y/ E0 F. \3 N. M
Qos2模式下的发布响应4(1ast)
; y; r6 R2 P$ }; X8 ^! x●+ MQTTPINGRSP:0K
3 l* A# a' D" n5 P9 g4 {客户端ping包ACK,可以通过AT- MOTTPING命令设置是否主动上
* q/ _( a* N9 w( c$ l报5 e. W1 {+ P" @2 P6 O
MQTTUNSUBACK: < packld>,
( ^4 g+ V3 M+ M取消订阅ACK主动上报
% r x) Q" l+ ?+ ~ [●+ MQTTT0: |
|