版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于Android的智能家居基于Android的智能家居 AcE team 第 page 1 頁(yè) 共 SECTION頁(yè)伴基于And把roid的埃智能家居三個(gè)火槍手半2013礙年罷5啊月胺目 阿 錄TOC o 1-3 h z HYPERLINK l _Toc 骯第 1 章斑吧項(xiàng)目概述岸 PAGEREF _Toc h 盎1藹8。 HYPERLINK l _Toc 疤1.1安壩項(xiàng)目背景辦 PAGEREF _Toc h 霸1敖Z。 HYPERLINK l _Toc 骯1.2傲術(shù)語(yǔ)定義般 PAGEREF _Toc h 皚2矮w。 HYPERLINK l _Toc 捌第 2 章襖埃技術(shù)方案稗 PAGERE
2、F _Toc h 辦3頒J。 HYPERLINK l _Toc 半2.1按柏系統(tǒng)描述矮 PAGEREF _Toc h 翱3挨m。 HYPERLINK l _Toc 鞍2.2矮氨功能描述板 PAGEREF _Toc h 拌3拜r。 HYPERLINK l _Toc 辦2.3版唉項(xiàng)目功能圖澳 PAGEREF _Toc h 哀4伴U。 HYPERLINK l _Toc 哀2.4笆拌所涉及的系案統(tǒng)、工具瓣 PAGEREF _Toc h 翱4翱A。 HYPERLINK l _Toc 班第 3 章辦皚前端數(shù)據(jù)中吧心(哀A8皚)總體設(shè)計(jì)板 PAGEREF _Toc h 按5啊n。 HYPERLINK l _
3、Toc 扮3.1阿襖程序設(shè)計(jì)流爸程圖愛 PAGEREF _Toc h 襖5捌U。 HYPERLINK l _Toc 皚3.2壩絆線程定義瓣 PAGEREF _Toc h 柏5盎u。 HYPERLINK l _Toc 霸3.3般唉所用類定義斑 PAGEREF _Toc h 板6盎9。 HYPERLINK l _Toc 柏第 4 章按耙前端耙A8扒模塊設(shè)計(jì)敗 PAGEREF _Toc h 巴7阿F。 HYPERLINK l _Toc 氨4.1拌挨A8-An把droid癌 App暗licat挨ion柏層設(shè)計(jì)斑 PAGEREF _Toc h 搬7伴4。 HYPERLINK l _Toc 背4.1.1靶
4、跋數(shù)據(jù)流分析吧 PAGEREF _Toc h 熬7疤e。 HYPERLINK l _Toc 半4.1.2芭白Appli啊catio骯n層詳細(xì)設(shè)計(jì)伴與實(shí)現(xiàn)伴 PAGEREF _Toc h 澳9巴Z。 HYPERLINK l _Toc 邦4.2盎礙A8-挨數(shù)據(jù)傳遞架巴構(gòu)模塊瓣 PAGEREF _Toc h 擺16按p。 HYPERLINK l _Toc 4.2.1翱瓣層次接口表安 PAGEREF _Toc h 瓣16笆N。 HYPERLINK l _Toc 吧4.2.2岸胺HAL版層扮 PAGEREF _Toc h 搬17擺q。 HYPERLINK l _Toc 斑4.2.3盎愛JNI哎層吧 PA
5、GEREF _Toc h 艾19邦Z。 HYPERLINK l _Toc 拌4.2.4版盎Frame靶work阿層斑 PAGEREF _Toc h 叭20伴i。 HYPERLINK l _Toc 八4.2.5挨翱整體流程愛 PAGEREF _Toc h 凹21矮w。 HYPERLINK l _Toc 隘4.2.6伴哎關(guān)鍵代碼分霸析拜 PAGEREF _Toc h 白22哎6。 HYPERLINK l _Toc 胺4.3奧隘傳輸協(xié)議模襖塊設(shè)計(jì)矮 PAGEREF _Toc h 懊32鞍h。 HYPERLINK l _Toc 埃4.3.1哎疤A8般接收數(shù)據(jù)格扮式叭 PAGEREF _Toc h 傲3
6、2拔T。 HYPERLINK l _Toc 疤4.3.2白般M0矮接收命令數(shù)哎據(jù)結(jié)構(gòu)盎 PAGEREF _Toc h 氨33矮6。 HYPERLINK l _Toc 奧第 5 章拜捌終端伴M0背模塊設(shè)計(jì)俺 PAGEREF _Toc h 伴35柏T。 HYPERLINK l _Toc 耙5.1霸唉終端設(shè)備方擺案描述把 PAGEREF _Toc h 懊35癌B。 HYPERLINK l _Toc 胺5.2頒擺終端設(shè)備工昂作流程跋 PAGEREF _Toc h 伴35傲i。 HYPERLINK l _Toc 昂5.3巴巴功能模塊描埃述捌 PAGEREF _Toc h 叭36巴B。 HYPERLINK
7、 l _Toc 辦5.3.1叭澳溫濕度傳感拌器吧DHT10凹 PAGEREF _Toc h 斑36啊B。 HYPERLINK l _Toc 辦5.3.2襖稗ZigBe哀e罷通信部分癌 PAGEREF _Toc h 熬37懊9。 HYPERLINK l _Toc 疤5.3.3艾瓣RFID跋讀卡模塊叭 PAGEREF _Toc h 邦40凹0。 HYPERLINK l _Toc 吧5.3.4敗凹IIC奧接口部分柏 PAGEREF _Toc h 絆41吧K。 HYPERLINK l _Toc 霸第 6 章癌癌系統(tǒng)測(cè)試鞍 PAGEREF _Toc h 伴45版m。 HYPERLINK l _Toc 捌
8、6.1藹氨項(xiàng)目演示愛 PAGEREF _Toc h 氨45暗g。項(xiàng)目概述項(xiàng)目背景案隨著社會(huì)電班子信息化的矮不斷發(fā)展,柏人們?cè)诩揖影葜惺褂玫碾姲制髟絹?lái)越多背,由此帶來(lái)芭的安全隱患鞍也有了明顯叭的增多。在瓣這些電器中鞍一旦出現(xiàn)一礙些異常,便阿會(huì)給人們帶鞍來(lái)很大的損巴失。為了降般低電器的不俺合理使用帶板來(lái)的異常情襖況,就要求邦在異常發(fā)生哎時(shí)用戶能及唉時(shí)得到信息矮,并通過(guò)實(shí)疤時(shí)監(jiān)控采取礙一定的操作笆排除異常。稗因此,遠(yuǎn)程唉監(jiān)控系統(tǒng)的安作用是非常安巨大的。扒h。挨90年代末矮,隨著多媒胺體技術(shù)、視胺頻壓縮編碼把技術(shù)、網(wǎng)絡(luò)藹通訊技術(shù)的愛發(fā)展,數(shù)字叭視頻監(jiān)控系癌統(tǒng)迅速崛起扳,現(xiàn)今市場(chǎng)扒上由兩種數(shù)岸字視頻監(jiān)控
9、凹系統(tǒng)類型,奧一種是以數(shù)岸字錄像設(shè)備安為核心的視凹頻監(jiān)控系統(tǒng)柏,另一種是疤以嵌入式視頻web服邦務(wù)器為核心矮的視頻監(jiān)控胺系統(tǒng)。以數(shù)白字錄像設(shè)備八為核心的視伴頻監(jiān)控系統(tǒng)隘采用PC機(jī)辦作為多媒體吧監(jiān)控主機(jī),稗綜合了視頻岸矩陣、圖像啊分割器、錄板像機(jī)等眾多傲的功能,使頒系統(tǒng)結(jié)構(gòu)大班為簡(jiǎn)化,采把用計(jì)算機(jī)網(wǎng)阿絡(luò)技術(shù),數(shù)擺字多媒體遠(yuǎn)巴程網(wǎng)絡(luò)監(jiān)控胺不受距離限邦制,采用大隘容量磁盤陣邦列存盤器或霸光盤存儲(chǔ)器奧,可以節(jié)省奧大量的磁盤按介質(zhì),同時(shí)百有利于系統(tǒng)俺實(shí)現(xiàn)多媒體板信息查詢。搬但隨著基于翱PC機(jī)的視鞍頻監(jiān)控錄像鞍系統(tǒng)的發(fā)展拌,在實(shí)際使瓣用過(guò)程中,扮也暴露出一案些不足,主盎要是系統(tǒng)工爸作的不穩(wěn)定澳性。捌g。愛
10、以嵌入式視爸頻web服隘務(wù)器為核心哀的視頻監(jiān)控艾系統(tǒng),采用傲嵌入式實(shí)時(shí)暗多任務(wù)操作案系統(tǒng)。攝像唉頭采集到的斑圖片信息經(jīng)啊過(guò)壓縮,通罷過(guò)內(nèi)部總線芭送到內(nèi)置的笆web服務(wù)靶器,網(wǎng)絡(luò)上唉的用戶可以懊直接用瀏覽笆器觀看we翱b服務(wù)器上白的由攝像頭阿采集的圖像啊。由于把圖胺片采集和w啊eb功能集哎中到一個(gè)體柏積很小的設(shè)邦備內(nèi),可以扮直接連入局吧域網(wǎng),用戶哎無(wú)需安裝任拜何硬件設(shè)備佰,僅用瀏覽哀器即可觀看八。同時(shí)還具熬有以下優(yōu)點(diǎn)盎:斑B。邦布控區(qū)域廣叭闊,嵌入式埃視頻web皚服務(wù)器監(jiān)控氨系統(tǒng)web扳服務(wù)器直接拜連入網(wǎng)絡(luò),般沒(méi)有線纜長(zhǎng)疤度和信號(hào)衰扒減的限制,巴同時(shí)網(wǎng)絡(luò)是靶沒(méi)有距離概念的,徹底隘拋棄了地域佰的概
11、念,擴(kuò)胺展布控的區(qū)胺域。系統(tǒng)具罷有幾乎無(wú)限哀的無(wú)縫擴(kuò)展拔能力。所以辦設(shè)備都以I拜P地址進(jìn)行壩標(biāo)示,增加熬設(shè)備只是意八味著IP地稗址的擴(kuò)充。般性能穩(wěn)定可哀靠,無(wú)需專昂人管理。嵌瓣入式web芭服務(wù)器實(shí)際芭上是基于嵌八入式微處理吧器技術(shù),采罷用嵌入式實(shí)百時(shí)多任務(wù)操絆作系統(tǒng),對(duì)扮于用戶來(lái)講笆,上網(wǎng)進(jìn)行把登陸,便可盎對(duì)家中情況阿進(jìn)行監(jiān)控。氨除了WEB俺服務(wù)器實(shí)時(shí)唉控制之外,阿當(dāng)前智能手拌機(jī)的發(fā)展趨奧勢(shì)已經(jīng)愈加板明顯。智能般手機(jī)(Sm把a(bǔ)rtph般one),背是指巴“拔像個(gè)人電腦耙一樣,具有氨獨(dú)立的操作系統(tǒng),可以背由用戶自行擺安裝軟件、奧游戲等第三哀方服務(wù)商提板供的程序,敗通過(guò)此類程擺序來(lái)不斷對(duì)耙手機(jī)的功
12、能把進(jìn)行擴(kuò)充,拌并可以通過(guò)把移動(dòng)通訊網(wǎng)靶絡(luò)來(lái)實(shí)現(xiàn)無(wú)癌線網(wǎng)絡(luò)接入拌的這樣一類叭手機(jī)的總稱哎”藹。而當(dāng)前應(yīng)吧用在智能手翱機(jī)上的操作般系統(tǒng)中An敖droid吧操作系統(tǒng)占叭有相當(dāng)大的暗比例。礙W。巴Andro阿id( 中盎文名:安卓扒) 是基于熬Linux邦平臺(tái)開源手伴機(jī)操作系統(tǒng)半名稱,該平笆臺(tái)由操作系扒統(tǒng)、中間件背、用戶界面白和應(yīng)用軟件靶組成,號(hào)稱板是首個(gè)為移八動(dòng)終端打造拜的真正開放哀和完整的移澳動(dòng)軟件。隨把著Andr柏oid應(yīng)用扒的更見廣泛矮,了解并能跋使用And斑roid來(lái)吧完成我們對(duì)柏智能家居的熬控制已經(jīng)顯笆得愈加重要阿。哎9。襖現(xiàn)在監(jiān)控系耙統(tǒng)發(fā)展到第哀三代,前端疤一體化、視叭頻十字化、笆監(jiān)控
13、網(wǎng)絡(luò)化凹、系統(tǒng)集成叭化成為視頻凹監(jiān)控系統(tǒng)公案認(rèn)的發(fā)展方向,它以網(wǎng)拜絡(luò)為依托,癌以數(shù)字視頻扮的壓縮、傳板輸、存放和癌播放為核心版,以智能實(shí)靶用的圖像分絆析為特點(diǎn),稗并為報(bào)警系靶統(tǒng)、門禁系案統(tǒng)完美的整巴合到一個(gè)使疤用平臺(tái)上,扮引發(fā)了視頻班控制行業(yè)的矮一次技術(shù)革凹命。懊b。術(shù)語(yǔ)定義拔Andro邦id:氨 Andr鞍oid是一霸種以 HYPERLINK /view/1634.htm 扒Linux凹為基礎(chǔ)的開哎放源碼 HYPERLINK /view/880.htm 拔操作系統(tǒng)拔,主要使用芭于便攜設(shè)備埃。昂K。埃HAL瓣:硬件抽象啊層。半JNI:J安NI是Ja佰va Na盎tive 擺Inter岸face
14、的皚縮寫,中文挨為JAVA般本地調(diào)用霸。扮c。暗RFID伴:把射頻識(shí)別即叭RFID(奧Radio叭 Freq斑uency昂 IDen斑tific拔ation芭)技術(shù),又傲稱電子標(biāo)簽吧、無(wú)線射頻哎識(shí)別,是一骯種通信技術(shù)阿,可通過(guò)無(wú)吧線電訊號(hào)識(shí)佰別特定目標(biāo)岸并讀寫相關(guān)伴數(shù)據(jù),而無(wú)辦需識(shí)別系統(tǒng)捌與特定目標(biāo)盎之間建立機(jī)骯械或光學(xué)接把觸。啊V。敗A8:爸 ARM 埃Corte敗x-A8處版理器是第一凹款基于AR版Mv7架構(gòu)凹的應(yīng)用處理藹器,并且是敖有史以來(lái)A頒RM開發(fā)的藹性能最高、骯最具功率效挨率的處理器案。跋T。疤M0:Co礙rtex-扳M0處理器柏,是市場(chǎng)上八現(xiàn)有的最小稗、能耗最低盎、最節(jié)能的板AR
15、M處理八器。隘D。技術(shù)方案系統(tǒng)描述隘Andro翱id是一個(gè)懊開放源碼的安操作系統(tǒng)專把門為移動(dòng)電敖話而設(shè)計(jì)的氨系統(tǒng)。An奧droid柏手機(jī)將開辟藹新的應(yīng)用,靶使家居智能澳化運(yùn)用于普懊通家庭。傲1。敗Andro邦id 界面俺顯示(Co敗rtex_藹A8)來(lái)自案于Cort埃ex_m0柏模擬量,并癌可對(duì)Cor八tex_m愛0進(jìn)行控制半或操作。絆6。敖本系統(tǒng)做為百裁減項(xiàng)目,昂實(shí)現(xiàn)了M0藹采集房間信吧息,通過(guò)無(wú)捌線方式發(fā)送百到A8進(jìn)行愛監(jiān)控、控制敖。A8即可般作為移動(dòng)終翱端設(shè)備(如白phone艾、pad等拜),亦可作八中央監(jiān)控服哎務(wù)器設(shè)備。爸本項(xiàng)目采用疤后者方案,澳即作中央監(jiān)霸控。若需作拜移動(dòng)設(shè)備,拜只需
16、將程序白移植到移動(dòng)瓣設(shè)備上,再懊在中央端移拔植web服艾務(wù)器,移動(dòng)俺設(shè)備登陸服把務(wù)器即可查挨看房屋信息叭。拔z。功能描述扳1.檢測(cè)室案內(nèi)溫度、濕度、光感、啊電壓情況(骯通過(guò)Cor擺tex_m板0采集的信絆息)。艾a。叭2.通過(guò)溫按度、濕度的捌情況來(lái)對(duì)應(yīng)稗調(diào)節(jié)風(fēng)扇開奧關(guān)(控制C暗ortex埃_m0)。敗I。罷3.根據(jù)光鞍敏傳感器情唉況對(duì)應(yīng)調(diào)節(jié)扳led燈亮扒滅(控制C安ortex哎_m0)。耙y。邦4.根據(jù)三把軸加速度情昂況對(duì)應(yīng)調(diào)節(jié)哎蜂鳴器開關(guān)白(控制Co笆rtex_懊m0)。柏X。敖5.顯示R般fid信息靶等功能(通柏過(guò)Cort耙ex_m0襖采集)。項(xiàng)目功能圖疤圖2.1 哎項(xiàng)目功能圖半所涉及的系
17、盎統(tǒng)捌、工具拔表2.1 凹系統(tǒng)與工具系統(tǒng)名稱系統(tǒng)版本備注Linux內(nèi)核Linux3.0.8Android文件系統(tǒng)Android4.0版本工具鏈arm-none-linux-gnueabi-gccAndroid程序開發(fā)Eclipse按前端數(shù)據(jù)中傲心(A8)辦總體設(shè)計(jì)阿程序設(shè)計(jì)流安程圖扒圖3.1 暗程序設(shè)計(jì)流叭程圖線程定義懊1.奧 S拜martH把omeAc捌tivit拔y耙,程序主A哎ctivi爸ty界面,拌打開程序首昂先運(yùn)行。扮B。頒2.矮 Node叭InfoA阿ctivi白ty啊,從界面A岸ctivi爸ty,用來(lái)罷顯示詳細(xì)設(shè)斑備采集信息礙和控制按鍵阿。胺I。佰3.斑 Main半ReadT班h
18、read案,讀數(shù)據(jù)主笆線程,該線叭程只負(fù)責(zé)對(duì)凹通過(guò)Zig般bee獲取挨的數(shù)據(jù)轉(zhuǎn)發(fā)捌給讀進(jìn)程,胺不進(jìn)行數(shù)據(jù)埃操作敗。 皚e。暗4.安 敖MainH巴andle芭rThre按ad半,處理數(shù)據(jù)胺線程,該線瓣程對(duì)從讀進(jìn)吧程傳來(lái)的數(shù)拔據(jù)進(jìn)行數(shù)據(jù)板校驗(yàn)并轉(zhuǎn)發(fā)唉。 扒7。擺5.艾 Node隘Write疤Threa版d邦,控制線程扳,該線程負(fù)拜責(zé)處理由用般戶對(duì)設(shè)備的板操作。搬O。所用類定義佰1背.板 叭Data,班用來(lái)存儲(chǔ)和哀處理設(shè)備的靶采集數(shù)據(jù)。搬2.瓣 Node耙Cmd瓣,定義操作礙方法,實(shí)現(xiàn)把對(duì)設(shè)備的讀笆操作和控制八操作。扮3。捌3.罷 Node白Info皚,定義設(shè)備把的所有采集白信息,控制伴器狀態(tài)和W
19、扳atchD斑og。扳r。扮4.辦 Node板List搬,使用鏈表癌存儲(chǔ)設(shè)備信挨息。般5.扒 MyUa襖rtSer懊vice扒:提供與底般層的接口,瓣以讀寫串口板。擺r。柏前端A8模捌塊設(shè)計(jì)礙 拌A8-An艾droid伴 App百licat氨ion層設(shè)佰計(jì)數(shù)據(jù)流分析俺NEWNO熬DE拜,新節(jié)點(diǎn)加哎入藹1背.數(shù)據(jù)處理流埃程圖跋圖爸4.1哀耙N辦EWNOD襖E般數(shù)據(jù)流程圖澳2.擺數(shù)據(jù)格式昂N皚EWNOD百E唉數(shù)據(jù)格式數(shù)據(jù)格式NEWNODES4FnI1襖3.數(shù)據(jù)處翱理詳細(xì)描述版Corte懊x-M0開傲啟,通過(guò)Z挨igbee頒發(fā)送NEW扮NODE數(shù)壩據(jù)給Cor耙tex-A唉8,程序通扳過(guò)Main礙Re
20、adT阿hread熬線程讀取到白數(shù)據(jù),交由頒MainH搬andle澳rThre般ad線程處暗理。Mai扒nHand礙lerTh阿read對(duì)襖NOEWN氨O(jiān)DE進(jìn)行疤校驗(yàn),判斷是否合法,把如果數(shù)據(jù)無(wú)熬誤,通過(guò)發(fā)頒送Hand半ler消息扳交由Sma扒rtHom笆eActi隘vity主搬界面UI線罷程,Sma氨rtHom拌eActi巴vity 絆判斷鏈表是扒否已經(jīng)存在熬該節(jié)點(diǎn),不瓣存在則加入安鏈表并創(chuàng)建哀節(jié)點(diǎn)。凹m。按NODEI邦NFO鞍,節(jié)點(diǎn)信息襖更新。按1.數(shù)據(jù)處稗理流程圖拌圖扳4.版2搬傲NODEI斑NFO辦數(shù)據(jù)流程圖2.數(shù)據(jù)格氨式芭NODEI擺NFO柏?cái)?shù)據(jù)數(shù)據(jù)格式NODEINFOS23FiI
21、1T24H30L6V220X1Y1Z60扳3.數(shù)據(jù)處傲理詳細(xì)描述斑Corte矮x-M0開襖啟,通過(guò)Z百igbee澳發(fā)送NEW佰NODE數(shù)板據(jù)給Cor唉tex-A骯8,程序通按過(guò)Main哎ReadT安hread阿線程讀取到瓣數(shù)據(jù),交由按MainH霸andle柏rThre跋ad線程處佰理。Mai把nHand啊lerTh靶read對(duì)藹NODEI隘NFO進(jìn)行霸校驗(yàn),判斷奧是否合法,隘如果數(shù)據(jù)無(wú)誤,通過(guò)發(fā)案送Hand安ler消息邦交由Sma拌rtHom拌eActi巴vity主爸界面UI線靶程,Sma案rtHom案eActi拜vity 礙判斷鏈表是邦否已經(jīng)存在搬該節(jié)點(diǎn),存叭在則更新該礙鏈表信息,佰并判斷是
22、否佰進(jìn)入該節(jié)點(diǎn)安從界面,如板果進(jìn)入發(fā)送啊Broad昂cast通吧知從界面更扳新數(shù)據(jù)。矮u。頒RFID,俺用戶登錄或瓣退出。頒 埃1.數(shù)據(jù)處胺理流程圖挨圖疤4.皚3搬爸RFID數(shù)啊據(jù)流程圖班2.數(shù)據(jù)格伴式奧RFID敖數(shù)據(jù)格式數(shù)據(jù)格式RFIDS11FrI1R靶3.數(shù)據(jù)處隘理詳細(xì)描述愛Corte頒x-M0開安啟,通過(guò)Z版igbee班發(fā)送NEW熬NODE數(shù)藹據(jù)給Cor襖tex-A暗8,程序通案過(guò)Main埃ReadT斑h(yuǎn)read敗線程讀取到癌數(shù)據(jù),交由岸MainH骯andle吧rThre岸ad線程處襖理。Mai氨nHand吧lerTh藹read對(duì)安RFID進(jìn)按行校驗(yàn),判俺斷是否合法耙,如果數(shù)據(jù)傲無(wú)誤,通
23、過(guò)敗發(fā)送Han吧dler消白息交由Sm愛artHo搬meAct背ivity斑主界面UI半線程,Sm邦artHo澳meAct矮ivity俺發(fā)送Bro瓣adcas擺t通知從界頒面,從界面爸判斷是否為疤自己設(shè)備,敗是則更新數(shù)凹據(jù)。罷h。耙Appli癌catio哎n層詳細(xì)設(shè)拜計(jì)與實(shí)現(xiàn)瓣類對(duì)象詳細(xì)爸描述吧1 .Da藹ta類,負(fù)挨責(zé)對(duì)接受來(lái)鞍數(shù)據(jù)進(jìn)行處澳理盎表4.1 巴Data成盎員屬性表屬性類型描述serialVersionUIDlong序列化時(shí)保持版本的兼容性,即在版本升級(jí)時(shí)反序列化仍保持對(duì)象的唯一性。dataString存儲(chǔ)從串口的數(shù)據(jù)絆表4.2 笆Data成笆員方法表方法參數(shù)返回值描述getDat
24、aSizeVoidString從傳來(lái)的數(shù)據(jù)獲取數(shù)據(jù)大小isValidDataVoidboolean數(shù)據(jù)有效性校驗(yàn),包括數(shù)據(jù)是為為空,完整等getDataTypeVoidint從傳來(lái)的數(shù)據(jù)獲取數(shù)據(jù)類型getDataTargetVoidString從傳來(lái)的數(shù)據(jù)獲取數(shù)據(jù)的設(shè)備號(hào)getRfidVoidString從傳來(lái)的數(shù)據(jù)獲取Rfid信息getTemperatureVoidString從傳來(lái)的數(shù)據(jù)獲取溫度getHumidityVoidString從傳來(lái)的數(shù)據(jù)獲取濕度getLightVoidString從傳來(lái)的數(shù)據(jù)獲取光感g(shù)etAdVoidString傳來(lái)的數(shù)據(jù)獲取AD值getXVoidString從
25、傳來(lái)的數(shù)據(jù)獲取三軸加速度x值getYVoidString從傳來(lái)的數(shù)據(jù)獲取三軸加速度y值getZVoidString從傳來(lái)的數(shù)據(jù)獲取三軸加速度z值癌2懊 版.Node稗Cmd類,鞍負(fù)責(zé)與底層挨進(jìn)行交互,扳實(shí)現(xiàn)對(duì)硬件柏設(shè)備讀,寫矮操作。壩0。敖表4.3 扳NodeC挨md成員屬耙性表屬性類型描述DevCmdenum使用枚舉將命令聲明一組命名的常數(shù),方便函數(shù)調(diào)用。myUartServiceMyUartService串口操作所使用框架拜表4.4 辦NodeC熬md成員方阿法表方法參數(shù)返回值描述devControlint, DevCmdString向串口發(fā)送數(shù)據(jù)readNodeVoidString從串口
26、獲取數(shù)據(jù)襖3 .No頒deInf罷o類,負(fù)責(zé)案存儲(chǔ)一個(gè)設(shè)艾備的信息。爸表4.5 柏NodeI瓣nfo成員般屬性表屬性類型描述serialVersionUIDlong序列化時(shí)保持版本的兼容性,即在版本升級(jí)時(shí)反序列化仍保持對(duì)象的唯一性。temperatureString存儲(chǔ)節(jié)點(diǎn)對(duì)象的溫度值humidityString存儲(chǔ)節(jié)點(diǎn)對(duì)象的濕度lightString存儲(chǔ)節(jié)點(diǎn)對(duì)象的光感值xString存儲(chǔ)節(jié)點(diǎn)對(duì)象的三軸加速度x值yString存儲(chǔ)節(jié)點(diǎn)對(duì)象的三軸加速度y值z(mì)String存儲(chǔ)節(jié)點(diǎn)對(duì)象的三軸加速度z值adString存儲(chǔ)節(jié)點(diǎn)對(duì)象的ad值ledint存儲(chǔ)節(jié)點(diǎn)對(duì)象的led燈狀態(tài)(0,滅;1,亮)funi
27、nt存儲(chǔ)節(jié)點(diǎn)對(duì)象的風(fēng)扇狀態(tài)(0,關(guān);1,開;2,加速)beepint存儲(chǔ)節(jié)點(diǎn)對(duì)象的報(bào)警器狀態(tài)(0,關(guān);1,開)nixietubint存儲(chǔ)節(jié)點(diǎn)對(duì)象的數(shù)碼管狀態(tài)(0,關(guān);1,開)rfidrfid存儲(chǔ)節(jié)點(diǎn)對(duì)象的rfid信息devNumint存儲(chǔ)節(jié)點(diǎn)對(duì)象的設(shè)備號(hào)nextNodeInfo便于生成鏈表watchDogint看門狗,監(jiān)控節(jié)點(diǎn)生命值哎表4.6 柏NodeI邦nfo成員八方法表方法參數(shù)返回值描述NodeInfovoidvoid構(gòu)造函數(shù),初始化節(jié)點(diǎn)對(duì)象NodeInfovoidint有參數(shù)構(gòu)造函數(shù),參數(shù)為節(jié)點(diǎn)設(shè)備號(hào)getNextvoidNodeInfosetNextNodeInfovoidgetTe
28、mperaturevoidString獲取該對(duì)象溫度值setTemperatureStringvoid設(shè)置該對(duì)象溫度值getHumidityvoidString獲取該對(duì)象濕度值setHumidityStringvoid設(shè)置該對(duì)象濕度值getLightvoidString獲取該對(duì)象光感值setLightStringvoid設(shè)置該對(duì)象光感值getAdvoidString獲取該對(duì)象AD值setAdStringvoid設(shè)置該對(duì)象AD值getXvoidString獲取該對(duì)象三軸加速度x值setXStringvoid設(shè)置該對(duì)象三軸加速度x值getYvoidString獲取該對(duì)象三軸加速度y值setYStr
29、ingvoid設(shè)置該對(duì)象三軸加速度y值getZvoidString獲取該對(duì)象三軸加速度z值setZStringvoid設(shè)置該對(duì)象三軸加速度z值getLedvoidint獲取該對(duì)象Led狀態(tài)值setLedintvoid設(shè)置該對(duì)象Led狀態(tài)值getFunvoidint獲取該對(duì)象Fun狀態(tài)值setFunintvoid設(shè)置該對(duì)象Fun狀態(tài)值getBeepvoidint獲取該對(duì)象Beep狀態(tài)值setBeepintvoid設(shè)置該對(duì)象Beep狀態(tài)值getNixietubvoidint獲取該對(duì)象Nixietub狀態(tài)值setNixietubintvoid設(shè)置該對(duì)象Nixietub狀態(tài)值getDevNumvoid
30、int獲取該對(duì)象DevNum值setDevNumintvoid設(shè)置該對(duì)象DevNum值getRfidvoidString獲取該對(duì)象Rfid值setRfidStringvoid設(shè)置該對(duì)象Rfid值getWatchDogvoidint獲取該對(duì)象WatchDog值setWatchDogintvoid設(shè)置該對(duì)象WatchDog值ledOnvoidvoid開燈ledOffvoidvoid關(guān)燈funOnvoidvoid開風(fēng)扇FunOn1voidvoid風(fēng)扇加速funOffvoidvoid關(guān)風(fēng)扇beepOnvoidvoid開蜂鳴器beepOffvoidvoid關(guān)蜂鳴器nixietubeOnvoidvoid開
31、數(shù)碼管nixietubeOffvoidvoid關(guān)數(shù)碼管凹4 .No版deLis百t類,存儲(chǔ)凹所有連接設(shè)艾備的信息,皚便于進(jìn)行界按面節(jié)點(diǎn)的更般新,刪除和頒添加操作。把n。扳表4.7 搬NodeL俺ist成員敗屬性表屬性類型描述headNodeInfo鏈表頭結(jié)點(diǎn)lenLong鏈表長(zhǎng)度扒表4.8 拜NodeL安ist成員艾方法表方法參數(shù)返回值描述getHeadNodeInfovoid獲取鏈表頭結(jié)點(diǎn)setHeadvoidNodeInfo設(shè)置鏈表頭結(jié)點(diǎn)createNodeListvoidvoid創(chuàng)建設(shè)備節(jié)點(diǎn)鏈表insertNodeNodeInfovoid插入節(jié)點(diǎn)delNodeNodeInfovoid刪除
32、節(jié)點(diǎn)allNodevoidvoid遍歷鏈表所有節(jié)點(diǎn)findByDevNumintNodeInfo通過(guò)設(shè)備號(hào)找到節(jié)點(diǎn)nodeIsNotExistedintboolean通過(guò)設(shè)備號(hào)查找節(jié)點(diǎn)是否存在于鏈表delByDevNumintvoid通過(guò)設(shè)備號(hào)刪除節(jié)點(diǎn)allNodeSetWatchDogvoidString所有設(shè)備節(jié)點(diǎn)看門狗減一oneNodeFeedWatchDogintvoid通過(guò)設(shè)備號(hào)找到設(shè)備節(jié)點(diǎn)并喂狗findNodeDogDievoidint遍歷設(shè)備節(jié)點(diǎn),查看是否有節(jié)點(diǎn)生命結(jié)束getLenvoidint得到鏈表長(zhǎng)度f(wàn)indNodeByPosintNodeInfo通過(guò)在鏈表中位置查找到設(shè)備
33、節(jié)點(diǎn)把線程類詳細(xì)絆描述板1敗 班.骯 Main俺ReadT熬hread跋類八當(dāng)啟動(dòng)Ma把inRea按dThre扒ad線程,哀執(zhí)行run阿方法,ru哎n方法先通瓣過(guò)runn捌ing判斷斑是否執(zhí)行讀啊操作,如果跋runni把ng為tr伴ue,進(jìn)行絆對(duì)設(shè)備讀操胺作,判斷M挨ainHa把ndler安Threa半d處理線程藹是否創(chuàng)建,背未創(chuàng)建則創(chuàng)氨建并將讀出啊的數(shù)據(jù)傳給哎MainH敗andle伴rThre俺ad,并啟笆動(dòng)線程,循凹環(huán)執(zhí)行。伴3。凹圖4.4 敖MainR澳eadTh案read凹 RUN流芭程圖霸2按 半.扳 Main拜Handl扒erThr頒ead癌類胺當(dāng)Main俺ReadT頒hread鞍
34、線程將讀取般的數(shù)據(jù)傳到矮MainH哎andle頒rThre半ad后,先白對(duì)數(shù)據(jù)進(jìn)行愛有效性認(rèn)證半,如果數(shù)據(jù)靶有誤,使用罷handl芭er傳遞發(fā)靶送給Sma拜rtHom跋eActi爸vity即扮主界面UI愛線程把,進(jìn)行處理扮;如果數(shù)據(jù)藹無(wú)誤,判斷頒數(shù)據(jù)類型并礙使用han隘dler傳傲遞,發(fā)送給胺Smart哀HomeA疤ctivi啊ty進(jìn)行處佰理。疤S。藹圖4.5 盎MainH愛andle辦rThre哀ad胺 RUN流笆程圖絆3半 敗.扒 Node昂Write澳Threa隘d岸類頒只負(fù)責(zé)執(zhí)行搬設(shè)備控制的絆命令,使用背線程可以使斑程序多次獨(dú)凹立線程執(zhí)行唉,不被影響隘。扳S。盎圖4.6 哎NodeW凹
35、riteT澳hread艾 RUN流板程圖胺UI類詳細(xì)罷描述凹1岸 跋.壩 跋Smart把HomeA罷ctivi昂ty霸類傲onCre翱ate伴a) 初始鞍化節(jié)點(diǎn)列表鞍nodeL頒ist扒。芭b) 設(shè)置吧從界面標(biāo)題藹,霸setTi骯tle皚。阿c) 設(shè)置哀視圖,按setCo扒ntent拔View案。般d) 獲取埃主界面控件班的引用,頒findV安iewBy斑Id拌。靶e) 設(shè)置澳GridV唉iew和使扒用的適配器疤BaseA俺dapte敖r胺。奧o。疤f) 設(shè)置白選項(xiàng)被單擊敗的監(jiān)聽器,按setOn八ItemC絆lickL罷istener昂。疤l。巴g)翱 設(shè)置線程巴的 Han巴dler,凹重寫藹
36、handl皚eMess埃age鞍方法。斑p。柏h) 打開拔程序讀線程礙。稗i) 注冊(cè)敖返回廣播接扳收器。佰onDes壩troy暗a)愛阿卸載廣播接百收器,啊unreg懊ister壩Recei癌ver唉。霸b)暗按關(guān)閉讀線程礙,扒mainR八eadTh敖read.唉stop奧。懊c)扮白關(guān)閉主界面瓣Activity,拌this.按finis隘h襖。隘updat耙aLayO背ut唉a)昂隘設(shè)置所有節(jié)凹點(diǎn)的看門狗伴減一,跋allNo爸deSet吧Watch伴Dog隘。骯6。唉b)芭瓣判斷是否有凹節(jié)點(diǎn)看門狗跋死亡,扳findN阿odeDo芭gDie扮。如果存在藹,刪除No哀de節(jié)點(diǎn)鏈疤表,挨delBy
37、岸DevNu矮m拜,并判斷是百否進(jìn)入該節(jié)藹點(diǎn)從界面,隘如果進(jìn)入則叭發(fā)送廣播使澳其退出。最熬后,向該死擺亡設(shè)備發(fā)送巴確認(rèn)命令澳ISEXI傲T白,如果未死埃亡,重新發(fā)埃送添加節(jié)點(diǎn)叭NewNo矮de的數(shù)據(jù)皚。絆3。拜c)板罷更新適配器懊notif板yData搬SetCh胺anged癌。阿(4)芭扳BackR跋eceiv耙er愛 廣播接受拔器跋a)把阿從節(jié)點(diǎn)列表啊刪除從界面奧返回的節(jié)點(diǎn)阿的原對(duì)象,哎nodeL哎ist.d跋elByD鞍evNum捌()扒w。岸b)暗翱向節(jié)點(diǎn)列表安插入從界面凹返回的新節(jié)案點(diǎn)對(duì)象,岸nodeL霸ist.i癌nsert般Node(版)阿w。盎c)啊關(guān)閉從界面唉Activ疤it
38、y ,芭finis熬hActi扒vity(笆)胺。皚B。班2版 哀.阿 Node襖InfoA盎ctivi艾ty癌類般onCre頒ate背a)哎敗創(chuàng)建從節(jié)點(diǎn)扮對(duì)象Nod頒eInfo哀。斑b)叭半設(shè)置氨視圖癌,搬setCo藹ntent笆View骯。疤c)阿跋獲取從界面八控件的引用扒,巴findV挨iewBy疤Id疤。壩d)澳阿通過(guò)澳Inten傲t靶對(duì)象,獲取凹從主界面?zhèn)靼祦?lái)的nod胺eInfo版對(duì)象并賦給骯從界面對(duì)象邦。擺Y。安e)鞍扮設(shè)置從疤界面俺標(biāo)題,扒setTi骯tle佰。扳f)吧案將主界面熬獲取按的node般Info對(duì)八象反饋到界捌面,耙setTe般xt安。伴r。爸g)皚埃注冊(cè)廣播凹接收器
39、芭h)板按設(shè)置返回鍵澳監(jiān)聽器i)按唉設(shè)置風(fēng)扇佰監(jiān)聽器扳,設(shè)置Le瓣d監(jiān)聽器,凹設(shè)置蜂鳴器扒監(jiān)聽器,設(shè)扒置數(shù)碼管監(jiān)班聽器笆Q。扳(2)昂扳onDes柏troy敖卸載廣播接笆收器,擺unreg搬ister暗Recei捌ver拜。艾數(shù)據(jù)庫(kù)詳細(xì)挨描述扳1 . 安RfidR柏ecord胺DBHel耙per笆類岸繼承敖SQLit佰eOpen癌Helpe百r佰類,重寫o埃nCrea骯te方法。斑V。表新建盎使用安SQLit埃eData啊base搬對(duì)象的骯execS藹QL愛方法去添加皚表。命令如擺下:巴g。creat藹e tab埃le if百 not 耙exist哀s rfi爸dTabl白e (id芭 INT
40、E暗GER p吧rima藹ry ke霸y aut佰oincr絆ement盎, de拜vId v愛archa辦r, rf矮I(xiàn)d va懊rchar隘)鞍k。增加拌使用扒SQLit暗eData把base百對(duì)象的頒execS半QL隘方法去增加奧數(shù)據(jù)。命令如下:暗k。瓣inser疤t int傲o rfi襖dTabl凹e(dev八Id, r班fId) 拌value版s (?,把?)壩S。刪除哀使用案SQLit吧eData傲base半對(duì)象的艾execS耙QL罷方法去刪除瓣數(shù)據(jù)。命令靶如下:把S。翱delet藹e fro按m rfi叭dTabl般e whe背re rf笆Id =矮 愛?鞍h。把2 . 數(shù)壩據(jù)庫(kù)
41、表設(shè)計(jì)稗表4.9 搬rfidT板able耙數(shù)據(jù)庫(kù)表字段名類型屬性描述idINTEGERprimary key autoincrementID主鍵devIdVARCHARNull設(shè)備號(hào)rfIdVARCHARNullRFID號(hào)哀框架詳細(xì)描案述凹芭 MyUa百rtSer壩vice熬類巴1 .加載靶庫(kù),邦Syste頒m白.load拔Libra安ry(u岸art_r岸untim般e)襖Y。礙2 .重寫伴構(gòu)造函數(shù),笆調(diào)用本地 疤_ini岸t方法,對(duì)拜設(shè)備進(jìn)行初柏始化。奧S。背3. 通過(guò)邦調(diào)用本地方八法實(shí)現(xiàn)ja奧va方法扳A8-數(shù)據(jù)搬傳遞架構(gòu)模案塊層次接口表 數(shù)據(jù)傳遞(串口操作)應(yīng)用層UartDataUpd
42、ateNew MyUartServiceUartSendCmdframework層_uart_send_cmd_uart_data_update_initJNI層Uart_writeUart_initUart_readHal層Uart_write_halUart_read_drvUart_device_openUart_read_halUart_write_drv驅(qū)動(dòng)WriteOpenRead盎圖4.6.霸1 接口層熬次圖爸圖4.6.艾2 結(jié)構(gòu)圖HAL層宏敗表4.10般 HAL層佰宏定義熬表名稱內(nèi)容功能UART_HARDWARE_MODULE_IDuart定義hal 的模塊idSTART0 x
43、AA數(shù)據(jù)包的開始符NEW0 x01新節(jié)點(diǎn)加入發(fā)的包INFO0 x02采集的信息包RFID0 x04刷卡時(shí)發(fā)的包全局變量白表4.11岸 巴HAL擺層全局變量柏表名稱類型功能fdint操作設(shè)備的文件描述符結(jié)構(gòu)體阿表4.12爸 HAL層疤結(jié)構(gòu)體澳表struct uart_module_t成員名類型功能commonstruct hw_module_t記錄本stub的基本信息和入口struct uart_control_device_t成員名類型功能commonstruct hw_device_t記錄本stub操作設(shè)備時(shí)需要包括的接口uart_read_hal函數(shù)指針指向?qū)嶋H讀串口的函數(shù)uart_wri
44、te_hal函數(shù)指針指向?qū)嶋H寫串口的函數(shù)4、流程圖癌圖4.7 懊HAL層結(jié)唉構(gòu)圖JNI層宏頒表4.13八 JNI層阿宏定義阿表名稱內(nèi)容功能UART_HARDWARE_MODULE_IDuart定義HAL 的模塊ID全局變量扳表4.14埃 JNI層巴全局變量佰表名稱類型功能sUartDeviceuart_control_device_t *保存通過(guò)調(diào)用stub中的open接口后得到的devices handlesUartModuleuart_module_t*保存通過(guò)調(diào)用Android HAL標(biāo)準(zhǔn)函數(shù)hw_get_module,傳入U(xiǎn)ART_HARDWARE_MODULE_ID后得到的UART
45、stub的句柄流程圖阿JNI層主版要實(shí)現(xiàn)了J白ava與c隘/c+之半間的過(guò)渡,般不涉及復(fù)雜笆的邏輯,只挨根據(jù)規(guī)則為氨上層函數(shù)調(diào)傲用相應(yīng)的下捌層接口,參邦見整體流程頒。懊4。絆F般ramew跋ork層邦表4.15骯 背Frame邦work捌層類壩表public class MyUartService方法功能System.loadLibrary裝載編譯好的JNI層的共享庫(kù)public MyUartService構(gòu)造函數(shù),打開并初始化串口public String UartDataUpdate讀取當(dāng)前串口信息數(shù)據(jù)包public int UartSendCmd向串口傳送命令數(shù)據(jù)包整體流程熬下續(xù):ha俺
46、l層敖圖4.8 百整體流程圖班關(guān)鍵代碼分耙析搬NodeC半md.ja骯va哀stati佰c MyU百artSe板r背vice 翱myUartServ八ice =擺 new 奧MyUar板tServ百ice()皚;敗 /新建扮對(duì)象,初始藹化 頒 唉 哀 皚 扮 百 澳 按 敗 扮 哀 般 埃 傲 捌 板 皚 敗 頒 昂 啊 柏w。哀Strin昂g s =阿 myUa耙rtSer百vice.案UartD翱ataUp稗date(吧); /皚更新采集數(shù)骯據(jù) 昂 耙 礙 啊 絆 鞍 愛 壩 擺 頒 奧 皚 隘 敖 捌 耙 凹 扮 捌 辦 巴 斑 版B。斑myUar礙tServ壩ice.U拔artSe翱n
47、dCmd耙(1, L版ED_ON哀); /稗/點(diǎn)亮1號(hào)吧設(shè)備的燈柏 敖 罷 礙 癌 壩 按 叭 俺 扒 傲 啊 罷 拌 吧1。哎MyUar皚tServ板ice.j頒ava百packa百ge cn艾.com.疤smart辦home.斑uart;柏 奧 頒 半 氨 白 拜 藹 半 笆 把 辦 八 胺 矮 壩 笆 傲 捌 捌 扳 暗 瓣 八 岸 襖 澳 板 絆 辦 扳 暗 柏 凹 捌 般 背 奧 安 埃 壩 百 礙 稗 澳 艾 耙 巴 安 叭 暗 半 巴impor熬t and疤roid.昂util.藹Log;芭 阿 班 唉 藹 搬 胺 鞍 扳 骯 叭 八 背 白 斑 伴 挨 擺 埃 阿 鞍 瓣 暗
48、隘 疤 捌 奧 般 拔 伴 澳 懊 癌 辦 襖 埃 癌 扳 芭 俺 按 隘 敗 隘 扮publi癌c cla敖ss My霸UartS啊ervic版e 扮 愛 百 叭 埃 案 敗 吧 埃 佰 扒 敖 叭 百 哀 捌 搬 芭 板 奧 芭 藹 搬跋/*百 癌 氨 傲 靶 按 哀 捌 哎 懊 矮 皚 唉 扮 擺 絆 拜 芭 柏 辦 壩 啊 啊 翱 般 擺 壩 瓣 翱 扳 哀 拌 胺 矮翱 * lo般ad na伴tive 稗servi罷ce.拜 隘 扳 安 壩 柏 暗 奧 隘 安 哀 扒 埃 伴 瓣 斑 傲 搬 癌 八 傲 扳 佰叭 */罷 阿 邦 氨 稗 拜 哎 壩 拜 扒 捌 笆 艾 隘 哎 板 襖
49、 跋 襖 俺 隘 胺 捌 瓣 頒 安 挨 扮 矮 哎 骯 伴 愛 奧 案扳stati吧c 案扳懊 罷 岸 絆 盎 邦 吧 鞍 岸 八 八 敗 擺 頒 埃 熬 骯 皚 阿 隘 矮 百柏Syste百m.loa跋dLibr扒ary(八uart_壩runti俺me);佰 /裝載敗庫(kù)白癌搬敗 稗 翱 襖 暗 吧 白 耙 澳 辦 霸 芭j。搬案扮唉哀 柏 邦 礙 艾 跋 氨 藹 班 啊 埃 昂伴案 稗 鞍 跋 哀 扒 靶 佰 熬 柏 哀 安 哎拔藹 班 跋 斑 扒 叭 昂 昂 懊 背 扒 八佰岸 隘 罷 埃 巴 奧 捌 瓣 拜 絆 辦 扮 敖壩publi愛c MyU熬artSe皚rvice盎() 班巴拜
50、霸 百 扒 壩 傲 昂 阿捌稗 澳 把 板 疤 扳 暗 柏 岸 隘 百 罷 胺 啊 癌 懊礙搬_init稗(); /癌/注冊(cè)本地啊方法,打開埃串口并初始拌化捌昂拌 礙 俺 般 芭 哀 捌 敗 巴 骯 傲 皚案伴皚懊 拜 巴 按 班 辦 俺 巴 扒 埃拌案 澳 霸 伴 罷 拌 靶 辦 襖 艾 伴 霸 案 壩 壩氨拔 安 壩 背 艾 把 阿 白 背 吧 凹 俺笆柏 昂 哀 皚 暗 白 邦 鞍 般 襖 暗 癌礙/*骯哀拜 稗 哎 伴 拔 懊 疤 俺襖半 壩 把 捌 澳 唉 暗 壩 吧 罷 扒 哎 捌 拌 敗 翱 叭隘 * ua邦rt na擺tive 藹metho柏ds. 捌唉斑 阿 背 俺 挨 吧
51、疤俺 伴 按 百 擺 版 氨 岸 耙 氨 笆 骯 凹 岸 隘 壩 扳般 */胺安暗 鞍 傲 唉 霸 昂 八 笆板搬 鞍 頒 拔 凹 邦 斑 擺 藹 骯 矮 芭 搬 哀 襖 暗扮publi胺c Str俺ing U氨artDa白taUpd阿ate()芭 昂翱白 奧 斑 癌 礙 擺 盎 熬 埃 案 伴 皚i。藹敗拜Strin霸g s =扒 _uar笆t_dat鞍a_upd昂ate()爸;扮壩骯 扒 板 俺 巴 扮 靶 盎 頒 版 澳 鞍9。吧俺搬retur百n s;阿v熬敖拔 白 哀 氨 拔 疤 巴 胺 藹笆 礙 板 百 般 辦 疤 挨 啊 拔 隘 絆 敗 岸 壩 氨/更新扳采集的數(shù)據(jù)翱哎鞍 懊 巴
52、 鞍 鞍 熬 熬 笆白礙 扳 愛 搬 敖 半 搬 俺 背 百 霸 跋 跋 俺 盎 芭 暗骯版 懊 鞍 盎 氨 八 傲 扮 擺 岸 拜 骯跋拔 捌 傲 半 半 八 暗 昂 百 敗 盎 礙班publi扮c int耙 Uart班SendC拌md(in藹t n, 敗int c俺) 案伴扒 霸 隘 捌 按 稗 扮 岸 八 襖 搬 稗i。罷背翱_uart白_send唉_cmd(疤n, c)唉; 靶背按 叭 襖 唉 哀 案 唉搬柏 氨 扮 疤 藹 拜 阿 頒 骯 艾 罷 啊 胺 背 隘 捌 盎斑稗r(nóng)etur唉n 0; 哎阿挨 扒 班 傲 唉 吧 扳 扳癌白 俺 鞍 癌 八 瓣 捌 搬 扮 昂 靶 稗 靶 案
53、 凹 瓣 按八 /發(fā)敗送命令控制巴M0板搬 疤笆跋 捌 拔 版 邦 板 般襖版 百 跋 瓣 岸 氨 邦 捌 挨 皚 瓣 疤 壩 芭 斑 耙 扮骯priva哎te st捌atic 扳nativ伴e boo俺lean 爸_init礙();盎 /聲明伴jni庫(kù)可扮以提供的方矮法板疤凹 稗 阿 稗 柏 拔 罷 拜 案 矮 阿 藹w。靶俺priva拌te st爸atic 翱nat佰ive S半tring安 _uar癌t_dat辦a_upd皚ate()艾;般安絆 胺 斑 按 皚 擺 辦 案 八 藹 癌c。艾翱priva般te st敖atic 版nativ扳e int皚 _uar般t_sen半d_cmd翱(
54、int 壩n, in皚t c);拌 稗扳傲 捌 扒 罷 柏 芭 斑 芭 按 爸 氨 氨 啊 版h。哀uart_百stub骯inclu安de盎uart佰.h懊struc熬t uar佰t_mod壩ule_t唉 傲昂凹 襖 瓣 埃 爸 板 暗 拔 叭絆癌 扳 壩 捌 懊 澳 熬 澳 吧 挨 癌 埃 扮 百 俺 st鞍ruct 胺hw_mo阿dule_佰t com襖mon; 翱霸捌 叭 版 靶 背 板 扮 藹 盎 稗 隘 霸;扳/HAL懊 規(guī)定不能壩直接使用h班w_mod白u(yù)le_t叭結(jié)構(gòu),因此斑需要做這么挨一個(gè)繼承。挨 澳 絆 拜G。啊岸拔 隘 背 爸 靶 壩 哀 背 叭 版 案 哀 襖struc拔
55、t uar扳t_con爸trol_澳devic邦e_t 鞍 愛翱盎 胺 佰 佰 捌 把 叭 懊 班 襖 跋 辦 矮/自定義巴的一個(gè)針對(duì)笆Uart控捌制的結(jié)構(gòu),艾包含hw_翱devic霸e_t和支按持的API安操作佰叭笆 扒 板 捌 案 愛 把 癌 案 笆 版 癌8。巴 st版ruct 皚hw_de爸vice_案t com搬mon; 擺背懊 拌 扳 班版岸 隘 澳 拌 盎 叭 版 擺 頒 耙 百 敗 吧 疤 百 傲 芭 百 霸 安 哎 /*艾 attr熬ibute叭s */拌扮搬 敗 敖 半 跋 稗 艾 傲 霸 骯 佰 啊 哎吧凹 靶 爸 敗 瓣 頒 巴 胺拜耙 唉 安 佰 背 懊 阿 搬 般
56、奧 岸 胺 凹 埃 暗 鞍 /*爸 supp艾ortin鞍g con把trol 凹APIs 矮go he靶re */扳 扮 芭 岸笆哎 奧 俺 爸 敖 扒 疤 阿H。盎 in耙t (*u盎art_r埃ead_h白al)(s八truct阿 uart俺_cont巴rol_d罷evice背_t *d唉ev, c壩har *辦buf, 扒int c班ount)扳;熬 拜 辦 敗 敖 笆 矮 案 搬 叭 耙 藹a。背襖int (霸*uart班_write_hal笆)(str柏uct u盎art_c斑ontro柏l_dev拌ice_t癌 *dev熬, con疤st ch背ar *c半md);拌 扳 翱 熬
57、 礙 F。巴;伴 背 襖 斑 拜埃伴 搬 暗 矮 邦 靶 拌 壩 啊 礙 藹 疤#defi埃ne UA罷RT_HARDWAR骯E_MOD癌ULE_I奧D ua阿rt 盎/定義一個(gè)MODU鞍LE_ID熬,HAL層氨可以根據(jù)這埃個(gè)ID找到阿我們這個(gè)H半AL st邦ub 八 埃 愛 頒 白 澳版拜 版 百 哀 絆S。暗cn_co案m_奧smart伴home懊_uart皚_MyUa拌rtSer啊vice.八cpp骯L。昂#defi笆ne LO皚G_TAG隘 MyU耙artSe背rvice頒埃 罷 扳 巴 辦 唉背骯 笆 爸 芭 白#incl擺ude 礙utils阿/Log.唉h拜 鞍 板 捌 版 哎敖
58、拜 靶 唉 邦 熬 把 氨 澳#incl伴ude 隘 矮 挨 澳 哎 把頒奧 扮 罷 爸 邦 襖 柏#incl矮ude 笆 扮 壩 氨 斑 版啊 爸 扳 擺 襖 盎 矮 霸#incl百ude 氨 挨 扳 熬 敖 叭暗矮 耙 把 唉 壩 鞍 盎 靶#incl斑ude 叭 擺 般 按 叭 版邦氨 瓣 矮 班 案 拔 哎 埃#incl扮ude 傲 疤 澳 藹 瓣 耙藹叭 版 霸 埃 壩 八 矮 奧#incl氨ude 稗./.拔/uart靶_stub罷/incl辦ude/u安art.h瓣班 耙 隘 拜 佰 皚半胺 俺 邦 矮 瓣 澳 拜w。骯柏稗澳俺唉阿癌邦柏版拜熬巴般骯瓣熬瓣奧 唉stati骯c u
59、ar把t_con敗tr柏ol_de熬vice_疤t *sU昂artDe班vice 佰= 0;柏 疤 爸 啊 俺 叭阿埃 柏 半 挨 矮 伴 襖Q。stati岸c uar般t_mod吧ule_t擺* sUa矮rtMod懊ule=0頒;安 班 佰 氨 拌 敗巴背 安 稗 昂 岸 把JNINa哎tiveM敗ethod按是 jni阿層注冊(cè)的方艾法,F(xiàn)ra哀mewor愛k層可以使哎用這些方法靶 斑 巴 *_init 傲、伴uart_瓣read胺、胺uart_奧write懊 阿是在Fra板mewor笆k中調(diào)用的扮方法名稱,疤函數(shù)的類型班及返回值如耙下: 背 盎 班 笆 半安傲 傲 愛 拜 斑 啊 疤 板
60、版f。骯*()壩Z罷無(wú)參數(shù) 返版回值為bo耙ol型 班 伴 敗 案 阿霸昂 頒 班 哎 凹 癌 * 爸()Lja凹va/la半ng/St胺ring;唉 無(wú)參數(shù) 霸返回值為S癌tring拜型 按 芭 矮 案 斑扒伴 礙 敗 瓣 艾 爸 傲W。盎* 案(II)I昂 參數(shù)為瓣2個(gè)int伴型 返回值安為int型罷 扒 盎 皚 邦 盎靶伴 癌 岸 霸 般 暗 芭芭懊傲百癌埃拜阿澳拌壩爸俺巴扒芭暗般 拌 藹 皚 鞍stati盎c con爸st JN熬INati凹veMet耙hod g搬Metho翱ds = 敖 隘 八 盎 拔 案版 笆 霸 八 昂 俺 扮i。八拌_in懊it, 岸()Z熬, (vo霸id*
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024買賣房產(chǎn)合同樣本
- 女裝批量采購(gòu)合同
- 醫(yī)院勞動(dòng)合同書2024年
- 房屋合同法律效力分析
- 2024年小區(qū)物業(yè)管理系統(tǒng)合同
- 2024年度XX房地產(chǎn)營(yíng)銷代理合同
- 工程代理加盟居間合同樣本
- 旅游客運(yùn)車輛包車合同
- 2024代理商分銷合同探討與研究
- 2024養(yǎng)豬場(chǎng)荒山租賃合同
- 十字相乘法解一元二次方程練習(xí)100題及答案
- 中外合作辦學(xué)規(guī)劃方案
- 廠房屋頂光伏分布式發(fā)電項(xiàng)目建議書
- 2024年人教版初一道德與法治上冊(cè)期中考試卷(附答案)
- 2024年第九屆“鵬程杯”六年級(jí)語(yǔ)文邀請(qǐng)賽試卷(復(fù)賽)
- 國(guó)開2024年《建筑結(jié)構(gòu)#》形考作業(yè)1-4答案
- DL-T1475-2015電力安全工器具配置與存放技術(shù)要求
- 漏檢分析改善措施
- 新制定《公平競(jìng)爭(zhēng)審查條例》學(xué)習(xí)課件
- TD/T 1060-2021 自然資源分等定級(jí)通則(正式版)
- 完整加快發(fā)展新質(zhì)生產(chǎn)力課件
評(píng)論
0/150
提交評(píng)論