日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

iOS蓝牙开发(一)蓝牙相关基础知识

發(fā)布時(shí)間:2023/12/20 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iOS蓝牙开发(一)蓝牙相关基础知识 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

原網(wǎng)址


iOS藍(lán)牙開發(fā)(一)藍(lán)牙相關(guān)基礎(chǔ)知識(shí)

藍(lán)牙常見名稱和縮寫

  • MFI ======= make for ipad ,iphone, itouch 專們?yōu)樘O果設(shè)備制作的設(shè)備

  • BLE ==== buletouch low energy,藍(lán)牙4.0設(shè)備因?yàn)榈秃碾?#xff0c;所以也叫做BLE

  • peripheral,central == 外設(shè)和中心,發(fā)起連接的時(shí)central,被連接的設(shè)備為perilheral

  • service and characteristic === 服務(wù)和特征 每個(gè)設(shè)備會(huì)提供服務(wù)和特征,類似于服務(wù)端的api,但是機(jī)構(gòu)不同。每個(gè)外設(shè)會(huì)有很多服務(wù),每個(gè)服務(wù)中包含很多字段,這些字段的權(quán)限一般分為 讀read,寫write,通知notiy幾種,就是我們連接設(shè)備后具體需要操作的內(nèi)容。

  • Description 每個(gè)characteristic可以對(duì)應(yīng)一個(gè)或多個(gè)Description用戶描述characteristic的信息或?qū)傩?/p>

  • MFI === 開發(fā)使用ExternalAccessory 框架

  • 4.0 BLE === 開發(fā)使用CoreBluetooth 框架

藍(lán)牙基礎(chǔ)知識(shí)

CoreBluetooth框架的核心其實(shí)是兩個(gè)東西,peripheral和central, 可以理解成外設(shè)和中心。對(duì)應(yīng)他們分別有一組相關(guān)的API和類

  • 這兩組api分別對(duì)應(yīng)不同的業(yè)務(wù)場(chǎng)景,左側(cè)叫做中心模式,就是以你的app作為中心,連接其他的外設(shè)的場(chǎng)景,而右側(cè)稱為外設(shè)模式,使用手機(jī)作為外設(shè)別其他中心設(shè)備操作的場(chǎng)景。

  • 服務(wù)和特征,特征的屬性(service and characteristic):
    每個(gè)設(shè)備都會(huì)有一些服務(wù),每個(gè)服務(wù)里面都會(huì)有一些特征,特征就是具體鍵值對(duì),提供數(shù)據(jù)的地方。每個(gè)特征屬性分為這么幾種:讀,寫,通知這么幾種方式。

    //objcetive c特征的定義枚舉typedef NS_OPTIONS(NSUInteger, CBCharacteristicProperties) {CBCharacteristicPropertyBroadcast = 0x01,CBCharacteristicPropertyRead = 0x02,CBCharacteristicPropertyWriteWithoutResponse = 0x04,CBCharacteristicPropertyWrite = 0x08,CBCharacteristicPropertyNotify = 0x10,CBCharacteristicPropertyIndicate = 0x20,CBCharacteristicPropertyAuthenticatedSignedWrites = 0x40,CBCharacteristicPropertyExtendedProperties = 0x80,CBCharacteristicPropertyNotifyEncryptionRequired NS_ENUM_AVAILABLE(NA, 6_0) = 0x100,CBCharacteristicPropertyIndicateEncryptionRequired NS_ENUM_AVAILABLE(NA, 6_0) = 0x200};

外設(shè)、服務(wù)、特征間的關(guān)系

藍(lán)牙中心模式流程

1. 建立中心角色 2. 掃描外設(shè)(discover) 3. 連接外設(shè)(connect) 4. 掃描外設(shè)中的服務(wù)和特征(discover)- 4.1 獲取外設(shè)的services- 4.2 獲取外設(shè)的Characteristics,獲取Characteristics的值,獲取Characteristics的Descriptor和Descriptor的值 5. 與外設(shè)做數(shù)據(jù)交互(explore and interact) 6. 訂閱Characteristic的通知 7. 斷開連接(disconnect)

藍(lán)牙外設(shè)模式流程

1. 啟動(dòng)一個(gè)Peripheral管理對(duì)象 2. 本地Peripheral設(shè)置服務(wù),特性,描述,權(quán)限等等 3. Peripheral發(fā)送廣告 4. 設(shè)置處理訂閱、取消訂閱、讀characteristic、寫characteristic的委托方法

藍(lán)牙設(shè)備狀態(tài)

1. 待機(jī)狀態(tài)(standby):設(shè)備沒有傳輸和發(fā)送數(shù)據(jù),并且沒有連接到任何設(shè) 2. 廣播狀態(tài)(Advertiser):周期性廣播狀態(tài) 3. 掃描狀態(tài)(Scanner):主動(dòng)尋找正在廣播的設(shè)備 4. 發(fā)起鏈接狀態(tài)(Initiator):主動(dòng)向掃描設(shè)備發(fā)起連接。 5. 主設(shè)備(Master):作為主設(shè)備連接到其他設(shè)備。 6. 從設(shè)備(Slave):作為從設(shè)備連接到其他設(shè)備。

藍(lán)牙設(shè)備的五種工作狀態(tài)

  • 準(zhǔn)備(standby)
  • 廣播(advertising)
  • 監(jiān)聽掃描(Scanning
  • 發(fā)起連接(Initiating)
  • 已連接(Connected)

藍(lán)牙和版本的使用限制

  • 藍(lán)牙2.0 === 越獄設(shè)備
  • 藍(lán)牙4.0 === IOS6 以上
  • MFI認(rèn)證設(shè)備(Make For ipod/ipad/iphone) === 無(wú)限制

名詞解釋

  • GAAT : Generic Attribute Profile , GATT配置文件是一個(gè)通用規(guī)范,用于在BLE鏈路上發(fā)送和接收被稱為“屬性”的數(shù)據(jù)塊。目前所有的BLE應(yīng)用都基于GATT。 藍(lán)牙SIG規(guī)定了許多低功耗設(shè)備的配置文件。配置文件是設(shè)備如何在特定的應(yīng)用程序中工作的規(guī)格說明。注意一個(gè)設(shè)備可以實(shí)現(xiàn)多個(gè)配置文件。例如,一個(gè)設(shè)備可能包括心率監(jiān)測(cè)儀和電量檢測(cè)。
  • Characteristic 一個(gè)characteristic包括一個(gè)單一變量和0-n個(gè)用來(lái)描述characteristic變量的descriptor,characteristic可以被認(rèn)為是一個(gè)類型,類 似于類。
  • Descriptor Descriptor用來(lái)描述characteristic變量的屬性。例如,一個(gè)descriptor可以規(guī)定一個(gè)可讀的描述,或者一個(gè)characteristic變量可接受的范圍,或者一個(gè)characteristic變量特定的測(cè)量單位。 Service service是characteristic的集合。例如,你可能有一個(gè)叫“Heart Rate Monitor(心率監(jiān)測(cè)儀)”的service,它包括了很多characteristics,如“heart rate measurement(心率測(cè)量)”等。你可以在bluetooth.org 找到一個(gè)目前支持的基于GATT的配置文件和服務(wù)列表。

參考閱讀

  • GATT Profile簡(jiǎn)介

最后

babyBluetooth交流群

  • qq交流群6: 284341984
  • qq交流群5: 426082944(滿)
  • qq交流群4: 313084771(滿)
  • qq交流群3:530142592(滿)
  • qq交流群2:168756967(滿)
  • qq交流群1:426603940(滿)

感謝收看,如果對(duì)大家有幫助,請(qǐng)github上follow和star,本文發(fā)布在劉彥瑋的技術(shù)博客,轉(zhuǎn)載請(qǐng)注明出處


總結(jié)

以上是生活随笔為你收集整理的iOS蓝牙开发(一)蓝牙相关基础知识的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。