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

正文內(nèi)容

藍(lán)牙通訊程序設(shè)計(編輯修改稿)

2025-02-13 03:41 本頁面
 

【文章內(nèi)容簡介】 藍(lán)牙設(shè)備的hci_device 結(jié)構(gòu)體, 包括藍(lán)牙設(shè)備配置信息hci_info, 藍(lán)牙連接信息hci_con 和用于存儲返回分組信息的接收緩沖區(qū)hci_buf[1000], 具體如圖9所示。軟件采用前后臺的方式實現(xiàn), 前臺運行主程序,后臺定時循環(huán)調(diào)用HCI 狀態(tài)機。HCI 狀態(tài)機是一個子程序, 用來專門處理藍(lán)牙模塊返回的HCI 事件分組和HCI 數(shù)據(jù)分組。狀態(tài)機通過分析HCI 事件分組來決定相應(yīng)操作, 獲取相關(guān)信息, 通過分析HCI 數(shù)據(jù)分組, 來接收實際傳輸數(shù)據(jù)并存儲到接收緩沖區(qū)。具體的HCI 狀態(tài)機的處理流程如圖10所示:HCI 狀態(tài)機初始狀態(tài)置為IDLE_STATE, 根據(jù)HCI UART 傳輸層格式規(guī)范, 按字段取藍(lán)牙模塊返回的各個字節(jié), 每個字節(jié)為一個十六進(jìn)制數(shù), 不同的數(shù)代表不同的含義。第一個字節(jié)為分組指示器, 標(biāo)識分組的類型。ACL 數(shù)據(jù)分組為ACL_PKT( 0x02) , SCO數(shù)據(jù)分組為SCO_PKT( 0x03) , 事件分組為EVT_PKT( 0x04) , 另外指令分組為CMD_PKT( 0x01) , 藍(lán)牙模塊只返回ACL, SCO 和事件分組。取出第一個字節(jié)判斷出分組類型。若為事件分組, 則狀態(tài)機轉(zhuǎn)換為EVENT_HDR_STATE 狀態(tài), 繼續(xù)取字節(jié), 讀出事件碼和參數(shù)長度后, 轉(zhuǎn)換到EVENT_DATA_STATE 狀態(tài), 表示再來的字節(jié)即為事件參數(shù), 讀取事件參數(shù),并調(diào)用process_event ( ) 處理事件, 完成后回到IDLE_STATE 狀態(tài)。若為ACL 數(shù)據(jù)分組, 則先轉(zhuǎn)換為ACL_HDR_STATE 狀態(tài), 取出連接句柄, 轉(zhuǎn)換為ACL_DATA_STATE 狀態(tài), 處理后續(xù)來的數(shù)據(jù), 即為實際接收到的數(shù)據(jù), 完成后回到IDLE_STATE 狀態(tài)。若為SCO 數(shù)據(jù)分組, 類同ACL 數(shù)據(jù)分組的處理過程。HCI 狀態(tài)機要通過系統(tǒng)預(yù)先設(shè)定的一個定時器定時循環(huán)調(diào)用, 雖然HCI 從UART 得到的數(shù)據(jù)流是一塊一塊的, 有可能剛好是一個分組, 有可能是幾個分組, 還可能是一個分組的部分?jǐn)?shù)據(jù), 但狀態(tài)機對接收到的一塊數(shù)據(jù)流的處理是連續(xù)進(jìn)行的, 數(shù)據(jù)流的間斷只會造成狀態(tài)機的暫時等待, 而不會影響其正確處理返回分組。如中途出現(xiàn)分組丟失或錯誤的字段, 狀態(tài)機會報錯并重新置回初始態(tài)。狀態(tài)機數(shù)據(jù)處理部分的程序主函數(shù)如下:hci_state_machine( ) hci 狀態(tài)機, 定時器3 定時10ms 中斷調(diào)用hci_buf_put_ch( ) uart0 中斷接收藍(lán)牙模塊返回數(shù)據(jù), 放入hci_data_buf[1000]hci_buf_get_ch( ) 從hci_data_buf[1000]讀取一個字符待狀態(tài)機分析hci_reset( ...) 復(fù)位命令, 組合命令分組, 調(diào)用send_cmd( ) 發(fā)送給藍(lán)牙模塊? 類同hci_reset, hci 共4 大類命令: 鏈路管理/ 鏈路策略/ 主機控制器/ 信息參數(shù)get_opcode( ...) 將ogf 和ocf 組合成操作碼opcodele_u16_to_u16( ...) 實現(xiàn)反位序即大小模式轉(zhuǎn)換send_cmd( ...) 將指定長度的hci 指令送入指令發(fā)送緩沖區(qū)并調(diào)用uart_send_str()發(fā)送出去uart_send_ch(...) 發(fā)送一個字符uart_send_str(...) 發(fā)送一個指定長度的字符串 PDA端的軟件設(shè)計C 環(huán)境下單片機與PDA 無線通信的實現(xiàn)目前,國內(nèi)PDA 基本采用Windows Mobile 操作系統(tǒng)。Windows Mobile 系統(tǒng)是Microsoft 公司為智能移動終端設(shè)備設(shè)計的嵌入式操作系統(tǒng),基于Windows Mobile 操作系統(tǒng)的智能終端設(shè)備分Smart Phone 和Pocket PC 兩大類。其中,Smart Phone 為智能手機系統(tǒng), Pocket PC 為個人掌上電腦。現(xiàn)在,很多Pocket PC 也加入電話功能成為Pocket PC Phone。Windows Mobile 2003 中內(nèi)置. Net Compact Framework CF ,方便開發(fā)人員對Windows 智能移動終端設(shè)備的開發(fā)。Microsoft 也為Windows CE 提供了很多設(shè)備開發(fā)工具,如近年來發(fā)展迅速的Visual Studio 2008 中的Visual C 。Visual C 2008 為開發(fā)在基于Windows CE的智能設(shè)備(如Pocket PC 和Smart phone) 上運行的軟件提供豐富的集成支持,可以使用開發(fā)PC 程序時所使用的相同代碼編輯器、設(shè)計器和調(diào)試器界面,它還提供仿真程序,讓我們可以在開發(fā)計算機上運行和調(diào)試編寫的代碼。Visual C 2008 中的SerialPort 類控制串口資源非常方便,因此,本文選用Visual C 2008 來編寫藍(lán)牙串口通信程序。藍(lán)牙串口通信的基本流程包括配置資源參數(shù)、打開串口資源、通信讀寫操作和關(guān)閉串口資源。在Windows CE 系統(tǒng)中,串口與其他通信設(shè)備是作為文件進(jìn)行處理的。本文對藍(lán)牙串口進(jìn)行操作用到了C 2008 中的SerialPort 類,此類在. NET Framework 2. 0 版本中是新增的,用于控制串口文件資源。初始化SerialPort類實例和配置資源參數(shù)方法如下:namespace BlueTooth_RS232_{ public partial class FormMain : Form //窗體 { public FormMa
點擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1