基于嵌入式 RFID 中間件的標簽數據處理
3.4 過(guò)濾和分組標簽數據
用戶(hù)定義的 ECSpec 中包含一個(gè)或多個(gè)Report,每個(gè)Report 由一個(gè)或多個(gè)filterSpec 或groupSpec 組成,每個(gè)filterSpec 有一個(gè)或多個(gè)includePattern 和excludePattern 組成,每個(gè)groupSpec 也包含一個(gè)或多個(gè)groupPattern 命令。這些過(guò)濾和分組命令可以方便用戶(hù)選擇出所需標簽數據。因此,需要實(shí)現兩種數據庫操作:filter 和group。
3.4.1 過(guò)濾
filter 是根據所給規則對數據進(jìn)行過(guò)濾篩選,找出符合過(guò)濾條件的標簽數據。整個(gè)filter命令包含若干includePattern 和若干excludePattern,結果集為包含于任何一個(gè)或多個(gè)includePattern 中但是不包含于任何一個(gè)excludePattern 中的EPC 碼。用集合形式表示為:
其中,R 為EPC 數據源集合,Ii 為EPC 集中符合第i 個(gè)includePattern 的數據集,Ei 為EPC集中的符合第i 個(gè)excludePattern 的數據集。
過(guò)濾操作的 URI 命令中可出現:確定數值/部分值[low-high]/所有值*,如:urn:epc:pat:sgtin-96:0.0867360217.[001-1000].*。查詢(xún)時(shí)直接使用SELECT 操作,對各個(gè)字段逐個(gè)判斷格式類(lèi)型生成SQL 語(yǔ)句,將各部分生成的SQL 語(yǔ)句匯總到一句中即可完成過(guò)濾操作。
3.4.2 分組
group 是根據用戶(hù)所給規則對標簽數據進(jìn)行分組歸類(lèi),不屬于任何group 命令條件的EPC 碼自動(dòng)歸為default group 組中。分組操作的URI 命令可出現:確定數值/部分值[low-high]/所有值*/分組X(即按該字段分組,有不同的值就分組,相同值的EPC 碼分到同一組中)。如:urn:epc:pat:sgtin-96:0.0867360217.X.*。
當使用多個(gè) groupPattern 命令時(shí),為使EPC 碼只被歸為一個(gè)groupPattern 組中,要求URI 命令設置時(shí),幾個(gè)groupPattern 不能有重疊區域。命令集:G = (Pat_1, Pat_2, ..., Pat_N)。Pat_i 和 Pat_j 為命令集G 中任意兩個(gè)URI 命令。
Pat_i = urn:epc:pat:type_i:field_i_1.field_i_2.field_i_3...
Pat_j = urn:epc:pat:type_j:field_j_1.field_j_2.field_j_3...
Pat_i 和Pat_j 滿(mǎn)足下面任一規則時(shí)兩個(gè)URI 命令是無(wú)重疊區域的,允許使用。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論