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