版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、前 言概述本文檔針對(duì) NB-IoT 業(yè)務(wù),從準(zhǔn)備工作、自定義設(shè)備模型、編插件開(kāi)發(fā)、應(yīng)用接入、設(shè)備接入及消息上下行等方法流程進(jìn)行了介紹。本文檔提供了 NB-IoT 業(yè)務(wù)設(shè)備接入的指導(dǎo)。讀者對(duì)象本文檔主要適用于以下工程師:開(kāi)發(fā)工程師技術(shù)支持工程師工程師符號(hào)約定在本文中可能出現(xiàn)下列標(biāo)志,它們所代表的含義如下。符號(hào)說(shuō)明用于警示緊急的情形,若不避免,將會(huì)導(dǎo)致或嚴(yán)重的人身。用于警示潛在的情形,若不避免,可能會(huì)導(dǎo)致死亡或嚴(yán)重的人身。用于警示潛在的情形,若不避免,可能會(huì)導(dǎo)致中度或輕微的人身。用于傳遞設(shè)備或環(huán)境安全警示信息,若不避免,可能會(huì)導(dǎo)致設(shè)備損壞、數(shù)據(jù)丟失、設(shè)備性能降低或其它不可預(yù)知的結(jié)果?!白⒁狻辈簧婕?/p>
2、人身 。由中國(guó)電信公司提出并歸口。起草:中國(guó)電信物聯(lián)網(wǎng)開(kāi)放符號(hào)說(shuō)明用于突出重要/關(guān)鍵信息、最佳實(shí)踐和小竅門(mén)等。“說(shuō)明”不是安全警示信息,不涉及人身、設(shè)備及環(huán)境傷害信息。目 錄前 言ii目 錄11 概述功能組網(wǎng)介紹1整體業(yè)務(wù)介紹1業(yè)務(wù)測(cè)試接入流程2準(zhǔn)備工作4獲取測(cè)試環(huán)境賬號(hào)4創(chuàng)建 APP 應(yīng)用7NB-IoT 參數(shù)設(shè)置8開(kāi)發(fā) Profile10Profile 介紹10登錄開(kāi)發(fā)者 Portal10開(kāi)發(fā) Profile104 開(kāi)發(fā)編插件并安裝134.1 編插件介紹134.2 開(kāi)發(fā)者 Portal插件開(kāi)發(fā)134.2.1 登錄開(kāi)發(fā)者 Portal134.2.2完成插件開(kāi)發(fā)134.3 離
3、線開(kāi)發(fā)編插件..4開(kāi)發(fā)編插件16編插件質(zhì)檢16對(duì)插件包進(jìn)行離線簽名16上傳公鑰及簽名后的插件包185 應(yīng)用接入. 登陸應(yīng)用19訂閱19設(shè)備.2. 19. 20有應(yīng)用服務(wù)器設(shè)備無(wú)應(yīng)用服務(wù)器設(shè)備5.4 設(shè)置設(shè)備信息206 設(shè)備接入. 22設(shè)備接入22設(shè)備上線23真實(shí)設(shè)備23模擬設(shè)備23業(yè)務(wù)數(shù)據(jù)上報(bào)和業(yè)務(wù)消息下發(fā)流程25接收設(shè)備上報(bào)的數(shù)據(jù)257.2 向設(shè)備發(fā)送消息. 27命令下發(fā)1命令立即下發(fā)18.2 命令緩存下發(fā). 3功能4910 測(cè)試環(huán)境測(cè)試410.1 測(cè)試申請(qǐng). 410.2 開(kāi)放測(cè)試411 生產(chǎn)環(huán)境接入511.1
4、賬號(hào)申請(qǐng) . 511.2 生產(chǎn)環(huán)境接入512 參考文檔6中國(guó)電信物聯(lián)網(wǎng)開(kāi)放中國(guó)電信物聯(lián)網(wǎng)開(kāi)放中國(guó)電信物聯(lián)網(wǎng)開(kāi)放編庫(kù)開(kāi)發(fā)與升級(jí)指南6API 參考 1.3.16北向 PI Java SDK 說(shuō)明文檔61概述1.1 功能組網(wǎng)介紹在設(shè)備側(cè),智能設(shè)備采用了 NB-IOT,它和中國(guó)電信物聯(lián)網(wǎng)開(kāi)放之間通過(guò)CoAP 協(xié)議通訊。CoAP 報(bào)文的 payload 里是設(shè)備的應(yīng)用數(shù)據(jù)。應(yīng)用 server 通過(guò) http/https 協(xié)議和通訊,通過(guò)調(diào)用的開(kāi)放 API 來(lái)控制設(shè)備,平臺(tái)把設(shè)備上報(bào)的數(shù)據(jù)推送給應(yīng)用服務(wù)器。標(biāo)準(zhǔn)的 json 格式數(shù)據(jù)。支持對(duì)設(shè)備數(shù)據(jù)進(jìn)行協(xié)議,轉(zhuǎn)換成圖1-1 組網(wǎng)圖1
5、.2 整體業(yè)務(wù)介紹NB-IOT 主要包含 NB 設(shè)備、NB-IOT 網(wǎng)絡(luò)、中國(guó)電信物聯(lián)網(wǎng)開(kāi)放用:、垂直行業(yè)應(yīng)NB-IOT 設(shè)備:通過(guò)無(wú)線網(wǎng)絡(luò)連接到中國(guó)電信物聯(lián)網(wǎng)開(kāi)放表、燃?xì)獗淼?。,采?CoAP 協(xié)議接入,NB-IOT 網(wǎng)絡(luò):實(shí)現(xiàn)對(duì) NB-IoT 終端的移動(dòng)性管理與會(huì)話管理;為 NB-IoT 終端建立用戶(hù)面承載,傳下行業(yè)務(wù)數(shù)據(jù)。中國(guó)電信物聯(lián)網(wǎng)開(kāi)放:實(shí)現(xiàn)對(duì)各種 NB-IoT 設(shè)備數(shù)據(jù)的管理,同時(shí)向第用系統(tǒng)開(kāi)放接口,讓各種應(yīng)用能快速構(gòu)建自己的物聯(lián)網(wǎng)業(yè)務(wù)。應(yīng)垂直行業(yè)應(yīng)用:實(shí)現(xiàn)對(duì) NB 設(shè)備的業(yè)務(wù)管理,包括業(yè)務(wù)、業(yè)務(wù)控制和呈現(xiàn)等,由第基于中國(guó)電信物聯(lián)網(wǎng)開(kāi)放開(kāi)放接口進(jìn)行開(kāi)發(fā)。1.3 業(yè)務(wù)測(cè)試接入流程為客
6、戶(hù)接入測(cè)試便 化,制定了如下的測(cè)試接入流程:2準(zhǔn)備工作2.1 獲取測(cè)試環(huán)境賬號(hào)申請(qǐng)客戶(hù)或電信政企經(jīng)理登錄“天翼物聯(lián)請(qǐng)。2.1.1”填寫(xiě)開(kāi)放測(cè)試賬號(hào)申圖2-1 查找并進(jìn)入圖2-2 點(diǎn)擊服務(wù)選擇“聯(lián)調(diào)服務(wù)申請(qǐng)”圖2-3 完成表格填寫(xiě)并提交圖2-4 賬號(hào)申請(qǐng)通過(guò)后,收到賬號(hào)和初始-結(jié)束申請(qǐng)客戶(hù)或者電信政企經(jīng)理登錄“天翼物聯(lián)測(cè)試賬號(hào)申請(qǐng)。2.1.2”()填寫(xiě)開(kāi)放圖2-5 登錄選擇“聯(lián)調(diào)服務(wù)申請(qǐng)”圖2-6 完成表格填寫(xiě)并提交圖2-7 賬號(hào)申請(qǐng)通過(guò)后,收到賬號(hào)和初始-結(jié)束2.2 創(chuàng)建 APP 應(yīng)用登錄中國(guó)電信物聯(lián)網(wǎng)開(kāi)放初次登錄需要修改初始對(duì)接測(cè)試環(huán)境 SP Portal(。)。圖2-8 SP Portal
7、選擇【應(yīng)用管理】-【應(yīng)用】點(diǎn)擊右上角“+創(chuàng)建應(yīng)用”。典型的 NB-IoT 應(yīng)用的參數(shù)設(shè)置可參考如下設(shè)置:所屬行業(yè):公用事業(yè)(NB-IoT)關(guān)聯(lián) API 包:基礎(chǔ) API 包和公用事業(yè)(NB-IoT) API 包能力:必須設(shè)置為規(guī)則引擎數(shù)據(jù)時(shí)間:7(此為默認(rèn)值,可修改)。超過(guò)了數(shù)據(jù)時(shí)間的設(shè)備歷史數(shù)據(jù)將不再保存,即 1 條設(shè)備歷史數(shù)據(jù)只能在上保存 7 天(以默認(rèn)值為例)。服務(wù)器:與規(guī)則引擎配合使用,可以在指定條件下通過(guò)服務(wù)器給指服務(wù)器。定。服務(wù)器可以選擇經(jīng)支持的服務(wù)器之一,也可以選擇第郵件服務(wù)器:與規(guī)則引擎配合使用,可以在指定條件下通過(guò)郵件服務(wù)器發(fā)送郵件給指定。服務(wù)器可以選擇經(jīng)支持的服務(wù)器之一,也
8、可以選擇第服務(wù)器。CA:用于消息推送場(chǎng)景,需要上傳應(yīng)用服務(wù)器的 CA。如果訂閱的回調(diào)地址是 HTTPs 地址,就需要上傳。文件限制為不超過(guò) 1M 的 PEM 格式文件;中國(guó)電信物聯(lián)網(wǎng)開(kāi)放預(yù)制了 7 個(gè) CA 機(jī)構(gòu)頒發(fā)的,如果對(duì)接的第應(yīng)用的證書(shū)在這 7 個(gè)之中,則不需要上傳到,否則需要在 IoT 中進(jìn)行上傳。7 個(gè)名稱(chēng)分別為CA baltimore、digicert、entrust、geotrust、globalsign、wte、verisign。說(shuō)明消息推送場(chǎng)景下,是客戶(hù)端,應(yīng)用是服務(wù)端,調(diào)用應(yīng)用的接口給應(yīng)用推送消息。應(yīng)用需要實(shí)現(xiàn)消息推送的接口(只實(shí)現(xiàn)應(yīng)用需要用到的消息推送接口即可)。當(dāng)?shù)?應(yīng)
9、用通過(guò)HTTP 對(duì)接中國(guó)電信物聯(lián)網(wǎng)開(kāi)放是需要把接收消息 IP 地址(即回調(diào) IP 地址)發(fā)給中。,不需要上傳 CA,但支撐,將 IP 添加到白圖2-9 創(chuàng)建應(yīng)用創(chuàng)建 APP 成功后,得到應(yīng)用 ID 和應(yīng)用密鑰,請(qǐng)保存。-結(jié)束2.3 NB-IoT 參數(shù)設(shè)置點(diǎn)擊已經(jīng)創(chuàng)建好的應(yīng)用,并對(duì) NB-IoT 參數(shù)進(jìn)行設(shè)置。圖2-10已創(chuàng)建應(yīng)用圖2-11NB-IoT 設(shè)置NB-IoT 設(shè)置下的省電模式,應(yīng)與受理的 APN 對(duì)應(yīng)的模式保持一致。根據(jù)設(shè)置的省電模式及參數(shù)來(lái)決定離線命令下發(fā)給終端的方式。應(yīng)用下發(fā)控制命令時(shí)可以選擇立即下發(fā)或緩存下發(fā),但在不同省電模式下,其表現(xiàn)形式不同。省電模式選擇為 PSM 模式:當(dāng)
10、命令為緩存下發(fā)時(shí),將收到的下發(fā)命令緩存,等設(shè)備上報(bào)數(shù)據(jù)時(shí),按順序?qū)⒕彺媪钊肯掳l(fā);當(dāng)命令為立即下發(fā)時(shí),將收到的下發(fā)命令立即下發(fā),如果此時(shí),設(shè)備處于 PSM 態(tài),設(shè)備將不能收到下發(fā)命令,設(shè)備處于激活態(tài)或空閑態(tài)將能否收到下發(fā)命令。省電模式選擇 DRX 模式:當(dāng)命令為緩存下發(fā)時(shí),將收到的下發(fā)命令緩存,按順序?qū)⑹盏降南掳l(fā)命令立即下發(fā),設(shè)將緩存令全部下發(fā);當(dāng)命令為立即下發(fā)時(shí),備能夠收到命令。省電模式選擇 eDRX 模式:當(dāng)命令為緩存下發(fā)時(shí),將收到的下發(fā)命令緩存,按順將收到的下發(fā)命令立即下發(fā),序?qū)⒕彺媪钊肯掳l(fā);當(dāng)命令為立即下發(fā)時(shí),設(shè)備能夠收到命令。說(shuō)明當(dāng)省電模式選擇 eDRX 模式時(shí),eDRX 周期的設(shè)
11、置需要與網(wǎng)絡(luò)側(cè)的一致,請(qǐng)聯(lián)系中國(guó)電信物聯(lián)網(wǎng)開(kāi)放支持獲取參數(shù)配置數(shù)據(jù)。-結(jié)束3開(kāi)發(fā) Profile3.1 Profile 介紹設(shè)備的 Profile 文件是一款設(shè)備是什么、能做什么以及如何控制該設(shè)備的文件。每款設(shè)備都需要一個(gè) Profile 文件。一個(gè)Profile 文件的內(nèi)容主要包括兩部分,一部分是設(shè)備的基礎(chǔ)屬性信息,如manufacturerId(廠商 ID)、manufacturerName(廠商名字)、deviceType(設(shè)備類(lèi)型)、m(設(shè)備型號(hào))、protocolType(協(xié)議類(lèi)型)等;另一部分是設(shè)備的服務(wù)信息,這一部分定義了設(shè)備的業(yè)務(wù)數(shù)據(jù),包括設(shè)備上報(bào)的上行數(shù)據(jù)和廠商服務(wù)器下發(fā)給設(shè)
12、備的下行數(shù)據(jù)。3.2 登錄開(kāi)發(fā)者 Portal開(kāi)發(fā)者 Portal 支持開(kāi)發(fā) Profile;對(duì)開(kāi)發(fā)完成的 Profile 也支持導(dǎo)出和導(dǎo)入。請(qǐng)使用章節(jié) 2.1 獲取到的賬號(hào)和登錄開(kāi)發(fā)者 Portal。如果初始已經(jīng)修改,請(qǐng)用修改后的登錄。開(kāi)發(fā)者 Portal 地址:3.3 開(kāi)發(fā) Profile請(qǐng)參考開(kāi)發(fā)者 Portal 使用指導(dǎo)完成 Profile 開(kāi)發(fā)。開(kāi)發(fā)者 Portal 使用指導(dǎo)http:/地址:/downloadZone/downloadZones.html大致開(kāi)發(fā)步驟如下:登錄開(kāi)發(fā)者 portal-Profile 開(kāi)發(fā)-Profile開(kāi)發(fā)-自定義產(chǎn)品-創(chuàng)建全新產(chǎn)品-填寫(xiě)設(shè)備類(lèi)型、設(shè)備
13、型號(hào)、廠商 ID、廠商名稱(chēng)、協(xié)議類(lèi)型,點(diǎn)擊確定(如下圖所示)再根據(jù)設(shè)備的功能和業(yè)務(wù)場(chǎng)景添加服務(wù),每個(gè)服務(wù)下可以增加屬性(上報(bào)的數(shù)據(jù))和命令(下發(fā)令,命令必須有字段),如下圖所示:一個(gè)設(shè)備可以有多個(gè)服務(wù):開(kāi)發(fā)的 profile 可以導(dǎo)出成 profile 資源包,然后上傳到其他 IoT圖所示:上使用。導(dǎo)出方法如下4開(kāi)發(fā)編插件并安裝4.1 編插件介紹NB-IoT 設(shè)備和中國(guó)電信物聯(lián)網(wǎng)開(kāi)放之間采用 CoAP 協(xié)議通訊,CoAP 消息的數(shù)據(jù)為應(yīng)用層數(shù)據(jù),應(yīng)用層數(shù)據(jù)的格式由設(shè)備廠商自行定義。由于 NB-IoT 設(shè)備對(duì)省電要求通常較高,所以應(yīng)用層數(shù)據(jù)一般采用二進(jìn)制格式。應(yīng)用層數(shù)據(jù)電信物聯(lián)網(wǎng)開(kāi)放做協(xié)議時(shí),會(huì)
14、轉(zhuǎn)換成的 json 格式,以方便應(yīng)用服務(wù)器使用。要實(shí)現(xiàn)二進(jìn)制消息與 json 格式消息的轉(zhuǎn)換功能,中國(guó)電信物聯(lián)網(wǎng)開(kāi)放需要使用設(shè)備廠商提供的編插件。一款設(shè)備對(duì)應(yīng)一個(gè)編插件。開(kāi)發(fā)編插件有兩種方式:方式一:開(kāi)發(fā)者 Portal插件開(kāi)發(fā)。此方式實(shí)現(xiàn)了化的開(kāi)發(fā),開(kāi)發(fā)復(fù)雜度低;適用于二進(jìn)制消息和 json 格式消息不需經(jīng)過(guò)計(jì)算,直接相互轉(zhuǎn)換的場(chǎng)景;但并不適用于二進(jìn)制消息和 json 格式消息需要計(jì)算后再轉(zhuǎn)換的場(chǎng)景。方式二:離線開(kāi)發(fā)編用于全部場(chǎng)景。插件。使用 Java 語(yǔ)言開(kāi)發(fā),開(kāi)發(fā)復(fù)雜度相對(duì)方式一更高,適開(kāi)發(fā)者 Portal登錄開(kāi)發(fā)者 Portal插件開(kāi)發(fā)請(qǐng)使用章節(jié) 2.1 獲取到的賬號(hào)和登錄開(kāi)發(fā)者 Po
15、rtal。如果初始已經(jīng)修改,請(qǐng)用修改后的登錄。開(kāi)發(fā)者 Portal 地址:完成插件開(kāi)發(fā)請(qǐng)參考開(kāi)發(fā)者 Portal 使用指導(dǎo)完成 Profile 開(kāi)發(fā)。4.2.2開(kāi)發(fā)者 Portal 使用指導(dǎo)http:/大致開(kāi)發(fā)步驟如下:地址:/downloadZone/downloadZones.html登錄開(kāi)發(fā)者 portal-插件開(kāi)發(fā)-插件開(kāi)發(fā)(子菜單)-開(kāi)始設(shè)計(jì)-新建插件-選擇 Profile(請(qǐng)等待 profile 加載完成后再選擇對(duì)應(yīng) profile)-點(diǎn)擊確定可以瀏覽器在右側(cè)看到 profile 中定義的屬性和命令點(diǎn)擊新增消息按鈕,定義一條數(shù)據(jù)上報(bào)消息(消稱(chēng)可自定義):根據(jù)業(yè)務(wù)設(shè)計(jì),一條碼流可以被
16、分成幾段,每一段碼流代表不同的業(yè)務(wù)數(shù)據(jù),將需要上報(bào)的碼流段提取出來(lái),做為 profile 屬性值上報(bào)給,再推送給應(yīng)用。一條碼流可以上報(bào)多個(gè)服務(wù)下的多個(gè)屬性,也可以只上報(bào)一個(gè)服務(wù)的一個(gè)或者多個(gè)屬性。命令下發(fā)則與數(shù)據(jù)上報(bào)相反,是把命令字段的值取出來(lái)放入碼流中。而一個(gè)命令下的參數(shù)值只能放到一條下發(fā)命令的消息中。具體操作和詳細(xì)開(kāi)發(fā)過(guò)程請(qǐng)直接參考。開(kāi)發(fā)者 Portal 支持完成的插件,后的插件并過(guò)簽名;當(dāng)需要將從開(kāi)發(fā)者 Portal的插件部署到生產(chǎn)環(huán)境時(shí),請(qǐng)將插件包簽名后和公鑰(參考章節(jié) 4.3.3和 4.3.4)一起通過(guò)中國(guó)電信物聯(lián)網(wǎng)開(kāi)放支持部署到生產(chǎn)環(huán)境。4.3 離線開(kāi)發(fā)編插件4.3.1 開(kāi)發(fā)編插件
17、插件開(kāi)發(fā)可參編國(guó)電信物聯(lián)網(wǎng)開(kāi)放編庫(kù)開(kāi)發(fā)與升級(jí)指南文檔,文檔詳細(xì)介紹了需要實(shí)現(xiàn)的 4 個(gè)接口,同時(shí)附帶了樣例代碼。4.3.2 編插件質(zhì)檢編插件的質(zhì)檢是檢測(cè)編是否能夠正常使用的關(guān)鍵步驟,請(qǐng)參照編插件檢查工具說(shuō)明,來(lái)進(jìn)行操作。工具地址:http:/attent/174/中國(guó)電信物聯(lián)網(wǎng)開(kāi)放編插件檢測(cè)工具.zip4.3.3 對(duì)插件包進(jìn)行離線簽名當(dāng)編插件開(kāi)發(fā)完后,在安裝到之前,需要先對(duì)插件包進(jìn)行簽名。此時(shí)需要下載離線簽名工具并進(jìn)行簽名操作。操作步驟如下:步驟 1步驟 2使用瀏覽器登錄 SP Portal。離線簽名工具。1.單擊左側(cè)圖標(biāo),打開(kāi)管理頁(yè)面。2.單擊左側(cè)導(dǎo)航欄“工具”,在右側(cè)區(qū)域單擊“”,離線簽名
18、工具。在路徑找到壓縮包“signtool.zip”,右鍵菜單中選擇“Extract to signtool”解壓縮至文件夾“signtool”。步驟 3步驟 4進(jìn)入 signtool 文件夾,運(yùn)行“signtool.exe”。操作界面如下所示。圖4-1 離線簽名工具步驟 5 生成數(shù)字簽名公私鑰對(duì)。3.根據(jù)實(shí)際情況選擇簽名算法。目前提供兩種簽名算法:ECDSA_256K1+SHA256RSA2048+SHA256設(shè)置“私鑰加密口令”??诹顝?fù)雜度說(shuō)明:口令長(zhǎng)度至少為 6 個(gè)字符口令必須包含如下至少兩種字符的組合:至少一個(gè)小寫(xiě)字母至少一個(gè)大寫(xiě)字母至少一個(gè)數(shù)字至少一個(gè)特殊字符:!#$%&*()-_=+
19、|;:,/?和空格單擊“生成公私密鑰”,在彈出的窗口中選擇需要保存的目錄,單擊“確定”??稍诒4娴哪夸浵虏榭瓷傻墓矫荑€文件。公鑰文件:public.pem4.5.私鑰文件:private.pem步驟 6對(duì)包進(jìn)行數(shù)字簽名。離線簽名工具只能對(duì).zip 格式的壓縮包進(jìn)行數(shù)字簽名。包數(shù)字簽名”區(qū)域,單擊“導(dǎo)入私鑰文件”,選擇步驟 5.3 中生成的私鑰6.在“文件,單擊“打開(kāi)”。7.8.在彈出的框中,輸入步驟 5.2 中設(shè)置的口令,單擊“確定”。在“需要數(shù)字簽名的開(kāi)”。包”區(qū)域,選擇需要進(jìn)行數(shù)字簽名的包。單擊“打9.單擊“進(jìn)行數(shù)字簽名”。包所在目錄生成名為“_signed.簽名成功后,在原包?!钡膸?/p>
20、簽名的步驟 7包簽名驗(yàn)證。10.在“包簽名驗(yàn)證”區(qū)域,單擊“導(dǎo)入公鑰文件”,選擇步驟 5.3 中生成的公鑰文件,單擊“打開(kāi)”。11.在“需要驗(yàn)簽的包”區(qū)域,選擇步驟 6 中生成的名為“_signed.”的帶簽名的包。單擊“打開(kāi)”。12.單擊“進(jìn)行包驗(yàn)簽”。驗(yàn)證成功則彈出“驗(yàn)證簽名成功!”提示框。驗(yàn)證失敗則彈出“驗(yàn)簽異常!”提示框。-結(jié)束4.3.4 上傳公鑰及簽名后的插件包編插件化能夠動(dòng)態(tài)的新增編庫(kù),這樣新增設(shè)備接入時(shí),只需要把對(duì)應(yīng)的編解碼庫(kù)動(dòng)態(tài)導(dǎo)入到,就能夠兼容新增的設(shè)備。請(qǐng)將公鑰以及簽名后的插件包發(fā)送給中國(guó)電信物聯(lián)網(wǎng)開(kāi)放置。支持,由中國(guó)電信完成公鑰和簽名后的插件包的上傳配5 應(yīng)用接入5.1
21、登陸應(yīng)用為了防止應(yīng)用接入中國(guó)電信物聯(lián)網(wǎng)開(kāi)放,應(yīng)用首先需要進(jìn)行登陸陸成功后獲取令牌(acsToken)。登錄驗(yàn)證時(shí)使用章節(jié) 2.2 創(chuàng)建 APP應(yīng)用時(shí)獲取的 ap和 secret 進(jìn)行鑒權(quán)。登錄應(yīng)用的 API 描述請(qǐng)參Java 語(yǔ)言 SDK 使用的接口請(qǐng)參國(guó)電信物聯(lián)網(wǎng)開(kāi)放API 參考 1.3.1章節(jié) ;國(guó)電信物聯(lián)網(wǎng)開(kāi)放北向 API Java SDK 說(shuō)明文檔章節(jié) 4.1.1,樣例代碼請(qǐng)參考章節(jié) 8.2 的AuthenticationTest.java。如果多次獲取令牌,則之前的令牌失效, 最后一次獲取的令牌才有效。牌。并發(fā)獲取令5.2 訂閱為了能接受設(shè)備上報(bào)的數(shù)據(jù),應(yīng)用服務(wù)器需要向中國(guó)電信物聯(lián)網(wǎng)
22、開(kāi)放訂閱通知消息。訂閱成功后,設(shè)備上報(bào)數(shù)據(jù)時(shí),中國(guó)電信物聯(lián)網(wǎng)開(kāi)放設(shè)置的 callbackurl 上。會(huì)將數(shù)據(jù)推送到訂閱時(shí)訂閱的 API 描述請(qǐng)參國(guó)電信物聯(lián)網(wǎng)開(kāi)放API 參考 1.3.1章節(jié) ;Java 語(yǔ)言 SDK 使用的接口請(qǐng)參國(guó)電信物聯(lián)網(wǎng)開(kāi)放北向 API Java SDK 說(shuō)明文檔章節(jié) 4.3.5,樣例代碼請(qǐng)參考章節(jié) 8.2 的DollectionTest.java。設(shè)備 有應(yīng)用服務(wù)器設(shè)備所有設(shè)備需要先在北向進(jìn)行,才允許連接到。通過(guò)設(shè)備,會(huì)為每個(gè)設(shè)備分配一個(gè)唯一的標(biāo)識(shí) deviceId,后續(xù)應(yīng)用操作這個(gè)設(shè)備時(shí)都通過(guò) deviceId 來(lái)指定設(shè)備。另外,還返回 psk 參數(shù)(
23、如果用戶(hù)未指定 psk 參數(shù),會(huì)隨機(jī)分配一個(gè)參數(shù)),南向設(shè)備綁定時(shí),如果設(shè)備與之間走 DTLS 加密通道,則須用到該參數(shù),請(qǐng)保存。在 SP portal 上也可以通過(guò) deviceId 來(lái)找到設(shè)備。設(shè)備的 API 描述請(qǐng)參國(guó)電信物聯(lián)網(wǎng)開(kāi)放API 參考 1.3.1章節(jié) ;Java 語(yǔ)言 SDK 使用的接口請(qǐng)參國(guó)電信物聯(lián)網(wǎng)開(kāi)放北向 API Java SDK 說(shuō)明文檔章節(jié) 4.2.1,樣例代碼請(qǐng)參考章節(jié) 8.2 的DeviceManagementTest.java。verifyCode 和 nodeId 需要填寫(xiě)為設(shè)備唯一標(biāo)識(shí);高通設(shè)備的唯一標(biāo)識(shí)為urn:imei:xx 為 IMEI 號(hào);海思設(shè)備的
24、唯一標(biāo)識(shí)為 IMEI 號(hào),其他種類(lèi)的設(shè)備唯一標(biāo)識(shí)請(qǐng)聯(lián)系模組廠商確認(rèn);IMEI 的值請(qǐng)參考 6.1 設(shè)備接入一節(jié)。timeout 建議填寫(xiě)為 0。5.3.2 無(wú)應(yīng)用服務(wù)器設(shè)備無(wú)應(yīng)用服務(wù)器情況下,廠商可以用開(kāi)發(fā)者 portal 的應(yīng)用模擬器來(lái)進(jìn)行設(shè)備的便廠商進(jìn)行聯(lián)調(diào)開(kāi)發(fā)。方登錄開(kāi)發(fā)者 portal-設(shè)備-設(shè)備-選擇需要設(shè)備的 Profile(即選擇一款設(shè)備模型)-填寫(xiě)設(shè)備名稱(chēng)和設(shè)備標(biāo)識(shí),點(diǎn)擊按鈕即可使用開(kāi)發(fā)者 portal設(shè)備時(shí),已完成了設(shè)備和設(shè)置設(shè)備信息兩個(gè)步驟。5.4 設(shè)置設(shè)備信息這一步是為了把設(shè)備的廠商、型號(hào)、設(shè)備類(lèi)型等信息設(shè)置到需要這些信息。,在處理過(guò)程中設(shè)置設(shè)備信息的 API 描述請(qǐng)參;
25、Java 語(yǔ)言 SDK 使用的接口請(qǐng)參國(guó)電信物聯(lián)網(wǎng)開(kāi)放API 參考 1.3.1章節(jié)國(guó)電信物聯(lián)網(wǎng)開(kāi)放北向 API Java SDK 說(shuō)明文檔章節(jié) 4.2.4,樣例代碼請(qǐng)參考章節(jié) 8.2 的DeviceManagementTest.java。NB-IoT 業(yè)務(wù)場(chǎng)景下 manufacturerId、manufacturerName、deviceType、m、protocolType 5 個(gè)字段都必須進(jìn)行設(shè)置,并且設(shè)置的值要與 profile 中定義的值保持一致。6 設(shè)備接入6.1 設(shè)備接入設(shè)備上電后,使用串口工具配置設(shè)備,按照如下AT命令順序執(zhí)行即可:使用用非加密端口接入時(shí),只需要使用原生的 CoA
26、P 協(xié)議進(jìn)行傳輸,同時(shí)將對(duì)接可。設(shè)置為 5683 即電信物聯(lián)網(wǎng)開(kāi)放APN 如下圖所示:AT 命令說(shuō)明AT+CMEE=1報(bào)錯(cuò)查詢(xún)AT+CFUN=0關(guān)機(jī),設(shè)置 IMEI 和IP 端口前要先關(guān)機(jī)AT+CGSN=1查詢(xún) IMEI,IMEI 即為設(shè)備標(biāo)識(shí),應(yīng)用設(shè)備時(shí)nodeId/verifyCode 都需要設(shè)置成 IMEIASETID=1,xx 為 IMEI。如果查詢(xún)不到可自行設(shè)置 IMEI,IMEI 必須是唯一的,不能與其他設(shè)備重復(fù),且只能設(shè)置一次。IMEI 即為設(shè)備標(biāo)識(shí),應(yīng)用調(diào)用 API設(shè)備時(shí),如果設(shè)備使用的是海思nodeId/verifyCode 都需要設(shè)置成 IMEI,如果設(shè)備使用的是高通芯片
27、nodeId/verifyCode 都需要設(shè)置成 urn:imei:IMEI。AT+NCDP=15,5684設(shè)置對(duì)接的IP 端口,5683 為非加密端口,5684 為加密端口AT+CFUN=1開(kāi)機(jī)AT+NBAND=5設(shè)置頻段AT+CGDCONT=1,IP,CTNB設(shè)置網(wǎng) APN,APN 與設(shè)備的休眠、?;畹饶J接嘘P(guān),需要與運(yùn)營(yíng)商確認(rèn)。電信物聯(lián)網(wǎng)開(kāi)放APN 見(jiàn)下方的圖表。AT+CGATT=1入網(wǎng)AT+CGPADDR獲取終端 IPAT+NMGS=2,0001發(fā)送上行數(shù)據(jù),第 1 個(gè)參數(shù)為字節(jié)數(shù),第 2 個(gè)參數(shù)為上報(bào)的 16 進(jìn)制業(yè)務(wù)碼流AT+NQMGR接收下行數(shù)據(jù)AT+NMGR數(shù)據(jù)設(shè)備上線真實(shí)設(shè)備
28、完成這一步時(shí),設(shè)備已經(jīng)可以接入到功接入到。配置好網(wǎng)絡(luò),開(kāi)啟設(shè)備,觀察設(shè)備是否成登陸開(kāi)發(fā)者 Portal,在設(shè)備列表頁(yè)面,查看設(shè)備狀態(tài),字段設(shè)備 ID 即為在第三步里設(shè)備時(shí)生成的設(shè)備 ID,狀態(tài)字段表示設(shè)備的狀態(tài),如果狀態(tài)是(online)表示設(shè)備已經(jīng)成功的接入到,接著就可以接收設(shè)備的數(shù)據(jù)。圖6-1 查看設(shè)備列表6.2.2 模擬設(shè)備聯(lián)調(diào)過(guò)程中也可用設(shè)備模擬器來(lái)輔助驗(yàn)證。登錄開(kāi)發(fā)者 portal,選擇模擬器-NB 設(shè)備模擬器-綁定設(shè)備,在彈出的(即設(shè)備標(biāo)識(shí)、IMEI),點(diǎn)擊確定即可。框中輸入綁定成功后就可以直接使用設(shè)備模擬器發(fā)送業(yè)務(wù)碼流。設(shè)備數(shù)據(jù)上報(bào)并成功后可以在開(kāi)發(fā)者 portal-備詳情-歷史
29、數(shù)據(jù)中查看設(shè)備數(shù)據(jù):設(shè)備-點(diǎn)擊要查看的設(shè)備進(jìn)入設(shè)7 業(yè)務(wù)數(shù)據(jù)上報(bào)和業(yè)務(wù)消息下發(fā)流程7.1 接收設(shè)備上報(bào)的數(shù)據(jù)圖7-1 上行消息處理流程IoT上行消息COAP消息,得到payload查找對(duì)應(yīng)的編插件設(shè)備數(shù)據(jù)上報(bào)通知e輸出:payload應(yīng)前面已經(jīng)講到應(yīng)用向訂閱數(shù)據(jù)上報(bào)通知消息。設(shè)備上報(bào)數(shù)據(jù)時(shí),會(huì)把數(shù)據(jù)推送給應(yīng)用訂閱的地址上。T3.3.5:9999/app/notifyBody:notifyType: deviceDatasChanged, requestId: null,deviceId: b8b92cc7-2622-4f27-a24b-041ab26f0b80, gatewayId: b8b9
30、2cc7-2622-4f27-a24b-041ab26f0b80, serv:答響應(yīng)步驟1. de輸入:pay輸出:Jso步驟2. encod輸入:json數(shù)據(jù)APP server編插件codeload n數(shù)據(jù)UE上面消息里的 servi的Brightness, Electricity 及 Temperature 服務(wù)數(shù)據(jù)就是經(jīng)過(guò)編插件出來(lái)的,其為標(biāo)準(zhǔn) json 格式的數(shù)據(jù),字段和產(chǎn)品設(shè)備模型定義的一致。serviceId: Brightness, serviceType: Brightness, data: brightness: 50,eventTime: 20170214T170220Z
31、,serviceId: Electricity, serviceType: Electricity,data:voltage: 218 90001,current: 800,frequency: 50.1,erfactor: 0.98,eventTime: 20170214T170220Z,serviceId: Temperature, serviceType: Temperature, data: temperature: 25, eventTime: 20170214T170220Z7.2 向設(shè)備發(fā)送消息圖7-2 下行消息處理流程消息查找對(duì)應(yīng)的編插件步驟3. en輸入:json格輸出:二進(jìn)
32、組裝成COAP報(bào)文發(fā)送給UE命令結(jié)果上報(bào)步驟4. decode輸入:二進(jìn)制消息輸出:json格式消息上報(bào)通知應(yīng)用向設(shè)備發(fā)送消息使用“1.2.4 信令傳送”接口,請(qǐng)參API 參考 1.3.1。國(guó)電信物聯(lián)網(wǎng)開(kāi)放Java 語(yǔ)言 SDK 使用的接口請(qǐng)參國(guó)電信物聯(lián)網(wǎng)開(kāi)放北向 API Java SDK 說(shuō)明文檔章節(jié) 4.4.1,樣例代碼請(qǐng)參考章節(jié) 8.2 的 SignalDeliveryTest.java。向設(shè)備下發(fā)上文模型中對(duì) Temperature 服務(wù)設(shè)置定義令 SET_TEMPERATURETdeviceId/dsapp key: * Authorization:Bearer * Content-
33、Type:application/json Body:d: serviceId: Temperature, / Temperature 服務(wù)名 method: SET TEMPERATURE ,/ Temperature 服務(wù)命令名 paras: value:30/命令參數(shù)UE編插件code式消息制消息IoTAPP server下行可以在開(kāi)發(fā)者 portal-況。設(shè)備-點(diǎn)擊對(duì)應(yīng)的設(shè)備-歷史命令頁(yè)面,查看命令下發(fā)的情圖7-3 命令下發(fā)狀態(tài)查看當(dāng)設(shè)備收到命令,模組會(huì)自動(dòng)回復(fù)一個(gè) ACK(2.04 Changed)命令應(yīng)答(此為 CoAP協(xié)議層的應(yīng)答),命令的狀態(tài)由“已發(fā)送”狀態(tài)變?yōu)椤耙阉瓦_(dá)”狀態(tài)。
34、當(dāng)設(shè)備執(zhí)行完命令,上報(bào)一條命令執(zhí)行成功結(jié)果的碼流并經(jīng)插件 decode deviceRsp 時(shí),命令狀態(tài)由“已送達(dá)”變?yōu)椤俺晒Α?。,上?bào)命令的執(zhí)行結(jié)果處理只能使用線下開(kāi)發(fā)編插件的方式才能處理。開(kāi)發(fā)者 portal開(kāi)發(fā)目前僅支持?jǐn)?shù)據(jù)上報(bào)和命令下發(fā)的處理。如果設(shè)備需要上報(bào)命令的執(zhí)行結(jié)果,建議使用行結(jié)果。在命令下發(fā)時(shí),encode 函數(shù)的入?yún)⒅薪o的 mid 來(lái)標(biāo)識(shí)命令和命令執(zhí)會(huì)給每個(gè)命令配置一下 mid(值為類(lèi)型,從 1 開(kāi)始遞增),插件將 mid 的值加到命令碼流里(轉(zhuǎn)成 4 位 16 進(jìn)制碼流,不夠 4 位需要面補(bǔ) 0),下發(fā)給設(shè)備。設(shè)備執(zhí)行完命令后,再將 mid 與命令結(jié)果一起報(bào)上來(lái)。在 de
35、code 函數(shù)中將上報(bào)的 mid 轉(zhuǎn)為類(lèi)型并返回。具體可參考 4.3 離線開(kāi)發(fā)編插件中提供的文檔和插件樣例。圖7-4 命令執(zhí)行成功response:S us Code: 200 OKContent-Type: application/json Body:requestId: de651c90331c4d11ba94b8cef3810efe,dId: 76553ad00df34a88974fbcefda42d510, dS us: SENT說(shuō)明在命令經(jīng)過(guò)發(fā)送后,在一定時(shí)間內(nèi),如果設(shè)備沒(méi)有返回 ACK(2.04 Changed)命令應(yīng)答,則命令狀態(tài)會(huì)變成“超時(shí)”。8命令下發(fā)提供兩種命令下發(fā)機(jī)制:立
36、即下發(fā):立即發(fā)送收到令,如果設(shè)備不或者設(shè)備沒(méi)收到指令則下發(fā)失敗。立即下發(fā)適合對(duì)命令實(shí)時(shí)性有要求的場(chǎng)景,比如路燈開(kāi)關(guān)燈,燃?xì)獗黹_(kāi)關(guān)閥。使用立即下發(fā)時(shí),應(yīng)用需要自己保證下發(fā)的時(shí)機(jī)。緩存下發(fā):收到命令后放入隊(duì)列。在設(shè)備上線的時(shí)候,依次下發(fā)命令隊(duì)列中令。緩存下發(fā)適合對(duì)命令實(shí)時(shí)性要求不高的場(chǎng)景,比如配置水表的參數(shù)。緩存下根據(jù)設(shè)備的省電模式進(jìn)行不同處理。發(fā)應(yīng)用服務(wù)器向中國(guó)電信物聯(lián)網(wǎng)開(kāi)放下發(fā)命令時(shí),攜帶參數(shù) expireTime(簡(jiǎn)稱(chēng)TTL,表示最大緩存時(shí)間)。如果不帶 expireTime,則默認(rèn) expireTime 為 48 小時(shí)。expireTime=0:命令立即下發(fā)。 expireTime0:命令
37、緩存下發(fā)。命令包含的狀態(tài):取消,已發(fā)送,已送達(dá),過(guò)期,超時(shí)。說(shuō)明只有緩存命令在發(fā)送前才能使用北向接口設(shè)置為取消狀態(tài)。立即下發(fā)命令不能取消。8.1 命令立即下發(fā)處理流程:步驟 1應(yīng)用服務(wù)器調(diào)用北向接口立即下發(fā)命令,參數(shù) expireTime 傳 0 表示立即下發(fā),樣例:Method:Trequest:deviceId/dsapp_key: ap Authorization:Bearer * Content-Type:application/json Body:步驟 2步驟 3收到后,調(diào)用插件編碼。將命令下發(fā)給對(duì)應(yīng)插件的 encode 函數(shù),encode 入?yún)永缦拢翰襟E 4NB 模組收到命令時(shí)
38、,回 CoAP 協(xié)議的 ACK 消息(注:ACK 消息對(duì)設(shè)備應(yīng)用不可見(jiàn))收到 ACK 后,認(rèn)為命令送達(dá)設(shè)備。向 NA 推送送達(dá)通知。消息樣例:步驟 5步驟 6步驟 7UE 執(zhí)行完命令,如果需要上報(bào)命令執(zhí)行結(jié)果,則上報(bào)執(zhí)行結(jié)果調(diào)用插件輸入的一致,輸出樣例: 其中 mid 參數(shù)表示命令標(biāo)識(shí),應(yīng)該和 encode根據(jù) mid 查找命令,并給 NA 上報(bào)命令響應(yīng)通知,如果沒(méi)有 mid,那么步驟 8不去匹配命令來(lái)更新命令成功或失敗的狀態(tài),推送給 NA 的dID 為 null。插件收到命令執(zhí)行結(jié)果后,decode 函數(shù)完成上報(bào)令應(yīng)答 json 樣例:identifier:123, msgType:deviceRsp, mid:2016 errcode:0,body : result:0deviceId : 6213fa11-68d6-4457-aa98-871a25c152c1, dId : 30d188e1-2816-41a4-989
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 體育場(chǎng)館注漿施工合同
- 體育館場(chǎng)地平整施工合同范本
- 電力工程合同管理安全管理辦法
- 燈具承包安裝合同范例
- 楓竹苑地產(chǎn)商合同三篇
- 鐵路橋梁工程承攬合同三篇
- 西安公交公司勞動(dòng)合同(2篇)
- 退休人員返聘合同的性質(zhì)
- 土建工程包工包料合同應(yīng)注意的法律風(fēng)險(xiǎn)
- 集體土地賣(mài)給個(gè)人合同
- 網(wǎng)絡(luò)拓?fù)鋱D常用圖標(biāo)新版
- 《互聯(lián)網(wǎng)金融》試題A及參考答案
- artcam2008軟件及使用artcam的安裝和破解
- 企業(yè)微信的使用培訓(xùn)
- 普外科專(zhuān)科護(hù)理規(guī)范及標(biāo)準(zhǔn)
- UML學(xué)生成績(jī)管理系統(tǒng)
- 渝價(jià)〔2013〕430號(hào)
- CA6132普通車(chē)床使用說(shuō)明書(shū)
- 工程交工驗(yàn)收會(huì)議監(jiān)理發(fā)言
- 電力工程項(xiàng)目管理中的溝通與協(xié)調(diào)
- 中國(guó)農(nóng)業(yè)銀行流水單_免費(fèi)下載
評(píng)論
0/150
提交評(píng)論