Core Bluetooth下實現兩個裝置進行互聯

2022-03-23 14:22:22 字數 2576 閱讀 3117

一、外設管理者 - 發布廣告

如果兩部手機在ble的基礎上進行連線,需要讓其中一部手機作為外設,外設需要進行廣播自己需要發布的資料,以供中心裝置的接收和處理。

實現外設廣播資料並且處理傳送過程當中的流量限制如下:

1.初始化外設管理者

2.設定外設管理者的**

3.自動呼叫外設管理者狀態的**方法 - 判斷外設管理者的裝置是否開啟

4.當有中心裝置訂閱了外設當中的特徵時,呼叫以下方法:

- (void)peripheralmanager:(cbperipheralmanager *)peripheral central:(cbcentral *)central didsubscribetocharacteristic:(cbcharacteristic *)characteristic;

5.當中心裝置取消訂閱外設當中的特徵時,呼叫一下方法:

- (void)peripheralmanager:(cbperipheralmanager *)peripheral central:(cbcentral *)central didunsubscribefromcharacteristic:(cbcharacteristic *)characteristic;

6.傳送資料

6.5.傳送擷取的資料進行廣播

6.6.如果傳送的資料是nil,直接返回

6.7.把傳送的二進位制資料轉換為字串,輸出字串內容。

6.8.資料位置進行加運算(以便把乙個長文字擷取為20個位元組每段進行傳送)

6.9.判斷資料位置是否大於等於資料長度(判斷是否傳送完成)

6.9.1.設定結尾標註狀態為yes,傳送結尾標註,如果結尾標註有值(代表資料傳送完成),為了再次傳送資料,重置結尾標註狀態為no

7.當訂閱內容進行更新時,呼叫下面方法:

- (void)peripheralmanagerisreadytoupdatesubscribers:(cbperipheralmanager *)peripheral;

8.當textview當中資料進行改變時,應該停止廣播

9.當textview開始編輯時,在導航欄右側新增完成按鈕,點選這個按鈕銷毀鍵盤。

10.處理開始/結束廣播開關

二、中心管理者 - 接收資料

1.初始化中心管理者並且設定**和佇列

2.初始化接收資料陣列

3.中心管理者的**方法

2.掃瞄具有xx服務的外設,不進行過濾處理(費電)

3.發現具有xx服務的外設後,呼叫發現外設的**方法

4.如果鏈結外設失敗,呼叫以下**方法

- (void)centralmanager:(cbcentralmanager *)central didfailtoconnectperipheral:(cbperipheral *)peripheral error:(nullable nserror*)error;

5.如果連線到外設,呼叫下面**方法:

- (void)centralmanager:(cbcentralmanager *)central didconnectperipheral:(cbperipheral *)peripheral;

4.外設的**方法

- (void)peripheral:(cbperipheral *)peripheral diddiscoverservices:(nullable nserror*)error;

- (void)peripheral:(cbperipheral *)peripheral diddiscovercharacteristicsforservice:(cbservice *)service error:(nullable nserror*)error;

- (void)peripheral:(cbperipheral *)peripheral didupdatevalueforcharacteristic:(cbcharacteristic *)characteristic error:(nullable nserror*)error;

4.當訂閱狀態發生改變時(訂閱/取消訂閱發生時)呼叫下面方法:

- (void)peripheral:(cbperipheral *)peripheral didupdatenotificationstateforcharacteristic:(cbcharacteristic *)characteristic error:(nullable nserror*)error;

- (void)centralmanager:(cbcentralmanager *)central diddisconnectperipheral:(cbperipheral *)peripheral error:(nullable nserror*)error;

藍芽 CoreBluetooth 概述

服務端 外部裝置 資料構成 服務端 外部裝置 資料構成 外部裝置作為服務端進行互動 外部裝置就像乙個訊號塔,不停向外部廣播自己的資料.中心裝置就可以通過掃瞄找到外部裝置,然後進行連線和資料互動.外部裝置作為服務端進行互動 中心裝置內部資料的關係樹狀圖 中心裝置內部資料的關係樹狀圖 mac ipad ...

iOS藍芽開發 CoreBluetooth

看了幾天的關於ios藍芽的資料,總的來說,用起來挺麻煩的 xxd。corebluetooth框架用的 4.0 ble協議 buletouch low energy corebluetooth框架的核心其實有兩個東西,central 中心 和peripheral 外設 分別對應兩種模式 central...

SpringBoot下RabbitMq實現定時任務

定時任務場景 訂單下單15分鐘未付款自動關閉 延遲任務實現原理圖如下 根據上圖看出我們需要兩個佇列 一是死信佇列,訊息在裡面度過tll時間,二是處理佇列,訊息度過tll時間後進入該佇列 兩個交換機和路由 一是用來將訊息送入死信佇列,二是將訊息從死信佇列送到處理佇列 但是交換機其實可以用同乙個,也就是...