基于嵌入式 RFID 中間件的標簽數據處理
SQLite 的應用開(kāi)發(fā)是在GoAhead 基礎上對數據進(jìn)行接收、過(guò)濾和分組處理??蛻?hù)端將用戶(hù)填寫(xiě)的XML 表單通過(guò)HTTP 協(xié)議發(fā)送到GoAhead 服務(wù)器端。GoAhead 進(jìn)程中的主線(xiàn)程接收XML文件,將文件內容通過(guò)命令消息通道傳給ALE子進(jìn)程。ALE子進(jìn)程通過(guò)ezXML模塊把XML 文件解析出來(lái),提取出數據存入ECSpec 結構體中。
DSP 解調出二進(jìn)制EPC 數據,通過(guò)DSP 驅動(dòng)發(fā)送到接收模塊。接收模塊濾除重復EPC碼,屏蔽閱讀器數據格式差異,轉換成統一數據格式后將數據送入到SQLite 中,作為數據庫操作的數據源。每個(gè) ECSpec 對應創(chuàng )建一個(gè)線(xiàn)程。該線(xiàn)程根據ECSpec 結構體執行數據庫操作,將查詢(xún)結果封裝成XML 數據報表通過(guò)數據消息通道發(fā)送給XML 報告線(xiàn)程。XML 報告線(xiàn)程通過(guò)TCP 協(xié)議發(fā)送給客戶(hù)端。數據流程圖如圖2 所示。下面以EPC 標簽數據的流動(dòng)方向進(jìn)行詳細分析。
3.1 EPC 標簽數據格式
EPC(Electronic Product Code)是本世紀初由美國麻省理工學(xué)院(MIT)的AUTO-ID 中心提出的編碼方式。EPC 數據標準1.3 版本[5]中,EPC 由代表版本號的頭部、過(guò)濾字段、制造商、物品種類(lèi)以及物品序列號組成。是唯一存儲在RFID 標簽中的信息。AUTO-ID 中心將全球接受的EAN/UCC 編碼整合到新的EPC 中,共8 種格式:GID,SGTIN,SSCC,GLN,GRAI,GIAI,GDTI 和GSRN。后兩種是數據標準1.4 版本新增加的。為了在應用軟件中更好地表示EPC 碼以及方便用戶(hù)閱讀和查詢(xún),AUTO-ID 中心定義另一種表示方式:統一資源標識符(Uniform. Resource Identifier,URI)。嵌入式中間件中用到的URI 格式如:urn:epc:pat:sgtin-96:0.*.*.*?!皍rn:epc:pat:”部分為URI 命令格式的固定內容,“sgtin-96”即由EAN/UCC 編碼轉化而來(lái)的96 位二進(jìn)制SGTIN 編碼頭部分,其后四部分為具體編碼內容。
3.2 EPC 二進(jìn)制數據轉化成標準URI
在數據轉化標準[6]中,EPC 有四種表示方式:二進(jìn)制、URI、不帶物品序列號的純識別URI 和EAN/UCC 編碼。在中間件中需要將閱讀器發(fā)送過(guò)來(lái)的二進(jìn)制EPC 編碼轉換成標準URI 形式,才能方便數據庫的分組過(guò)濾操作。方法是首先將EPC 二進(jìn)制數據轉換成一個(gè)字符一位的‘0’和‘1’字符串。選出代表版本號的頭部,根據頭部查詢(xún)EPC 格式表找到這種類(lèi)型標簽的分段結構,然后依據該分段結構分別提取出各個(gè)部分。例如96 位標簽數據300833B2DDD9014935050007(十六進(jìn)制數表示)轉換成URI 格式為urn:epc:pat:sgtin-96:0.0867360217.005.39544225799。
3.3 標簽數據插入 SQLite 數據庫
因為用戶(hù)端的 filter 或group 命令是以URI 命令格式發(fā)送,查詢(xún)結果也是以URI 格式返回,所以在二進(jìn)制EPC 碼到達數據庫時(shí),立即轉化為URI 格式存儲到SQLite 中,方便查詢(xún)操作。tableURI 就是用來(lái)保存URI 形式標簽數據的信息表。tableURI 分成七個(gè)字段存貯URI 標簽數據:Header,Filter,Company,Class,Serial,ReaderID,Time。前五個(gè)字段都是EPC 碼URI 格式的組成部分,ReaderID 為閱讀器ID 號,表明EPC 碼來(lái)自哪個(gè)物理閱讀器。Time 為DSP 上交標簽數據的時(shí)間,是控制產(chǎn)生報表的邊界條件。EPC 數據轉化成標準URI 后提取各個(gè)數據段,使用sqlite3_mprintf 函數將數據段的值添加到SQL 語(yǔ)句中,然后通過(guò)sqlite3_exec 函數執行該SQL 語(yǔ)句把標簽數據插入到數據庫中。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論