999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Android的藍牙通信接口

2013-12-10 14:07:16廣東工業大學自動化學院陳志崇
電子世界 2013年6期
關鍵詞:設備系統

廣東工業大學自動化學院 陳志崇 張 祺

1.引言

隨著電子技術的不斷進步,手持式終端越來越輕便,性能卻越來越好。同時,手持式終端在物聯網方面的應用十分廣泛。作為當今市場廣泛、功能最豐富且安全的藍牙技術。首先,藍牙技術包含了傳感器技術、識別技術、移動通信技術等,這些技術與物聯網密切相關[1]。其次,藍牙的低功耗被看作消費電子產品、體育、健康護理、汽車、自動化等領域一大技術突破,也是物聯網技術的重要組成部分。作為手持終端的Android操作系統在三年多的時間里,高速發展,特別是Android的開放性,大大降低了品的成本,Android 4.0版本對于平板電腦的支持,奠定了它在移動系統市場的主流地位。本文通過詳細分析藍牙技術以及Android Bluetooth APIs,設計出基于Android平臺的藍牙通信接口。

2.Android操作系統

Android一詞的本義指“機器人”,同時也是Google于2007年11月5日宣布的基于Linux平臺的開源手機操作系統的名稱,該平臺由操作系統、中間件、用戶界面和應用軟件組成,號稱是首個為移動終端打造的真正開放和完整的移動軟件。目前,最新版本為Android 4.1 Ice Cream Sandwich[2]。

Android操作系統架構從下到上分為5部分:Linux內核、Android Runtime、庫、應用程序框架和應用程序。

(1)Linux內核

Android是基于Linux 3.0內核,它提供了例如安全機制、內存管理、進程管理、網絡堆棧、驅動模塊等內容。Linux Kernel也作為硬件和軟件之間的抽象層,它隱藏具體硬件細節而為上層提供統一的服務,使應用開發人員無需關心硬件細節[3]。

(2)Android Runtime

Android包含一個核心庫的集合,提供大部分在Java編程語言核心類庫中可用的功能。

(3)Libraries

Android包含一個C/C++庫的集合,這些庫供Android系統的不同組件使用。這些功能通過Android的應用程序框架(Application Framework)暴露給開發者。

(4)Application Framework

通過提供開放的開發平臺,Android使開發者能夠編制極其豐富和新穎的應用程序。

(5)應用層(Applications)

Android裝配一個核心應用程序集合。所有應用程序都是用Java編程語言寫的。

Android作為一款完整的、開放的、免費的平臺,在僅僅幾年多的時間就占據了移動市場的大半份額。隨著Google在4.0以后的版本中對手機和平板電腦的歸一管理,Android會變得越來越完善。

3.藍牙技術

3.1 概念

藍牙是一個開放性的。短距離無線通信技術標準,它可以用于在較小的范圍內通過無線連接的方式實現固定設備以及移動設備之間的網絡互連,可以在各種數字設備之間實現靈活、安全、低成本、小功耗的話音和數據通信。藍牙技術可以方便地嵌入到單一的CMOS芯片中,因此它特別適用于小型的移動終端。

3.2 關鍵技術

(1)跳頻技術

藍牙的載頻選用全球通用的2.45GHz ISM頻段,由于2.45GHz的頻段是對所有無線電系統都開放的頻段,因此使用其中的任何一個頻段都有可能遇到不可預測的干擾源。采用跳頻擴譜技術是避免干擾的一項有效措施。

(2)微微網和分散網

當兩個藍牙設備成功建立鏈路后,一個微微網便形成了,兩者之間的通信通過無線電波在信道中隨機跳轉而完成。藍牙給每個微微網提供特定的跳轉模式,因此它允許大量的微微網同時存在,同一區域內多個微微網的互聯形成了分散網。不同的微微網信道有不同的主單元,因而存在不同的跳轉模式。

(3)安全性

藍牙技術的無線傳輸特性使它非常容易受到攻擊,因此安全機制在藍牙技術中顯得尤為重要。雖然藍牙系統所采用的跳頻技術已經提供了一定的安全保障,但是藍牙系統仍然需要鏈路層和應用層的安全管理。

(4)糾錯技術

藍牙系統的糾錯機制分為FEC和包重發。為了減少復雜性,使開銷和無效重發為最小,藍牙執行快ARQ結構。ARQ結構分為:停止等待ARQ、向后N個ARQ、重復選擇ARQ和混合結構。

3.3 藍牙在Android的應用

(1)文件傳輸

兩臺具備藍牙的Android設備之間可以通過藍牙協議實現無線數據的交換,上層軟件之間需要定義好文件的格式。使用藍牙傳輸無需定義傳輸參數,只需配對設備即可創建數據鏈路建立連接。

(2)工業控制

通過Android手持終端可以對工業設備進行安全、穩定、可靠的無線控制。工業設備安裝藍牙模塊即可與手持終端完成配對,用戶可以利用手持設備對機器進行參數的設定和修改,可以監控設備的運行狀態。

(3)智能家用電器

越來越多的家用電器具備藍牙功能,Android終端可以通過藍牙進行無線控制電器運行。甚至各個電器終端組成一個藍牙無線局域網,終端之間共享信息實現更為強大的功能[4]。

4.Android的藍牙APIs

藍牙無線技術是當今市場上支持范圍最廣泛,功能最豐富且安全的無線標準。Android平臺支持藍牙網絡協議棧,允許設備之間通過無線方式交換數據。Android應用程序框架層提供了Android Bluetooth APIs給用戶使用藍牙功能。通過這些APIs各個設備的應用程序之間可以實現無線連接,啟用點對點和多點的無線功能[5]。

應用程序使用藍牙APIs可以按如下操作:

(1)掃描其他藍牙設備

(2)查詢與本地藍牙設配器配對的設備

(3)建立RFCOMM信道

(4)通過發現服務連接到其他設備

(5)設備間傳輸數據

(6)管理多個藍牙連接

相關APIs介紹:

Bluetooth Adapter類:表示本地藍牙適配器,是所有藍牙交互的入口。通過它你可以發現其他設備,查詢配對列表,使用已知的MAC地址實例化一個Bluetooth Device對象和創建一個Bluetooth Server Socket對象來監聽來自其他設備的連接。

Bluetooth Device類:表示一個遠端的藍牙設備。通過它請求與遠端設備的連接或查詢設備的信息,例如:設備的名稱、地址、種類、綁定狀態。

Bluetooth Socket類:表示一個藍牙的套接字的接口。它是應用程序通過輸入、輸出流與其他設備通信的端口。

要在Android應用程序中使用藍牙特性,必須聲明兩個藍牙權限:

5.藍牙收發程序設計

5.1 概述

本程序主要用到Android系統組件為Activity和一個BluetoothService類,并實現了android下的多線程編程[6][7]。在Android的設計中,每個Activity都是一個獨立的進程,程序中BluetoothService實例會創建兩個線程,一個用作接收數據,另一個用作發送,同時還要與Activity通信(更新數據顯示),就是跨線程通信,這時就需要Android下的Handler機制。在Android中提供了一種異步回調機制Handler,主要接受子線程發送的數據,并用此數據配合主線程更新UI。

在程序的構建過程中使用了MVC模式,采用分層的結構,具體分為表示層、控制層和數據交換層,對應MVC設計模式中的View、Controller和Model[8]。

表示層向用戶展示模型的狀態,在本軟件中是以Activity的顯示控件View類所展現,一般以layout文件夾下的布局文件承載。它主要用來顯示接收數據、打開藍牙可見性及搜索藍牙設備。

控制層主要負責協調表示層與數據交換層的交互。一方面將表示層的調用請求傳到數據交換層,另一方面將數據交換層接收的數據反應到表示層。

數據交換層,封裝了大部分藍牙數據傳輸的核心操作,如創建socket創建通道、傳輸數據、處理輸入輸出流等。

整個系統通過采用MVC設計模式,對整個系統進行了分層,使程序邏輯清晰易懂、代碼更加健壯、事件處理高效。

5.2 具體實現

表示層,主要使用一個View類將接收的數據以圖形化的方式顯示給用戶。同時建立一個菜單讓用戶可以使用搜索藍牙、瀏覽配對設備,增加一個ListView用于顯示配對的藍牙設備,當用戶選擇某一個設備時通過Bluetooth-Service對象建立連接。

控制層,主要是藍牙管理,數據更新操作,發送數據。

藍牙管理,首先判斷設備是否支持藍牙,并且可用:

mBluetoothAdapter=BluetoothAdapter.getDefaltAdapter();

如果mBluetoothAdapter不為空,則藍牙可用,繼續判斷藍牙是否打開,沒有則跳轉打開藍牙:

Intent enableIntent=new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);

startActivityForResult(enableInte nt,REQUEST_ENABLE_BT);

至此,藍牙已可用。

打開藍牙后,接下來是配對設備。首先搜索藍牙設備,創建一個用來存儲搜索到的藍牙設備BluetoothDevice的List。然后注冊搜索已完成和發現設備兩個接收器BroadcastReceiver。通過創建一個線程來控制藍牙設備的搜索,當搜索中有觸發BroadcastReceiver的事件,就直接傳遞到BroadcastReceiver進行保存。最后將所有搜索到的BluetoothDevices保存顯示在ListView中。當用戶選擇某個Device時,系統會調用BluetoothService類的Connect方法進行藍牙連接。

同時系統會注冊一個Handler類用于刷新數據顯示。如果下層有數據傳入,就會調用handleMessage方法進行刷新操作。

交互層,主要是BluetoothService類。該類創建兩個線程,一個用于藍牙連接的創建,另一個用于數據的傳輸,分別是:

class ConnectThread extends Thread{};

class TransmitThread extends Thread{};

Android系統通過調用Connect方法來連接藍牙設備,這是一種阻塞調用,因此需要建立一個線程來處理。如果調用成功系統會返回一個Socket套接字,成員變量mSocket會保存這個套接字:

6.結語

本接口應用于Android手持終端,手持終端通過可以方便地無線接收和處理模塊發送的數據。整個方案穩定可靠,成本低廉,提高了控制的便利性。用戶只需專注于數據的處理,而不必關注硬件之間通訊的問題。

[1]劉海濤.物聯網技術應用[M].機械工業出版社,2011.

[2]Wikipedia.Android(operating system)[OL].http://en.wikipedia.org/wiki/Android_(operating_system).

[3]Sans Serif.What Android Is[OL].http://www.tbray.org/ongoing/When/201x/2010/11/14/What-Android-Is.

[4]喻宗泉.藍牙技術基礎[M].機械工業出版社,2006.

[5]Google Inc.Bluetooth[OL].http://developer.android.com/guide/topics/connectivity/bluetooth.html.

[6]楊豐盛.Android應用開發揭秘[M].機械工業出版社,2010.

[7][印]Satya Komatineni,[美]Sayed Hashimi.精通Android3[M].楊越,譯.人民郵電出版社,2011.

[8]閻宏.Java與模式[M].電子工業出版社,2002.

猜你喜歡
設備系統
諧響應分析在設備減振中的應用
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
半沸制皂系統(下)
基于VB6.0+Access2010開發的設備管理信息系統
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
主站蜘蛛池模板: 乱人伦99久久| 人人91人人澡人人妻人人爽| 免费人成黄页在线观看国产| 国精品91人妻无码一区二区三区| 亚洲日本中文字幕天堂网| 欧美日韩激情在线| 亚洲精品在线观看91| 国产在线视频二区| 又污又黄又无遮挡网站| 欧美日在线观看| 国产日本欧美亚洲精品视| 久久不卡国产精品无码| 亚洲人成在线精品| 亚洲精品无码不卡在线播放| 日韩精品久久无码中文字幕色欲| 中国成人在线视频| 成年午夜精品久久精品| 新SSS无码手机在线观看| 午夜啪啪福利| 亚洲精品黄| 99在线观看精品视频| 热99re99首页精品亚洲五月天| 九色视频一区| 国产美女叼嘿视频免费看| 久久中文字幕2021精品| 欧美成人综合视频| 久久久噜噜噜久久中文字幕色伊伊 | 岛国精品一区免费视频在线观看| 五月激情婷婷综合| 国产情侣一区二区三区| 成人毛片在线播放| 国产对白刺激真实精品91| 91成人在线免费视频| 久久公开视频| 国产综合无码一区二区色蜜蜜| 精品视频在线一区| 亚洲欧美日韩久久精品| 国产精品部在线观看| 亚洲v日韩v欧美在线观看| 国产真实乱子伦视频播放| 先锋资源久久| 国产永久在线观看| 国产极品粉嫩小泬免费看| 欧洲免费精品视频在线| 综合网久久| 国产精品原创不卡在线| 国产成人综合久久精品尤物| 在线五月婷婷| 久久天天躁狠狠躁夜夜2020一| 国产在线观看第二页| 国产丝袜啪啪| 中文字幕乱码中文乱码51精品| 中文毛片无遮挡播放免费| 亚洲国产AV无码综合原创| 伊人久综合| 尤物成AV人片在线观看| 国产乱肥老妇精品视频| 五月婷婷亚洲综合| 毛片网站在线播放| 国产精品无码制服丝袜| 91美女视频在线观看| 亚洲国产欧美目韩成人综合| 91免费精品国偷自产在线在线| 都市激情亚洲综合久久| 亚洲色欲色欲www网| 亚洲精品成人7777在线观看| 亚洲欧美不卡视频| 国内毛片视频| 日韩AV无码一区| 日韩第一页在线| 亚洲Av综合日韩精品久久久| 国产在线91在线电影| 亚洲国产精品日韩专区AV| 538国产在线| 亚洲人成网站在线观看播放不卡| 色婷婷啪啪| 国产精品嫩草影院av| 国产成人午夜福利免费无码r| 国产精品香蕉在线观看不卡| 99久久精品国产综合婷婷| 露脸真实国语乱在线观看| a级毛片在线免费|