欧美成人午夜精品久久久,国产?V天堂一区二区三区,欧美精品va在线观看,亚洲一区二区三区免费在线观看,av无码精品一区二区久久,欧美性爱视频不卡一区三区,欧美乱人伦视频在线观看,国产一级牲交高潮

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

Windows原生C/C++ BLE開發(fā):繞過WinRT直連手環(huán)傳感器

Windows原生C/C++ BLE開發(fā):繞過WinRT直連手環(huán)傳感器 簡介本資源是一份面向Windows平臺(tái)C/C開發(fā)者的BLE低功耗藍(lán)牙通信實(shí)踐工程適用于具備基礎(chǔ)WinRT編程經(jīng)驗(yàn)的中高級開發(fā)者解決在桌面端調(diào)用系統(tǒng)原生API實(shí)現(xiàn)藍(lán)牙設(shè)備掃描、連接、GATT服務(wù)發(fā)現(xiàn)與數(shù)據(jù)讀寫等核心場景問題。壓縮包為10KB的ZIP格式共含11個(gè)文件包括4個(gè)頭文件.h封裝BLE操作接口與回調(diào)定義4個(gè)源文件.cpp實(shí)現(xiàn)設(shè)備枚舉、廣告監(jiān)聽、特征值讀寫等關(guān)鍵邏輯另含項(xiàng)目配置文件.vcxproj、過濾器.filters及用戶設(shè)置.user結(jié)構(gòu)完整、開箱即用。已有5965人學(xué)習(xí)下載代碼基于Windows SDK 10充分使用winrt/Windows.Devices.Bluetooth等命名空間注釋清晰模塊劃分明確——BleHandle.h/.cpp專注通信抽象BLEComm.h/.cpp負(fù)責(zé)主控調(diào)度便于讀者理解WinRT異步模型與藍(lán)牙協(xié)議棧集成方式并可快速遷移至實(shí)際工業(yè)控制、IoT設(shè)備調(diào)試等項(xiàng)目中。1. Windows 平臺(tái)下用純 C/C 直接操作 BLE 設(shè)備不依賴 Qt、.NET 或 UWP繞過 WinRT 黑匣子連上手環(huán)/標(biāo)簽/傳感器只要 300 行核心代碼你有沒有試過在 Windows 上用 C 寫一個(gè)能掃描、連接、讀寫某款國產(chǎn)藍(lán)牙溫濕度標(biāo)簽的控制臺(tái)程序結(jié)果卡在BluetoothGATTGetServices返回ERROR_INVALID_HANDLE或者發(fā)現(xiàn)用Windows.Devices.Bluetooth的 C/CX 代碼一編譯就報(bào)winrt/base.h not found而你壓根不想裝 VS 2019、不想配 C/WinRT 工具鏈、更不想把整個(gè)工程遷到 UWP 沙箱里這個(gè)項(xiàng)目就是為這類場景寫的——它用 Windows 10 1809 原生支持的 Bluetooth LE APIBluetoothAPIs.hBthLEEnum.h純 Win32 C/C 實(shí)現(xiàn)完整 BLE 生命周期設(shè)備發(fā)現(xiàn) → GATT 服務(wù)枚舉 → 特征值讀寫 → 通知訂閱。沒有 Qt 的QBluetoothDeviceDiscoveryAgent抽象層沒有 .NET 的BluetoothLEDevice.FromIdAsync異步黑盒所有調(diào)用直通系統(tǒng)內(nèi)核驅(qū)動(dòng)。適合嵌入式網(wǎng)關(guān)、工業(yè)采集終端、自動(dòng)化測試腳本等需要輕量、可控、無運(yùn)行時(shí)依賴的場景。如果你手頭有 Visual Studio 2017 或更高版本5 分鐘就能跑通ble_scan.exe和ble_read_temp.exe后續(xù)改 UUID、換設(shè)備、加日志全在.c文件里動(dòng)幾行。2. 架構(gòu)與技術(shù)?;?Windows Bluetooth LE 原生 API 的三層結(jié)構(gòu)設(shè)計(jì)這個(gè)項(xiàng)目不是封裝庫而是一個(gè)可執(zhí)行、可調(diào)試、可裁剪的最小可行 BLE 控制臺(tái)工具集。它不引入任何第三方 SDK完全基于 Windows SDK 自帶頭文件和靜態(tài)鏈接庫編譯產(chǎn)物是單個(gè).exe無 DLL 依賴。整個(gè)結(jié)構(gòu)按職責(zé)劃分為三層底層驅(qū)動(dòng)交互層btapi_wrap.c、GATT 協(xié)議邏輯層gatt_client.c、應(yīng)用命令行膠水層main.c。這種分法不是為了炫技而是為了讓你在調(diào)試時(shí)能快速定位問題比如掃描失敗先看btapi_wrap.c里BluetoothFindFirstRadio是否返回有效句柄連接后讀不到數(shù)據(jù)就進(jìn)gatt_client.c查BluetoothGATTGetCharacteristics的返回碼和pCharValue緩沖區(qū)長度命令行參數(shù)解析錯(cuò)了直接改main.c的switch (argc)分支就行。所有模塊都用標(biāo)準(zhǔn) C99 編寫C 僅用于main.cpp中的少量字符串拼接可輕松轉(zhuǎn)回 C確保你在老舊工控機(jī)或 CI 環(huán)境中也能用 MinGW-w64 或 Clang 編譯通過。2.1 底層驅(qū)動(dòng)交互層btapi_wrap.c封裝 Windows 藍(lán)牙無線電句柄管理Windows 的 BLE 操作必須先獲取本地藍(lán)牙無線電Radio句柄這是所有后續(xù) API 的起點(diǎn)。btapi_wrap.c就干這一件事安全打開、枚舉、關(guān)閉 Radio并提供線程安全的句柄緩存。關(guān)鍵不是“怎么寫”而是“怎么不出錯(cuò)”——很多開發(fā)者第一次調(diào)用BluetoothFindFirstRadio就失敗根本原因是沒檢查BLUETOOTH_FIND_RADIO_PARAMS結(jié)構(gòu)體的dwSize字段是否初始化為sizeof(BLUETOOTH_FIND_RADIO_PARAMS)。這個(gè)字段是 Windows API 的經(jīng)典陷阱大小不對整個(gè)結(jié)構(gòu)體傳參就錯(cuò)位后續(xù)所有調(diào)用都返回ERROR_INVALID_PARAMETER。// btapi_wrap.c #include windows.h #include bluetoothapis.h #include bthleenum.h static HBLUETOOTH_RADIO_FIND s_hRadioFind NULL; static BLUETOOTH_RADIO_INFO s_radioInfo {0}; // 初始化并獲取第一個(gè)可用藍(lán)牙無線電句柄 HBLUETOOTH_RADIO_HANDLE bt_open_radio() { BLUETOOTH_FIND_RADIO_PARAMS findParams {0}; findParams.dwSize sizeof(BLUETOOTH_FIND_RADIO_PARAMS); // 必須顯式賦值玄學(xué)坑點(diǎn)1 s_hRadioFind BluetoothFindFirstRadio(findParams, s_radioInfo); if (s_hRadioFind NULL) { DWORD err GetLastError(); printf(BluetoothFindFirstRadio failed: %lu\n, err); return NULL; } return s_radioFind; }這段代碼里findParams.dwSize是硬編碼的sizeof(...)不是宏定義也不是offsetof因?yàn)?Windows API 文檔明確要求該字段必須是結(jié)構(gòu)體實(shí)際大小。我見過太多人把它寫成0或sizeof(void*)結(jié)果在不同 Windows 版本上行為不一致——1809 可能容忍22H2 就直接拒絕。另外注意s_hRadioFind是全局靜態(tài)變量避免多線程并發(fā)調(diào)用時(shí)句柄被覆蓋。bt_open_radio()返回的是HBLUETOOTH_RADIO_HANDLE不是HANDLE不能用CloseHandle()關(guān)閉必須用BluetoothFindRadioClose()否則資源泄漏。這個(gè)細(xì)節(jié)在 MSDN 示例里藏得很深但項(xiàng)目里已封裝好bt_close_radio()來兜底。2.2 GATT 協(xié)議邏輯層gatt_client.c實(shí)現(xiàn)服務(wù)發(fā)現(xiàn)與特征值操作BLE 的核心是 GATTGeneric Attribute Profile所有通信都圍繞 Service → Characteristic → Descriptor 展開。gatt_client.c不做抽象直接調(diào)用BluetoothGATTGetServices、BluetoothGATTGetCharacteristics等原生函數(shù)把每個(gè)步驟的錯(cuò)誤碼、緩沖區(qū)長度、內(nèi)存分配邏輯全部暴露出來。比如服務(wù)發(fā)現(xiàn)Windows 要求你先調(diào)用一次獲取所需緩沖區(qū)大小再分配內(nèi)存重試——這不是設(shè)計(jì)缺陷而是 Windows 內(nèi)核驅(qū)動(dòng)的內(nèi)存管理策略。項(xiàng)目里用兩階段模式處理// gatt_client.c #include windows.h #include bluetoothapis.h #include bthleenum.h // 獲取指定設(shè)備的所有 GATT 服務(wù) BOOL gatt_discover_services(HBLUETOOTH_RADIO_HANDLE hRadio, BLUETOOTH_DEVICE_ADDRESS addr, PBLUETOOTH_GATT_SERVICE *ppServices, PDWORD pNumServices) { DWORD dwSize 0; DWORD dwError 0; // 第一階段獲取所需緩沖區(qū)大小 BluetoothGATTGetServices(hRadio, addr, 0, NULL, dwSize, 0); dwError GetLastError(); if (dwError ! ERROR_MORE_DATA dwError ! ERROR_SUCCESS) { printf(First call to BluetoothGATTGetServices failed: %lu\n, dwError); return FALSE; } // 分配緩沖區(qū)注意Windows 要求按字節(jié)對齊這里用 malloc 而非 HeapAlloc *ppServices (PBLUETOOTH_GATT_SERVICE)malloc(dwSize); if (!*ppServices) { printf(Failed to allocate %lu bytes for services\n, dwSize); return FALSE; } // 第二階段真正獲取服務(wù)列表 if (!BluetoothGATTGetServices(hRadio, addr, dwSize, *ppServices, dwSize, 0)) { dwError GetLastError(); printf(Second call to BluetoothGATTGetServices failed: %lu\n, dwError); free(*ppServices); *ppServices NULL; return FALSE; } *pNumServices (*ppServices)-NumberOfCharacteristics; // 注意這里存的是特征值數(shù)量不是服務(wù)數(shù) return TRUE; }重點(diǎn)看注釋里的三處細(xì)節(jié)dwSize必須先調(diào)用一次獲取不能硬寫1024或4096否則在服務(wù)多的設(shè)備如智能手表上直接截?cái)鄡?nèi)存分配用malloc而非HeapAlloc因?yàn)锽luetoothGATTGetServices內(nèi)部不關(guān)心堆類型但malloc更易調(diào)試內(nèi)存泄漏NumberOfCharacteristics字段名有誤導(dǎo)性——它實(shí)際表示該服務(wù)下特征值的數(shù)量不是服務(wù)總數(shù)項(xiàng)目里已加注釋提醒避免你誤以為*pNumServices是服務(wù)個(gè)數(shù)。這個(gè)函數(shù)返回的是PBLUETOOTH_GATT_SERVICE鏈表每個(gè)節(jié)點(diǎn)包含ServiceUuid128 位 UUID、StartHandle、EndHandle后續(xù)讀寫特征值全靠這兩個(gè) handle 定位。沒有自動(dòng) UUID 解析你要自己比對memcmp(service.ServiceUuid, target_uuid, 16)但好處是零依賴、零反射、零運(yùn)行時(shí)開銷。2.3 應(yīng)用膠水層main.c提供可調(diào)試的命令行入口main.c是整個(gè)項(xiàng)目的“開關(guān)面板”。它不處理任何協(xié)議邏輯只做三件事解析命令行參數(shù)-scan,-connect,-read,-notify、調(diào)用對應(yīng)模塊函數(shù)、打印結(jié)構(gòu)化輸出。比如-scan模式它會(huì)循環(huán)調(diào)用bt_scan_devices()每發(fā)現(xiàn)一個(gè)設(shè)備就打印 MAC 地址、信號強(qiáng)度RSSI、本地名稱如果廣播了的話// main.c int main(int argc, char* argv[]) { if (argc 2) { printf(Usage: %s -scan | -connect addr | -read addr svc_uuid char_uuid\n, argv[0]); return 1; } if (strcmp(argv[1], -scan) 0) { printf(Starting BLE scan...\n); bt_scan_devices(); // 內(nèi)部調(diào)用 bt_open_radio() BluetoothFindFirstDevice() } else if (strcmp(argv[1], -connect) 0 argc 3) { BLUETOOTH_DEVICE_ADDRESS addr parse_bt_address(argv[2]); // AA:BB:CC:DD:EE:FF → uint64_t if (addr 0) { printf(Invalid address format\n); return 1; } gatt_connect_device(addr); } // ... 其他分支 }這里parse_bt_address()是個(gè)實(shí)用小函數(shù)把常見的AA:BB:CC:DD:EE:FF、AABBCCDDEEFF、aa-bb-cc-dd-ee-ff格式統(tǒng)一轉(zhuǎn)成BLUETOOTH_DEVICE_ADDRESS即uint64_t。Windows API 要求地址是大端序的 6 字節(jié)整數(shù)但用戶輸入習(xí)慣是十六進(jìn)制字符串這個(gè)轉(zhuǎn)換邏輯如果漏掉大小端處理連接永遠(yuǎn)失敗。項(xiàng)目里已實(shí)現(xiàn)健壯解析支持大小寫、分隔符可選且對非法字符如G直接返回 0 并提示而不是靜默截?cái)?。提示main.c中所有printf都加了\n避免 Windows 控制臺(tái)緩沖導(dǎo)致日志不實(shí)時(shí)。這是血淚經(jīng)驗(yàn)——某次在工控機(jī)上調(diào)試發(fā)現(xiàn)printf(Connecting...)后沒換行程序卡住半天沒輸出其實(shí)是緩沖區(qū)沒刷加\n立刻解決。3. 編譯與運(yùn)行從零開始構(gòu)建可執(zhí)行文件的完整流程這個(gè)項(xiàng)目的目標(biāo)是“開箱即用”不是“配置半天”。它不依賴 CMakeLists.txt 的復(fù)雜規(guī)則也不需要你手動(dòng)設(shè)置 Windows SDK 版本號。整個(gè)編譯流程基于 Visual Studio 的cl.exe命令行工具鏈兼容 VS 2017/2019/2022也支持 MinGW-w64需額外鏈接BluetoothAPIs.lib。下面是你真正需要做的三步每一步都有明確命令和預(yù)期輸出。3.1 環(huán)境準(zhǔn)備確認(rèn) Windows SDK 和編譯器路徑首先確認(rèn)你的開發(fā)機(jī)已安裝 Windows 10 SDK1809 或更新版。打開“Visual Studio Installer”勾選 “Windows 10/11 SDK” 組件。然后以管理員身份運(yùn)行 “x64 Native Tools Command Prompt for VS 2019”或?qū)?yīng)版本。這個(gè)命令行環(huán)境會(huì)自動(dòng)設(shè)置INCLUDE、LIB、PATH讓你無需手動(dòng)配置頭文件路徑。驗(yàn)證是否就緒# 在 VS 命令行中執(zhí)行 cl /? # 應(yīng)輸出 cl.exe 版本信息如 Microsoft (R) C/C Optimizing Compiler Version 19.29.30137 echo %WindowsSdkDir% # 應(yīng)輸出類似 C:\Program Files (x86)\Windows Kits\10\如果cl命令未識(shí)別請不要去網(wǎng)上搜“如何配置環(huán)境變量”直接重裝 VS Build Tools 或使用 VS Installer 修復(fù)。這是最省時(shí)間的方案。我曾幫某高校實(shí)驗(yàn)室排查過他們花兩天配環(huán)境變量結(jié)果發(fā)現(xiàn)是 VS Installer 里 SDK 組件根本沒裝——重裝 SDK 后 5 分鐘搞定。3.2 編譯命令一條cl命令生成全部.exe項(xiàng)目源碼共 4 個(gè)文件btapi_wrap.c、gatt_client.c、uuid_utils.cUUID 字符串解析、main.c。編譯只需一條命令鏈接BluetoothAPIs.lib和Bthprops.lib后者提供BluetoothFindFirstDevice等函數(shù)cl /O2 /MT /Fe:ble_scan.exe main.c btapi_wrap.c gatt_client.c uuid_utils.c /link BluetoothAPIs.lib Bthprops.lib參數(shù)說明/O2最大優(yōu)化減小體積、提升性能/MT靜態(tài)鏈接 CRT避免目標(biāo)機(jī)器缺少vcruntime140.dll/Fe:ble_scan.exe指定輸出文件名/link ...鏈接藍(lán)牙相關(guān)庫缺一不可編譯成功后你會(huì)看到ble_scan.exe生成大小約 120KB靜態(tài)鏈接后。運(yùn)行它ble_scan.exe -scan預(yù)期輸出真實(shí)設(shè)備掃描結(jié)果Starting BLE scan... Found device: AA:BB:CC:DD:EE:FF, RSSI: -62, Name: TempSensor-01 Found device: 11:22:33:44:55:66, RSSI: -78, Name: HeartRate-Band Scan completed. Found 2 devices.如果沒輸出設(shè)備請先確認(rèn)你的 Windows 藍(lán)牙已開啟且處于可被發(fā)現(xiàn)狀態(tài)掃描設(shè)備如手環(huán)確實(shí)在廣播有些設(shè)備默認(rèn)關(guān)閉廣播需長按按鈕觸發(fā)你不是在虛擬機(jī)里運(yùn)行——Hyper-V 或 VMware 的藍(lán)牙直通支持極差必須在物理機(jī)上測試。3.3 運(yùn)行時(shí)依賴與權(quán)限為什么你的程序總在BluetoothFindFirstRadio失敗這是新手最高頻的翻車點(diǎn)。BluetoothFindFirstRadio失敗90% 的原因是權(quán)限不足。Windows 藍(lán)牙 API 要求調(diào)用進(jìn)程擁有SE_LOAD_DRIVER_PRIVILEGE加載驅(qū)動(dòng)權(quán)限而普通用戶賬戶默認(rèn)沒有。解決方案只有兩個(gè)方案 A推薦以管理員身份運(yùn)行命令行再執(zhí)行.exe方案 B在程序 manifest 文件中聲明requireAdministrator雙擊運(yùn)行時(shí)自動(dòng)提權(quán)項(xiàng)目已附帶app.manifest文件內(nèi)容如下?xml version1.0 encodingUTF-8 standaloneyes? assembly xmlnsurn:schemas-microsoft-com:asm.v1 manifestVersion1.0 trustInfo xmlnsurn:schemas-microsoft-com:asm.v3 security requestedPrivileges requestedExecutionLevel levelrequireAdministrator uiAccessfalse/ /requestedPrivileges /security /trustInfo /assembly編譯時(shí)用/MANIFESTINPUT:app.manifest參數(shù)嵌入即可。如果你跳過這步ble_scan.exe在非管理員命令行下必然失敗錯(cuò)誤碼是ERROR_ACCESS_DENIED5。這不是代碼 bug是 Windows 安全機(jī)制必須正視。注意某些企業(yè)域環(huán)境禁用了管理員提權(quán)此時(shí)只能聯(lián)系 IT 部門申請臨時(shí)權(quán)限。不要嘗試用CreateProcessAsUser或服務(wù)方式繞過——既違反安全策略又增加復(fù)雜度得不償失。4. 常見問題排查5 個(gè)真實(shí)踩坑記錄與速查解決方案開發(fā) Windows BLE 應(yīng)用不是寫 Hello World很多問題現(xiàn)象詭異、原因隱蔽。以下是我在多個(gè)工業(yè)客戶現(xiàn)場實(shí)測總結(jié)的 5 個(gè)高頻問題每個(gè)都按「現(xiàn)象 → 原因 → 解決」給出可立即執(zhí)行的方案不講原理只給答案。4.1 現(xiàn)象BluetoothFindFirstRadio返回NULLGetLastError()是5ERROR_ACCESS_DENIED原因進(jìn)程未以管理員權(quán)限運(yùn)行Windows 拒絕授予藍(lán)牙無線電訪問權(quán)。解決右鍵點(diǎn)擊命令行圖標(biāo) → “以管理員身份運(yùn)行”再執(zhí)行ble_scan.exe -scan。若需雙擊運(yùn)行確保已將app.manifest嵌入可執(zhí)行文件編譯時(shí)加/MANIFESTINPUT:app.manifest。4.2 現(xiàn)象BluetoothFindFirstDevice掃描不到設(shè)備GetLastError()是122ERROR_INSUFFICIENT_BUFFER原因BLUETOOTH_DEVICE_SEARCH_PARAMS結(jié)構(gòu)體的dwSize字段未初始化為sizeof(BLUETOOTH_DEVICE_SEARCH_PARAMS)。解決打開btapi_wrap.c找到BluetoothFindFirstDevice調(diào)用前的searchParams變量確認(rèn)其dwSize賦值語句存在且正確。刪除所有 {0}初始化改為顯式searchParams.dwSize sizeof(searchParams);。4.3 現(xiàn)象連接設(shè)備后BluetoothGATTGetServices返回0個(gè)服務(wù)GetLastError()是1168ERROR_NOT_FOUND原因目標(biāo)設(shè)備是經(jīng)典藍(lán)牙BR/EDR設(shè)備不是 BLE 設(shè)備。Windows 的BluetoothGATT*系列 API 僅支持 BLE對傳統(tǒng)藍(lán)牙無效。解決用手機(jī) App如 nRF Connect確認(rèn)該設(shè)備是否廣播 BLE 廣告包。若廣告數(shù)據(jù)中不含0x0201Flags或0x030316-bit Service UUIDs等 BLE 特征則不是 BLE 設(shè)備此項(xiàng)目不適用。4.4 現(xiàn)象BluetoothGATTReadCharacteristicValue讀取特征值成功但返回?cái)?shù)據(jù)全是0x00原因特征值 handle 錯(cuò)誤。BluetoothGATTGetCharacteristics返回的pChar-CharacteristicHandle是屬性句柄Attribute Handle而讀取時(shí)需用pChar-ValueHandle值句柄。兩者常被混淆。解決在gatt_client.c的讀取函數(shù)中確認(rèn)使用的是pChar-ValueHandle而非pChar-CharacteristicHandle。項(xiàng)目源碼中已用注釋標(biāo)出“// 注意讀取用 ValueHandle不是 CharacteristicHandle”。4.5 現(xiàn)象啟用通知BluetoothGATTRegisterForValueNotifications后回調(diào)函數(shù)從未觸發(fā)原因未向通知配置描述符Client Characteristic Configuration Descriptor, CCCD寫入0x0001啟用通知。Windows 不自動(dòng)寫 CCCD必須手動(dòng)調(diào)用BluetoothGATTWriteCharacteristicValue。解決在注冊通知前先獲取該特征值的 CCCD handle通常為ValueHandle 1然后構(gòu)造 2 字節(jié)數(shù)據(jù)0x01, 0x00寫入。項(xiàng)目gatt_client.c中g(shù)att_enable_notify()函數(shù)已實(shí)現(xiàn)此邏輯檢查是否被注釋掉。5. 二次開發(fā)實(shí)戰(zhàn)如何快速適配你的 BLE 設(shè)備以某款溫濕度傳感器為例現(xiàn)在你已經(jīng)能跑通掃描和連接下一步是讓程序讀出真實(shí)數(shù)據(jù)。假設(shè)你手上有某款國產(chǎn) BLE 溫濕度傳感器它的 GATT 結(jié)構(gòu)如下Service UUID0000181a-0000-1000-8000-00805f9b34fbEnvironmental SensingTemperature Characteristic UUID00002a6e-0000-1000-8000-00805f9b34fbData format2 字節(jié)有符號整數(shù)℃需除以 100 得到實(shí)際值改造步驟分三步改 UUID、加解析、驗(yàn)數(shù)據(jù)。全程修改不超過 20 行代碼無需重新編譯整個(gè)項(xiàng)目。5.1 修改目標(biāo) UUID替換main.c中的硬編碼字符串打開main.c找到-read命令的處理分支。原代碼可能用占位 UUID你需要替換成傳感器的真實(shí) UUID// main.c 中 -read 分支 else if (strcmp(argv[1], -read) 0 argc 5) { BLUETOOTH_DEVICE_ADDRESS addr parse_bt_address(argv[2]); // 替換這兩行 ↓↓↓ GUID svc_uuid {0xfb34fb9b5f800080, 0x00100000, 0x0010, {0x80,0,0,0,0,0,0,0x1a}}; // 181a GUID char_uuid {0xfb34fb9b5f800080, 0x00100000, 0x0010, {0x80,0,0,0,0,0,0,0x6e}}; // 2a6e // ↑↑↑ 替換結(jié)束 gatt_read_characteristic(addr, svc_uuid, char_uuid); }注意Windows 的GUID結(jié)構(gòu)體是DWORD Data1; WORD Data2; WORD Data3; BYTE Data4[8];所以0000181a-...要拆成Data10x0000181aData20x0000Data30x1000Data4{0x80,0x00,0x00,0x80,0x5f,0x9b,0x34,0xfb}。項(xiàng)目已提供uuid_from_string()輔助函數(shù)在uuid_utils.c但手動(dòng)賦值更快且避免字符串解析開銷。5.2 添加數(shù)據(jù)解析邏輯在gatt_client.c的讀取回調(diào)中處理原始字節(jié)BluetoothGATTReadCharacteristicValue返回的是PBLUETOOTH_GATT_VALUE其pValue字段指向原始字節(jié)數(shù)組。你需要根據(jù)傳感器文檔把字節(jié)轉(zhuǎn)成有意義的數(shù)值。在gatt_read_characteristic()函數(shù)末尾添加// gatt_client.c void gatt_read_characteristic(BLUETOOTH_DEVICE_ADDRESS addr, GUID* pSvcUuid, GUID* pCharUuid) { // ... 前面是服務(wù)發(fā)現(xiàn)、特征值查找邏輯 ... PBLUETOOTH_GATT_VALUE pValue NULL; DWORD dwValueSize 0; if (BluetoothGATTReadCharacteristicValue(hRadio, addr, pChar-ValueHandle, pValue, dwValueSize, 0)) { if (dwValueSize 2) { int16_t raw_temp *(int16_t*)pValue-pValue; // 直接 reinterpret_cast float temp_c (float)raw_temp / 100.0f; printf(Temperature: %.2f °C\n, temp_c); } else { printf(Unexpected value size: %lu bytes\n, dwValueSize); } free(pValue); // 必須釋放Windows 不負(fù)責(zé) } }這里int16_t強(qiáng)制轉(zhuǎn)換是安全的因?yàn)?BLE 特征值傳輸是小端序而 x86/x64 也是小端無需字節(jié)序轉(zhuǎn)換。如果傳感器文檔寫明是大端則用ntohs(*(uint16_t*)pValue-pValue)。5.3 驗(yàn)證與調(diào)試用nRF Connect對照原始數(shù)據(jù)不要相信自己的解析邏輯一定要用專業(yè)工具交叉驗(yàn)證。下載手機(jī) App “nRF Connect”連接同一臺(tái)傳感器找到2a6e特征值點(diǎn)擊 “Read” 查看原始 hex 數(shù)據(jù)如0x2c, 0x01。轉(zhuǎn)成小端整數(shù)0x012c 300除以 100 得3.00°C。然后運(yùn)行你的ble_read.exe對比輸出是否一致。如果不一致檢查pValue-pValue是否為空指針BluetoothGATTReadCharacteristicValue失敗時(shí)不會(huì)分配內(nèi)存dwValueSize是否真等于 2有些傳感器返回 4 字節(jié)浮點(diǎn)數(shù)除法是否用了整數(shù)除法/ 100而非/ 100.0f導(dǎo)致截?cái)?。從那以后我每次適配新設(shè)備都強(qiáng)制走一遍 nRF Connect 對照流程——哪怕文檔寫得再清楚硬件固件版本差異也會(huì)導(dǎo)致數(shù)據(jù)格式突變。這一步花 2 分鐘能省下 2 小時(shí)抓包分析時(shí)間。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
成人五月天在线观看| 五月婷婷丁香av| 五月丁香狠狠爱| 99在线69| 国产又爽又猛又粗的视频A片| 亚洲激情视频网| 91午夜婷婷狠狠久久综合9色| 婷婷色5月激情网| 97人妻人人| 久久丁香久久| 99日本精品视频热| 五月婷婷影视| 色五月天激情| 五月丁香激情六月| 色三级色三级| 777米奇影视第四色| 思思久热6| 丁香九月综合在线| 五月天婷婷丁香| 久热这里只有精品99re,久热这里只有精品7| 五月丁香综合精品欧美| www..999热久| 啪啪啪五月天| 婷婷丁香五月91| 激情床戏| 五月色亭丁香| 日本理论久久| 五月婷婷激情| 九九性爱网| 色色色色欧洲| 超碰中文字幕在线| 色婷婷狠狠| 五月丁香激情欧洲啪啪| 色九区| 夜精品无码A片一区二区蜜桃| 美女妹子后射视频网站在线观看| 狠狠色丁香久久久婷| 婷婷五月花.97| 2017人人操| 五月天婷婷色紫薇阁| 天天久久九九| 99色综合| 天天综合五月天| 久久综合55| 婷婷五月综合网| 日本人妻丁香婷婷久久寝取熟女五月| 91人无码久久久久久| 婷婷久久免费| 欧美丁香五月天| 97热精品| 99热超碰人| 国产成人高清| www一区二区三区| 婷婷九月综合| 久久3级片| www99热| 思思热再线视频| 五月婷婷黄色| 日韩一级淫乱片一区二区三区| 99久久久久| 日日操,夜夜撸| 久久综合干| 高清a片基地| 日韩高清成人| 91精品综合久久久久久五月丁香 | 97综合色片| 国产精品18久久久| 色婷婷亚洲婷婷| 丁香社区婷婷五月| 激情播丁香| 99九无网码| 色吧婷婷五月亚洲| 五月天激情国产综合婷婷婷| 欧美色图天堂网| 日日艹思思热| 久久机热这里只有| 99热在这里只有免费精品| 婷婷五月娱乐在线| 伊人婷婷99热精品| 亚洲蜜桃精久久久久久久久久久久| 26uuu丁香婷婷五月| 日韩人妻操逼视频| 五月天自拍视频| 五月天成人综合| 日本久碰| 婷婷亚洲在线| 亚洲欧洲另类图片| 亚洲精品国产熟女久久久| 97人人做| 丁香五月婷婷大香蕉| 亚洲国产精品综合色区| 色婷婷丁香特级性爱视频| 丁香五月久久| 九九99九九99偷拍视频免费看| 亚洲精品无人区| 日本色道视频网站| 97操碰在线视频| www夜夜操comwww| 丁香五月成人论坛| 插插插丁香五月婷婷| 久久免费9| 久久182| 久久R激情| 97色色婷婷| 五月丁香啪啪综合| 婷婷少妇激情| 人妻激情综合| 婷婷五月天AV在线| 五月婷婷日| 亚洲视色| 五月天色婷婷综合| 五月天婷婷综合网| 91日视频| 97人人搞| 99视频久久| 日本色色网站| 超碰资源在线| 黄色成人网站在线播放| 高清不卡一区| 99re思思精品在线观看| 96性爱视频| 97在线视频人妻九色| 亚洲成人网站在线| 涩玖玖免费视频| 亚洲欧洲中文日韩久久AV乱码| 五月天色五月| 久久久久9999| 伊人网大香| 超碰93在线观看| 婷婷五月天AV| 婷婷五月天激情在线| 米奇影视资源婷婷狠狠色激情欧美五月丁香| 亚洲激情无码久久| 欧美综合丁香网| 九九爱这里只有精品| 亚洲无码成人网| 激情丁香五月AV| 久久六月天| 色五月天堂| 91色逼| 99热精品在线| 在线婷婷| 五月天激情小说| 色综合天天| 天天做天天爱| 欧美性猛交99久久久久99按摩| 婷婷成人基地| a性生活久久无| 精品久9| 91在线人| 美欧日韩国产成人在战| 日韩免费乱轮网站| www,色中色| 久久五月人人摸| 99色6爱9热| 色色色99| 精品在线| 久久婷婷色五月| 久久这里只| 激情综合网五月激情| 色五婷婷开心缴| 丁香婷婷激情六月五月开心| 大香蕉综合| 色色色色色色色色综合网| 色综合色色| 欧美色色色| 91久久久久久久| 丁香激情网| 五月丁香在线| 伊人大香久久| 超碰碰碰碰| 成人短视频在线| www.婷婷五月天,com| 十月丁香婷婷| 婷婷五月天首页| 五月激情婷婷在线| 啪啪五月天啪啪| 天天干、天天日日| 九热视频在线精品15| 色五月天丁香| 婷婷五月天VI| 午夜爱爱网站| 欧美丁香六月在线观看视频| 激情五月综合网最新| 偷拍五月丁香| 五月丁香影院| 啪啪色激情五月天| 久久免费精品小视频| 梁铮版蜘蛛女在线观看| 婷婷五月天小说网| 久久婷婷五月综合| 国产肥白大熟妇BBBB视频| 青青草原亚洲久| 2022人人操人人看| 开心深爱五月天| 色五月视频,小说| 婷婷色五月婷| 成人国产欧美大片一区| 久久婷婷夜| 99re99在线看| 丁香婷婷五色月| 五月婷婷色播| 四川BBB搡BBB搡多人乱亂| 五月天婷婷网站| 婷婷丁香九月| 99综合婷婷五月| 丁香五月六月婷婷怡红院| 激情婷婷久久| 五月美女婷婷风骚| 久久xxxx| 深爱激情丁香五月| 色色色网站| 色欲一区二区三区精品A片| 婷婷五月欧美综合| 一起草Av| 久播影院免费观看电视剧大全最新网| 夜夜爽天天干| 性爱网六月丁香| site:hcxsz888.com| 夜夜夜叫天天天做| 啊v视频在线观看| 中国操逼99| 欧美图片丁香五月天| 在线五月色播| 亚洲AV人人操| 潮汕成人AV片在线| jiujiu无码五区| 婷婷另类小说| 婷婷五月色播天| a九九热www| 69激情小说| 精品99在线| 中国女人做爰A片| 玖玖综合玖玖| 亚洲色欲AAAAAA| 99热青青草| 婷婷大香焦| 97AV在线视频| 婷婷激情图片| 99欧美热| 久久五月丁香六月婷| 色五月色图| 婷婷五月性感| WWW色五月天| 99热只有| 变态另类色图| 99re26视频| 亚洲激情av| 国产三级在线播放| 欧美婷婷五月天综合| 色五月婷婷色| 99亚洲精美视频在线观看| 激情五月婷婷伊人| 六月激情婷婷| 大香蕉综合在线| 色五月综合在线| 极品少妇高潮啪啪AV无码| 香蕉久久六月| 五月婷婷色五月| 97亚洲视频在线| 亚洲五月婷婷| 丁香五月综合婷婷| 先锋资源婷婷| 思思热精品免费视频| 狠狠艹狠狠艹| 五月天大香蕉| www久久久久久久97| 色深爱五月| 影音先锋高清无码资源网| 色婷婷黄色网络| 婷婷五月综合体验看| 97色精品视频| 狠狠操.COM| 色情五月综合婷婷| 在线视频你懂得| 五月丁香花婷婷玉莉AV| 96丁香婷婷九月蜜桃综合久久| 涩综合在线| 一区二区免费看| 激情婷婷视频在线| 六月丁香VA| 丁香六月丁香婷婷激情| 丁香五月网| 久久99久久99精品免视看婷婷| 在线不卡视频| 狠狠操狠狠爱| 亚洲综合久| 热99精品视频五月| 91ncm视频| 狠狠狠色激情综合适合| 色99视| 伊人五月天婷婷| 全部老头和老太XXXXX| 99er精品| 99在线精品观看99| 五月天激情网图片 - 百度| 婷婷六月色| 99精品热视频| 大香蕉人妻| 大香蕉啪啪| 久久99精品久久久久久噜噜| 91久久综合亚洲噜噜成人在线| 久久国产色| 91n啪啪| 天天日天天日天天搞| 日本熟妇乱妇熟色A片蜜桃| 天天草天天爱| AAA级久久久精品| 五月天色婷婷小说| 五月激情丁香啪啪| 五月天 另类图片| 亚洲黄色操逼| 丁香婷婷视频在线| 久色激情| 三级三久久线久久99久目本WW| 丁香五月激情棕合| 丁香五月婷婷色| 丁香五月综合| 国产激情久久久| 狠狠88综合久久久久噜噜噜| 五月天网址在线刘玥| 久久人妻情侣| 红桃91人妻爽人妻爽| 五月天综合婷婷| 一区=区操屄高清大全av| 99热这里只有精品国产首页| 99噜噜噜| 久久婷婷视频| 99re这里只有精品免费| 日韩无码AV电影网站| 婷婷五月天激情五月天网站| 成人AV综合在线| 免费视频99| 色九九九九| 五月丁香啪综合| 婷婷的99视频网站| 亚洲色色色| 丁香六月婷婷色XXXX| 亚洲日韩乱码一区二区三区四区| 五月丁香六月婷婷久久久综合| 9l久久久视频| 91视频一起草| 26uuu色噜噜精品一区| 国产无套精品一区二区| 婷婷五月亚洲一本在线丁香| 黄网免费观看| 欧美大肥婆大肥BBBBB| α久久| 99久久偷拍视频| 色丁香五月婷婷| 91人人爽狠狠狠| 狠狠色婷婷7777久| 久香草视频在线观看| 婷婷五月综合社区在线| 99热国产免费| 99久久免费性爱视频`| 亚洲精品V天堂中文字幕 | 婷婷在线精品| 国产成人+综合亚洲+天堂| 五月婷色丁香| 大香蕉人在线65| 婷婷综合| 丁香五月婷婷天| 久久免费试看120秒| 丁香九月久久| 五月婷婷婷婷婷婷艺术| 91超级碰在线| 久久久国产精品黄毛片 | 丁香婷婷六月| 久久久久9999| 五月天婷婷青青草| 色色色色色色色色五月先| 色爱综合网| 婷婷五月综合激情免费| 99,色| 天天插操| 五月丁香婷婷啪啪| 色婷婷五月天天天干天天操天天爽| 东京热免费视频网站| 婷婷丁香人妻天天爽| 久99久热只有精品国产99| 玖玖婷婷视频| 成人无码精品1区2区3区免费看| 在线A色| 激情图片99| 公的粗大挺进了我的密道| 深情五月天| 大香蕉啪啪网| 日韩无码亚欧无码| 99色色| 亚洲欧美国产高清vA在线播放| 色五月天激情| 色婷婷aV四虎| 9久热| 亚洲中文乱字字幕在线永久| xx色综合| 超碰在线9| 99国产精品久久久久久久久久久| 五月婷婷激情久久| 色综合色色色色色| 99久久99视频只有精品| 欧美毛卡| 牛色色碰| www夜夜操| 久久九九热视频| 五月欧美色播| 铁牛TV人妻| 五月婷婷欲色| 97色五月丁香婷婷| 丁香五月影院| www.9797国产| 五月成人综合| 热无码A∨| 9有码中文| 中文字幕网伦射乱中文| 粉嫩av蜜桃av蜜臀av| 久久这里有精品在线观看| www.超碰在线| 大香蕉75线| 成人国产欧美大片一区| 五月婷婷婷| 婷婷深爱五月| 五月丁香黄色| 人人色性网| 国产9色在线/日韩| 久草嫩草在线观看| 婷婷在线五月综合| 中文字幕欧美日韩VA免费视频| 97婷婷丁香| 伊人色综在线| 婷婷丁香五月激情密臀av| 女人高潮内射99精品| 91精品国产99久久久久久天美| 欧美综合五月丁香六月婷| www.婷婷五月天,com| 另类视屏| 激情婷| 九九九九操逼| 丁香激情网| 日本一道久久| 午夜婷婷久久| 天天干夜晚夜操| 亚洲婷婷激情888精品久| 97亚洲色 torrent magnet| 超碰无码318604| 久久ri精品视频| 国产黄大片在线观看画质优化| 五月婷婷激情综合网| 色欲婷婷五月天丁香| 婷婷丁香人妻天天| 激情综合色五月丁香六月亚洲| 欧美激情丁香五月天久久婷婷一区| 亚洲色综合| 激情婷婷九月| 五月天激情黄色网址| 97精品人人A片免费看| 色婷婷小说| 99碰碰视频| 涩婷婷五月天在线精品视频| 99在线观看精品视频| 日本va欧美va欧美| 玖玖资源天天无码| 色五月视频,小说| 538久久| 深爱五月综合网| 丁香六月综合激情| 婷婷丁香五月天哟啪| 激情伊人| 人妻熟妇国产精品| 91超级碰碰| 51成人| 久99久精品| 日韩精品超碰在线观看| 日本婷婷在线| 五月丁香花激情综合网| 久99在线视频| 97色久| 99精品国产热久久91色欲| 九热精品| 玖玖婷婷五月天| 丁香激情久久| 五月色综合网欧美网| 五月婷视频久久| 婷婷97| 伊人影音无码一区二区三区| 激情婷婷色色| 丁香六月AV| 天天看片日日夜夜| 亚洲人人干| Jh7Uf088VHafNm| 人人舔天天| 色婷婷九月| 丁香五月亚洲| 天天插天天干| 五月激情综合网| 国产成人+综合亚洲+天堂| 99热99精品| AV在线免费网站| 久9热| 99爱视频在线观看| 中文幕无线码中文字蜜桃| 亚洲亚洲人成综合网络| 婷婷亚洲在线| 日韩视频女神99| 97欧美在线| 大香蕉婷婷五月天| 99精品这里只有免费视频| 丁香五月婷婷成人综合| 99热成人在线观看| 网站免费一站二站| 中文字幕在线免费观看视频| 色婷婷综合视频| 丰满女老板BD高清A片| 97一区二区| 五月丁香亚州综合网| 亚洲欧洲一二| 综合色五月天| 99区视频| 丁香六月婷婷综合啪啪| 性欧美日本| 色色a| 伊人综合网站| 碰碰碰碰碰99| 97操碰碰无码视频| 这里只有精品日韩精品| 五月开心深深爱激情综合 | 日韩黄色电影| 五月丁香婷婷爱激情综合网| 九九免费在线视频| 欧美爆乳一区二区三区| 超碰日日操| 激情五月天婷婷| 一级AV片| 亚洲碰碰碰| 激情五月婷黄版| 五月天激情国产综合AV| 六月丁香五月婷婷| 日韩无码专区| 99视频啪啪| 非洲一级AV| 深夜男女福利刺激影院一区| 激情丁香五月激情婷婷| 99性爱| 深爱激情五月天| 久9久视频精品| 婷婷色在线播放| 色婷婷丁香网| 丁香婷婷婷五月| 中文字幕综合网| 激情五月婷婷| 99精品偷拍视频| 玖玖国产视频一区| 五月婷婷丁香综合网| 91操在线视频| 激情小说色五月| 久久hd| 欧美美女国产日韩一区二区久| 婷婷五月天色| 色五月婷婷网| 色色色9 9 9| 中文字幕婷婷五月天| 五月婷婷网站| 久久久久人妻| 日韩无码性爱| 成人婷婷五月天| 九九色热| 少妇水多A片太爽了| 五月丁香花视频| 丁香综合伊人AV| 成人免费高清在线播放| 亚洲精品久久久久久久久久飞鱼| 99玖玖在线视频| 五月丁综合在线观看| 蜜臀av粉嫩av懂色av| 无码少妇高潮喷水A片免费| 超碰人人99| 夜夜爽日日躁| 91啪啪视频| 区欧美日韩成人| 婷婷五月大| 婷婷五月天激情免费在线观看| 九九香蕉网| 一二线视频 另类| 天天摸天天肏| 五月天啪啪啪| 少妇真实被内射视频三四区| 四虎成人精品永久免费AV九九| 九九久久视频| 婷婷色色网| 久久98热re| 五月丁香花激情综合网| 婷婷中文字幕| 99九九在线| 丁香五月激情在线| 丁香九月激情| 色婷婷久久综合久色综| 夜夜操天天干| 激情5月婷婷| 99在线观看亚洲| 超碰人人操| 67194线路二在线观看| 538午夜激情| 香蕉人在线香蕉人在线 | 丁香综合日产精品久久| 丁香五月天色综合| 91热在线| 色婷婷激情四射视频| 五月婷婷九| 激情综合色| 色V狠狠的干| 26uuu亚洲| 婷婷最新地址| 婷婷丁香五月激情图片| 综合激情婷婷| 精品亚洲国产成AV人片传媒| 日韩视频99| 日本无码专区| 丁香五月婷婷姐| 丁香五月影院| 超碰在线9| 婷婷色五月在线视频| 精品久久久中文字幕大豆网推荐理由| 99这里只有精品视频在线| 六月婷婷av| 五月天AV大香蕉| 79色色色色| 日韩人妻白浆视频系列| 天天在线久久综合| 操操啪| 香蕉久久国产AV一区二区| 99九九视频精彩在线| 欧美色偷偷大香| 五月丁香啪啪啪啪| 精品无码久久久久久久久| 色久婷婷五月| 一本色道久久综合狠狠躁小说| 思思热久久艹| 99九九在线| av无码电影| 99视频在线观看网址| 任我肏视频精品| 丁香六月婷婷综合在线| 超碰熟女农村在线69| 99热这里只是精品| 激情网 久久| 丁香五月激情综合网激情五月| 香蕉综合网| 五月丁香六月婷婷,婷| 九九这里有精品| 色婷婷五月影视| 五月香婷婷| 色五月婷婷av| 九九九九这里只有精品| 五月婷婷色| 思思热99热| 亚洲性受XXXX五月丁香| 九九热视频在线观看| 久青青久| 九九综合| 99热在线里有精品| 国产毛片欧美毛片久久久| 六月婷伊人| 欧美槡BBBB槡BBB少妇| 日韩按摩二区| ztEJj| 天天日天天干天天天| 超级碰碰碰久久网站| 五月婷婷在线播放| 91视频久久久| 人妻精品在线| 永久无码色| 精品色色| 思思热精品免费视频| 五月婷婷香蕉| 深爱开心激情| 亚洲激情综| 香蕉久久国产AV一区二区| 操操操操操操婷婷五月天| 婷婷中文字幕| 袁子仪视频观看| 国产黄色在线| 五月丁查人人| 久久9久久| 五月婷网| 激情 五月 婷婷 丁香| 国产AV一区二区三区最新精品| 99热这里有精品24| 4399无码视频| 79精品视频在线观看,| 在线观看免费狠狠色丁香香综合| 色婷婷丁香五月| 婷婷AV丁香| 日韩ww| 青青草成人网| 国产67194| 色偷偷AV亚洲男人的天堂| 蜜乳A√| 国产探花一片区| 婷婷五月大香蕉| 久久人人添人人爽添人人片αV| 天天檫天天爽| 9热久久| 日韩999| 色综合xx| seuuu婷婷| 久草热在线视频| 色综合婷婷| 亚洲乱码日产精品BD| www.丁香五月| 九九久久99精品免费观看www| 九热视频| 99国产这里只有精品| 99热综合在线| 成人做爰A片免费看视频| 天天射色五月天| 成人丁香色| 激情五月天婷婷| 久久丁香五月婷| 五月婷婷色色色| 午夜无码熟熟妇丰满人妻| 99热免费在线| 九九热99视频| 婷婷婷狠狠| 操九色| 婷婷五月天 偷拍| 婷婷五月精品中文| 婷婷色婷婷| 五月婷婷基地| 如何安全看伊人婷婷| 五月综合人妻| 91日本在线| 九月婷婷丁香| 日本美女上人| 五月天社区婷婷| A片一曲| 五月天久久www| 91碰超| 精品亚洲国产成AV人片传媒| 五月天亭亭俺也| 婷婷五月天中文字幕.| 久久33视频| 日本丁香五月| www.国产色| 激情综合女人网五月播播| 超碰在线资源| 久/久精品99看9| 丁香婷婷成人网站| 色婷婷4| 一区二区传媒视频| 九九亚洲| 99热1| 狠狠狠狠操| 五月丁香啪啪网| 无语停婷丁香网| 丁香婷婷社区| www.狠狠| 色五月婷婷天天操夜夜操| 欧美日韩99| 欧美婷婷色五月网| 五月天激情小说| 91日视频| 五月天色裸体视频| 国产激情综合五月| 色婷婷久久综合久色综| 欧美日韩一区二区三区四区| 久久激情五月| 九九这里是免费的视频5| 久久机热这里只有精品| 伊人丁香六月婷婷| 日本97在线视频| OYIWbGcPu8H| 激情综合色| 伊人色综合久久久| 天天天天爽爽天干| 五月婷无码| 99日韩| 久久玖玖综合| 亚洲一级 片内射网站在线观看| 激情五月天色色网| 99日本在线| 五月婷婷69| 天天爽综合| WWW.五月天9999| 91玖玖| 国产99久9在线| 万月丁香狠狠爱| 婷婷久久五月天| 七七色色综合| 欧洲激情精品婷婷| 狠狠色丁香99| 久久欧洲久久| 丁香五月首页| 丁香六月婷婷久久亚洲天堂| 婷婷色色亚洲| 成人在线99| 97久久人人| 色亭亭丁香五月天| 日本二级毛片二级毛片| 99欧美| 九九热在线99| 婷婷无码视频| 五月婷婷深深爱| 日本高清综合网五月丁香| 色婷婷色人人射| 六月亚洲婷婷6月中文字幕| 九色视频91疯狂| 婷婷色在线视频| 久久丁香社| 婷婷五月天久| 色www99| 五月激情丁香啪啪| 午夜无码熟熟妇丰满人妻 | 99网| 婷婷五月天影院| 色五月五月婷婷| 26uuu欧美日本| 婷婷色播婷婷| 色爱综合网| 五月婷婷在线视频| 99热6精品| 天天色色天天| 色五月丁香伊人五月| 日日夜夜小色哥| 激情网婷婷婷| 九九精品视频在线6| 激情五月天婷婷视频| 精品色色网| 五月丁香亚洲综合网| 婷婷六月天精品| www.色婷婷。com| 日 日干 日日做| 97涩涩丁香五月天| 伊人狠狠狠综合| 天天 青草 丝袜制服 在线| 日韩AAA| 91视屏在线观看com.wwwvv| 日韩一区二区三区无码| 亚洲激情图文小说| 欧美日韩大黄| 深爱开心激情网| 另类小说五月天综合网| 99热精品一| 欧美啄木乌丝袜人妻系列| 午夜丁香五月天综合| 开心五月综合激情综合五月| 色五月六月婷婷| 亚洲 六月 综合| 丁香五月另类小说| 婷婷综合在线| 久99在线视频| 国产成人网址| 色丁香五月| 色色色综合网| 99超超碰| 婷婷天天五月天| 任你搞在线观看视频| 69人妻人人澡人人爽久久| 4399在线观看免费毛片| 色婷久| 国产五月天婷婷| 亚洲超碰在线| www.sd-xiangsu.cpm| 色五月婷婷开心| 亚洲夜夜操| 色播五月婷婷五月| 国产精品色婷婷久久久精品| 九九五月天| 久久婷五月| 天天躁日日躁狠狠躁日日躁2022年5月9日| 九色视频九色九色91jiuseshipin| 激情网色五月| 日本久久爽| 五月丁香美女视频| 综合五月亭亭9| 激情六月一二| 日日日日日| 色五月激情五月天| 免费看欧美成人A片无码| 99久久97| 色噜噜五月天| 亚洲婷婷五月天综合| 噜噜噜噜在线| 五月婷婷中文| 影音先锋色婷婷| 六月丁香五月婷婷| 久久激情四射| 日本婷久久| 久热伊人91| 日本123区日韩欧美不卡在线看| 热99在线精品| www.主妇. com| 六月丁香五月激情婷婷| 色五月婷婷老师| 狠狠干夜夜干| 色欧美一级| 人人妻人人澡人人爽| 婷婷五月av| 婷婷丁香激情五月| 99亚洲精品| 99热综合| 久久五月婷婷综合网| 伊人婷婷91| 日日日,com| 丁香六月无码| 婷婷伊人综合中文字幕| 欧美精品XXXXBBBB| 一区二区你懂的| 超碰成人电影| WWW.桔色成人.COM| 91ncm视频| 欧美人与性动交CCOO| 五月丁香偷拍| 久久婷婷五月丁香网| 狠色狠色狠色狠色狠色网| 俺去也综合| 美日韩成人| 亚洲天堂婷婷| 99热这里只有精品9| 中文字幕无码人妻少妇免费视频| 国产又黄又爽又色的免费| 疯狂做受XXXX高潮A片| 日欧一片内射VA在线影院| 成人无码髙潮喷水A片| 久草婷婷网 | 亚洲综合字幕色色| 久久亚洲A| 99在线观看视频蜜臀| 97色伦另类图片小说视频 | 久久538| 久久亚洲婷婷| 51精品国自产在线| 婷婷伊人综合| 蜜桃婷婷狠狠久久综合| 伊人玖玖网| 五月丁香好婷婷A片网| 丁香九月激情| 777久久综合视频| 操逼福利视频| 91久久婷婷人人澡草| 天天插天天爽| 五月激情综合网| 久久婷婷色| 最新无毒无码AV| 婷婷久久婷婷色五月| 亚洲啪啪网| 久久黄A片| hd五月婷婷在线| 亚洲激情免费视频| 色色日本欧美| 五月婷婷之综合激情| 日本欧美成人片AAAA| 91色综合久久| 婷婷五月天丁香激情| 五月丁香婷婷色色| 99热欧| 日日爱699| 婷婷色在线视频| www.99热| 久久久91精品| 啪啪五月综合| 亚洲黄色影视| 激情二色月| 五月开心激情| 婷婷亚洲影院| 亚洲最大视频| 色六月 婷婷| 伊人玖玖网| 国产中文亚洲欧美日韩性交| 久久er九九| 五月丁香婷婷俺| 玖玖爱伊人| 99re6在线视频精品免费| 国产在线激情视频| 色玖玖玖| 亚洲激情免费久久| 九九色综合九九色| 五月天色影院| 亚洲美女裸体被操在线观看| 欧美日本黄色| 亚洲五月天伊人| 五月丁香六月婷婷色情| 99久久网站| 久久久久九九九九视屏小说88| 亚洲AV综合在线观看| 五月丁香激情综合欧美| 久久天天| 亚洲精品字幕在线观看| 人妻激情网| 六月丁香视频网站| 丁香五月天论坛| 五月丁香影视| 日韩欧美婷婷丁| 噜综合| 色播播五月| 91久热| 久久影视婷婷五月| 久热2025无码| 日日日日日| 无码激情AAAAA片-区区| 九九干视频| 天天日,夜夜爽| 91色五月| 亲子乱AV-区二区三区| 激情五月天婷婷图| 激情欧美丁香五月| 人人操av| 久热99热| 五月天成人在线| 婷婷色五月天在线| 9色免费网| 丁香 婷婷五月| 综合99久久天天综合| 性做久久久久久久免费看 | 欧美 日韩 人妻 高清 中文| 激情中文在线| 亚洲第一视频 久久| 玖玖爱综合网| 伊人大香蕉爱聚| 天天爽成人综合网站| 色99在线| 香蕉网婷婷| 开心五月六月婷婷| 狠狠操狠狠插| 久久草大香蕉| 永久免费视频| 另类激情网| 粉嫩AV久久一区二区三区| 日本色99| 色色色.COM| 亚洲无AV在线中文字幕| 五月婷婷色影院| 99re热视频这里只精品5| 少妇熟女视频一区二区三区| 五月婷婷99热| 色婷狠狠| 97超级碰| 五月丁香婷婷五月色| 狠狠色婷婷777| 丁香五月天婷婷91| 婷婷丁香五月天在线| 综合五月天| 色色五月婷婷| 色婷婷www| 亚洲狠狠爱婷婷| 丁香五月丐人妻| 中文成人在线| 一级韩国产精品毛| 色五月天激情| 无码人妻丰满熟妇奶水区码| 亚洲中文字幕网| www.射伊蕉婷婷| 1囯产午夜仑鲁鲁| 日韩久久这里只有精品| 国产激情久久| 综合狠狠伊人| 激情综合五月丁香| 日韩欧美一道四区中文字幕| 婷婷日日夜夜| 97人人操人人插| 欧美色色色| 五月综合激情久久| 国产精品久久久60086| 久久综合99综合| 96性爱视频| 国产精品涩涩涩视频网站| 婷婷五月天激情综合婷婷五月天激情综合 | www.超碰| 操人91| 26uuu精品国产| 99精品视频在线观看免费| 五月天精品视频| 五月六月播婷婷| 激情五月天视频| 爱之国产色情综合| 五月天婷婷综合网| 日本妈妈乱| 色色色免费视频| 国产99久久久| 99热99色| 丁香五月性| 激情综合色| av中文在线| 久热99| 久久精品99久久久久久| 另类 在线| 日本色久| 國語久久婷| 天天操B| 综合激情五月丁香| 日韩啪啪视频| 久久婷婷五月综合色奶水99啪| 天天搞天天色综合| 五月丁香啪啪综合| 99视频网址| 综合激情在线视频| 操碰99| av在线观看网站| 激情久久五月天| 五月婷婷影| 色色色色色色色色五月先| 久久女婷| 久青青久| 人妻精品一区二区三区| 成人天天爽| www.天天干| 日日射天天射| 色婷婷狠狠久久综合五月 | 国产乱码久久| 色色色色色色色色综合网| 久热视频A.| 拍真实国产伦偷精品| 婷婷免费无视频| 久草婷妨| 99精品视频在线观看| 中文资源在线a| 五月天.com| 九九热这里只有精品7| 久久97| 五月激情基地| 久久日曰| www.色综合.com| 99精品热视频只有精品10| 国产一区二区三区影院| 少妇人妻凹凸视频| 操日本色| 综合色五月天| 99热久只有| 九九热内射| 大香蕉99热| 99re这里只有精品免费| 亚洲天堂制| 久99久在线| 色人五月婷婷| 久久午夜丁香| 色色色色网站| 丁香五月激情无码视频| 99九九玖玖| 成人无码髙潮喷水A片| 日日.c| 丁香五月激情六月欧亚激情综合导航| 610018岁成人视频| 99在线精品视频| 狠狠香婷婷五月| 国产高清视频91九九九久久久| 久99久在线| 亚洲行行色色| www..999热久| 疯狂做受XXXX高潮A片| 丁香六月天| 天天舔天天摸天天射| 69精品人妻不卡视频| 97碰在线视频| 五月婷婷激情综合网| 天天干,天天舔| 日本97在线看片| 欧美25p| 欧美日韩AAA| 亚洲精久久| 热久久婷婷| 久久久久9| 性色五月天| 丁香婷婷丁香五月欧美人| 色色色色区| 青草视频在线观看视频| 婷婷五月色情| 我爱婷婷五月天综合88| 香蕉操亚洲| 蜜臀综合久草| 丁香六月情| 99精品在这里| 五月婷高清视频| WWW,五月| 五月丁香色停停啪啪啪| 色五月综合激情| 激情开心五月天婷婷基地丁香社区| 色啪网| 黄色毛片精品| 蜜臀AV在线观看| 大香蕉99热| 99色爱| 日韩好吊操| 五月丁香自拍| 久热A片| 亚洲超碰在线| 久久WW| 五月激情婷婷女| 日韩色色小视频| 日韩精品一品二区三区的使用体验| 激情狠狠丁香月| 少妇人妻综合色6699| 日日天天操| 婷婷丁香69精华| www久| 大香蕉99| 久久久婷丁香五月天激情综合| 日本少妇AA一级特黄大片| 激情久久伊人| 搡BBBB搡BBB搡五十| 狠狠干婷婷| 人人操av| 深爱婷婷网| www.国产色| 国产超碰在线| 97综合在线| 五月色色网| 九九色色网| 99久.| 丁香婷婷五月色成人网站| 玖玖五月丁香| 噜噜色五月| 五月天婷婷AV| 婷婷大乡焦噜噜| 日韩精品一品二区三区的使用体验| 五月婷在线| 色五月偷偷| 久久久.COM| 九九热av| 九九色综合九九色| 思思热在线精品视频| 可以看的av| 五月丁香婷婷色| 精品一区二区三区免费毛片爱| 亚洲无码99| 免费视频WWW在线观看网站| 日产精品久久久久久久蜜臀| 爽tv | 一本色道久久综合狠狠躁一二三 | 翔田千里 50岁 无码| 色99在线视频| 超碰免费人人| 99色在线视频观看| 五月丁香色婷婷伊人| 99热这里只有精品亚洲| 五月天堂婷婷| 99在线看片| 色性五月天| 久久精热| www.五月丁香| 综合色色婷婷| 噜噜在线| 超碰二区| 天天日天天干天天爽| 成人超碰Av| 狠狠操性爱av| 99爱免费视频| 天天五月情| 九九综合久久| 青青草原99热| 亚洲狠狠狠| 丁香婷婷激情网站| 亚洲色婷婷视频| 丁香五月激情综合啪啪| 狠色狠色综合久久| 色情五月天婷婷| 激情综合亚洲色婷婷五月| 五月天自拍视频| 婷婷激情丁五月| www.狠狠干com| 天天精品视频在线观看视频| 色区域网站视频| 婷婷五月深深爱| 亚洲第一精品网站| 五月天婷婷爱| 色婷婷亚洲婷婷在线观看| 性爱久久| 99热在线精品播放|