NB物联网之天翼物联(5)——编写编解码插件

简介: 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";
    @Override
    public String getManufacturerId() {
        return MANU_FACTURERID;
    }
    @Override
    public 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 千万不要忘记改!如果忘记改上传的时候它是不会提醒你滴!~

但是编解码编出来的东西乱七八糟!!!

如果按照正常的路数我们应该按照华为给定的结构去编写代码,如下:

image.png

即命令编码在 CmdProcess.java 类中编写,命令解码在 ReportProcess 类中编写,但是只有电信的NB平台是华为做的,如果和其他厂家兼容该怎样去做呢?欲知后事如何,且听下回分解!

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
11月前
|
安全 物联网
阿里云产品体系分为6大分类——物联网——分为7类——物联安全
阿里云产品体系分为6大分类——物联网——分为7类——物联安全自制脑图
120 1
|
编解码 物联网 测试技术
NB物联网之天翼物联(7)——一次性通过电信NB平台自助测试
NB物联网之天翼物联(7)——一次性通过电信NB平台自助测试
NB物联网之天翼物联(7)——一次性通过电信NB平台自助测试
|
编解码 JSON 物联网
NB物联网之天翼物联(6)——移动电信NB的区别与兼容开发
NB物联网之天翼物联(6)——移动电信NB的区别与兼容开发
NB物联网之天翼物联(6)——移动电信NB的区别与兼容开发
|
编解码 Java 物联网
NB物联网之天翼物联(4)——配置编解码插件
NB物联网之天翼物联(4)——配置编解码插件
NB物联网之天翼物联(4)——配置编解码插件
|
27天前
|
存储 安全 物联网
未来技术纵横谈:区块链、物联网和虚拟现实的革新之路
在科技不断进步的今天,新兴技术正以前所未有的速度改变着我们的生活和工作方式。本文将深入探讨区块链、物联网(IoT)以及虚拟现实(VR)这三项技术的发展趋势与潜在应用场景,揭示它们如何塑造一个更加智能、互联和沉浸式的未来世界。通过对这些技术的综合分析,我们旨在提供一个全面的视角,以理解它们在未来社会结构中的重要性及影响。
23 7
|
12天前
|
存储 供应链 物联网
未来技术纵横谈:区块链、物联网与虚拟现实的融合革新
【4月更文挑战第7天】 在数字化浪潮推动下,新兴技术如区块链、物联网(IoT)和虚拟现实(VR)正不断重塑我们的工作、生活方式及商业模式。本文将深入探讨这些技术的发展趋势,以及它们如何相互交织,共同构建一个更加智能、互联和沉浸式的未来世界。区块链技术以其不可篡改的数据记录和去中心化特性,为安全性和透明度设立了新标准;物联网通过使设备智能化和网络化,推动了自动化和效率的飞跃;而虚拟现实则在娱乐、教育和医疗等领域开辟了前所未有的交互体验。文章还将剖析这些技术在实际应用中的案例,展示它们如何联合起来推动创新。
11 0
|
14天前
|
存储 安全 物联网
未来技术的融合与创新:区块链、物联网和虚拟现实的新趋势
【4月更文挑战第5天】 随着科技的不断发展,新兴技术如区块链、物联网和虚拟现实等正在逐渐改变我们的生活和工作方式。这些技术不仅在各自的领域取得了显著的进展,而且开始相互融合,为未来的应用提供了无限的可能性。本文将探讨这些新兴技术的发展趋势和应用场景,以及它们如何共同推动技术创新和社会进步。
|
16天前
|
存储 边缘计算 物联网
关于物联网的技术与概念
关于物联网的技术与概念
24 4
|
21天前
|
安全 物联网 区块链
未来技术的融合潮流:区块链、物联网与虚拟现实的革新之旅
随着科技的不断进步,新兴技术如区块链、物联网(IoT)和虚拟现实(VR)等正在重塑我们的世界。本文将深入探讨这些技术的发展趋势和潜在应用场景,揭示它们如何相互交织,共同推动第四次工业革命的浪潮。区块链技术以其独特的去中心化特性和不可篡改的数据记录能力,为安全性和透明度树立了新标准;物联网通过智能设备和传感器的广泛部署,实现了现实世界与数字世界的无缝对接;而虚拟现实则在沉浸式体验上开辟了前所未有的空间。这些技术的融合预示着一个更加智能、互联和互动的未来。
|
24天前
|
供应链 安全 物联网
未来交织:区块链技术、物联网与虚拟现实的融合革新
随着技术的迅猛发展,新兴技术如区块链、物联网(IoT)和虚拟现实(VR)正在重塑我们的世界。本文将深入探讨这些技术的发展趋势,并分析它们在不同应用场景中的融合与创新。区块链提供的安全性和去中心化特征,物联网实现的智能设备互联,以及虚拟现实创造的沉浸式体验,三者结合预示着一个高度自动化、安全和交互性极强的未来。从金融到医疗,从教育到娱乐,这些技术的结合将推动多个行业的变革。

相关产品

  • 物联网平台