NB物联网之天翼物联(5)——编写编解码插件
前言
之前的两篇将编解码插件的外围配置都已经交代明白,本篇将为大家讲解编解码插件的组成以及如何编写编解码插件!
ProtocolAdapterImpl 中的 encode And decode
在上一篇结尾,我们注意到一个细节,就是我们在配置文件中配置了一个路径,这个路径是一个java文件的路径,这时候我们就要注意了!这个文件一定不一般!!
这个文件就是ProtocolAdapterImpl.java,没错,事实证明这个文件就是我们的程序被调用的入口,而这个文件中有两个方法!打眼看过去我们就应该知道他们分别是干啥用的了~
encode
encode编码方法嘛!我们什么时候需要编码,按照我们前面讲的数据流向图(忘记请戳这里),当命令从应用流向设备的时候是需要从profile类型的json串转成16进制码流的,说以encode是编码方法!
decode
decode解码方法,当16进制码流从设备流向应用时应该先通过这里,将编码解码为profile中提前定义的json字符串!
具体结构
翠花~ 上码
package com.Huawei.NBIoTDevice.WaterMeter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.huawei.m2m.cig.tup.modules.protocol_adapter.IProtocolAdapter;
public class ProtocolAdapterImpl implements IProtocolAdapter {private static final Logger logger = LoggerFactory.getLogger(ProtocolAdapterImpl.class);// 厂商名称private static final String MANU_FACTURERID = "Huawei";// 设备型号private static final String MODEL = "NBIoTDevice";@Overridepublic String getManufacturerId() {return MANU_FACTURERID;}@Overridepublic String getModel() {return MODEL;}public byte[] encode(ObjectNode input) throws Exception {logger.info("dynamic lrbtest " + input.toString());try {CmdProcess cmdProcess = new CmdProcess(input);byte[] byteNode = cmdProcess.toByte();return byteNode;} catch (Exception e) {e.printStackTrace();return null;}}public ObjectNode decode(byte[] binaryData) throws Exception {try {ReportProcess lightProcess = new ReportProcess(binaryData);ObjectNode objectNode = lightProcess.toJsonNode();logger.info("dynamic lrbtest " + objectNode.toString());return objectNode;} catch (Exception e) {e.printStackTrace();return null;}}}
看到这里我们应该是可以在decode和encode方法中任意发挥了!
但是 !!!
请注意
还有一个坑!
// 厂商名称private static final String MANU_FACTURERID = "Huawei";// 设备型号private static final String MODEL = "NBIoTDevice";
MANU_FACTURERID 和 MODEL 千万不要忘记改!如果忘记改上传的时候它是不会提醒你滴!~
但是编解码编出来的东西乱七八糟!!!
如果按照正常的路数我们应该按照华为给定的结构去编写代码,如下:
即命令编码在 CmdProcess.java 类中编写,命令解码在 ReportProcess 类中编写,但是只有电信的NB平台是华为做的,如果和其他厂家兼容该怎样去做呢?欲知后事如何,且听下回分解!
NB物联网之天翼物联(5)——编写编解码插件相关推荐
- NB物联网之天翼物联(1)——电信NB平台到底有什么
前言 本人目前任职于一家仪表企业,最近接到了NB物联网表的项目.做下笔记,以便后续使用,同时发现网上关于NB对接平台的资料太少,于是将踩得坑跟大家分享! 我们起先做的移动NB表,异常之顺利,平台的接口 ...
- NB物联网之天翼物联(4)——配置编解码插件
前言 前面为大家介绍了编辑码插件的大体结构,本篇为大家详解怎么配置编解码插件上传包的参数! 向大家推荐如何做到电信NB与移动NB兼容 第23条"婚约" 编解码插件上传位置 上一篇结 ...
- java下发命令nbiot,NB物联网之天翼物联(3)——编解码插件上传规则细解(java开发物联网)...
前言 电信的编解码插件本意上是可以让我们的开发更加灵活,但是你好歹把文档写明白啊...同时在正常的生产中我们的产品不可能只使用电信的模块,有时甚至是客户要求使用移动还是电信的模块,所以兼容性给我们的体 ...
- NB物联网之天翼物联(2)——profile定义与使用
前言 前面大体讲了电信NB平台的一些概念,本篇就来接触一下电信NB的核心配置之一profile. profile 就是配置文件嘛!编解码插件就是编解我们与设备通讯使用的十六进制码流的东西. 向大家推荐 ...
- NB物联网之天翼物联(3)——初窥编解码插件(java开发物联网)
前言 电信的编解码插件本意上是可以让我们的开发更加灵活,但是你好歹把文档写明白啊...同时在正常的生产中我们的产品不可能只使用电信的模块,有时甚至是客户要求使用移动还是电信的模块,所以兼容性给我们的体 ...
- 共迎物联网万亿市场,中国电信“天翼物联开发者大赛”技术沙龙武汉站成功举行...
共迎物联网万亿市场,中国电信"天翼物联开发者大赛"技术沙龙武汉站成功举行 中国电信首届"天翼物联开发者大赛"技术沙龙已经先后走过华东(南京)和华中(武汉)两站, ...
- 天翼物联获2022年移动物联网“先进企业”
近日,由工信部指导.中国信通院等单位主办的"首届移动物联网大会"在无锡圆满落幕.天翼物联获2022年移动物联网"先进企业"奖. 今年,我国移动物联网终端用户16 ...
- 物联网开放平台全面赋能生态伙伴,电信“天翼物联开发者大赛”技术沙龙北京站如期举行...
物联网开放平台全面赋能生态伙伴,电信"天翼物联开发者大赛"技术沙龙北京站如期举行 [中国▪北京]12月7日,中国电信携手华北地区生态伙伴齐聚京城,共话物联网产业生态未来.本次沙龙以 ...
- 天翼物联携手6家单位发起移动物联网高质量发展共同倡议
近日,由工信部指导,中国信息通信研究院(以下简称"中国信通院").中国通信学会.无锡市人民政府.人民邮电报社.江苏省工业和信息化厅.江苏省通信管理局共同主办,无锡物联网创新促进中心 ...
最新文章
- 浅谈ASP.NET内部机制(五)
- 关于ORA-06508 , ORA-04068异常的详细说明
- JS组件系列——自己动手扩展BootstrapTable的 冻结列 功能:彻底解决高度问题
- JAVA知识基础(七):封装
- redis+lua现实游戏中的一些常用功能
- Finished, saving caches
- SAS中library是 excel引擎,LIBNAME STATEMENT
- oracle数据库处于recover,oracle数据库recover和restore的区别
- kubectl port-forward 踩坑记录
- 蒙特卡罗模拟赌徒人生
- win7 两台PC网线直连创建家庭组局域网分享文件
- 新版Android Studio(4.1.1 for Windows 64-bit)的安装教程(超详细)
- VUE-Vuetify框架
- scrapy自定义扩展(extensions)实现实时监控scrapy爬虫的运行状态
- 国仁网络资讯:抖音作品没有播放量怎么回事;账号被降权限流如何解决。
- 火爆全网的ChatGPT上手体验,文尾免费送账号!
- Conflux伍鸣:用DAG结构提升中本聪共识的吞吐率
- MATLAB实现最短路径
- 淘宝电商用户行为数据分析及可视化—基于MySQL/Power BI(含代码)
- Flutter Rive 多状态例子