建议使用以下浏览器,以获得最佳体验。 IE 9.0+以上版本 Chrome 31+ 谷歌浏览器 Firefox 30+ 火狐浏览器
请选择 进入手机版 | 继续访问电脑版
设置昵称

在此一键设置昵称,即可参与社区互动!

确定
我再想想
选择版块

Lily_y

发帖: 76粉丝: 23

级别 : 版主

Rank: 7Rank: 7Rank: 7

发消息 + 关注

发表于2018-12-6 20:05:10 2128 5 楼主 显示全部楼层
[干货分享] 【开发者portal在线开发插件系列三】字符串 及 可变长度字符串

基础篇


基础场景见上面两个帖子,这里单独说明字符串和可变长度字符串的用法
话不多说,开始今天的演(表)示(演)
================我是“下方内容基本都是图,看图操作就好”的分隔线================
Profile和插件开发
添加一个string类型的属性:
image.png
在插件里添加一条数据上报消息:已添加一个messageId,值为0x02

image.png

再添加一个固定长度的字符串型字段,长度为6个字节
image.png
与profile里的属性关联起来
image.png
再添加一条数据上报消息:已添加一个messageId,值为0x03
image.png
再添加一个长度字段:
image.png
添加一个可变长度字符串,并关联长字段:
image.png
与profile里的属性关联起来:
image.png

最后部署插件即可。

调测:
注册一个新设备:
image.png
使用NB设备模拟器,绑定后上报数据:此处上报了4条数据,都是02开头的码流
image.png
查看设备历史数据:上报数据时,string字段使用ascii码进行解码(见本帖最后的总结)
image.png


再上报03开头的码流:
image.png
查看设备历史数据:
image.png

总结:
1)字符串类型的数据是按Ascii码进行编解码的,上报时将16进制码流转为对应字符(如21转为叹号!,31转为1,41转为A);下发命令时则反过来,把字符转为对应的16进制码流(如叹号!转为21,1转为31,A转为41)
2)可变长度字符串要关联长度字段,长度字段必须为int型
3)命令下发直接使用固定长度的字符串即可,下发的长度以实际下发数据为准
4)ASCII码表直接百度即可找到,使用16进制的标准表,不在标准表里的无法编解码。解码时(数据上报)如果解析出来的字符无法使用具体字符表示,如标题开始、正文开始、正文结束等,则使用\u+2字节码流值表示(例如01转为\u0001,02转为\u0002);有具体字符的则使用具体字符,详见本总结第1条。


附上部分ASCII码表:
image.png


更多精彩内容:

回复 举报
分享

分享文章到朋友圈

分享文章到微博

飞徐

发帖: 0粉丝: 0

级别 : 新手上路

Rank: 1

发消息 + 关注

发表于2019-1-16 14:12:50 沙发 显示全部楼层

我按照上面的操作,在编解码插件那里,不能实现可变长度的字符串字段的定义,是什么原因?

已经定义了关联的长度了

image.png


image.png

点赞 回复 举报

Lily_y

发帖: 76粉丝: 23

级别 : 版主

Rank: 7Rank: 7Rank: 7

发消息 + 关注

发表于2019-1-17 10:57:28 板凳 显示全部楼层
飞徐 发表于 2019-1-16 14:12 我按照上面的操作,在编解码插件那里,不能实现可变长度的字符串字段的定义,是什么原因?已经定义了关联的 ...

默认值写个0就可以点击了,新版本的有些差异

点赞1 回复 举报

飞徐

发帖: 0粉丝: 0

级别 : 新手上路

Rank: 1

发消息 + 关注

发表于2019-1-17 17:51:36 地板 显示全部楼层
Lily_y 发表于 2019-1-17 10:57 默认值写个0就可以点击了,新版本的有些差异

是,默认填写个0就好了,谢谢

点赞 回复 举报

AgentLite...

发帖: 3粉丝: 0

级别 : 新手上路

Rank: 1

发消息 + 关注

发表于2019-4-12 13:47:12 5# 显示全部楼层

版主,你好,按照你的流程去做,发现日志提示:

[CIG]Datareport get prptocol interpreter failed. platform can not find the matched plugin,but platform support to report binaryData without plugin.please verify that you have upload the matched plugin or not!, ManufactorId = 108d002930b24261b0f259f572ea3927, Model = SmokeDetector02。

请问这个问题应该怎么解决呢?


点赞 回复 举报

Dark_Sky

发帖: 90粉丝: 19

级别 : 注册会员

Rank: 2

发消息 + 关注

发表于2019-4-12 14:28:28 6# 显示全部楼层
AgentLite交叉编译 发表于 2019-4-12 13:47 版主,你好,按照你的流程去做,发现日志提示:[CIG]Datareport get prptocol interpreter failed. pl ...

插件没部署吧,看这个日志说没找到插件的意思

点赞 回复 举报

游客

您需要登录后才可以回帖 登录 | 立即注册