2024年7月4日发(作者:)
图6-79 添加字段-可变长度数组
添加第一个字段,表示messageId。
图6-80 messageId 0x3
添加第二个字段,表示数组长度。
图6-81 length字段
添加第三个字段,表示描述信息。该字段数据类型为“variant(可变长度数组类
型)”,需要和length字段关联。
图6-82 other_info字段-可变长度数组
步骤 7 拖拽右侧Profile文件的属性,和数据上报消息的字段建立映射关系。
图6-83 数据上报消息映射关系2
步骤 8 点击右上角“部署”按钮,保存和安装编解码插件。
图6-84 部署插件
----结束
调测编解码插件
步骤 1 登录开发者平台,选择“我的设备”->“注册设备”,选择对应的Profile文件,填写
设备名称和验证码,注册设备。
图6-85 注册设备
步骤 2 选择“模拟器”->“NB设备模拟器”->“绑定设备”,填写验证码,绑定NB设备模
拟器。
图6-86 绑定NB设备模拟器
步骤 3 使用NB设备模拟器进行数据上报,码流以02开始,对应messageId为0x2的消息。
图6-87 数据上报-数组
步骤 4 在“我的设备”界面的设备列表中,选择上报数据的设备,查看“历史数据”。
针对数组类型,插件按照base64进行编解码。
图6-88 历史数据-数组
步骤 5 使用NB设备模拟器进行数据上报,码流以03开始,对应messageId为0x3的消息。
图6-89 数据上报-可变长度数组
步骤 6 在“我的设备”界面的设备列表中,选择上报数据的设备,查看“历史数据”。
图6-90 历史数据-可变长度数组
----结束
base64编码方式说明
base64编码方式会把3个8位字节(3*8=24)转化为4个6位字节(4*6=24),并在每
个6位字节前补两个0,构成4个8位字节的形式。如果要进行编码的码流不足3个字
节,则用0填充,使用0填充的字节经编码输出的字符为“=”。
base64可以将16进制码流当做字符或者数值进行编码,两种方式获得的编码结果不
同。以16进制码流01为例进行说明:
把01当作字符,不足3个字符,补1个0,得到010。通过查询ASCII码表,将
字符转换为8位二进制数,即:0转换为00110000、1转换为00110001,因此010
可以转换为(3*8=24)。再转换为4个6位字节:
001100、000011、000100、110000,并在每个6位字节前补两个0,得到:
00001100、00000011、00000100、00110000。这4个8位字节对应的10进制数分
别为12、3、4、48,通过查询base64编码表,获得M(12)、D(3)、E(4),由
于3个字符中,最后一个字符通过补0获得,因此第4个8位字节使用“=”表
示。最终,把01当做字符,通过base64编码得到MDE=。
把01当作数值(即1),不足3个字符,补两个0,得到100。将数值转换为8位
2进制数,即:0转换为00000000、1转换为00000001,因此100可以转换为
(3*8=24)。在转换为4个6位字节:000000、
010000、000000、000000,并在每个6位字节前补两个0,得到:00000000、
00010000、00000000、00000000。这4个8位字节对应的10进制数分别为:0、
16、0、0,通过查询base64编码表,获得A(0)、Q(16),由于3个数值中,最
后两个数值通过补0获得,因此第3、4个8位字节使用“=”表示。最终,把01
当作数值,通过base64编码得到AQ==。
总结
当数据类型为数组或可变长度数组时,插件是按照base64进行编解码的:上报数
据时,将16进制码流进行base64编码,比如:01编码为“AQ==”;命令下发
时,将字符进行base64解码,比如:“AQ==”解码为01。
当某字段的数据类型为可变长度数组时,该字段需要关联长度字段,长度字段的
数据类型必须为int。
针对可变长度数组,命令下发和数据上报的编解码插件开发方式相同。
在线开发的编解码插件使用base64进行编码时,是将16进制码流当做数值进行
编码。
6.5.5 命令执行结果的编解码插件在线开发
场景说明
有一款烟感设备(NB-IoT),具有如下特征:
具有烟雾报警功能(火灾等级)和温度上报功能。
支持远程控制命令,可远程打开报警功能。比如火灾现场温度,远程打开烟雾报
警,提醒住户疏散。
支持上报命令执行结果。
Profile开发
步骤 1 登录开发者平台,选择“Profile开发”->“Profile在线开发”->“自定义产品”,点击
右上角“+创建全新产品”。
在弹出窗口中,填写产品信息后,点击“确定”。
图6-91 创建全新产品
步骤 2 选择新创建的Profile文件,点击“新建服务”,配置设备的服务能力。
在命令中需要定义响应字段。
----结束
编解码插件开发
步骤 1 登录开发者平台,选择“插件开发”->“插件开发”->“开始设计”,点击右上角“+
新建插件”。在弹出框中,选择Profile文件,点击确定。
图6-92 选择Profile文件
Profile将在插件开发界面的右侧呈现。
图6-93 插件开发界面
步骤 2 点击“新增消息”,添加一条数据上报消息。
图6-94 添加数据上报消息
步骤 3 点击字段列表旁的“+”号,为数据上报消息添加字段。
图6-95 添加字段-报警和温度
添加第一个字段,表示messageId。
由于上行消息有两种,所以需要用messageId来标志消息种类。
图6-96 messageId 0x0
添加第二个字段,表示上报的火灾等级。
图6-97 level字段
添加第三个字段,表示温度:
图6-98 temperature字段1
步骤 4 拖拽右侧Profile文件的属性,和数据上报消息的字段建立映射关系。
图6-99 数据上报消息映射关系1
步骤 5 点击左侧“+新增消息”,添加一条命令下发消息。
在本场景中,设备会上报命令执行结果,需要勾选“是否添加响应字段”。
图6-100 添加命令下发消息
步骤 6 点击字段列表旁的“+”号,为命令下发消息添加字段。
添加messageId字段。如果设备仅支持一条命令,则可以不配置此字段。
图6-101 messageId字段 0x1
添加mid字段,用于将命令和命令执行结果进行关联。
图6-102 mid字段-命令
添加value字段,表示告警的开关。
图6-103 value字段
步骤 7 点击响应字段旁的“+”号,为命令执行结果添加字段。
添加messageId字段。命令执行结果为上行消息,需要通过messageId和数据上报
消息进行区分。
图6-104 messageId 0x2
添加errcode字段,用于表示命令执行结果。00表示成功,01表示失败,如果未
携带该字段,则默认命令执行成功。
图6-105 errcode字段
添加mid字段,用于将命令和命令执行结果进行关联。
图6-106 mid字段-命令执行结果
添加result字段。
图6-107 result字段
步骤 8 拖拽右侧Profile文件的属性,和数据上报消息的字段建立映射关系。
图6-108 建立映射关系
----结束
调测编解码插件
步骤 1 登录开发者平台,选择“我的设备”->“注册设备”,选择对应的Profile文件,填写
设备名称和验证码,注册设备。
图6-109 注册设备
步骤 2 选择“模拟器”->“NB设备模拟器”->“绑定设备”,填写验证码,绑定NB设备模
拟器。
图6-110 绑定NB设备模拟器
步骤 3 使用NB设备模拟器进行数据上报。
图6-111 数据上报
步骤 4 在“我的设备”界面的设备列表中,选择接收命令的设备,点击“命令下发
(>)”。
在弹出界面中,配置下发给设备的命令参数。
使用模拟器模拟设备,需要在上报数据后,立刻进行命令下发。
图6-112 命令下发
步骤 5 使用NB设备模拟器上报命令执行结果。
图6-113 上报命令执行结果
步骤 6 在“我的设备”界面的设备列表中,选择接收命令的设备,查看“历史命令”。
命令状态显示为“执行成功”。
图6-114 命令状态
----结束
总结
如果插件需要对命令执行结果进行解析,则必须在命令和命令响应中定义mid字
段。
命令下发的mid是2个字节,对于每个设备来说,mid从1递增到65535,对应码
流为0001到FFFF。
设备执行完命令,命令执行结果上报中的mid要与收到命令中的mid保持一致,
这样平台才能刷新对应命令的状态。
7
JDK支持的加密算法
摘要算法:
算法名称
MD
SHA
Hmac
算法
MD2
MD5
SHA-1
SHA-256
SHA-384
SHA-512
HmacMD5
HmacSHA1
HmacSHA256
HmacSHA384
HmacSHA512
摘要长度
128
128
160
256
384
512
128
160
256
384
512
备注
-
-
-
-
-
-
-
-
-
-
-
附录二
对称加密算法:
算法名称 密钥长度
DES 56
默认
56
工作模式
ECB、CBC、
填充方式
NoPadding、
备注
-
PCBC、CTR、
CTS、CFB、CFB8
到128、OFB、
OFB8到128
3DES
112、168
168
ECB、CBC、
PCBC、CTR、
CTS、CFB、CFB8
到128、OFB、
OFB8到128
ECB、CBC、
PCBC、CTR、
CTS、CFB、CFB8
到128、OFB、
OFB8到128
PKCS5Padding、
ISO10126Padding
NoPadding、
PKCS5Padding、
ISO10126Padding
-
AES
128、
192、256
128
NoPadding、
PKCS5Padding、
ISO10126Padding
256位密钥
需要获得无
政策限制权
限文件
非对称加密算法:
算法名称 密钥长度
DH
512~1024(
64倍数)
默认
1024
工作模式
无
填充方式
无
备注
-
以及Base64。
发布者:admin,转转请注明出处:http://www.yc00.com/news/1720034729a2759729.html
评论列表(0条)