RFID中間件數(shù)據(jù)的過濾方法的研究和分析
首先是為標(biāo)簽構(gòu)建一個(gè)TagEvent類,該類包含的關(guān)鍵參數(shù)和方法為:
public class TagEvent imp lements Runnable{
int value;
boolean detecStauts = false;
int fmax;
int fmin;
public void run ( ) {
while ( value > 0) {
try{
Thread. currentThread ( ). sleep (1000) ;
} catch ( Interrup tedExcep tion e) { }
if ( value > = fmax! detecStauts) {
(觸發(fā)標(biāo)簽出現(xiàn)記錄)
detecStauts = true;
}
else if ( value = fmindetecStauts) {
(觸發(fā)標(biāo)簽消失記錄)
detecStauts = false;
}
value - - ;
} }
當(dāng)過濾模塊主程序檢測到一個(gè)新標(biāo)簽的時(shí)候,便為其建立一個(gè)Tag Event類的對象new Tag,并對各個(gè)關(guān)鍵字段賦初值,同時(shí)啟動該對象內(nèi)部的計(jì)時(shí)器線程:
new Thread ( newTag). start ( ) ;該計(jì)時(shí)器線程的作用是每個(gè)報(bào)告周期對標(biāo)簽權(quán)值value進(jìn)行檢查并觸發(fā)相應(yīng)操作. 每次檢查后將標(biāo)簽權(quán)值value減1,以實(shí)現(xiàn)當(dāng)標(biāo)簽未被報(bào)告時(shí)其權(quán)值的逐步下降. 當(dāng)權(quán)值value減到0的時(shí)候,計(jì)時(shí)器線程停止,這時(shí)可以銷毀該對象。
當(dāng)過濾算法主模塊發(fā)現(xiàn)報(bào)告的標(biāo)簽已存在時(shí),對該標(biāo)簽對象的value值進(jìn)行累加:
newTag. value + = valueStep;
if ( newTag. value > = newTag. fmax) {
newTag. value = newtag. fmax;
}
其中valueStep就是算法中定義的累加權(quán)值. 如果權(quán)值value已經(jīng)達(dá)到閥值fm ax,則將其保持在該值,防止經(jīng)過多個(gè)上報(bào)周期后標(biāo)簽權(quán)值過高,影響后繼判斷。
3. 2 實(shí)驗(yàn)驗(yàn)證
在驗(yàn)證的過程中模擬了2 種應(yīng)用場景: 第1種是帶讀寫器的貨架,該場景要求達(dá)到貨架讀寫器能穩(wěn)定識別放入的帶標(biāo)簽物品,不會因?yàn)樾盘柌▌佣`報(bào)貨品離開信息,并對經(jīng)過貨架的其他物品保持較低的敏感度;第2種是門禁系統(tǒng),要求對出現(xiàn)在讀寫范圍內(nèi)的標(biāo)簽立刻做出反應(yīng),但在一定時(shí)間內(nèi)不能重復(fù)上報(bào)同一個(gè)標(biāo)簽。
在第1種貨架系統(tǒng)場景中,設(shè)置valueS tep = 3,fapp = 10, fdisp = 0,當(dāng)標(biāo)簽進(jìn)入讀寫器范圍后,經(jīng)過5 s左右的時(shí)間過濾模塊觸發(fā)標(biāo)簽出現(xiàn)操作,人為將標(biāo)簽多次短時(shí)間移出讀寫器范圍,模擬信號干擾和波動的情況,并將另一標(biāo)簽從讀寫器范圍內(nèi)移過,讀寫器均未觸發(fā)多余的標(biāo)簽出現(xiàn)和消失操作。
在第2 種門禁系統(tǒng)場景中,設(shè)置valueS tep =10, fapp = 10, fd isp = 0,當(dāng)標(biāo)簽進(jìn)入讀寫器范圍內(nèi),過濾模塊立即觸發(fā)了標(biāo)簽出現(xiàn)操作,當(dāng)標(biāo)簽消失后, 10 s內(nèi)不再重新觸發(fā)。
4 結(jié)束語
本文中通過對RFID中間件實(shí)際應(yīng)用場景的分析和現(xiàn)有過濾算法的研究,設(shè)計(jì)并實(shí)現(xiàn)了一種適用范圍廣,帶有噪點(diǎn)抑制功能的RFID數(shù)據(jù)過濾算法, 通過一個(gè)java程序在模擬場景中對算法進(jìn)行了實(shí)驗(yàn)。結(jié)果表明,該算法具有良好的抑噪和去冗能力,在不同參數(shù)的組合下,可以適應(yīng)各種實(shí)際應(yīng)用需求, 該過濾算法為更高層的業(yè)務(wù)規(guī)則過濾模塊奠定了很好的數(shù)據(jù)基礎(chǔ),對于RFID中間件的設(shè)計(jì)和開發(fā)有一定的實(shí)用價(jià)值。
評論