1.创建onenet通信实例
at+miplcreate
返回:
+MIPLCREATE:0
OK
本指令用于创建一个 OneNet 通信实例, 返回值为本通信实例的 ID,当前只能创建一个,再创建会报错。
2.添加LWM2M对象
AT+MIPLADDOBJ=0,3200,1,"1",3,1
返回:
Ok
本指令用于添加 LWM2M 对象,第一个参数 0 是实例的ID;第二个参数 3303 是对象标识(温度传感器), 该对象是 LWM2M 协议里的objectID;第三个参数 2 表示实例数,该实例是后面参数要用的;第四个参数”11”是实例位图,如果第三个参数为 4,本参数为”11”,则表示实例ID为0和1的实例将被注册实例2和3 的实例将不会被注册,本例表示创建的两个实例都被注册;第五个参数4表示可读或者可写的资源的计数;第 6 个参数表示可执行资源的计数,2表示两个实例均可执行读或写。
3.向onenet发送订阅请求
AT+MIPLOPEN=0,3600
返回:
Ok
OK
+MIPLEVENT: 0,1
+MIPLEVENT: 0,2
+MIPLEVENT: 0,6
+MIPLOBSERVE: 0,267707
,1,3200,0,-1
第一个参数为通信实例的 ID; 第二个参数为改对象的存活期。
+MIPLOBSERVE: 0,267707,1,3200,0,-1
(第一个参数是onenet通信实例的ID,第二个参数数据包的消息标识符,第三个参数是对象标识ID)这些主动上报用于通知设备响应来自onenet平台的OBSERVE请求,设备应该在10s内(从主动上报开始计数)用AT+MIPLOBSERVERSP响应该请求。
4.订阅资源
AT+MIPLOBSERVERSP=0,267707
,1
返回:
OK
+MIPLDISCOVER: 0,5564
,3200
+MIPLDISCOVER: 0,5564,3200
发送成功之后,紧接着后面会发出:
+MIPLDISCOVER: 0,5564,3200
第一个参数为通信实例的 ID; 第二个参数为改对象的存活期。
+MIPLDISCOVER: 0,5564,3200(第一个参数是onenet通信实例的ID,第二个参数数据包的消息标识符,第三个参数是对象标识ID)这些主动上报用于通知设备响应来自onenet品台的DISCOVER请求,设备应该在10s内(从主动上报开始计数)用AT+MIPLDISCOVERREP响应该请求。
5.注册资源
AT+MIPLDISCOVERRSP=0,5564
,1,4,“5750”
返回:
OK
<ref> Basic communication suite instance index
<msgid> Message id
<result> the discover result
1 2.05 Content
11 4.00 Bad Request
12 4.01 Unauthorized
13 4.04 Not Found
14 4.05 Method Not Allowed
15 4.06 Not Acceptable
<length> Valuestring length
<valuestring> Object property requirements, comma partition,
6.通知属性变化
通知OneNet平台一个值的更改
AT+MIPLNOTIFY=0,103698
,3200,0,5750,1,5,“hello”,0,0 //资源上报
OK
<ref>基本通信套件实例索引
<objectid>消息id,最大值为0xffff-1
<instance id>对象实例id,最大值为0xffff-1
<resource id>对象实例资源id,最大值为0xffff-1
第六个数字:根据资源列表属性类型而定,如图:
1 String
2 Opaque
3 Integer
4 Float
5 Bool
第七个数字:<len>表示Resource data length(资源数据长度)
Bool=1;;
Integer=2或4或8;
Float length =4 或8;
当<valuetype>为String,长度为字符串的长度
第八个数字:<value>表示资源数据,资源数据和资源数据长度相匹配。
Integer/Float/Boolean 型的 <value>只能填同类型的文本,比如Boolean填 0和1, 不能填01
当<valuetype>为String,这个字符串应该用双引号标记。
第九个数字:<index>填0,0表示的意思是本地通知指令完成。
第十个数字:<flag>可填3种:0表示Last config file(最后一个配置文件)
1表示First config file(第一个配置文件)
2 表示Middle config file(中间的配置文件)
注:此命令只有订阅成功后才能使用。参数的定义都参照前面AT+MIPLREADRSP(读)的参数,唯一的改变就是第二位参数,是参考第一次订阅+MIPLOBSERVE:0,103854,1,3311,0,-1中的。
7.资源的读取
平台读 temperature sensor value 的值,+MIPLREAD 上报后需立即响应
+MIPLREAD: 0,5225
,3200,0,5750
at+miplreadrsp=0,5225
,1,3200,0,5750,5,1,1,0,0
OK
第一个第二个第四个第五个第六个数字根据+MIPLREAD反馈填写;
1)第三个数字<result>填1 :表示Content read success(内容读取成功)
2)第七个数字<valuetype>根据资源列表属性类型而定,如图:
a)1 String
b)2 Opaque
c)3 Integer
d)4 Float
e)5 Bool
3)第八个数字<len>表示Resource data length(资源数据长度)
a)Bool=1;;
b)Integer=2或4或8;
c)Float length =4 或8;
d)当<valuetype>为String,长度为字符串的长度
4)第九个数字<value>表示资源数据,资源数据和资源数据长度相匹配。
a)Integer/Float/Boolean 型的 <value>只能填同类型的文本,比如Boolean填 0和1, 不能填01
b)当<valuetype>为String,这个字符串应该用双引号标记。
以下模拟填写01和1各返回情况:
5)第十个数字<index>填0,0表示的意思是本地通知指令完成。
6)第十一个数字<flag>可填3种:0表示Last config file(最后一个配置文件)
1表示First config file(第一个配置文件)
2 表示Middle config file(中间的配置文件)
8.资源的写入
平台点击写入数据,模块端发出report命令+MIPLWRITE后,输入AT+MIPLWRITERSP=<ref>,<msgid>,<result>
如图所示:
输入的第一个<ref>和第二个数字<result>是根据+MIPLWRITE所反馈的第一二个数字进行填写。
7)第三个数字 Write resource result(编写资源的结果)
2 2.04 Changed
11 4.00 Bad Request
12 4.01 Unauthorized
13 4.04 Not Found
14 4.05 Method Not Allowed
15 4.06 Not Acceptable
注:资源的读与写具有一定的失效性,请在平台显示超时之前输入命令。
9.资源的删除
9.1发送注销请求
AT+MIPLCLOSE=0
+MIPLEVENT: 0,15
详细讲解如下:
<ref> onenet通信实例的ID
9.2删除LWM2M对象
AT+MIPLDELOBJ=0,3200
OK
详情如下:
<ref> onenet通信实例的ID
<objectid> Object id(LWM2M对象ID)
9.3删除onenet通信实例
AT+MIPLDELETE=0 //发送 AT+MIPLDELETE=0删除 0 号对象
OK
详细讲解如下:
<ref> onenet通信实例的ID
注意添加两个实例需要订阅两次
AT+MIPLOBSERVERSP=0,103854,1
返回:
OK
<ref> Basic communication suite instance index
<msgid> Message id
<result> Observe resource result
0 error
1 success
发完AT+MIPLOBSERVERSP=0,103854,1返回OK之后
因为之前添加添加LWM2M对象,第二个参数添加两个实例,需要订阅两次。
串口继续返回
+MIPLOBSERVE:0,169391,1,3311,1,-1
然后在10秒之内立刻返回
AT+MIPLOBSERVERSP=0,169391,1
当返回到OK的时候,即表示订阅成功;
发送成功之后,紧接着后面会发出:
+MIPLDISCOVER:0,38320,3311
第一个参数为通信实例的 ID; 第二个参数为改对象的存活期。
+MIPLDISCOVER:0,25313,3303 (第一个参数是onenet通信实例的ID,第二个参数数据包的消息标识符,第三个参数是对象标识ID)这些主动上报用于通知设备响应来自onenet品台的DISCOVER请求,设备应该在10s内(从主动上报开始计数)用AT+MIPLDISCOVERREP响应该请求。