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

正文內(nèi)容

基于android的便攜式健康監(jiān)測系統(tǒng)畢業(yè)論文-在線瀏覽

2024-08-08 00:59本頁面
  

【正文】 BLE需要特殊的機(jī)型支持。:否獲取藍(lán)牙適配器開始開啟藍(lán)牙服務(wù)搜索BLE設(shè)備連接到GATT服務(wù)端搜索到?讀取BLE屬性接收服務(wù)端信息結(jié)束設(shè)備列表是 藍(lán)牙模塊流程圖以下為使用BLE設(shè)備必要的開發(fā)步驟[11]:1  ,因?yàn)橛玫搅薆LE設(shè)備,因此需加上BLE設(shè)備的支持聲明;usespermission android:name=/usespermission android:name=/usesfeature android:name= android:required=true/2  在確定開發(fā)環(huán)境是Android ,取得藍(lán)牙適配器;// Initializes Bluetooth adapter.final BluetoothManager bluetoothManager = (BluetoothManager) getSystemService()。3  開啟藍(lán)牙服務(wù);private BluetoothAdapter mBluetoothAdapter。 startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT)。* Activity for scanning and displaying available BLE devices. private boolean mScanning。 // Stops scanning after 10 seconds. private static final long SCAN_PERIOD = 10000。 (mLeScanCallback)。 mScanning = true。 } else { mScanning = false。 } ... }...}5  搜索到藍(lán)牙設(shè)備后,可以由一個(gè)列表將之顯示出來,如下用一個(gè)配置文件將之列出(),;?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 / /LinearLayout6  接下來還需連接到GATT服務(wù)端并讀取藍(lán)牙的一些固定屬性值,此處不再贅述。數(shù)據(jù)接收并不是可以單一存在的功能,因此代碼是嵌在類中的。 } //收到BLE終端寫入數(shù)據(jù)回調(diào) Override public void onCharacteristicWrite(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic) { ((characteristic .getValue()), (), characteristic .getUuid().toString())。(),是一個(gè)字節(jié)數(shù)組(byte[]),是因?yàn)閺乃{(lán)牙發(fā)送過來的數(shù)據(jù)是16位的,此處就由一個(gè)字節(jié)數(shù)組接收,接收得來的數(shù)據(jù)就為兩個(gè)字節(jié),以方便之后的處理。()即得到藍(lán)牙設(shè)備的UUID值,整個(gè)應(yīng)用中也是通過判斷UUID值來確定是否為配套的設(shè)備[12]。首先,藍(lán)牙傳來的值就波形來看是上下顛倒了,故而為了波形顯示將傳過來的值一律取反,并轉(zhuǎn)換為整型值。部分代碼如下:// 從藍(lán)牙接收數(shù)據(jù)的方法體 public static void recData(String str, byte[] data, String uuid) { if (()) { int pluse = ~data[1]。 // pluse = pluse 1。 // 接收的數(shù)據(jù)超過200,則將集合清0 if (() = 200) { ()。 // 如果讀寫標(biāo)志為真,則將接收到的數(shù)據(jù)寫入文件 if (saveFlag) { try { if (!()) ()。 ((pluse) + \r\n)。 } catch (IOException e) { ()。 // 將每次調(diào)用此方法的時(shí)間加入時(shí)間集合 (curTime)。 // 求得此時(shí)與初始時(shí)刻所經(jīng)歷的時(shí)間間隔 durTime = curTime (0)。 Bpm = (int) (Bpp * 60)。 // 判斷心率曲線是否穩(wěn)定 if (timeListSize 4) { long tmpTime = curTime (timeListSize 4)。 ()。 } }}由于類中有大量數(shù)據(jù)傳遞,所以使用了List集合作為數(shù)據(jù)的存儲(chǔ)空間,可以從代碼中看出,接收到的數(shù)據(jù)都存入dataList,而時(shí)間值存入了timeList。數(shù)據(jù)存入文件時(shí),為了方便二次調(diào)用和查看,在每個(gè)數(shù)據(jù)后面追加了換行符,結(jié)果就是每個(gè)數(shù)據(jù)會(huì)在文件中單獨(dú)成行。圖表顯示模塊即繪圖模塊,是應(yīng)用中較為核心的部分。Android下繪圖方法很多,Path類,SurfaceView類,Canvas類……等等都可以繪出圖形,不過由于對(duì)波形要求較高且數(shù)據(jù)量相對(duì)較大,所以采用已經(jīng)成熟的外置繪圖引擎AChartEngine來繪制圖形。 導(dǎo)入AChartEngine引擎包導(dǎo)入方法不再贅述,較為簡便的方法是將包文件直接復(fù)制到項(xiàng)目libs目錄下。 // 用于存放所有需要繪制的XYSeries private static XYMultipleSeriesDataset mDataset。 // 用于存放所有需要繪制的折線的風(fēng)格 private static XYMultipleSeriesRenderer mXYMultipleSeriesRenderer。在接收數(shù)據(jù)的基礎(chǔ),將數(shù)據(jù)以2:1的比例用于繪圖,這是因?yàn)槔L圖時(shí)給刷新整個(gè)界面并保留原有數(shù)據(jù),線程工作量較大,如果以過高頻率刷新界面,那么很容易引起界面的崩潰乃至應(yīng)用的退出,代碼如下:// 將接收到的數(shù)據(jù)疏散五倍進(jìn)行繪圖 if (() % 2 == 0) { // 將接收到的數(shù)據(jù)疏散五倍加入繪圖數(shù)據(jù)集合 ((() 1))。 } })。 ()。 int dataListSize = ()。 // 將縱坐標(biāo)賦值為最新接收到的數(shù)據(jù) yTemp = (dataListSize 1)。amp。 } // 以下為保留原圖曲線和新增數(shù)據(jù)點(diǎn) count = ()。 } for (int i = 0。 i++) { x[i] = (i)。 } ()。 for (int i = 0。 i++) { (x[i] + 1, y[i])。接收數(shù)據(jù)處理并繪圖其實(shí)在代碼中存在于一個(gè)類中(),故而可以用整體的流程圖說明其工作流程。 Button android:id=+id/btnExam android:layout_width=wrap_content android:layout_height=wrap_content android:layout_alignParentTop=true android:layout_centerHorizontal=true android:layout_marginTop=115dp android:text=string/btnExam / Button android:id=+id/btnConsult android:layout_width=wrap_content android:layout_height=wrap_content android:layout_below=+id/btnExam android:layout_centerHorizontal=true android:text=string/btnConsult / Button android:id=+id/btnPreference android:layout_width=wrap_content android:layout_height=wrap_content android:layout_below=+id/btnConsult android:layout_centerHorizontal=true android:text=string/btnPreference android:textColor=000/以上代碼為主界面布局,力求簡潔明了,設(shè)置了三個(gè)按鈕及兩個(gè)文本,都有對(duì)應(yīng)的點(diǎn)擊事件相應(yīng),具體效果可以在運(yùn)行及測試中看到。 圖形開發(fā)界面應(yīng)用用戶分為三種,未注冊(cè)用戶,注冊(cè)用戶,管理員。在應(yīng)用啟動(dòng)后,未注冊(cè)只會(huì)顯示一個(gè)測試按鈕可用,其他按鈕則處于“不可用”狀態(tài),通過setEnable()對(duì)其設(shè)置,代碼如下: (false)。而注冊(cè)界面,因?yàn)闀簳r(shí)不需要輸入太多信息的緣故,采用了彈出對(duì)話框的模式,設(shè)置“用戶名”和“密碼”兩個(gè)文本編輯框,三個(gè)按鈕“取消”“注冊(cè)”“登錄”,用戶不論是注冊(cè)還是登錄都在此對(duì)話框中進(jìn)行。 dialog_edit_password = (EditText) view .findViewById()。 (().toString(), ().toString())。 (().toString(), ().toString())。以上代碼為設(shè)置對(duì)話三個(gè)按鈕的響應(yīng)事件,可以看到為“注冊(cè)”“登錄”兩個(gè)按鈕都設(shè)置了相應(yīng)的監(jiān)聽器,并將文本編輯框中填寫的文本傳入處理方法中。 boolean existFlag = false。 (e, (existFlag))。 } else { if (() 4 || () 6) { (getApplicationContext(), 用戶名或密碼長度不符合標(biāo)準(zhǔn), ).show()。 (user)。 User user = new User(username, password)。 (true)。 (user, username)。 } else { (false)。 }}可以看到,在這兩個(gè)方法中出現(xiàn)了User與userMgr兩個(gè)類,User為一個(gè)封裝的用戶對(duì)象,成員變量僅兩個(gè),即用戶名與密友;userMgr為UserManager一個(gè)實(shí)例,UserManager則為繼承SqliteOpenHelper的一個(gè)子類,用于管理數(shù)據(jù)庫,具體代碼過多,此處不再贅述,讀者可自行查閱源碼[13]。除此之外,還有設(shè)置繪圖中的自動(dòng)定時(shí)功能,和個(gè)人用戶的密碼修改功能。點(diǎn)擊“查詢用戶”后,會(huì)給出當(dāng)前已注冊(cè)的用戶列表,部分代碼如下;protected void userList() { ListUser users = ()。 for (int i = 0。 i++) { User user = (i)。 (username, ())。 (userItem)。 (adapter)。 第四章 運(yùn)行及測試1) 在應(yīng)用程序中找到HealthPluse,打開后可以顯示主界面,點(diǎn)擊“測試”按鈕,應(yīng)用會(huì)提示打開藍(lán)牙,點(diǎn)擊“允許”后,顯示設(shè)備列表,; 2) 列表會(huì)
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1