freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)論文-基于android的便攜式健康監(jiān)測系統(tǒng)——android系統(tǒng)開發(fā)-全文預覽

2025-07-01 21:09 上一頁面

下一頁面
  

【正文】 wrap_content android:layout_below=+id/btnConsult android:layout_centerHorizontal=true android:text=string/btnPreference android:textColor=000/ 以上代碼為主界面布局,力求簡潔明了,設置了三個按鈕及兩個文本,都有對應的點擊事件相應,具體效果可以在運行及測試中看到。 在應用啟動后,未注冊只會顯示一個測試按鈕可用,其他按鈕則處于“不可用”狀態(tài),通過 setEnable()對其設置,代碼如下: (false)。 dialog_edit_password = (EditText) view .findViewById()。 (().toString(), ().toString())。 boolean existFlag = false。 } else { if (() 4 || () 6) { (getApplicationContext(), 用戶名或密碼長度不符合標準 , ).show()。 User user = new User(username, password)。 (user, username)。 } } 可以看到,在這兩個方法中出現(xiàn)了 User 與 userMgr 兩個類, User 為一個封裝的用戶對象,成員變量僅兩個,即用戶名與密友; userMgr 為 UserManager 一個實例, UserManager 則為繼承 SqliteOpenHelper 的一個子類,用于管理數(shù)據(jù)庫,具體代碼過多,此處不再贅述,讀者可自行查閱源碼 [13]。點擊“查詢用戶”后,會給出當前已注冊的用戶列表,部分代碼如下; protected void userList() { ListUser users = ()。 i++) { User user = (i)。 for (int i = 0。除此之外,還有設置繪圖中的自動定時功能,和個人用戶的密碼修改功能。 } else { (false)。 (true)。 (user)。 (e, (existFlag))。 以上代碼為設置對話三個按鈕的響應事件,可以看到為“注冊”“登錄”兩個按鈕都設置了相應的監(jiān)聽器,并將文本編輯框中填寫的文本傳入處理方法中。 (().toString(), ().toString())。 而注冊界面,因為暫時不需要輸入太多信息的緣故,采用了彈出對話框的模式,設置“用戶名”和“密碼”兩個文本編輯框,三個按鈕“取消”“注冊”“登錄”,用戶不論是注冊還是登錄都在此對話框中進行。 圖 圖形開發(fā)界面 注冊模塊 應用用戶分為三種,未注冊用戶,注冊用戶,管理員。 接收數(shù)據(jù)處理并繪圖其實在代碼中存在于一個類中( ),故而可以用整體的流程圖說明其工作流程,如圖 所示。 for (int i = 0。 i++) { x[i] = (i)。 } // 以下為保留原圖曲線和新增數(shù)據(jù)點 count = ()。 // 將縱坐標賦值為最新接收到的數(shù)據(jù) yTemp = (dataListSize 1)。 ()。 蘭州理工大學畢業(yè)設 計 20 在接收數(shù)據(jù)的基礎,將數(shù)據(jù)以 2: 1 的比例用于繪圖,這是因為繪圖時給刷新整個界面并保留原有數(shù)據(jù),線程工作量較大,如果以過高頻率刷新界面,那么 很容易引起界面的崩潰乃至應用的退出,代碼如下: // 將接收到的數(shù)據(jù)疏散五倍進行繪圖 if (() % 2 == 0) { // 將接收到的數(shù)據(jù)疏散五倍加入繪圖數(shù)據(jù)集合 ((() 1))。 // 用于存放所有需要繪制的 XYSeries private static XYMultipleSeriesDataset mDataset。 Android 下繪圖方法很多, Path 類, SurfaceView 類, Canvas 類??等等都可以繪出圖形,不過由于對波形要求較高且數(shù)據(jù)量相對較大,所以采用已經(jīng)成熟的外置繪圖引擎AChartEngine 來繪制圖形。 數(shù)據(jù)存入文件時,為了方便二次調(diào)用和查看,在每個數(shù)據(jù)后面追加了換行符,結果就是每個數(shù)據(jù)會在文件中單獨成行。 ()。 Bpm = (int) (Bpp * 60)。 // 將每次調(diào)用此方法的時間加入時間集合 (curTime)。 ((pluse) + \r\n)。 // 接收的數(shù)據(jù)超過 200,則將集合清 0 if (() = 200) { ()。 部分代碼如下: // 從藍牙接收數(shù)據(jù)的方法體 public static void recData(String str, byte[] data, String uuid) { if (()) { int pluse = ~data[1]。這里的 ()即得到藍牙設備的 UUID 值,整個應用中也是通過判斷 UUID 值來確定是否為配套的設備 [12]。 } //收到 BLE 終端寫入數(shù)據(jù)回調(diào) Override public void onCharacteristicWrite(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic) { ((characteristic .getValue()), (), characteristic .getUuid().toString())。 } ... } ... } ⑤ 搜索到藍牙設備后,可以由一個列表將之顯示出來,如下用一個配置文件將之列出蘭州理工大學畢業(yè)設 計 16 (具體可見 ),加載配置文件的類為 ; ?xml version= encoding=utf8? LinearLayout xmlns:android= android:orientation=vertical android:layout_width=match_parent android:layout_height=wrap_content TextView android:id=+id/device_name android:layout_width=match_parent android:layout_height=wrap_content android:text=name android:textSize=32sp / TextView android:id=+id/device_address android:layout_width=match_parent android:layout_height=wrap_content android:text=address android:textSize=16dp / TextView android:id=+id/device_txPower_rssi android:layout_width=match_parent android:layout_height=wrap_content android:text=txPower_rssi android:textSize=26sp / /LinearLayout ⑥ 接下來還需連接到 GATT 服務端并讀取藍牙的一些固定屬性值,此處不再贅述,讀者可以自行至官方查詢或查看附錄資源中的 。 mScanning = true。 // Stops scanning after 10 seconds. private static final long SCAN_PERIOD = 10000。 startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT)。 藍牙模塊在終端的整體工作流程圖如 所示: 圖 藍牙模塊流程圖 以下為使用 BLE 設備必要的開發(fā)步驟 [11]: ① 在應用功能清單文件 中聲明藍牙權限,因 為用到了 BLE 設備,因此需加上 BLE 設備的支持聲明; usespermission android:name=/ usespermission android:name=/ usesfeature android:name= android:required=true/ ② 在確定開發(fā)環(huán)境是 Android 系統(tǒng)及以上的情況下,取得藍牙適配器; // Initializes Bluetooth adapter. final BluetoothManager bluetoothManager = (BluetoothManager) getSystemService()。軟件整體工作流程可分為以下幾步: ① 通過藍牙基類尋找 BLE 設備,并顯示設備列表 ② 點擊列表中的設備,獲取藍牙服務 蘭州理工大學畢業(yè)設 計 13 ③ 接 收藍牙傳遞的數(shù)據(jù) ④ 處理數(shù)據(jù),并以字符流形式存入文件 ⑤ 由傳遞的數(shù)據(jù)顯示出實時的波形圖 ⑥ 計算出 BPM ⑦ 其他功能 整體流程說明 根據(jù)軟件整體完成的工作流程,可以將之表示如圖 所示的流程圖: 圖 整體流程圖 各功能模塊設計 藍牙傳輸模塊 藍牙傳輸是建立在藍牙硬件平臺搭建正確的基礎上的,其中包括藍牙模塊芯片 CC254x與開發(fā)板的連接,開發(fā)板與傳感器的連接,以及在開發(fā)板中寫入控制藍牙的程序。 調(diào)試環(huán)境分為模擬環(huán)境與真機環(huán)境,模擬器使用 Genymotion,可調(diào)試不涉及硬件操作的功能模擬,真機則沒有限制,當然真機最好選擇接口較多,功能較全的手機型號。 圖 光電心率傳感器實物圖 蘭州理工大學畢業(yè)設 計 11 此傳感器需要和藍牙開發(fā)板配套使用,三根導線分別連接至開發(fā)板的相應引腳才能正常工作,以下是連接圖; 圖 傳感器與開發(fā)板連接圖 連接完成后,需要給開發(fā)板加外接電源才可工作。 圖 壓電傳感器在 PC 端的端口 光電傳感器 光電傳感器是自行購置的脈搏傳感器,主要是通過透光性檢測指尖血液濃度并以此脈搏的跳動。在電腦上運行我們附送的演示程序可以直觀的在電腦屏幕上顯示脈搏波形并可以對波形的幅值、頻率、基線等進行調(diào)整。 圖 CC254x 開發(fā)板功能示圖 心率傳感器 心率傳感器是本設計中硬件部分的最末端,負責最原始的脈搏信號采集,理想狀態(tài)下采集到的脈搏信號可以較為清晰用波形圖給出,也即是說,傳感器必須采集到類似于心臟搏動強度的信號,并將這種起伏明顯的信號通過 一定傳輸手段傳輸?shù)介_發(fā)環(huán)境中。 CC254X 內(nèi)含一個性能優(yōu)良的 RF 收發(fā)器和工業(yè)標準的增強型 8051MCU,集成可 ISP 的 Flash memory, 8KB RAM,以及其他性能優(yōu)異的特性和外設。 BLE 即 Bluetooth Low Energy,低功耗藍牙,屬于藍牙 中的單模制式。 蘭州理工大學畢業(yè)設 計 7 圖 手機上的 USB 設置 2) 需要特定的驅(qū)動需要安裝相應的驅(qū)動,否則無法檢測到連接的 Android 設備,一般是由PC 系統(tǒng)自動匹配安裝,安裝的驅(qū)動為“ Android Composite ADB Interface” ,打開“設備管理器”后會顯示相應的接口,如圖 。 智能手機 涉及到藍牙或傳感器之類模擬器暫時不能模擬出的部件時,開發(fā)就需要借助真實的Android 設備。 圖 genymotion 選擇系統(tǒng)環(huán)境界面 選擇好開發(fā)的系統(tǒng)環(huán)境之后,在聯(lián)網(wǎng)狀態(tài)下會自動下載源碼包,這里我們選擇 Android 的系統(tǒng),安裝并創(chuàng)建完畢后如圖 。 Emulator 運行速度緩慢,對比之下 ,genymotion 由于基于 VirtualBox,本質(zhì)是虛擬機,無論是啟動速度或者是應用載入速度都要更加快捷,性能更優(yōu)越,在 genymotion出現(xiàn)之后,被 Android 開發(fā)者們冠以 “史上最快 Android 模擬器 ”的稱號,這是一方面原因。 蘭州理工大學畢業(yè)設 計 4 第 二章 硬件設計 Android 硬件平臺 Android 系統(tǒng)需要相應的硬件平臺支持,并且由于藍牙 BLE 的特殊性,需要能夠支持 系統(tǒng)及以上和裝載藍牙 的智能平臺才能應用到實際開發(fā)中。 Mat
點擊復制文檔內(nèi)容
畢業(yè)設計相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1