文中從系統(tǒng)整體結(jié)構(gòu)設(shè)計(jì)、移動(dòng)監(jiān)管系統(tǒng)的總體流程設(shè)計(jì)、功能和關(guān)鍵技術(shù)的實(shí)現(xiàn)等方面,闡述了如何基于 Android 和 NFC 技術(shù)實(shí)現(xiàn)電子秤移動(dòng)監(jiān)管系統(tǒng)。該系統(tǒng)可滿足政府部門對(duì)電子秤監(jiān)管的需要,保護(hù)市場(chǎng)的公平公正,維護(hù)消費(fèi)者的利益。
1.引言
隨著電子技術(shù)的迅速發(fā)展,不少商販為謀取利益,采用改裝、加裝電路開關(guān)、遙控裝置、加裝芯片等作弊手段,坑害消費(fèi)者利益。由于缺乏行之有效的監(jiān)管手段,這些電子秤基本處于失控狀態(tài),對(duì)社會(huì)的公平公正造成了嚴(yán)重的影響。文中提出了一種基于 Android 和 NFC 技術(shù)的電子秤移動(dòng)監(jiān)管系統(tǒng),該系統(tǒng)具有電子秤信息登記、激活授權(quán)、維修授權(quán)、拆開授權(quán)、檢定登記、檢定信息讀取等監(jiān)管功能,實(shí)現(xiàn)對(duì)電子秤高效便捷的監(jiān)管。系統(tǒng)的所有操作均可以上傳到后臺(tái)管理系統(tǒng),以方便監(jiān)管人員進(jìn)行追溯 , 從而防止電子秤作弊現(xiàn)象的發(fā)生。
2 Android 系統(tǒng)及 NFC 技術(shù)簡(jiǎn)介
2.1 Android 系統(tǒng)簡(jiǎn)介
Android 系統(tǒng)是由 Google 發(fā)布的一款開源的智能移動(dòng)終端操作系統(tǒng),其對(duì)智能移動(dòng)終端的迅速普及起著至關(guān)重要的作用。Android 系統(tǒng)架構(gòu)共包括四層。
2.1.1 應(yīng)用程序?qū)?/span>
該層存在著一些系統(tǒng)應(yīng)用,例如電話、聯(lián)系人、短信息等。開發(fā)人員開發(fā)的第三方應(yīng)用也存在于該層,應(yīng)用程序開發(fā)使用 Java 語(yǔ)言。
2.1.2 應(yīng)用程序框架層
開發(fā)人員可以完全訪問核心應(yīng)用程序所使用的 API 框架。該應(yīng)用程序的架構(gòu)設(shè)計(jì)簡(jiǎn)化了組件的重用。任何一個(gè)應(yīng)用程序,都可以發(fā)布它的功能塊供其它的應(yīng)用程序引用 ( 不過得遵循框架的安全性限制 )。用戶可以對(duì)系統(tǒng)提供的一些基礎(chǔ)控件進(jìn)行重新設(shè)計(jì),以實(shí)現(xiàn)多樣化、定制化的效果。
2.1.3系統(tǒng)運(yùn)行庫(kù)層
該層包含了一些 C/C++ 庫(kù),這些庫(kù)能被Android 系統(tǒng)中不同的組件使用,它們通 過 Android 應(yīng)用程序框架為開發(fā)者提供服務(wù)。該層還包含了一個(gè) Java 核心庫(kù),該核心庫(kù)提供了 Java 編程語(yǔ)言核心庫(kù)的大部分功能。
2.1.4 Linux 內(nèi)核層
Android 的核心系統(tǒng)服務(wù)依賴于 Linux 2.6內(nèi)核,如安全性、內(nèi)存管理、進(jìn)程管理、網(wǎng)絡(luò)協(xié)議棧和驅(qū)動(dòng)模型,Linux 內(nèi)核也同時(shí)作為硬件和軟件棧之間的抽象層。
2.2NFC 技術(shù)簡(jiǎn)介
近 場(chǎng) 通 信(Near Field Communication,NFC),又稱近距離無線通信,是一種短距離的高頻無線通訊術(shù),允許電子設(shè)備之間進(jìn)行非接觸式點(diǎn)對(duì)點(diǎn)數(shù)據(jù)傳輸,在十厘米(3.9 英吋)內(nèi)交換數(shù)據(jù)。這個(gè)技術(shù)由非接觸式射頻識(shí)別(RFID)演變而來,由飛利浦半導(dǎo)體(現(xiàn)恩智浦半導(dǎo)體)、諾基亞和索尼共同研制開發(fā),其基礎(chǔ)是 RFID 及互連技術(shù)。目前近場(chǎng)通信已通過成為 ISO/IEC IS 18092 國(guó)際標(biāo)準(zhǔn)、EMCA-340 標(biāo)準(zhǔn)與 ETSI TS 102 190 標(biāo)準(zhǔn)。
3.系統(tǒng)整體結(jié)構(gòu)設(shè)計(jì)
本系統(tǒng)主要由防作弊電子秤、移動(dòng)終端和后臺(tái)監(jiān)管平臺(tái)組成。移動(dòng)終端通過 3G 或 WIFI 接入互聯(lián)網(wǎng)與監(jiān)管系統(tǒng)平臺(tái)進(jìn)行通訊,監(jiān)管系統(tǒng)將密鑰和數(shù)據(jù)下發(fā)到移動(dòng)終端,移動(dòng)終端將數(shù)據(jù)上傳到監(jiān)管系統(tǒng)平臺(tái)。電子秤和移動(dòng)終端之間通過 NFC 協(xié)議進(jìn)行通訊,移動(dòng)終端將獲得的密鑰和數(shù)據(jù)下發(fā)到電子秤或者從電子秤中讀取數(shù)據(jù)。
移動(dòng)終端是電子秤和監(jiān)管系統(tǒng)平臺(tái)間通訊的橋梁,移動(dòng)終端需支持 NFC 通訊。普通用戶、監(jiān)管機(jī)構(gòu)、檢定機(jī)構(gòu)、生產(chǎn)廠家、維修廠家均可以通過移動(dòng)終端進(jìn)行相應(yīng)的功能的操作,移動(dòng)終端的主要功能有電子秤登記、電子秤激活、電子秤授權(quán)、拆開授權(quán)、檢定登記、電子秤信息讀取、檢定登記等功能,通過這些功能,移動(dòng)終端可以向電子秤和管理系統(tǒng)平臺(tái)進(jìn)行數(shù)據(jù)交換。
4.移動(dòng)監(jiān)管系統(tǒng)的實(shí)現(xiàn)
4.1 電子秤移動(dòng)監(jiān)管總體流程
(1)電子秤生產(chǎn)廠家利用支持 NFC 的手持端進(jìn)行電子秤登記(可逐臺(tái)登記也可批量登記),由監(jiān)管部門審核后,每臺(tái)電子秤均生成電子秤 ID 和密鑰。(2)通過 NFC 手持端進(jìn)行電子秤激活授權(quán),把管理系統(tǒng)平臺(tái)上生成的電子秤 ID 和密鑰下發(fā)到電子秤,激活后的電子秤就可以進(jìn)行檢定登記,而后交付用戶使用。
(3)如果電子秤內(nèi)損壞需要維修或者部件需要更換可以進(jìn)行電子秤授權(quán),把新的電子秤信息更新到服務(wù)器并重新下發(fā)密鑰。
(4)電子秤需要拆開可進(jìn)行拆開授權(quán),防止電子秤被非法拆開,非法拆開的電子秤無法使用。
(5)檢定不合格的電子秤或者周檢到期的電子秤無法使用,需進(jìn)行檢定授權(quán)后重新檢定才能用。
4.2移動(dòng)監(jiān)管系統(tǒng)功能簡(jiǎn)介
4.3 系統(tǒng)關(guān)鍵技術(shù)的實(shí)現(xiàn)
4.3.1 NFC 標(biāo)簽和移動(dòng)終端的初始化
文中的 NFC 標(biāo)簽采用的是 NTAG216,NTAG216具有 888 字節(jié)用戶存儲(chǔ)器,符合 ISO/IEC14443 類型 A 規(guī)范,工作頻率為 13.56 MHz,傳輸波特率為 106 kb/s,具有低功耗、防干擾、快速讀取等特點(diǎn),在使用本系統(tǒng)前需對(duì) NFC 標(biāo)簽中的存儲(chǔ)內(nèi)容進(jìn)行地址分配,NFC 標(biāo)簽中的存儲(chǔ)內(nèi)容包括電子秤硬件信息、廠家信息、檢定信息等內(nèi)容。移動(dòng)終端的初始化如下圖 3 所示:
4.3.2 WEBSERVIC 服務(wù)連接的實(shí)現(xiàn)
智能終端是通過 WEBSERVICE 與管理系統(tǒng)平臺(tái)進(jìn)行通訊,以下代碼實(shí)現(xiàn)了服務(wù)連接的類: publicclassConnRequest{publicstaticStringbaseUrl= "http://esms.fjjl.net/WS/EscaleWS.asmx/"; publicStringTAG = getClass().getName(); voidConnLogin(Contextcontext,ConnHandle
rconnHandler,StringuserId,StringmsCode) {String operation = "Login";
if (!HttpCaller.isNetWorkStatus(context)) { Toast.makeText(context, R.string.
NetWorkAlarm, Toast.LENGTH_SHORT).show();} e l s e { H t t p C a l l e r h c = H t t p C a l l e r .
getInstance();
Stringurl = baseUrl+operation+"?" + "us erId="+userId+"&msCode="+msCode;
Log.d("ConnLogin", "url : "+url); LogingParse parse = newLogingParse(0,
connHandler);
hc.request(url, connHandler, HttpOrder. CT_XML, parse);
LoadingActCotroller la = LoadingActCotroller.
getInstance(context, hc); la.startLoading();
}}}
4.3.3 NFC 通訊功能的實(shí)現(xiàn)
智能終端與電子秤之間采用的是 NFC 進(jìn)行通訊,以下代碼分別實(shí)現(xiàn)了讀取標(biāo)簽和寫入標(biāo)簽的功能:
/* 讀取標(biāo)簽內(nèi)容 */
privatebyte[] readFormTag(int offset, int length) throwsIOException,
Exception {if (length == 0)returnnull; byte[] result = null;
intloaction = 0;
int page = offset / 4;// 讀取初始頁(yè)面
i n t r e a d p a g e s = ( l e n g t h - ( 1 6 - loaction)) / 16 + 1 + 1;// 需要讀的頁(yè)面
for (inti = 0; i
}elseif (i == readpages - 1) {byte[] datas = null;
datas = cutOutByte(this . tagUtil . readFourPage(intent,(byte) (page + i * 4), false), 0, length- (16 - loaction) - (readpages - 2) * 16);
result = getMergeBytes(result, datas); }else {byte[] datas = null;
d a t a s = t h i s . t a g U t i l . readFourPage(intent,(byte) (page + i * 4), false);
result = getMergeBytes(result, datas);
}
}return result;}} /* 寫入標(biāo)簽內(nèi)容 */
privatevoidwriteToTag(int offset, byte[] data) throwsIOException,
Exception {
intloaction = offset % 4;// 在一個(gè) page中的位置
byte[] pByteA = null;// 在一個(gè) page 中要寫入初始位置前的數(shù)據(jù)
int page = offset / 4;// 寫入頁(yè)面的初始頁(yè)int length = data.length;// 數(shù)據(jù)的長(zhǎng)度 this.tagUtil.writeTag(intent, (byte)
(page),cutOutByte(data, 0, 4), false);// 寫
入第一頁(yè)
intmore_pages = (length - 4) / 4 + 1;//
繼續(xù)寫入的頁(yè)數(shù)(總頁(yè)數(shù) -1) for (inti = 1; i<= more_pages; i++) {
if (i == more_pages) {// 最后一頁(yè) intwriteNum = (length - 4) % 4;// 最后
一頁(yè)寫入的位數(shù)
this.tagUtil.writeTag(intent,(byte) (page + more_pages),
getMergeBytes(
cutOutByte(data, 4 * i, writeNum), this.readFormTag((page + more_pages) * 4 + writeNum, 4 - writeNum)), false);
}else { this.tagUtil.writeTag(intent, (byte)
(page + i),
cutOutByte(data, 4 * i, 4), false);
}
}}
5.應(yīng)用界面展示
Android 系統(tǒng)中,程序布局由 Layout 文件夾中的 XML 文件進(jìn)行設(shè)置,以下是部分應(yīng)用頁(yè)面的展示:
6.結(jié)束語(yǔ)
隨著無線網(wǎng)絡(luò)的不斷發(fā)展,智能移動(dòng)終端的迅速普及,基于 Android 和 NFC 技術(shù)已經(jīng)在越來越多的領(lǐng)域得到了應(yīng)用,比如門禁、車票、支付、海報(bào)、數(shù)據(jù)傳輸?shù)取.?dāng)前作弊電子秤越來越泛濫,已成為監(jiān)管者越來越頭疼的一個(gè)問題,文中設(shè)計(jì)的基于 Android 和 NFC 技術(shù)的電子秤監(jiān)管系統(tǒng)實(shí)現(xiàn)了電子秤與監(jiān)管平臺(tái)之間的數(shù)據(jù)交換,為現(xiàn)場(chǎng)監(jiān)管提供了一種有效、便捷的手段,保證市場(chǎng)的公平公正,維護(hù)消費(fèi)者利益,樹立消費(fèi)者對(duì)計(jì)量器具的信心。