《基于Android Studio的安全帽管理系統(tǒng)的客戶端設(shè)計(jì)》10000字_第1頁
《基于Android Studio的安全帽管理系統(tǒng)的客戶端設(shè)計(jì)》10000字_第2頁
《基于Android Studio的安全帽管理系統(tǒng)的客戶端設(shè)計(jì)》10000字_第3頁
《基于Android Studio的安全帽管理系統(tǒng)的客戶端設(shè)計(jì)》10000字_第4頁
《基于Android Studio的安全帽管理系統(tǒng)的客戶端設(shè)計(jì)》10000字_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

PAGE20PAGE21基于AndroidStudio的安全帽管理系統(tǒng)的客戶端設(shè)計(jì)摘要隨著當(dāng)前我國工業(yè)電子技術(shù)產(chǎn)業(yè)的不斷發(fā)展、現(xiàn)代工業(yè)遠(yuǎn)程無線網(wǎng)絡(luò)通信技術(shù)、現(xiàn)場遠(yuǎn)程數(shù)據(jù)處理、總線控制系統(tǒng)技術(shù)的不斷進(jìn)步,我們發(fā)現(xiàn)現(xiàn)代工業(yè)通信數(shù)字化正逐漸融入整個現(xiàn)代社會人們的日常生產(chǎn)、生活之中。工人進(jìn)入工地時必須頭戴安全帽,因?yàn)楫?dāng)高速移動或高空作業(yè)過程中的人員從高處突然向下墜落或直接摔下來時、當(dāng)人的頭部直接撞擊到尖銳的硬質(zhì)金屬物體時,都有可能對其造成致命傷害。但目前安全帽的設(shè)計(jì)和佩帶只思考了安全防護(hù)的基礎(chǔ)功能,疏忽了基于安全帽的智能化設(shè)計(jì)和運(yùn)用。針對電力行業(yè)安全帽智能化設(shè)計(jì)和運(yùn)用的缺陷,提出了一種能夠同時實(shí)現(xiàn)系統(tǒng)實(shí)時安全監(jiān)測與實(shí)時無線通信兩種功能的智能安全帽應(yīng)用系統(tǒng)設(shè)計(jì)。系統(tǒng)以單片機(jī)作為主控制器,然后通過結(jié)合各個模塊來實(shí)現(xiàn)心率、溫度、GPS定位信息的實(shí)時采集,并通過NB-IoT模塊將安全帽終端采集到的信息發(fā)送到云平臺,而安全帽系統(tǒng)中的手機(jī)端與云平臺再進(jìn)行數(shù)據(jù)傳輸通信;本文主要對智能安全帽手機(jī)端設(shè)計(jì)進(jìn)行闡述。手機(jī)端App主要由用戶賬號注冊模塊、用戶賬號登錄模塊、TCP收發(fā)通信模塊、地圖顯示模塊、工人信息錄入模塊和報(bào)警提示模塊組成。手機(jī)端通過TCP通信與云服務(wù)器端進(jìn)行連接,然后獲取終端模塊上傳的各個傳感器信息和GPS定位信息,可根據(jù)先前錄入的工人信息來實(shí)時查詢對應(yīng)的測量數(shù)據(jù)和GPS定位位置信息;若手機(jī)端接收到終端上報(bào)的報(bào)警信息,手機(jī)端將彈出提示框進(jìn)行提示。關(guān)鍵詞:AndroidStudioJavaTCP協(xié)議SocketSqlite目錄147351緒論 3119651.1課題的背景及其研究意義 39291.2國內(nèi)外研究現(xiàn)狀及其發(fā)展 314341.3本文的主要內(nèi)容與安排 4255862需求分析 5106382.1功能需求 5201002.2系統(tǒng)主要工具分析 7305153系統(tǒng)概要設(shè)計(jì) 929723.1系統(tǒng)總體設(shè)計(jì) 9254593.2安全帽前端UI界面 970223.3數(shù)據(jù)庫表 12309563.4Java后臺代碼 12309563.5谷雨云使用介紹 14174924軟件程序設(shè)計(jì) 1366294.1安卓App登錄界面程序設(shè)計(jì) 1319254.2安卓App注冊界面程序設(shè)計(jì) 14293414.3安卓App主界面程序設(shè)計(jì) 15226874.4安卓App的TCP接收程序設(shè)計(jì) 16100245系統(tǒng)調(diào)試分析 1857755.1測試簡介 18249015.2手機(jī)App測試 1830865結(jié)論 2217870參考文獻(xiàn) 2330820致謝 241緒論1.1課題的背景及其研究意義近年來,建筑業(yè)正在不斷蓬勃發(fā)展,產(chǎn)業(yè)鏈的發(fā)展規(guī)模也在逐步不斷擴(kuò)大,年產(chǎn)值也在不斷提高,建筑能力也越來越重要。然而,在建設(shè)過程中,仍然存在機(jī)械化水平低、管理粗放、城鄉(xiāng)建設(shè)安全事故多發(fā)等管理問題。根據(jù)個人住房和城鄉(xiāng)建設(shè)部的數(shù)據(jù)分析來看,中國住房和市政建筑企業(yè)存在安全風(fēng)險(xiǎn),2017年我國住宅和市政建筑企業(yè)生產(chǎn)信息安全風(fēng)險(xiǎn)事故情況發(fā)生692起比2016年增長9.15%,死亡807人比2016年增長9.8%,給人民群眾生命健康帶來了嚴(yán)重的傷害[1]。在農(nóng)民工安全管理方面,國家將加強(qiáng)建筑工地和農(nóng)民工的安全管理,確保有效保障建筑工人的安全??紤]到國家對建筑工人安全風(fēng)險(xiǎn)管理的重視,對建筑業(yè)信息化管理進(jìn)行了深入研究,提出了“智能化設(shè)施”的概念。這一概念刺激了對環(huán)境、機(jī)械、材料成本管理的智能設(shè)備或信息平臺的需求。隨著智能對象的大量增加,工程趨于科學(xué)化和技術(shù)化,傳統(tǒng)的施工質(zhì)量管理工作方式也隨之創(chuàng)新[3]。但是,施工人員使用智能系統(tǒng)的能力相對較弱;目前,智能建筑工地對施工人員的管理使用主要是人員信息平臺,存在指紋和人臉識別技術(shù),因?yàn)楣潭ǖ闹悄茉O(shè)備無法對施工人員進(jìn)行連續(xù)監(jiān)控。1.2國內(nèi)外研究現(xiàn)狀及其發(fā)展鑒于國家新興產(chǎn)業(yè)以及信息網(wǎng)絡(luò)基礎(chǔ)技術(shù)的不斷進(jìn)步,中國建筑業(yè)正經(jīng)歷著信息產(chǎn)業(yè)管理的穩(wěn)定社會過渡。為積極響應(yīng)黨和國家對智能建筑業(yè)工程信息化制度改革的戰(zhàn)略號召,隨著我國智能建筑用于工地及其他相關(guān)行業(yè)智能施工產(chǎn)品的快速應(yīng)用發(fā)展,智能建筑用于工程數(shù)據(jù)采集的智能核心施工設(shè)備以及智能施工頭盔也逐步得到了深入研究和廣泛應(yīng)用。隨著中國經(jīng)濟(jì)的不斷發(fā)展和完善,要完善中國建筑設(shè)計(jì)領(lǐng)域的信息化建設(shè),把建筑工人管理和信息技術(shù)、實(shí)名制、資料登記、建立職工登記等措施結(jié)合起來,運(yùn)用信息技術(shù)加強(qiáng)文化建設(shè)項(xiàng)目質(zhì)量管理。2019年,人力資本資源和社會保障部及住房和城鄉(xiāng)建設(shè)部提出:“施工人員應(yīng)該實(shí)行現(xiàn)場封閉管理,施工單位配備必要的硬件基礎(chǔ)設(shè)施和網(wǎng)絡(luò)設(shè)備,實(shí)行施工人員實(shí)名制管理,采用指紋、人臉、虹膜等識別數(shù)據(jù)技術(shù)進(jìn)行電子打卡,設(shè)立進(jìn)出場門禁控制系統(tǒng);但對不具備完全封閉式現(xiàn)場管理措施條件的從事工程建設(shè)的經(jīng)營企業(yè)或其他組織,應(yīng)采用移動市場定位等技術(shù)研究實(shí)施考勤管理[6]。發(fā)達(dá)國家如美國及其他歐洲國家等,非常重視建筑業(yè)信息技術(shù)的應(yīng)用。在發(fā)達(dá)國家,信息網(wǎng)絡(luò)技術(shù)的廣泛應(yīng)用在許多建筑工程企業(yè)中已經(jīng)發(fā)展成為一個普遍現(xiàn)象。ERP、CRM、CIMS、IC卡技術(shù)、工程生產(chǎn)管理中的信息控制系統(tǒng)、GPS等信息技術(shù)被常用于現(xiàn)代企業(yè)生產(chǎn)管理中的信息系統(tǒng)技術(shù)中,為發(fā)達(dá)國家的建筑業(yè)的工人安全帶來飛速發(fā)展[]。1.3論文主要內(nèi)容與安排論文的各個章節(jié)具體安排如下:第一章節(jié),主要對本研究課題的歷史背景與重要意義以及國內(nèi)外的科學(xué)研究發(fā)展現(xiàn)狀問題進(jìn)行深入闡述。第二章節(jié),主要爭對功能需求和相對于的開發(fā)工具進(jìn)行了分析。第三章節(jié),主要將本課題的各個功能結(jié)果進(jìn)行了詳細(xì)的講解。第四章節(jié),主要對作品的各個功能界面和相對應(yīng)的實(shí)現(xiàn)邏輯流程進(jìn)行介紹。第五章節(jié),主要對作品的功能調(diào)試和測試結(jié)果進(jìn)行敘述。結(jié)論部分,主要是對本作品所實(shí)現(xiàn)的功能進(jìn)行歸納和本作品所呈現(xiàn)的缺點(diǎn)進(jìn)行總結(jié)。

2需求分析2.1功能需求開始對安全帽手機(jī)客戶端App進(jìn)行開發(fā)時,需要先根據(jù)開題報(bào)告和任務(wù)書來明確整個手機(jī)端App需要具備哪些功能,這些功能需要哪些技術(shù),再最后確認(rèn)開發(fā)語言和環(huán)境,就此可以進(jìn)行后續(xù)的開發(fā)工作。智能安全帽系統(tǒng)具體的結(jié)構(gòu)框圖如圖2-1所示。本人主要負(fù)責(zé)手機(jī)端App的設(shè)計(jì)和云服務(wù)器的配置。通過報(bào)告的總結(jié)和結(jié)合實(shí)際的探索,初步得出安全帽手機(jī)端App需要具有的功能有用戶的登錄功能和注冊功能,溫度心率顯示功能,網(wǎng)絡(luò)通信功能,數(shù)據(jù)庫功能,地圖顯示定位功能和報(bào)警提示功能,如圖2-2所示。用戶的登錄和注冊功能是任何一款安卓App都必不可少的功能,用戶通過注冊功能來進(jìn)行注冊登錄賬號密碼,然后進(jìn)行登錄,這時候就需要用到Sqlite數(shù)據(jù)庫功能,因?yàn)樾枰鎯ο伦缘馁~號和密碼,并且登錄的時候也需要通過對比數(shù)據(jù)庫來進(jìn)行登錄判別。溫度心率顯示功能:主要體現(xiàn)在解析數(shù)據(jù)包和文本顯示控件的使用。網(wǎng)絡(luò)通信功能是安卓App與終端之間交互的一個橋梁,這邊采用TCP數(shù)據(jù)通信,利用到Socket套接字發(fā)送和接收數(shù)據(jù)。地圖顯示定位功能:首先采用百度地圖的SDK,然后將終端上報(bào)的地圖經(jīng)緯度,通過百度地圖提供的API接口函數(shù)進(jìn)行數(shù)據(jù)調(diào)用,最終就可以實(shí)現(xiàn)地圖定位顯示功能。報(bào)警提示功能:根據(jù)終端上報(bào)的報(bào)警狀態(tài),進(jìn)行解析,再結(jié)合主界面上的文本顯示控件來切換正常狀態(tài)和報(bào)警狀態(tài)之間的顯示。圖2-1安全帽的系統(tǒng)結(jié)構(gòu)框圖圖2-2安全帽客戶端手機(jī)App的系統(tǒng)框圖從圖2-2安全帽客戶端手機(jī)App系統(tǒng)結(jié)構(gòu)框圖中的七大功能模塊可以得出它們的分類,分別可以歸為主界面、用戶注冊界面和用戶登錄界面三類,對于這三大類界面的具體描述如下:(1)用戶登錄界面:這個界面顧名思義就是用于用戶登錄使用,切換到主界面。本登錄界面應(yīng)該是整個安卓App用戶使用的唯一開始,當(dāng)你已經(jīng)通過安卓注冊界面進(jìn)行安卓賬戶密碼信息庫的注冊,就可以在用戶登錄成功界面的安卓賬號文本編輯框和密碼文本編輯框中直接輸入已成功注冊過的安卓賬號和注冊過的密碼,然后直接點(diǎn)擊用戶登錄控件按鈕,這時候安卓后臺編程代碼就會先自動判別下面的賬號文本編輯框和賬號密碼文本編輯框之間是否為空,若是為空則這個彈窗就會提示不能為空,若不為空則直接將對應(yīng)賬號密碼插入到你的數(shù)據(jù)庫中然后進(jìn)行切換查找是否已經(jīng)存在該注冊用戶,若存在則直接進(jìn)行提取對應(yīng)賬號密碼并與用戶輸入的密碼賬號進(jìn)行比較,若相同則表示登錄成功,這時候登錄界面上就會自動顯示用戶登錄成功了的字樣并且自動從用戶登錄成功界面進(jìn)行切換進(jìn)入到用戶主界面;此時若發(fā)現(xiàn)數(shù)據(jù)庫中無此用戶賬號或者用戶輸入的賬號密碼與用戶所要提取出來的密碼不完全匹配,則都會直接顯示登錄失敗,且停留在登錄界面。當(dāng)點(diǎn)擊注冊按鈕的時候,界面就會自動切換到注冊界面。用戶注冊界面:這個管理界面的注冊功能顧名思義也就是客戶用于輸入用戶的注冊登錄密碼信息進(jìn)行注冊,通過用戶注冊管理界面上的用戶賬號文本編輯框和賬戶密碼文本編輯框可以實(shí)現(xiàn)用戶注冊號和賬戶密碼信息的自動輸入。本操作界面用戶可以通過注冊賬戶文本編輯框直接輸入用戶注冊時的賬號,通過注冊密碼文本編輯框直接輸入注冊密碼,就可以點(diǎn)擊開始注冊按鈕,然后界面就會顯示出注冊成功的字樣并且后臺同時會將注冊的賬號、密碼和賬戶權(quán)限插入到數(shù)據(jù)庫中,便于登錄時候的賬戶信息對比。若點(diǎn)擊返回登錄的控件按鈕,則就會從用戶注冊界面直接切換到用戶登錄界面。主界面:這個界面是直接呈現(xiàn)經(jīng)緯度的定位信息、溫度值和心率值給用戶,所以主界面的組成部分相對比較復(fù)雜。它主要由地圖定位模塊、環(huán)境溫度顯示模塊、用戶心率顯示模塊和報(bào)警狀態(tài)顯示模塊組成,其各個模塊的具體描述如下:1)連接云端模塊:這個模塊是安卓App與下位機(jī)硬件通信的始作俑者,它的作用就是將安卓App與云端服務(wù)器進(jìn)行連接和實(shí)現(xiàn)通信,這樣就可以實(shí)現(xiàn)接收下位機(jī)硬件部分上報(bào)的溫度值、心率值和經(jīng)緯度值。該模塊主要由文本顯示控件和按鈕控件組成,文本顯示控件主要是用來連接云端模塊的連接狀態(tài)結(jié)果,包括連接成功、斷開網(wǎng)絡(luò)和無法連接服務(wù)器三種狀態(tài)顯示;按鈕控件主要含有連接網(wǎng)絡(luò)按鈕、注冊按鈕和斷開網(wǎng)絡(luò)按鈕,它們分別識別通過TCP連接云端服務(wù)器、發(fā)送注冊碼到云端服務(wù)器實(shí)現(xiàn)和下位機(jī)硬件的綁定以及斷開TCP連接。2)溫度顯示模塊:這個顯示模塊主要是用來實(shí)時顯示終端采集到當(dāng)前環(huán)境實(shí)時溫度值,它的整個流程是現(xiàn)有下位機(jī)硬件終端通過溫度傳感器來獲取到當(dāng)前環(huán)境的實(shí)時溫度,然后經(jīng)過Nbiot模塊將溫度值上報(bào)到云端,再由云端轉(zhuǎn)發(fā)到安卓App的TCP接收端,最后在主線程的接收解析函數(shù)中去判別和解析出溫度值,然后在顯示溫度值的文本控件上進(jìn)行顯示。3)心率顯示模塊:這個顯示模塊主要是用來實(shí)時顯示終端采集到使用者的當(dāng)前心率值,它的整個流程是現(xiàn)有下位機(jī)硬件終端通過心率傳感器來獲取到使用者的實(shí)時心率,然后經(jīng)過Nbiot模塊將心率值上報(bào)到云端,再由云端轉(zhuǎn)發(fā)到安卓App的TCP接收端,最后在主線程的接收解析函數(shù)中去判別和解析出心率值,然后在顯示心率值的文本控件上進(jìn)行顯示。4)報(bào)警狀態(tài)顯示模塊:這個顯示模塊主要是用于顯示終端采集的環(huán)境溫度值是否達(dá)到報(bào)警閾值的標(biāo)準(zhǔn),若達(dá)到了則終端硬件蜂鳴器會響,并且會上報(bào)報(bào)警信息,然后在手機(jī)App的TCP接收端去判別這個狀態(tài)值,最后在主界面的報(bào)警狀態(tài)顯示模塊上顯示。5)地圖顯示模塊:地圖顯示模塊需要調(diào)用百度地圖的SDK框架。終端通過GPS模塊來實(shí)時獲取當(dāng)前的地點(diǎn)經(jīng)緯度,再通過通信模塊將終端數(shù)據(jù)上傳到云端,由云端將數(shù)據(jù)轉(zhuǎn)發(fā)到手機(jī)App端,然后通過解析提取顯示出經(jīng)緯度,再調(diào)用百度地圖的API接口函數(shù),就可以在百度地圖上實(shí)時顯示出當(dāng)前的具體位置。2.2系統(tǒng)主要工具分析開發(fā)本課題的安卓App主要用到的開發(fā)語言為Java開發(fā)語言,開發(fā)的環(huán)境為AndoridStudio。因?yàn)橛玫氖荍ava開發(fā)語言,所以需要安裝JRE虛擬機(jī),還需要用到Sqlite數(shù)據(jù)庫來存儲用戶信息。AndoridStudio:AndroidStudio是Google推出基于IntelliJIDEA的Android應(yīng)用研究開發(fā)系統(tǒng)集成技術(shù)開發(fā)工作環(huán)境(IDE),而且提供了更多提高Android應(yīng)用的構(gòu)建效率的功能:

(1)基于Gradle的靈活構(gòu)建系統(tǒng);(2)InstantRun可以將應(yīng)用變更后的推遲發(fā)送到正在開始運(yùn)行的一個應(yīng)用中,無需重新進(jìn)行設(shè)計(jì)即可構(gòu)建應(yīng)用Apk;(3)豐富的測試工具、性能工具(CPUProfile和MemoryProfile)和網(wǎng)絡(luò)監(jiān)控工具(NetworkProfiler);(4)快速和功能豐富的模擬器;(5)使用Room將數(shù)據(jù)持久化數(shù)據(jù)庫(Sqlite);(6)支持C++和NDK,LLDB可以調(diào)試原生代碼;(7)使用apkanalyzer對預(yù)構(gòu)建APK進(jìn)行分析和調(diào)試;(8)支持Koltin編碼和Lua編碼(通過NDK開發(fā));(9)強(qiáng)大的布局編輯器。Java開發(fā)語言:Java介于一種編譯式語言和一種解釋式語言之間。解釋式編程語言平臺諸如Python、Ruby等,非解釋性編程語言不一定需要使用編譯器給出每一種語言平臺的一個對應(yīng)語言機(jī)器碼,可以由解釋器直接進(jìn)行加載和自動運(yùn)行,但效率很低。而編譯式編程語言中比如Java或C、C++,代碼中都是直接把它編譯成執(zhí)行機(jī)器碼后來執(zhí)行,對于不同的語言平臺(x86、ARM等)CPU的執(zhí)行指令集不同,需要根據(jù)編譯器給出每一種不同平臺的代碼對應(yīng)執(zhí)行機(jī)器碼。另一方面,Java將代碼編譯為"字節(jié)碼",這一點(diǎn)類似于抽象的CPU指令,然后給它加載一個字節(jié)的代碼并且提交給不同運(yùn)行平臺的多個虛擬機(jī)器來執(zhí)行它,為不同運(yùn)行平臺同時編寫多個虛擬機(jī),從而可以產(chǎn)生"一次寫入,隨處運(yùn)行"的編碼效果。當(dāng)然,這也只是針對每個Java的開發(fā)者自己而言。對于每臺虛擬機(jī),需要針對每個應(yīng)用平臺分別進(jìn)行開發(fā)。為了有效保證不同開發(fā)公司、不同發(fā)展平臺進(jìn)行不同開發(fā)的字節(jié)虛擬機(jī)都能正確地執(zhí)行Java字節(jié)碼,SUN公司可以自行制定一系列的企業(yè)Java字節(jié)虛擬機(jī)運(yùn)行規(guī)范。從實(shí)際的編碼角度分析來看,較低版本的Java字節(jié)碼在較高版本的JVM上運(yùn)行得很好,因?yàn)镴VM的兼容性很好。Sqlite應(yīng)用數(shù)據(jù)庫:Sqlite是一個進(jìn)程內(nèi)的輕量級應(yīng)用嵌入式系統(tǒng)數(shù)據(jù)庫,Sqlite用戶可直接手動訪問其數(shù)據(jù)存儲器的數(shù)據(jù)文件。它本身是一個屬于零配置式的數(shù)據(jù)庫,反映了這個Sqlite與其他配置數(shù)據(jù)庫最大的根本區(qū)別,Sqlite不一定需要在操作系統(tǒng)中進(jìn)行配置,可以直接投入使用。

3系統(tǒng)概要設(shè)計(jì)3.1系統(tǒng)總體設(shè)計(jì)安全帽客戶端手機(jī)App功能結(jié)構(gòu)的系統(tǒng)框架如圖3-1所示,從圖中可以看出它主要通過安卓前端的UI界面部分、Sqlite數(shù)據(jù)庫部分、Java語言后臺程序部分和TCP通信部分相結(jié)合,來最終實(shí)現(xiàn)主題App部分的功能。所有的功能模塊都以Java語言編寫的后臺程序?yàn)橹餍墓?,就像下位機(jī)硬件的主控制器一樣的角色。安卓前端UI界面與后臺代碼的交互模式,分為顯示功能模塊和觸發(fā)功能模塊兩種;最為代表性的就是文本顯示控件和按鈕控件。顯示功能模塊在后臺代碼的主線程中,是直接調(diào)用控件賦予權(quán)限的變量,來進(jìn)行賦值顯示;觸發(fā)功能模塊,主要是在繪制UI界面圖的時候就已經(jīng)將觸發(fā)回調(diào)函數(shù)綁定好,并且在該函數(shù)中進(jìn)行編寫對應(yīng)的業(yè)務(wù)邏輯代碼。Sqlite應(yīng)用數(shù)據(jù)庫與管理后臺標(biāo)準(zhǔn)代碼主要功能是通過實(shí)現(xiàn)數(shù)據(jù)庫管理操作的后臺標(biāo)準(zhǔn)代碼語法編寫指令,來自動實(shí)現(xiàn)數(shù)據(jù)增刪和修改查詢等操作。TCP通信部分與后臺代碼的交互,主要就是利用Java語言的Sokect套接字來進(jìn)行TCP客戶端的創(chuàng)建,并且調(diào)用TCP客戶端連接API函數(shù)與云端服務(wù)器進(jìn)行連接,并最終實(shí)現(xiàn)通信。TCP發(fā)送時,直接通過調(diào)用后臺發(fā)送端的API,并且直接創(chuàng)建一個后臺獨(dú)用的現(xiàn)成數(shù)據(jù)進(jìn)行數(shù)據(jù)直接發(fā)送;TCP接收時,是需要通過后臺代碼創(chuàng)建一個現(xiàn)成進(jìn)行一個TCP堵塞接收,當(dāng)后臺收到一包現(xiàn)成數(shù)據(jù)后再進(jìn)行回調(diào),從而將該包數(shù)據(jù)直接傳送到后臺主線程中進(jìn)行數(shù)據(jù)解析,并最終直接調(diào)用后臺顯示模塊來進(jìn)行數(shù)據(jù)顯示。圖3-1系統(tǒng)框架結(jié)構(gòu)圖3.2安全帽前端UI界面如圖3-2為安全帽的客戶端App的前端UI界面圖,從圖中可以看出它主要由顯示賬號和密碼字樣的lable控件、用于輸入登錄賬號和密碼的文本輸入編輯框控件和用于實(shí)現(xiàn)登錄功能以及進(jìn)入注冊界面功能的按鈕控件組成。當(dāng)按下登錄界面的登錄按鈕后,就會直接調(diào)用登錄按鈕先前綁定的回調(diào)函數(shù)然后進(jìn)行對應(yīng)邏輯判別,最終得出登錄結(jié)果;按下注冊按鈕,則直接后臺代碼切換至如圖3-3所示的注冊界面。圖3-2登錄界面如圖3-3為安全帽客戶端安卓App的注冊功能界面,從圖中可以看出它主要由顯示賬號和密碼字樣的lable控件、用于輸入注冊賬號和密碼的文本輸入編輯框控件和用于實(shí)現(xiàn)注冊功能以及進(jìn)入登錄界面功能的按鈕控件組成。當(dāng)按下開始注冊按鈕后,先前綁定好的對應(yīng)回調(diào)函數(shù)就會被調(diào)用,然后內(nèi)部就直接執(zhí)行相應(yīng)邏輯代碼并且顯示注冊結(jié)果;按下返回登錄按鈕,則后臺代碼直接切換到登錄界面。圖3-3注冊界面如圖3-4所示為安全帽客戶端App的主要功能界面,從圖中可以看出它由設(shè)置ID、斷開網(wǎng)絡(luò)、連接網(wǎng)絡(luò)和注冊四個按鈕控件,用于顯示終端ID號、網(wǎng)絡(luò)狀態(tài)、溫度值和心率值文本顯示控件以及百度地圖顯示功能模塊組成。百度地圖顯示模塊位占用了主界面的二分之一的顯示,在它下面就是設(shè)置ID號按鈕、ID號輸入編輯框、當(dāng)前ID號顯示文本框、溫度顯示文本控件、心率顯示文本控件和報(bào)警狀態(tài)顯示文本控件。最后就是網(wǎng)絡(luò)通信部分,包括了三個按鈕控件,分別為定位按鈕、連接網(wǎng)絡(luò)和注冊網(wǎng)絡(luò),還有一個用來顯示網(wǎng)絡(luò)狀態(tài)的文本控件。對與網(wǎng)絡(luò)連接部分的操作,第一步是要點(diǎn)擊連接網(wǎng)絡(luò)按鈕,若連接成功網(wǎng)絡(luò)狀態(tài)會顯示連接成功,否則顯示無法連接服務(wù)器,接著還要點(diǎn)擊下注冊,這樣才會跟也連接到服務(wù)器的終端綁定在一起,時間數(shù)據(jù)的收發(fā)。網(wǎng)絡(luò)通信好后,App就可以實(shí)時接收到對應(yīng)ID號的下位機(jī)終端采集的各個傳感器數(shù)據(jù),然后解析包并提取出響應(yīng)的值,分別在百度地圖中顯示經(jīng)緯度,在溫度文本控件上顯示溫度值,在心率文本控件上顯示心率值和在報(bào)警狀態(tài)上顯示狀態(tài)。圖3-4主界面3.3數(shù)據(jù)庫表本設(shè)計(jì)的Sqlite數(shù)據(jù)庫表主要有用戶信息表、數(shù)據(jù)信息采集表,分別如表3-1和3-2所示,用戶信息表中主要有登錄賬號和登錄密碼字段,數(shù)據(jù)信息采集表主要有溫度、心率、緯度、經(jīng)度、安全帽ID號字段。表3-1用戶信息表字段名類型長度說明idvarchar36主鍵usernameinteger11登錄賬號usersecretinteger11登錄密碼表3-2數(shù)據(jù)信息采集表字段名類型長度說明idvarchar36主鍵tempfloat4溫度heartinteger3心率latitudefloat11緯度longtitudefloat11經(jīng)度numberinteger2終端ID號3.4Java后臺代碼從3-1小節(jié)的敘述可以了解到,App的各個功能模塊都是以Java語言編寫的后臺代碼為主心骨。通過后臺代碼的編寫,來實(shí)現(xiàn)對前端UI界面進(jìn)行交互,實(shí)現(xiàn)數(shù)據(jù)的顯示和觸發(fā)功能的執(zhí)行,來實(shí)現(xiàn)TCP網(wǎng)絡(luò)數(shù)據(jù)通信的收發(fā)以及實(shí)現(xiàn)對數(shù)據(jù)庫的操作。3.5谷雨云使用介紹本系統(tǒng)所使用的云端服務(wù)器為一款免費(fèi)的谷雨云,它操作簡單,運(yùn)行穩(wěn)定,是一個很不錯選擇。具體的操作如下:第一步:登錄成功谷雨云后,如圖3-5所示,先點(diǎn)擊數(shù)字1的直連設(shè)備,然后再點(diǎn)擊創(chuàng)建直連設(shè)備,就進(jìn)入第二步。第二步:如圖3-6所示,在創(chuàng)建設(shè)備界面輸入通信密碼和設(shè)備名,點(diǎn)擊提交即可。第三步:將兩個設(shè)備綁定至組中,實(shí)現(xiàn)透傳功能,如圖3-7所示。圖3-5創(chuàng)建直連設(shè)備操作圖圖3-6輸入設(shè)備名和密碼圖3-7已綁定圖4軟件程序設(shè)計(jì)4.1安卓App登錄界面程序設(shè)計(jì)安卓App登錄界面的程序設(shè)計(jì)流程圖如4-1圖所示,從圖中可以看出它是由三個主要部分組成。第一部分為用戶系統(tǒng)初始化部分,它主要指的是一個用于自動配置用戶登入系統(tǒng)界面的自動初始化系統(tǒng)參數(shù)以及參數(shù)值;第二部分為系統(tǒng)按鈕控件觸發(fā)檢測部分,它主要用于檢測按鈕控件是否按下并調(diào)用相應(yīng)的回調(diào)函數(shù);第三部分為配合按鈕觸發(fā)后執(zhí)行調(diào)用的回調(diào)函數(shù)中的內(nèi)容,其各個部分的具體描述如下所示:系統(tǒng)初始化模塊:系統(tǒng)初始化部分它主要是用于在程序啟動時候?qū)τ谝恍┛丶兞康穆暶骱投x,并且調(diào)用對應(yīng)的控件來賦予這些變量使用權(quán),這樣在后續(xù)對于這些控件的操作都直接通過這些控件操控即可。還有一個初始化部分就是對于按鍵的回調(diào)函數(shù)注冊,這樣在按鈕觸發(fā)的時候就可以直接調(diào)用這些初始化時候注冊的功能函數(shù),具體的按鈕接口函數(shù)有:publicvoidconnectnwk(Viewview);publicvoidregisternwk(Viewview);publicvoidcheckhistory(Viewview);publicvoidsetid(Viewview);具體的文本獲取使用權(quán)接口函數(shù)有:tx_nwkstate=(TextView)findViewById(R.id.tx_nwkstate);tx_temp=(TextView)findViewById(R.id.tx_temp);tx_heart=(TextView)findViewById(R.id.tx_heart);tx_id=(TextView)findViewById(R.id.textView)。按鈕觸發(fā)部分:這部分主要就是使用檢測按鈕是否被觸發(fā),是哪個按鈕被觸發(fā),最后就直接調(diào)用被觸發(fā)的按鈕回調(diào)函數(shù)進(jìn)行對應(yīng)執(zhí)行。按鈕對應(yīng)的回調(diào)函數(shù),都是在最開始的時候進(jìn)行注冊綁定,然后通過在對應(yīng)的回調(diào)函數(shù)中編寫邏輯代碼,就可以實(shí)現(xiàn)當(dāng)按下登錄按鈕就會實(shí)現(xiàn)登錄功能,當(dāng)下注冊按鈕,就會實(shí)現(xiàn)從登錄界面切換到注冊界面功能。系統(tǒng)按鈕回調(diào)執(zhí)行部分:這部分主要用于銜接系統(tǒng)按鈕回調(diào)觸發(fā)功能,當(dāng)一個按鈕檢測到觸發(fā),并且系統(tǒng)獲取到需要觸發(fā)具體的某個按鈕,則系統(tǒng)會自動調(diào)用這個觸發(fā)按鈕的按鍵回調(diào)觸發(fā)函數(shù),然后接下來就是這個執(zhí)行部分的功能。執(zhí)行部分功能在登錄界面中,主要就是實(shí)現(xiàn)登錄功能和注冊功能。等按下一個登錄按鈕,后臺執(zhí)行代碼就自然會自動跳轉(zhuǎn)返回到按下登錄按鈕的自動回調(diào)處理函數(shù)中,然后通過直接判別登錄賬號和用戶密碼設(shè)置是否完全為空,來作為后臺繼續(xù)執(zhí)行代碼的必要條件;當(dāng)都不為空的時候,就通過賬號密碼去后臺數(shù)據(jù)庫中查看后臺是否已經(jīng)存在這個登錄用戶,若存在則直接判別用戶密碼設(shè)置是否和用戶輸入時的密碼匹配,若匹配則直接顯示用戶登錄成功并自動跳轉(zhuǎn)到用戶主管理界面。按下注冊按鈕,則后臺代碼直接調(diào)用注冊界面接口,實(shí)現(xiàn)跳轉(zhuǎn)。圖4-1安卓App登錄界面程序流程圖4.2安卓App注冊界面程序設(shè)計(jì)安卓App注冊界面程序設(shè)計(jì)流程圖如圖4-2所示,它和4-1登錄界面的程序設(shè)計(jì)基本相似。通過系統(tǒng)初始化來對整個界面功能的變量和回調(diào)函數(shù)進(jìn)行初始化配置和注冊,然后通過檢測按鈕的觸發(fā),去執(zhí)行相應(yīng)的按鈕功能模塊。若觸發(fā)了注冊按鈕,則就會調(diào)用它的回調(diào)函數(shù),在回調(diào)函數(shù)中主要是判別輸入的注冊賬號和密碼是否都不為空,若都不為空則就會將其插入到數(shù)據(jù)庫中并顯示注冊成功,否則顯示注冊失??;按下返回登錄按鈕,則直接會切換到登錄界面。圖4-2安卓App注冊界面程序流程圖4.3安卓App主界面程序設(shè)計(jì)安卓App的主界面程序設(shè)計(jì)的流程圖如圖4-3所示,它由四大功能步驟組成,分別為系統(tǒng)初始化步驟、網(wǎng)絡(luò)連接步驟、TCP數(shù)據(jù)收發(fā)步驟和百度地圖調(diào)用步驟組成,其具體的描述如下所示:主界面系統(tǒng)初始化:主界面的系統(tǒng)初始化部分主要是對界面的UI控件對應(yīng)的操作變量進(jìn)行一個申明定義和權(quán)限賦值。初始化配置的控件主要包括溫度文本顯示控件、心率文本顯示控件、終端ID編輯文本控件、網(wǎng)絡(luò)狀態(tài)文本顯示控件和百度地圖定位控件,按鈕無需初始化,因?yàn)樗饕獮橛|發(fā)型,直接注冊對應(yīng)的回調(diào)函數(shù)即可。主界面網(wǎng)絡(luò)連接:主界面的網(wǎng)絡(luò)連接是整個界面功能得以實(shí)現(xiàn)的基礎(chǔ),它主要是利用界面上的連接網(wǎng)絡(luò)按鈕通過TCP客戶端連接云端服務(wù)器,然后在點(diǎn)擊注冊按鈕來發(fā)送注冊碼到云端服務(wù)器,以實(shí)現(xiàn)與下位機(jī)硬件在云端服務(wù)器的綁定。當(dāng)連接成功,則網(wǎng)絡(luò)狀態(tài)顯示文本控件就會顯示連接成功,否則就會顯示無法連接服務(wù)器。當(dāng)按下斷開網(wǎng)絡(luò)按鈕后,網(wǎng)絡(luò)狀態(tài)顯示文本控件則會顯示斷開網(wǎng)絡(luò)。主界面TCP數(shù)據(jù)接收:主界面的TCP接收主要是用于接收下位機(jī)硬件上報(bào)的實(shí)時環(huán)境溫度值、使用者心率值和通過GPS定位模塊獲取到的經(jīng)緯度,然后通過解析來提取出對應(yīng)值,并分別在環(huán)境溫度顯示文本控件、心率文本控件和百度地圖顯示文本控件上進(jìn)行顯示。圖4-3安卓App主界面程序流程圖(4)百度在線地圖的調(diào)用步驟:首先采用基于百度在線地圖的后臺SDK地圖框架,然后根據(jù)終端上報(bào)的地圖經(jīng)緯度,通過調(diào)用百度在線地圖提供的API地圖接口函數(shù),并通過百度地圖的mapView控件將經(jīng)緯度信息轉(zhuǎn)換為地圖顯示出來。4.4安卓App的TCP接收程序設(shè)計(jì)安卓App的TCP接收程序設(shè)計(jì)流程圖如圖4-4所示,它主要實(shí)現(xiàn)的功能就是接收下位機(jī)硬件上報(bào)的環(huán)境溫度、使用者心率值和經(jīng)緯度信息,然后再調(diào)用對應(yīng)的控件來進(jìn)行顯示。TCP接收是一個專門的線程做堵塞接收,它的一個包結(jié)束為接收到回車換行符為準(zhǔn),當(dāng)接收到一包數(shù)據(jù)后,就會調(diào)用主線程的處理函數(shù),來對這包數(shù)據(jù)進(jìn)行解析。接收到的數(shù)據(jù)中會包含有一個id號,如果它的id號和安卓App綁定的id號不同,則App是不會處理這包數(shù)據(jù)。下位機(jī)的上報(bào)的正常數(shù)據(jù)包協(xié)議格式為:"id=1,longitude=118.10388605,latitude=24.48923061,alarmflag=1,temp=22.3,bpm=77,\r\n"。從數(shù)據(jù)包中可以看出‘id’就是代表終端ID號,’longitude’代表了緯度,‘latitude’代表了經(jīng)度,‘a(chǎn)larmflag’代表了報(bào)警狀態(tài),‘temp’代表了溫度,‘bpm’代表了心率。根據(jù)這些字符來解析,并且通過截取‘=’和’,’來獲取它們的具體值。圖4-4安卓App的TCP接收程序流程圖5系統(tǒng)調(diào)試分析5.1測試簡介對于安卓App這樣的軟件產(chǎn)品來說,在上市前的各種不同力度和維度的老化測試,對于上市后的穩(wěn)定性好壞,啟到?jīng)Q定性作用。測試的功能和角度覆蓋層面越廣,那么它上市后所遇到的BUG幾率就越低,所以在5-2小節(jié)就對本作品App進(jìn)行一個系統(tǒng)功能性測試。5.2手機(jī)App測試本小節(jié)主要是測試安卓App的幾個主要功能,包括用戶基本操作的登錄和注冊功能,整個安卓App最重要的上下位機(jī)聯(lián)調(diào)功能。安卓App登錄功能測試:如圖5-1為登錄成功的圖片案例,如圖5-2為登錄失敗的圖片案例。從5-1和5-2兩張圖中分別可以得出當(dāng)?shù)卿洺晒?,就會從登錄界面直接切換到主界面,并且顯示登錄成功;當(dāng)?shù)卿浭〉臅r候,就會直接停留在登錄界面,并且顯示登錄失敗。圖5-1登錄成功圖圖5-2登錄失敗圖(2)安卓App注冊功能測試:從5-3圖可以明顯的看出,當(dāng)用戶注冊輸入的賬號和注冊時的密碼不為空時,點(diǎn)擊開始注冊按鈕則就會顯示注冊成功,此時界面還是保留在注冊界面上,只有當(dāng)你按下返回登錄按鈕后,才會切換界面。圖5-3注冊成功圖(3)主界面功能測試:主界面功能測試主要內(nèi)容包括三個功能測試,分別為網(wǎng)絡(luò)連接功能測試,正常數(shù)據(jù)接收顯示測試和控制數(shù)據(jù)下發(fā)。網(wǎng)絡(luò)連接功能測試如圖5-4所示,正常數(shù)據(jù)接收顯示測試如圖5-5所示。圖5-4網(wǎng)絡(luò)連接成功圖圖5-5正常數(shù)據(jù)接收顯示圖結(jié)論本款安卓App作品,通過前期的功能需求分析和市場應(yīng)用調(diào)研,以及在網(wǎng)絡(luò)上各大論壇的往年類似案例資料搜索,最后通過總分總的方式,先把各個確定的功能模塊進(jìn)行一一設(shè)計(jì)好,然后再按照預(yù)期功能目標(biāo)將它們整合,最后實(shí)現(xiàn)了一款具有登錄功能和注冊功能的安卓App軟件,它還可以在主界面上實(shí)時的監(jiān)測到對應(yīng)終端ID

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論