NB物联网之天翼物联(3)——初窥编解码插件(java开发物联网)
前言
電信的編解碼插件本意上是可以讓我們的開發(fā)更加靈活,但是你好歹把文檔寫明白啊。。。同時(shí)在正常的生產(chǎn)中我們的產(chǎn)品不可能只使用電信的模塊,有時(shí)甚至是客戶要求使用移動(dòng)還是電信的模塊,所以兼容性給我們的體驗(yàn)非常直觀!我們先不考慮兼容性問題,先把流程走通吧還是!
編解碼插件的兩種形式
1、線上編輯
當(dāng)大家剛看到線上編輯的時(shí)候內(nèi)心一定非常激動(dòng),想咋改咋改,而且看上去非常直觀,但是當(dāng)你真正用到這個(gè)頁(yè)面時(shí)估計(jì)會(huì)懵逼,在定義profile的時(shí)候相信你已經(jīng)發(fā)現(xiàn)了,字段類型只有int 和string類型,而且string類型是用ascii碼傳遞的,而在線編解碼工具規(guī)定,profile中字段是什么類型編解碼就必須使用什么類型去接受!總之,非常難用~~,不推薦大家使用!!
2、離線編解碼插件
離線編解碼插件活動(dòng)空間就比較大了,首先這個(gè)東西是一個(gè)jar包,當(dāng)設(shè)備有上傳信息的時(shí)候會(huì)調(diào)用你這個(gè)jar包中的一個(gè)接口,在接口內(nèi)部你可以任意操作,然后根據(jù)不同的上傳類型(根據(jù)解析16進(jìn)制碼流得出)傳到不同的profile 中的對(duì)應(yīng)的 service 中去(根據(jù)serviceId);下發(fā)也是同樣的道理!但是捏,電信不可能什么東西都讓你往他的服務(wù)器上傳的,所以需要人工審核!
總結(jié):華為官方的文檔是不推薦使用離線編解碼插件的,我們最開始也不太想用,太麻煩了,而且一旦修改就要現(xiàn)申請(qǐng),但是最后大家都沒研究透怎么使用在線編輯的方式,有能夠吃透的大神歡迎留言!
下載離線編解碼插件包包
如果你想在電信的文檔中找到這個(gè)編解碼插件的樣例估計(jì)會(huì)很難,首先它沒有一個(gè)明確的位置,其次電信網(wǎng)站非常卡點(diǎn)一下半天不動(dòng),所以我們是作者去華為的物聯(lián)網(wǎng)平臺(tái)文檔去找,果然他就在 這里!
這是一個(gè)java 的 maven項(xiàng)目,下載完成之后我們來一起看下它的結(jié)構(gòu)!
包包里有什么
如圖所示:
codeDemo里面有兩個(gè)文件夾,第一個(gè)文件夾是編解碼插件上傳格式,這里暫且不敘,等我們走到上傳的時(shí)候在詳細(xì)了解!
第二個(gè)文件夾中是項(xiàng)目,沒錯(cuò)就是它!直接導(dǎo)入!
正常的maven項(xiàng)目導(dǎo)入過程,不多說了。
導(dǎo)入完成,項(xiàng)目結(jié)構(gòu)如下圖所示
這個(gè)地方乍看上去是個(gè)普通的項(xiàng)目,其實(shí)很有講究喲!
沒想到,你是這么不正經(jīng)的包包
到了看項(xiàng)目結(jié)構(gòu)就要先了解一下編解碼插件包了,以下是上傳的編解碼插件包的要求:
1、產(chǎn)品已定義profile
2、插件包中應(yīng)存在package-info.json文件
3、package-info.json文件中bundles.bundleName的值應(yīng)為:‘設(shè)備類型-廠商Id-模型’
4、package-info.json文件中model的值與產(chǎn)品profile中的應(yīng)保持一致
5、package-info.json文件中deviceType的值與產(chǎn)品profile中的應(yīng)保持一致
6、package-info.json文件中manufacturerName的值與產(chǎn)品profile中的應(yīng)保持一致
7、package-info.json文件中packageType的值應(yīng)為’CIGPlugin’
8、package-info.json文件中version和bundleVersion的值應(yīng)保持一致
9、package-info.json文件中platform的值應(yīng)為’linux’
10、package-info.json文件中specVersion的值應(yīng)為’1.0’
11、package-info.json文件中應(yīng)有bundles字段值
12、package-info.json文件bundles.fileName的值應(yīng)為編解碼插件jar包中的./META-INF/MANIFEST.MF文件中[Bundle-Name的值]-[Bundle-Version的值].jar
13、package-info.json文件bundles.bundleVersion的值與編解碼插件jar包./META-INF/MANIFEST.MF文件Bundle-Version的值應(yīng)保持一致
14、package-info.json文件bundles.bundleName的值與編解碼插件jar包./META-INF/MANIFEST.MF文件Bundle-Name的值應(yīng)保持一致
15、插件jar包中的./META-INF/MANIFEST.MF文件中Bundle-Name與Bundle-SymbolicName的值應(yīng)保持一致
16、插件jar包中應(yīng)存在./META-INF/MANIFEST.MF文件
17、插件jar包中的./META-INF/MANIFEST.MF文件不應(yīng)包含Export_Package屬性
18、插件jar包中的./META-INF/MANIFEST.MF文件應(yīng)包含Bundle-Name
19、插件jar包中的./META-INF/MANIFEST.MF文件應(yīng)包含Bundle-Version
20、插件jar包中的./META-INF/MANIFEST.MF文件應(yīng)包含Bundle-SymbolicName
21、插件jar包中./OSGI-INF目錄下有且只有一個(gè)xml文件
22、在插件jar包中./OSGI-INF目錄下的xml文件中,scr標(biāo)簽應(yīng)包含name屬性,implementation標(biāo)簽應(yīng)包含class屬性,provide標(biāo)簽應(yīng)包含interface屬性
23插件jar包中./OSGI-INF目錄下的xml文件implementation標(biāo)簽的class屬性值應(yīng)與scr標(biāo)簽下的name屬性值保持一致
沒錯(cuò)足足有23條,那么我們?cè)鯓尤M足這23條要求呢? 請(qǐng)看下回分解。
總結(jié)
以上是生活随笔為你收集整理的NB物联网之天翼物联(3)——初窥编解码插件(java开发物联网)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 刘润-商业洞察力-过去有效,现在无效,怎
- 下一篇: NR PUCCH(一) PUCCH fo