藍芽核心技術概述(四):藍芽協議規範(HCI、L2CAP、SDP、RFOCMM)
關鍵詞:藍芽核心技術協議 HCI L2CAP SDP RFCOMM
作者:xubin341719(歡迎轉載,請註明作者,請尊重版權,謝謝!)歡迎指正錯誤,共同學習、共同進步!!
一、主機控制介面協議 HCI
藍芽主機-主機控模型
藍芽軟體協議棧堆的資料傳輸過程:
1、藍芽控制器介面資料分組:指令分組、事件分組、資料分組
(1)、指令分組
如:Accpet Connection Request
Opcode為:0x0409
引數長度為: 07
引數中藍芽地址為:00:0d:fd:5f:16:9f
角色為:從裝置 0x01
大端資料模式
指令為:09 04 07 9f 16 5f fd 0d 00 01
(2)、事件分組
如上圖:
Opcode :0x0409
狀態: 0x00
總長度: 4位元組
命令狀態:0x0f
(3)、資料分組
連線控制代碼(12bit) | PB(2bit) | BC(2bit) | 資料長度(16bit) |
資料………… |
注:PB Packet_Boundary BC Broadcast Flag
SCO 資料分組
連線控制代碼(12bit) | 保留(4bit) | 資料長度(16bit) |
資料………… |
(4)、RS232分組指示器:
HCI 分組型別 | RS232分組指示器 |
HCI指令分組 | 0x01 |
HCI ACL資料分組 | 0x02 |
HCI SCO資料分組 | 0x03 |
HCI事件分組 | 0x04 |
HCI錯誤訊息分組 | 0x05 |
HCI協商分組 | 0x06 |
2、HCI控制命令
(1)、鏈路控制指令
命令 | OCF | 概述 |
Inquiry | 0x0001 | 藍芽裝置進入查詢模式,搜尋臨近裝置 |
Inquiry Cancel | 0x0002 | 退出查詢模式 |
Periodic Inquiry Mode | 0x0003 | 藍芽裝置在指定週期內自動查詢 |
Exit Periodic Inquiry Mode | 0x0004 | 退出自動查詢模式 |
Create Connection | 0x0005 | 按指定藍芽裝置的BD_ADDR建立ACL鏈路 |
Disconnect | 0x0006 | 終止現有連線 |
Add SCO Connection | 0x0007 | 利用連線控制代碼引數指定的ACL連線建立SCO |
Cancel Create Connection | 0x0008 | |
Accept Connection Request | 0x0009 | 接收新的呼入連線請求 |
Reject Connection Request | 0x000A | 拒絕新的呼入連線請求 |
Link Key Request Reply | 0x000B | 應答從主機控制器發出的鏈路金鑰請求事件,並指定儲存在主機上的鏈路金鑰做為與BD_ADDR指定的藍芽裝置進行連線使用的鏈路金鑰請求事件 |
Link Key Request Negative Reply | 0x000C | 如果主機上沒有儲存鏈路金鑰,作為與BD_ADDR指定的藍芽裝置進行連線使用的鏈路金鑰,就應答從主機控制器發出的鏈路金鑰請求事件 |
PIN Code Request Reply | 0x000D | 應答從主機控制器發出的PIN請求事件,並指定用於連線的PIN |
PIN Code Request Negative Reply | 0x000E | 當主機不能指定連線的PIN時,應回答從機控制器發出的PIN請求事件 |
Change Connection Packet Type | 0x000F | 改變正在建立連線的分組型別 |
Authentication Request | 0x0011 | 指定連線控制代碼關聯的兩個藍芽裝置之間建立身份鑑權 |
Set Connection Encryption | 0x0013 | 建立取消連線加密 |
Change Connection Link Key | 0x0015 | 強制關聯了連線控制代碼的兩個裝置建立連線,並生成一個新的鏈路金鑰 |
Master Link Key | 0x0017 | 強制關聯了連線控制代碼的兩個裝置利用主裝置時鏈路金鑰或常規金鑰 |
Remote Name Request | 0x0019 | 獲取遠端裝置的名稱 |
Cancel Remote Name Request | ||
Read Remote Supported Features | 0x001B | 請求遠端裝置所支援的特性列表 |
Read Remote Extended Features | ||
Read Remote Version Information | 0x001D | 從遠端裝置讀取版本資訊 |
Read Clock Offset | 0x001F | 讀取遠端的時鐘資訊 |
(2)、鏈路策略指令
命令 | OCF | 簡介 |
Hold Mode | 0x0001 | 改變LM狀態和本地及遠端裝置為主模式的LM位置 |
Sniff Mode | 0x0003 | 改變LM狀態和本地及遠端裝置為呼吸模式的LM位置 |
Exit Sniff Mode | 0x0004 | 結束連線控制代碼在當前呼吸模式裡的呼吸模式 |
Park State | 0x0005 | 改變LM狀態和本地及遠端裝置為休眠模式的LM位置 |
Exit Park State | 0x0006 | 切換從休眠模式返回到啟用模式的藍芽裝置 |
QoS Setup | 0x0007 | 指出連線控制代碼的服務質量引數 |
Role Discovery | 0x0009 | 藍芽裝置連線後確定自己的主從角色 |
Switch Role | 0x000B | 角色互換 |
Read Link Policy Settings | 0x000C | 為指定連線控制代碼讀鏈路策略設定。鏈路策略設定允許主機控制器指定用於連線控制代碼的LM連線模式 |
Write Link Policy Settings | 0x000D | 為指定連線控制代碼寫鏈路策略設定。鏈路策略設定允許主機控制器指定用於連線控制代碼的LM連線模式 |
Read Default Link Policy Settings | 0x000E | |
Write Default Link Policy Settings | 0x000F | |
Flow Specification | 0X0010 |
(3)、主機控制器與基帶指令
Set Event Mark | 0x0001 | 使能主機過濾HCI產生的事件 |
Reset | 0x0003 | 復位藍芽控制器、鏈路管理器、基帶鏈路管理器 |
Set Event Filter | 0x0005 | 使能主機指定不同事件過濾 |
Flush | 0x0008 | 針對指定的藍芽控制代碼,放棄所有作為當前待傳輸資料,甚至當前是屬於多個在主機控制器裡的L2CAP指令的資料塊 |
Read PIN Type | 0x0009 | 主機讀取指定主機的PIN型別是可變的還是固定的 |
Write PIN Type | 0x000A | 主機寫入指定主機的PIN型別是可變的還是固定的 |
Create New Unit Key | 0x000B | 建立新的單一金鑰 |
Read Stored Link Key | 0x000D | 讀取存放在藍芽控制器中的單個或者多個金鑰 |
Write Stored Link Key | 0x0011 | 寫入存放在藍芽控制器中的單個或者多個金鑰 |
Delete Stored Link Key | 0x0012 | 刪除存放在藍芽控制器中的單個或者多個金鑰 |
Write Local Name | 0x0013 | 修改藍芽裝置名稱 |
Read Local Name | 0x0014 | 讀取藍芽裝置名稱 |
Read Connection Accept Timeout | 0x0015 | 讀連線識別超時引數值,定時器終止後藍芽硬體自動拒絕連線 |
Write Connection Accept Timeout | 0x0016 | 寫連線識別超時引數值,定時器終止後藍芽硬體自動拒絕連線 |
Read Page Timeout | 0x0017 | 讀尋呼超時引數值,本地裝置返回連線失敗前,該值是允許藍芽硬體定義等待遠端裝置連線申請時間 |
Write Page Timeout | 0x0018 | 寫尋呼超時引數值,本地裝置返回連線失敗前,該值是允許藍芽硬體定義等待遠端裝置連線申請時間 |
Read Scan Enable | 0x0019 | 寫出掃描允許引數值---用來控制藍芽裝置週期性查詢 |
Write Scan Enable | 0x001A | 讀出掃描允許引數值---用來控制藍芽裝置週期性查詢 |
Read Page Scan Activity | 0x001B | 讀尋呼掃描間隔、尋呼掃描區間引數 |
Write Page Scan Activity | 0x001C | 寫尋呼掃描間隔、尋呼掃描區間引數 |
Read Inquiry Scan Activity | 0x001D | 讀查詢掃描間隔、查詢掃描區間引數 |
Write Inquiry Scan Activity | 0x001E | 寫查詢掃描間隔、查詢掃描區間引數 |
Read Authentication Enable | 0x001F | 讀取鑑權允許引數---控制藍芽裝置是否對每個連線進行鑑權 |
Write Authentication Enable | 0x0020 | 寫取鑑權允許引數---控制藍芽裝置是否對每個連線進行鑑權 |
Read Encryption Mode | 0x0021 | 讀加密模式數值---控制藍芽裝置是否對每個連線進行加密 |
Write Encryption Mode | 0x0022 | 寫加密模式數值---控制藍芽裝置是否對每個連線進行加密 |
Read Class Of Device | 0x0023 | 讀取裝置型別引數值,用於區別裝置能力 |
Write Class Of Device | 0x0024 | 寫裝置型別引數值,用於區別裝置能力 |
Read Voice Setting | 0x0025 | 讀取語音設定引數值,控制語音連線的各種設定 |
Write Voice Setting | 0x0026 | 寫語音設定引數值,控制語音連線的各種設定 |
Read Automatic Flush Timeout | 0x0027 | 對指定控制代碼,讀取重新整理超時值 |
Write Automatic Flush Timeout | 0x0028 | 對指定控制代碼,寫入重新整理超時值 |
Read Num Broadcast Retransmissions | 0x0029 | 讀取裝置的廣播重複傳送次數,重複傳送提高廣播訊息的可靠性 |
Write Num Broadcast Retransmissions | 0x002A | 寫入裝置的廣播重複傳送次數,重複傳送提高廣播訊息的可靠性 |
Read Hold Mode Activity | 0x002B | 讀取Hold Mode Activity的引數值,用來確定Hold掛起的時間 |
Write Hold Mode Activity | 0x002C | 寫入Hold Mode Activity的引數值,用來確定Hold掛起的時間 |
Read Transmit Power Level | 0x002D | 對指定控制代碼,讀取傳輸功率的引數值 |
Read Synchronous Flow Control Enable | 0x002E | 讀取SCO流量控制設定。通過使用該設定,主機控制器決定是否主機控制器傳送與SCO連線控制代碼相關的完成分組事件的數量 |
Write Synchronous Flow Control Enable | 0x002F | 讀寫入SCO流量控制設定。通過使用該設定,主機控制器決定是否主機控制器傳送與SCO連線控制代碼相關的完成分組事件的數量 |
Set Host Controller To Host Flow Control | 0x0031 | 主機控制器的開啟、關閉,主機控制器到主機的流量控制 |
Host Buffer Size | 0x0033 | 主機通知主機控制器自己的ACL、SCO資料緩衝區大小。主機控制器分段傳輸資料,而資料不會超出這個範圍 |
Host Number Of Completed Packets | 0x0035 | 當主機對於任何連線的控制代碼準備接受較多的HCI指令時,該指令用於通過主機指出主機控制器 |
Read Link Supervision Timeout | 0x0036 | 讀取連線管理超時引數。主從藍芽裝置用該引數監視鏈路丟失情況 |
Write Link Supervision Timeout | 0x0037 | 寫入連線管理超時引數。主從藍芽裝置用該引數監視鏈路丟失情況 |
Read Number of Supported IAC | 0x0038 | 讀取查詢掃描期間本地藍芽掃描的查詢識別碼(ICA)的數值 |
Read Current IAC LAP | 0x0039 | 讀取建立在查詢掃描期間本地藍芽裝置正同時掃描的藍芽識別碼的LAP |
Write Current IAC LAP | 0x003A | 寫入建立在查詢掃描期間本地藍芽裝置正同時掃描的藍芽識別碼的LAP |
Read Page Scan Period Mode | 0x003B | 讀取本地藍芽裝置的強制尋呼掃描區間模式 |
Write Page Scan Period Mode | 0x003C | 寫入本地藍芽裝置的強制尋呼掃描區間模式 |
Read Page Scan Mode | 0x003D | 讀取本地藍芽裝置的預設尋呼掃描區間模式 |
Write Page Scan Mode | 0x003E | 寫入本地藍芽裝置的預設尋呼掃描區間模式 |
(4)、資訊指令引數
Read Local Version Information | 0x0001 | 讀取本地藍芽版本資訊 |
Read Local Supported Features | 0x0003 | 讀取本地藍芽裝置特徵表 |
Read Local Extended Features | 0x0004 | |
Read Buffer Size | 0x0005 | 返回HCI緩衝容量。緩衝容量用於傳輸緩衝資料 |
Read Country Code [Deprecated] | 0x0007 | 讀取國家程式碼狀態引數值 |
Read BD ADDR | 0x0009 | 讀取BD_ADDR的引數值 |
(5)、狀態指令引數
Read Failed Contact Count | 0x0001 | 讀取對於其他裝置特殊連線的Failed Contact Count引數值。Failed Contact Count記錄在重新整理時終止及當前正在傳輸的L2CAP資料指令被自動重新整理後,主單元或從單元不能連續響應事件次數 |
Reset Failed Contact Count | 0x0002 | 復位時對於其他裝置的連線的Failed Contact Count的引數值。Failed Contact Count記錄在重新整理時終止及當前正在傳輸的L2CAP資料指令被自動重新整理後,主單元或從單元不能連續響應事件次數 |
Get Link Quality | 0x0003 | 讀取指定連線控制代碼的Link Quality的值 |
Read RSSI | 0x0005 | 讀取對於其他藍芽裝置連線控制代碼的接收訊號強度指示 |
Read AFH Channel Map | 0x0007 | |
Read BD Clock | 0x0009 |
(6)、測試指令
Read Loopback Mode | 0x0001 | 讀取主機端控制器會送模式的設定值。回送模式設定可以確定資訊傳送路徑 |
Write Loopback Mode | 0x0002 | 寫入主機控制器會送模式的設定值。回送模式設定可以確定資訊傳送路徑 |
Enable Device Under Test Mode | 0x0003 | 允許本地藍芽裝置模組通過LMP測試指令接入測試模式。當主機要求本地裝置作為待測試裝置,實現藍芽測試模式檔案中規定測試場景,則傳送該指令 |
(7)、錯誤程式碼
錯誤程式碼 | 錯誤含義 | 錯誤程式碼 | 錯誤含義 |
0x01 | 位置HCI指令 | 0x14 | 由於另一端引起連線中斷:資源限制 |
0x02 | 不能連線 | 0x15 | 由於另一端引起連線中斷:關機 |
0x03 | 硬體故障 | 0x16 | 本機中斷連線 |
0x04 | 尋呼超時 | 0x17 | 重複嘗試 |
0x05 | 身份驗證失敗 | 0x18 | 不允許匹配 |
0x06 | 鍵丟失 | 0x19 | 未知LMP PDU |
0x07 | 儲存器已滿 | 0x1A | 不支援遠端特性 |
0x08 | 連線超時 | 0x1B | 拒絕SCO補償 |
0x09 | 最大連線數 | 0x1C | 拒絕SCO間歇模式 |
0x0A | 連線到裝置A的最大SCO連線數 | 0x1D | 拒絕SCO無線模式 |
0x0B | ACL連線已存在 | 0x1E | 非法鏈路管理引數 |
0x0C | 指令非法 | 0x1F | 未特別指明錯誤 |
0x0D | 由於資源有限,主機被拒絕 | 0x20 | 不支援鏈路管理器協議引數 |
0x0E | 由於安全原因,主機被拒絕 | 0x21 | 不允許角色改變 |
0x0F | 由於遠端裝置單連線裝置,主機拒絕 | 0x22 | 鏈路管理響應超時 |
0x10 | 主機超時 | 0x23 | 鏈路管理錯誤處理事務衝突 |
0x11 | 不支援特性或引數值 | 0x24 | 不允許LMP PDU |
0x12 | 非法主機控制介面指令 | 0x25~0xFF | 保留 |
0x13 | 由於另一端引起連線中斷:使用者中斷連線 |
二、邏輯鏈路控制與適配協議 L2CAP
L2CAP位於基帶之上,將基帶的資料分組轉換為便於高層應用的資料分組格式,並提供協議複用和服務質量交換等功能。L2CAP只支援ACL資料傳輸,不支援SCO資料。
L2CAP本身不提供加強通道可靠性和保證資料完整性的機制,其通道的可靠性依靠基帶提供。
1、協議複用:底層傳輸協議沒有提供對高層協議的複用機制,因而L2CAP支援高層協議複用,L2CAP層可以區分其上的SDP、RFCOMM、TCS等。
2、分段重組:L2CAP層幫助實現基帶的短PDU和高層的長PDU相互傳輸,L2CAP本身不完成任何PDU的分段重組,具體的分段重組有低層和高層來完成。
3、服務質量 Qualityof Serivce 資訊的交換:藍芽建立連線的過程中,L2CAP允許互動藍芽所期望的服務質量,建立完成後,通過監視資源的使用情況,來保證服務質量。
4、組抽象:L2CAP忽略地址組概念,他只關心資料。
L2CAP通道有三種類型:
A、面向連線通道:Connection-OrientedCO,用於兩個裝置之間的資料通訊。
B、無連線通道:Connection-LessCL,用來向一組裝置廣播方式傳輸資料。CID為固定值:0x0002。
C、信令通道:Signaling,用於建立CO通道,可以通過協商改變CO通道的特性。
CL通道的L2CAP_PDU
長度(2bytes) | 通道ID(0x0002) | PSM(最小為2bytes) | 有效載荷 |
PSM為 協議/服務複用器Protocol/Service Multiplexer,一般為SDP、RFCOMM、TCS等中介協議複用。小於0x1000的值,0x0001對應SDP,0x0003對應RFCOMM、0x0005對應TCS。
(1)、藍芽邏輯鏈路控制與適配協議信令:
L2CAP的信令通道的CID為0x0001
信令指令分組:
長度(2byte) | CID(0x0001) | 指令1 | 指令2 | …………… | 指令n |
L2CAP 分組頭部分 |
信令指令格式:
程式碼(1byte) | 識別符號(1byte) | 長度(2byte) | 資料 |
信令指令頭 |
如上圖所示,一條L2CAP信令,1為L2CAP分組頭,2為信令指令頭,3為資料部分。
L2CAP:
Role:Master
Address:11
PDULength: 6 //指令的長度,值為06 00
ChannelID: 0x0001 (Signaling)//L2CAP的信令通道,值為01 00
Code:Information request//資訊請求,值為0a
Identifier:1//識別符號,值為01
CommandLength: 2//命令長度,值為02 00
InfoType:Extended features supported//02 00
所以這條指令完整的為:
06 00 01 00 0a 01 02 00 02 00
信令的其他操作如下:
L2CAP信令指令碼:
Code | Description | |
0x00 | RESERVED | 保留 |
0x01 | Command reject | 拒絕命令 |
0x02 | Connection request | 連線請求 |
0x03 | Connection response | 連線響應 |
0x04 | Configure request | 配置請求 |
0x05 | Configure response | 配置響應 |
0x06 | Disconnection request | 斷開請求 |
0x07 | Disconnection response | 斷開響應 |
0x08 | Echo request | |
0x09 | Echo response | |
0x0A | Information request | 資訊請求 |
0x0B | Information response | 資訊響應 |
1)、連線請求Connection_Request Code=0x02
程式碼(0x02) | 識別符號(1位元組) | 長度(2位元組) | PSM(2位元組) | 源CID(2位元組) |
例如:SDP 連線請求
如上紅框所示:
程式碼(0x02) | 識別符號(1位元組) | 長度(2位元組) | PSM(2位元組) | 源CID(2位元組) |
0x02 | 3 | 4 | SDP | 0x0040 |
2)、連線相應Connection_Response Code=0x03
程式碼(0x03) | 識別符號 | 長度 | 目標CID | 源CID | 結果 | 狀態 |
例如:SDP請求響應
如上面紅框所示:
程式碼(0x03) | 識別符號 | 長度 | 目標CID | 源CID | 結果 | 狀態 |
0x03 | 3 | 8 | 0x0040 | 0x0040 | 0x0000 |
(2)、MTU MAXIMUMTRANSMISSION UNIT最大傳輸單元
MTU最大傳輸單元,L2CAP應用必須支援最小為48位元組的MTU,預設值為672
(3)、QoS 服務質量
三、服務發現協議 SDP
SDP兩種服務發現模式:
1)、服務搜尋:查詢具有特定服務屬性的服務;
2)、服務瀏覽:簡單的瀏覽全部可用服務。
(1)、PDU 格式:(協議資料單元)
PDU ID(1byte) | Transaction ID(2byte) | 引數長度(2byte) | 引數1 | …… | 引數N |
Header |
不同PDU ID實現SDP的不同功能,概述如下表格:
Value | Parameter Descirption | |
0x00 | Reserved | 保留 |
0x01 | SDP_ErrorResponse | 錯誤響應 |
0x02 | SDP_ServiceSearchRequest | 服務搜尋請求 |
0x03 | SDP_ServiceSearchResponse | 服務搜尋響應 |
0x04 | SDP_ServiceAttributeRequest | 服務屬性請求 |
0x05 | SDP_ServiceAttributeResponse | 服務屬性響應 |
0x06 | SDP_ServiceSearchAttributeRequest | 服務搜尋屬性請求 |
0x07 | SDP_ServiceSearchAttributeResponse | 服務搜尋屬性響應 |
0x08-0xff | Reserved | 保留 |
(2)、服務記錄表
SDP的服務記錄表對每一個服務進行描述,每條記錄包含服務控制代碼、一組服務屬性:
Service Record Attributes:服務記錄;
Service Record Handle 服務控制代碼;
Attribute 服務屬性;
四、串列埠模擬協議 RFCOMM
為建立在串列埠之上的傳統應用提供環境介面,使他們可以做比較少協議改動就可以在藍芽無線通訊無線鏈路上工作。多路串列埠模擬是RFCOMM的重要功能,通過多路複用器(multiplexer),一條L2CAP鏈路可以同時 多個序列應用。
兩臺裝置間的串列埠模擬:
RFCOMM 兩個藍芽裝置之間可以支援多達60多路模擬串列埠。
RFCOMM幀型別如下:
SABM | 非同步平衡模式設定指令 |
UA | 未加編號的確認響應 |
DM | 斷開連線模式響應 |
DISC | 斷開連線指令 |
UIH | 帶頭校驗的未編號資訊命令和響應 |
相關推薦
藍芽核心技術概述(四):藍芽協議規範(HCI、L2CAP、SDP、RFOCMM)
關鍵詞:藍芽核心技術協議 HCI L2CAP SDP RFCOMM作者:xubin341719(歡迎轉載,請註明作者,請尊重版權,謝謝!)歡迎指正錯誤,共同學習、共同進步!!一、主機控制介面協議 HCI藍芽主機-主機控模型藍芽軟體協議棧堆的資料傳輸過程:1、藍芽控制器介
藍芽核心技術概述(二):藍芽使用場景
關鍵詞:藍芽核心技術協議 A2DP AVDTP HF HCP BIP BPP…………作者:xubin341719(歡迎轉載,請註明作者,請尊重版權,謝謝!)歡迎指正錯誤,共同學習、共同進步!!藍芽應用的過程中,不同的場合、功能及相關協議。這篇將做詳細的介紹說明。1、ADV
藍芽核心技術概述(二):藍芽使用場景(轉載)
轉載:xubin341719 網址:http://blog.csdn.net/xubin341719/article/details/38228705 藍芽應用的過程中,不同的場合、功能及相關協議。這篇將做詳細的介紹說明。 1、ADVANCED AUDIO DISTRIBUTION PROFILE高階音訊分
藍芽核心技術概述(一):藍芽概述
關鍵詞:藍芽 核心技術 協議 版本 歷史作者:xubin341719(歡迎轉載,請註明作者,請尊重版權,謝謝)歡迎指正錯誤,共同學習、共同進步!!下載連線:Bluetooth PROFILE SPECIFICATIONS (基本涵蓋所有藍芽協議)、buletooth core
藍牙核心技術概述
cap tail 協議 技術 cmm bsp ron 核心 detail 藍牙核心技術概述(一):藍牙概述藍牙核心技術概述(二):藍牙使用場景藍牙核心技術概述(三): 藍牙協議規範(射頻、基帶鏈路控制、鏈路管理)藍牙核心技術概述(四):藍牙協議規範(HCI、L2CAP、SD
1、藍芽核心技術瞭解(藍芽協議、架構、硬體和軟體筆記)
原文地址:http://www.cnblogs.com/zjutlitao/p/4742428.html 宣告:這篇文章是樓主beautifulzzzz學習網上關於藍芽的相關知識的筆記,其中比較多的受益於xubin341719的藍芽系列文章,同時還有其他網上作者的資料。由於有些文章只做參
藍芽核心技術瞭解(藍芽協議、架構、硬體和軟體筆記)
下面是摘抄筆記內容: 藍芽,是一種支援裝置短距離通訊(一般10m內)的無線電技術。能在包括行動電話、PDA、無線耳機、膝上型電腦、相關外設等眾多裝置之間進行無線資訊交換。利用“藍芽”技術,能夠有效地簡化行動通訊終端裝置之間的通訊,也能夠成功地
藍芽協議學習整理(四)藍芽協議規範(irOBEX、BNEP、AVDTP、AVCTP)
第四章 藍芽協議規範(irOBEX、BNEP、AVDTP、AVCTP) 一、IrDA互操作協議 IrOBEX 紅外物件互動協議,簡稱OBEX,使高層協議同時運作在藍芽和紅外的無線鏈路之上。 主要操作指令有:連線操作、斷開操作、Put操作、Get操作
Redis核心技術進階四(Java開發)
Jedis Jedis使用java語言開發的程式,用來連線redis服務java API。呼叫jedis 介面就可以操作redis服務。 建立java工程 建立java工程,匯入jar檔案。
藍芽核心技術瞭解
宣告:本文在網路蒐羅整理,僅用於知識儲備 下面是摘抄筆記內容: 藍芽,是一種支援裝置短距離通訊(一般10m內)的無線電技術。能在包括行動電話、PDA、無線耳機、膝上型電腦、相關外設等眾多裝置之間進行無線資訊交換。利用“藍芽”技術,能夠有效
藍芽協議學習整理(二)藍芽協議規範(射頻、基帶鏈路控制、鏈路管理)
第二章 藍芽協議規範(射頻、基帶鏈路控制、鏈路管理) 藍芽協議是藍芽裝置間交換資訊所應該遵守的規則。與開放系統互聯(OSI)模型一樣,藍芽技術的協議體系也採用了分層結構,從底層到高層形成了藍芽協議棧,各層協議定義了所完成的功能和使用資料分組格式,以保證藍芽
演算法導論 第四章:遞迴式 筆記(代換法、遞迴樹方法、主方法、主定理的證明)
三種解遞迴式的方法:代換法、遞迴樹方法、主方法。 代換法: 用代換法解遞迴式需要兩個步驟: 猜測解的形式; 用數學歸納法找出使解真正有效的常數。 如: T(n) = 2T(n/2) + n,這個是合併排序的執行時間的遞迴表示式。歸併排序法的執行時間是O(nlgn),那麼我
程序(四):程序間通訊 —— Queue(佇列)和Pipe(管道)
目錄 程序間通訊 佇列 概念介紹 方法介紹 程式碼例項 生產者消費者模型 JoinableQueue([maxsize]) 管道(瞭解) 程序間通訊 IPC(Inter-Process Communication) 佇列&nbs
第四講:感知機+SVM+LR(下)
主要內容 2. 支援向量機(下) 2.3 軟間隔最大化 2.3.1 線性支援向量機 &nbs
區塊鏈技術基礎語言(三十一):Go語言網路程式設計(上)
原文連結:區塊鏈技術基礎語言(三十一):Go語言網路程式設計(上) 一、網路概述 1.1 網路協議 網路協議就是為網路資料交換而制定的規則、約定與標準。 1.2 分層模型 為了降低網路設計的複雜性,絕大多數網路都組織成一堆相互
第四課:兩種監聽器方法(基於AndroidStudio3.2)
一、佈局 在主程式介面上新增新按鈕,如以前一樣。 建立一個 Activity,名字為MeventActivity 新增一個三個Button控制元件。 新增呼叫該視窗程式給按鈕“多事件” Button btn2 = (Button) findViewByI
【鏈塊技術50期】區塊鏈技術基礎語言(三十二):Go語言網路程式設計(下)
原文連結:區塊鏈技術基礎語言(三十二):Go語言網路程式設計(下) 本文緊接上文所述,講解socket程式設計和HTTP程式設計。 一、socket程式設計 在上一節我們介紹了網路體系的五層模型,介紹了每層模型所遵守的協議。TCP/IP是一個協議族,它由網路層的IP協議
SpringBoot(四):SpringBoot與資料訪問(未完待續)
1、簡介 對於資料訪問層,無論是SQL還是NOSQL,SpringBoot預設採用整合SpringData(SpringData是Spring 的一個子專案。用於簡化資料庫訪問,支援NoSQL 和 關係資料儲存。其主要目標是使資料庫的訪問變得方便快捷)的方式進行
EventBus原始碼分析(四):執行緒模型分析(2.4版本)
EventBus有四種執行緒模型 PostThread模式不需執行緒切換,直接在釋出者執行緒進行事件處理。 MainThread模式分類討論:釋出者執行緒是主執行緒則直接呼叫事件處理方法,否則通過Handler進行執行緒切換,切換到主執行緒處理事件,該模
【Java多執行緒程式設計核心技術】第四章 Lock的使用
使用ReentrantLock類 Lock lock = new ReentrantLock(); lock.lock(); //同步的程式碼段 ... lock.unlock(); Condition用法:await(), signal()方法呼叫之前需要呼叫lock.loc