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)——编写编解码插件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vs2008设置选中 高亮
- 下一篇: HDU 5128 The E-pang