前言
前面大体讲了电信NB平台的一些概念,本篇就来接触一下电信NB的核心配置之一profile。
profile 就是配置文件嘛!编解码插件就是编解我们与设备通讯使用的十六进制码流的东西。
profile的定义
每一个service包含属性和命令两部分
属性对应的是上传的数据,我们定义好规则之后,上传的16进制码流会根据我们定义的规则拆分到指定的service的 属性列表 中的 属性 中,生成一个json传递给我们的应用;
命令对应的是下发的数据,我们定义好规则之后,下发的json(下发命令字段 中的 属性 的键值对)根据我们定义好的规则将json转换成16进制码流传递到设备上;
如上图所示:
我们定义了一个名字为CommandService的服务,这个服务是专门用来下发命令的,应为我需要下发的命令单一,所以只定义了一个Send命令,这个命令中有一个value属性,类型是string类型的,长度是500,然后定义了一个叫做response的响应命令字段(其实并没有看出来有什么用,可以不定义)。
我理解的数据流向
16进制码流
profile
16进制码流
profile
对应到profile属性上
设备
profile封装工具
平台
编解码插件
应用-根据配置文读取数据
profile
profile
16进制码流
profile
16进制码流
应用
平台
profile封装工具
设备
编解码如上图所示:profile封装工具根据我们配置好的profile属性将设备上传的16进制码流拆解到对应的profile,同时当有命令下发时,将应用传来的profile转换成相应的16进制码流。
与编解码插件的联系
理论上当我们将profile定义完成之后我们就确定了编解码插件的编解码规则,所以我们后面的工作就有了理论基础。
最后,要吐槽一下电信的编解码插件,太麻烦了!修改编解码插件需要申请,文档写的太不清晰,兼容性比较差,应为我们先做了移动nb,考虑到兼容性问题我们做了透传的模式,就是我们自己开发的应用下发的是16进制码流,表具上来的数据也是16进制码流,这样我们不管是移动还是电信都可以用一套规则去解析,换言之解析码流和生成码流的工作应该交给终端应用去做,有着方面需求的小伙伴一定要看下去哟!