物聯(lián)網(wǎng)軟件設(shè)計-2-IOT感知層軟件設(shè)計實例_第1頁
物聯(lián)網(wǎng)軟件設(shè)計-2-IOT感知層軟件設(shè)計實例_第2頁
物聯(lián)網(wǎng)軟件設(shè)計-2-IOT感知層軟件設(shè)計實例_第3頁
物聯(lián)網(wǎng)軟件設(shè)計-2-IOT感知層軟件設(shè)計實例_第4頁
物聯(lián)網(wǎng)軟件設(shè)計-2-IOT感知層軟件設(shè)計實例_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

物聯(lián)網(wǎng)軟件設(shè)計

TheSoftwareArchitecture,DesignandImplementationofInternetOfThingsBy:陸寅luyin@第二章感知層核心技術(shù)與軟件設(shè)計感知層的主要功能實現(xiàn)對物理設(shè)備的訪問與控制完成物理對象的識別物品編碼的采集與數(shù)字化編碼校對、數(shù)據(jù)過濾和完整性檢查對象識別與參數(shù)查詢完成情境參數(shù)的測量將物理與化學(xué)參量轉(zhuǎn)換為電信號連續(xù)的模擬電信號離散化,生成計算機可以識別的數(shù)字參量整合環(huán)境參量,生成具有實際意義的時空矢量[t,s,v]RFID應(yīng)用案例分析—移庫點倉應(yīng)用系統(tǒng) 某超市倉庫貨品采用RFID標(biāo)簽記錄商品信息?,F(xiàn)需為已有的進銷存系統(tǒng)補充開發(fā)一套移庫點倉應(yīng)用,在移庫過程中自動識別商品名稱,檢測臨近保質(zhì)期商品,并核對商品庫存。 RFID標(biāo)簽貼在商品包裝箱側(cè)面,標(biāo)簽型號為PhillipMifareOne型,編碼信息記錄在1#扇區(qū)無加密,數(shù)量信息和出廠日期記錄在2#扇區(qū)有加密。析:

方案設(shè)計RFID卡為標(biāo)準(zhǔn)MifareOne卡,可以采用市售讀卡器讀??;RFID卡貼在包裝箱外側(cè),可以在倉庫通道上設(shè)置讀寫器天線進行讀取,在移庫過程中完成盤點;商品信息需要通過EPCIS效勞查詢,箱內(nèi)商品總量、出廠日期需要通過RFID卡字段獲??;系統(tǒng)具備數(shù)據(jù)庫接口,與現(xiàn)有進銷存系統(tǒng)合并,核對庫存;軟件流程查詢商品信息:通過互聯(lián)網(wǎng)查詢商品EPC編碼;消減庫存:調(diào)用進銷存系統(tǒng)的數(shù)據(jù)庫存儲過程;更改庫存位置:調(diào)用進銷存系統(tǒng)的數(shù)據(jù)庫存儲過程;技術(shù)要點解析1:RFID卡信息讀取技術(shù)要點解析1MF1卡分為16個扇區(qū),每區(qū)有4塊〔塊0~塊3〕共64塊,按塊號絕對地址編號為0~63。第0扇區(qū)的塊0〔即絕對地址塊0〕用于存放芯片商、卡商相關(guān)代碼,已經(jīng)固化不可更改。其他各扇區(qū)的塊0、塊1、塊2為數(shù)據(jù)塊,用于存貯用戶數(shù)據(jù);塊3為各扇區(qū)控制塊,用于存放密碼A、存取控制條件設(shè)置、密碼B。技術(shù)要點解析1RFID卡讀取流程首先探測讀寫器天線感知范圍內(nèi)是否有卡其次根據(jù)卡片本身的序列號選定讀寫對象然后讀取指定數(shù)據(jù)塊加密塊首先需要進行秘鑰驗證秘鑰驗證在卡內(nèi)進行待驗秘鑰需傳入卡內(nèi)技術(shù)要點解析1SDK函數(shù)〔C語言版〕YLE280_Request尋卡YLE280_GetSerialNo取得當(dāng)前M1卡的序列號YLE280_SelectCard選擇指定序列號的卡片YLE280_TransKey向卡傳送密鑰YLE280_Authentication卡驗證YLE280_ReadBlock讀取指定塊數(shù)據(jù)YLE280_WriteBlock寫入指定塊數(shù)據(jù)技術(shù)要點解析2使用ONS效勞復(fù)習(xí):ONS解析流程技術(shù)要點解析2ONS解析操作Step1:獲取EPC編碼如 〔0100000000000000000001100000000001000011000000000000000100011100〕=84Step2:將EPC編碼轉(zhuǎn)換成ONS效勞請求URI格式〔參加urn:epc:頭〕; 84urn:epc:84Step3:本地ONS解算器將此URI轉(zhuǎn)換為域名形式,并發(fā)出對這個域名的NAPTR〔名稱權(quán)威指針〕查詢; urn:epc:8467.3.1.onsrootStep4:ONS效勞器返回一個應(yīng)答列表,包含一個或多個相關(guān)效勞的URI,如: (00uEPC+pml!^.*$!://pmlexample/pml.xml!.); (00uEPC+html!^.*$!://pmlexample/good.asp!.);Step5:本地ONS解算器從返回的NAPTR記錄中提取需要的EPCIS效勞器〔PML效勞器〕URI,返回給本地效勞器, 〔://pmlexample/pml.xml〕Step6:本地效勞器獲取對應(yīng)的pml.xml文件,啟用XML工具包進行解析,提取所需信息。技術(shù)要點解析2ONS數(shù)據(jù)格式和操作算法目前的ONS標(biāo)準(zhǔn)中還不是把整個EPC作為查詢條件它停止在對象分類編碼級別上也就是將EPC中的版本號、域名管理者、和對象分類這三個局部作為查詢條件。ONS查詢格式〔將EPC編碼轉(zhuǎn)換為ONS查詢請求字符串〕:將EPC字段轉(zhuǎn)化為IP地址格式字符串,如:84在串的頭部加上URI協(xié)議頭“urn:epc:〞,如:urn:epc:84本地ONS解算器將ONS的URI轉(zhuǎn)換為域名形式,通過DNS協(xié)議提交查詢請求去除協(xié)議頭,如:84去除序列號字段,僅保存版本號、域名管理者和對象分類字段:如1.3.67逆序,生成域名頭,如:67.3.1在底層域名后加上ONS根域名,如67.3.1.onsroot通過標(biāo)準(zhǔn)DNS效勞,進行NAPTR查詢技術(shù)要點解析2ONS應(yīng)答格式: ONS的查詢答復(fù)是一個或者多個NAPTR記錄,典型的字段格式如下表所示順序優(yōu)先級標(biāo)記服務(wù)正則表達(dá)式代替者00uEPC+pml!^.*$!http://www.pmlexample.cn/pml.xml!.00uEPC+html!^.*$!http://www.pmlexample.cn/good.asp!.技術(shù)要點解析2///////////////////////////////////////////////////////////ONS查詢發(fā)送函數(shù)importjavax.naming.*;publicStringLookupONS(StringDomainInput)throwsNamingException{ Stringresult=""; DomainInput="67.3.1.onsroot"; Hashtableenv=newHashtable(); env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.dns.DnsContextFactory"); env.put(Context.PROVIDER_RUL,"dns://21:53"); //注意區(qū)域ONS效勞器布設(shè)在21:53 DirContextdirContext=newInitialDirContext(env); Attributesattrs=dirContext.getAttributes(DomainInput,newString[]{"NAPTR"}); for(NamingEnumerationae=attrs.getAll();ae!=null&&ae.hasMoreElements();){ Attributeattr=(Attribute)ae.next(); NamingEnumeeratione=attr.getAll(); while(e.hasMoreElements()){ Stringelement=e.nextElement().toString(); result+=element; } } returnresult;}技術(shù)要點解析3與現(xiàn)有系統(tǒng)接口新增的移庫點倉應(yīng)用需要訪問已有的進銷存系統(tǒng)的數(shù)據(jù)庫。接口形式與進銷存系統(tǒng)的規(guī)模與實現(xiàn)模式有關(guān)。在系統(tǒng)規(guī)模較小時,數(shù)據(jù)庫通常以關(guān)系數(shù)據(jù)庫的形式構(gòu)建??梢允褂肁DO技術(shù),以client/server形式直接進行操作。建議使用數(shù)據(jù)庫內(nèi)建存儲過程完成數(shù)據(jù)更改和插入,以保證數(shù)據(jù)庫完整性和數(shù)據(jù)正確性;在系統(tǒng)規(guī)模較大時,數(shù)據(jù)庫往往以網(wǎng)絡(luò)數(shù)據(jù)庫的形式發(fā)布訪問接口。此時需要通過CGI接口完成數(shù)據(jù)庫操作。技術(shù)要點解析4多平臺編程數(shù)據(jù)交換Question:讀寫器只提供了C語言動態(tài)鏈接庫,Java提供完備的網(wǎng)絡(luò)Beans、并可增補ONS效勞Beans.如何將讀取到的EPC編碼傳遞給Java語言實現(xiàn)的ONS查詢效勞?Answer:異構(gòu)進程間通信與數(shù)據(jù)共享“命名管道〞通信操作系統(tǒng)需要支持管道效勞;需要解決數(shù)據(jù)格式問題;技術(shù)要點解析4網(wǎng)絡(luò)通信數(shù)據(jù)共享通過簡單的Socket編程,完成數(shù)據(jù)傳遞Java語言Socket編程;建立SocketServer;C語言Socket編程;在讀取EPC編碼后啟動SocketClient,向ONS查詢進程傳遞EPC編碼;可以直接查詢IP地址格式的字符串;傳遞的字符串需要組織成自定義的Socket消息格式:消息頭分割符消息數(shù)據(jù)(cmd):(data)技術(shù)要點解析4本地鍵盤緩沖區(qū)數(shù)據(jù)傳遞技術(shù)要點解析4可用FindWindow()函數(shù)找到ONS查詢效勞程序窗口在查詢窗口中設(shè)置EDIT組件,用于接收發(fā)送來的字符EDIT組件響應(yīng)“On-RETURN〞按鍵事件;技術(shù)要點解析4#include<WinUser.h>#include<Windows.h>voidmain(){ Sleep(3000); keybd_e

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論