久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码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命令未識別請不要去網(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
返回資訊列表
91女优在线观看| 密臀视频三区免费网站| 欧美老妇综合网| 亚欧毛片基地国产毛片基地| 国产一区二区精品久久久不卡蜜臀| 人妻熟女午夜精品在线| 欧美东京热精品A∨| 亚洲精品91| a片亚洲一本通视频| 欧美熟妇乱码在线一区| 亚洲熟女av日韩熟女| 外国免费性情大片| 天天草AV| 欧美久久久| 色婷婷五月天| 欧美性爱另类综合| 免费伦费视频在线观看| 免费自拍三级综合| 日本一区二区三区免费观看| 夜夜欢天天干| 91精品导航| 国产免费一区| 欧美熟女逼久久久久久| 九九九九九九九九九五码| 91在线欧色| 极品白嫩美女白浆成人福利在线看| 婷婷久久五月综合激情| 羞涩视频| 无码区蜜乳| 国内偷拍精品一区二区| 人人操人人摸avav| 国产亚洲性生活视频播放| 亚洲自拍偷拍视频在线| 亚洲av成人精品一区| 加勒比综合网| 国产精品成人久久一区二区三区| 伊人在线大香蕉二。| 97九色人妻| 成人影院永久免费观看网址| 日韩欧美午夜一区二区| 无码精品久久| 九九干| 欧美激情性久久久久久| 亚洲美女自拍偷拍视频| 亚洲欧美日韩综合在线尤物| 丁香五月成人| 91麻豆一二三区| 很很很很操| 亚洲春色欧美| 永久免费av无码网站国产app| 久久久久久久强迫| 无码精品蜜桃一区二区三区ww| 99热99在线播放激情| 欧美午夜一区二区三区| 99热这里只有精| 加勒比大香蕉视频在线| 人妻81p| 久久久免费一级黄片| 午夜操逼不卡| 黄色性爱网网| 91久久精品蜜臀| 中文字幕 av v| 蜜臀av中字字幕网站| 日韩ab网 | 神马久久久久久久久久久久| 午夜精品人妻二区三区| 老熟女91视频| 色色色色日本| 草草影院在线视频| 噜噜噜噜天天狠狠| 激情黄色片在线观看| 精品国产一区二区三区香蕉欧美| 天天日天天舔| 青青国产在线拍揄自揄拍| 欧美日本视频一区| 日韩熟女三十乱伦| 日本狠狠干| 亚洲熟女综合| 久久专区| 99久久com免费视频′| 久草精品国产蜜臀| 精品一级毛片在线观看| 强奸乱伦动态污图免费| 97色97好| 97欧美日韩| 精品中文字幕第一页| 国产亚洲综合欧美一区| 操人妻逼91| 97伊人| 欧洲亚洲国产综合在线| 麻豆区99999| 久久久九九| 国产福利电影| 久久国产精品一级二级三级| 俺也射| 欧美性爱精品七区| 国产少妇与亚洲av| 亚洲综合网91| 成人午夜无码视频| 久欲AV| 日本性爱欧美性爱| 毛片99-全集电影手机免费观看完整-B029AV| 欧美gv在线观看| 激情五月综合网| 亚洲欧洲久久天堂| 精品毛片av一区二区| 大稥蕉免费视频这里只有精品| 亚洲影视第一页| 天天操夜夜操狠很操| 国产黄a三级三级三级av在线看| 日日日日做夜夜夜夜做无码97| www.yeyecao| 二对二中文字幕。| 91亚洲色人| 国产精品经典一卡久久久 | 国产成人+综合亚洲+天堂| 很很很很操| 色欲久久久久综合网| 91N欧美| 女生久久网| 天天日夜夜| 日本女人久久久| 狠狠干狠狠色| 91 欧美| 国产女人高潮视频| 国产白丝精品在线观看| 亚洲熟妇乱女区二区三区| 欧美日韩色| 色婷婷狠狠| 久9无限国产| caopeng97| 亚洲日韩国产精品| 精品十三区| 久久天天艹| 亚洲影视第一页| 久久精品性| 97欧美在线| 国产精品九9| 内射老妇BBWX0C0CK| 绑缚麻绳人妻寝取完整版| 午夜亚洲国产理论秋霞| 91男同| 91精品久久久久久77777| 五十路一区无码| 日韩人体偷拍| 亚洲国产高清福利视频| 国产精品久久久久久亚洲色欲| 黑丝91视频| 精品日韩中文在线| 综合久久少妇中文字幕| 国产美女激情| 亚洲国男人的天堂| 国产午夜精品理论片a大结局| 九X超碰| 免费看久久久性性| 搡老熟女免费视频| 中国韩国明星一极片一区乱码毛片人妻熟女一区二区三区 | 婷婷五月天激情四射| 1234区中文字幕在线观看_青青草国产在线_日韩一区二区 | 日韩欧美三级| 蜜臀亚洲中文| 亚欧性爱在线无码| 一类av片在线看| 99re6在线视频播放免费精品| 色综合加勒比四四季| 国产亚洲日本精品在线| 亚洲影院成人| 欧美性高潮| 91麻豆天美传媒HD| 日日狠狠久久偷偷色综合免费| 大香蕉一区二区在线观看.| 精品二区三四区五电影| 二区熟妇韩日| 操碰97| 99精品视频在线观看免费| 午夜男人的天堂| 91夜夜蜜桃臀1区2区3区| 日本韩欧美在线播放a| 中文字幕三四区| 欧美性综合| 97国伦国色| 996热| jizzjizz欧美| 日本三级A片网站com| 91高清欧美| 啊啊啊快操我视频| 九九在线精品| 九九AV| 欧美黄片免费在线观看视频| 狠狠操狠狠操操| 欧美,亚洲,日韩,v,天堂,手机在线观看| 97超碰jingpin| 久久五月丁香| 99热综合| 开心五月深爱五月| 日韩欧美视频青青| 激情文学网伊人| 欧美日韩性爱视屏免费看了| 国产CHASE男男GAYGA 毛多色婷婷| 中文字幕第9页萱萱影音先锋 | 午夜久久一区二区无码中出| 天天色悠悠激情| 97精品国产97久久久久久免费| 欧美日韩成人在线| 伊人成人中文字幕久久网| 啪啪91| 五月激情啪啪| 久久9久9久99久9久9| 91狠| 久久综合中文国产| 你草精品在线视频| 欧美在线色| 国产免费一区| 啊啊啊慢点| 久久久久久久| 国产精品一区av在线| 久久久久久久九九九九九九| 玖玖玖玖精品国产剧情| 成人婷婷丁香| 日韩黄色小说| 国产蜜臀精品一区二区尤物| 久久精品无码一区二区三区| 亚州欧美色图| 亚洲天天做日日做天天谢日日| 久久久久久人妻一区精品色欧美| 久久久久久国产精品免费网站| 人妻乱仑一区二区三区| 国产九月婷婷| www.男人天堂| 久久久无码精品人妻二区| 人人操人人肉久久精品| 都市久久精品激情亚洲| A片 AV一级在线播放观看免费| JIZZJIZZ国产精品喷水| 超碰亚洲欧美日韩无| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 午夜电影在线观看无码专区| 久久久18| 五月天色电影| 欧美性第1页| 天天插网| 亚洲最新a在线观看| 色色五月婷婷| 欧美国产有色电影| 又粗又长又大国产不卡| 蜜乳AV一区| 日本色婷婷| 青青草视频久久久久| 亚洲999综合| 日韩无码第3页| 蜜乳中文字幕a在线| 91快色色色色色| 九九九九九九九精品视频| 精品国产国产AV| 亚洲天天自拍| 天天干干天天干干| 亚洲色图激情小说| 亚洲国产97在线精品一区| 色在线视频导航| 无码av永久免费专区网站| 91xingse| 欧美在线亚洲| 大香网站| 亚洲成人色情五月天丁香花| 亚洲综合另类| 涩五月婷婷| 久久久久国产| 亚洲97成人在线观看| 人人操AV| 久久中文色图| 国产免费永久精品无码| 26uuu性| 91无遮挡| 亚洲另类天堂| AV女优男人的天堂| 日本ZZ高免费A级视频| 97超碰巨乳| 性色avv| 懂色AV一区二区三区| 十八禁啪啦拍视频无遮挡| 99精品欧美一区二区三区桃色| 天天综合网日韩| 深爱伊人影院| 国产美女高潮视频| 99rre在线精品99re8| 99福利社| 国产91丝袜在线播放蜜月| 国产乱码精品久久久久久| 丝袜制服字幕在线| 中文字幕一区 二 区 三 四 五 区日 日 骚 | 人人澡人人弄| 狠狠干妹子| 亚洲综合射| 加勒比综合a∨| 欧美成人国产精品| 色天使AV天堂| 国产91丝袜 在线播放| 蜜臀AV午夜精品久| 亚州一区二区| 啪啪视频免费在线观看| 岛国1区2区3区在线观看| 超碰欧美| 日本欧美韩国国产在线| 日韩乱中文| 高清无码 国产精品| 秋霞成人一级在线观看| 人干人人人操人人摸| 麻花传媒免费网站在线观看| 丁香六月东京热| 91熟女综合| 91强在线播放| 美女好片色日本| 丰满少妇一区二区三区免费看| 欧美熟妇精品黑人巨大91| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 国精综合一二三区影视| 97超碰这里只有精品| 国产精品第一页国产大屁股视频免费区i| 人妻熟女一区二区| 97综合激情| 丰满人妻aA一区二区三区| 亚洲āv网址在线观看| 1级黄色夫妻对换性交免费看| 亚洲系列第一页| 免费看欧美美女黄色大片| 五月婷婷无码| wwe 天天干.com| 亚热日本熟女| 亚洲无码日韩电影| 欧美黄片免费在线观看视频| 91oumei| 黑人中出21连凳花野真衣| 日韩三级性| av激情亚洲五月天| 欧美午夜一区二区三区| 91人人爽人人爽人人人,gav福利视频导航,日韩欧美亚洲国产字幕四区 | 美国aaaaa一级黄片| 高清在线偷拍自拍视频| 亚洲美女色图| 午夜在线播放| 天天干夜夜一操| 丝袜熟女2P| 亚洲综合一| 天天干人人乐| 操逼视频亚洲| 97免费在线视频在线观看| 99黄页网站| 射久久| 精品一区二区亚洲国产| 不卡码视频| 91麻豆天美国产欧美高潮| 日韩啊V| 色爱综合网| 伊人久久大香线综合无码| 午夜传煤十二区精品| 欧美性爱第一区| 激情五月婷婷| 亚洲风情综合网| 国产久久成人| 67914在线精品观看| 深夜激情| 亚洲制服欧美另类内射| 国产十八禁视频| 国产免费一区2区3区| 强奸a片网| 日韩av色图| 国产精品人妻免费精品| 天天影视综合网欧美精品| 日韩黄片视频试看| 欧美熟爽综合| 久久男人的天堂| 人妻精品视频一区二区| 亚洲男人天堂2| 99re国产精品视频| 嫩草伊人久久精品| 精品国产无码中文| 啊啊啊啊二区好大| 操逼无码操逼| 天天综合香 ld视频| 中文字幕乱亚洲美女精品一区| 丝袜美腿制服人妻二区中文字幕 | 色一情一乱一乱一区91Av| 亚洲综合69| 午夜福利1区2区3区| 国产欧美伊人| 日本操逼无码| 亚洲妇色| 国内毛片无遮挡国产| 国产人伦精品一区二区三区| 999久久久免费精品国产牛牛| 天堂蜜桃无码视频一区二区| 蜜臀一区二区三区在线| 久久超碰免费的| 亚洲国产美女久久久久| 97视频7| 深夜操逼网| 久久亚洲婷婷| 亚洲熟妇AV日韩熟妇在线| 91狠狠综合| 日韩无码专区| 九九九九九九九| 一区二区三区日韩欧美| 屁股久久久久久久久久| 丁香五月天激情| 久9爱经典视频| 成人美女av| 曰本91情色| 很很操在线| 欧美九九爱| 少妇久久久久久| 久久婷婷色| 国内精品99999| 超碰在线国产| 操碰97| 九九九久千久久激情蜜桃在线看 | 亚州成人a∨| 麻豆一区二区AV天美| 国产黄色av大片网站| 国产日产欧产美韩系列麻豆免费| 成人八戒网站| 亚洲se91| 中文字幕天天操| 国产精品久久99日日| 久久久久国产| 亚洲,欧美,春色,另类| 精品一区二区三区丰满熟女-亚洲欧美一区| 99在线精品观看99| 肉动漫无遮挡h在线观看| 色婷婷婷五月天激情四射| 日产欧美电影一区二区三区| 六月婷婷一区二区三区| 丁香五月成人| 亚洲导航深夜福利| 东京热男人天堂| 美女91在线观看| 97摸视频| 四虎影视在线| 啪啪啪亚欧美视频| 九九九九欧美| 九九精品美女高溯喷水| 亚洲一区二区中文字幕| 2024黄色视频| 久操国产在线| 射丝袜大香蕉| 超碰这里只有精品| 防屏蔽在线视频| 亚洲超碰AV| 日韩电影在线观看网址| 丰满人妻-区二区三区免费看| 中文字幕制服欧美久久一区| 九九热精品| 国产精品久久久久久久黄无码| 免费精品中文字幕| 久久久一二三四区| 伊人嫩草| 97情超碰色| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 国产人妻精品久久久一区二区三区 | 亚洲永久AV无码精品秋霞| 久久99视频| 一区二区三区激情在线观看| 中文字幕第2页| 激情五月婷婷| daxiangjiao你懂的| 91精品人妻一区二区-全集完整版免费正片国语-B02AV | av网站国产主播在线| 亚洲风情在线观看| 欧美中文综合| 12一15性XXXX粉嫩国产| 秋霞成人做爱| 色成人Www精品永久观看| 二男一女成人A片| 久久亚洲AV无码专区首页| 国产91乱伦| 亚洲欧美999| 五月丁香黄色网| 国产乱伦亚洲| 国产三级电影免费观看| 99热这里只有精品9| 淮穴色AV| 蜜桃一区二区三区| 少妇大屁屁| 亚洲日韩国产精品| 日本激情免费大片| 丁香五月天视频| 日本 免费 一区二区三区 久久香蕉 | 牛牛久久国产精品视频一二三| 九一精品牛牛一区二区| 天天夜夜rb| 老子午夜伦不卡影院| 中文操嬖片。| 蜜臀AV一区二区三区激情综合| 日韩人妻精品中文字幕| 精品偷拍13p欧美dodk视频| 五月天激情婷婷| 日本精品一区三区| 色偷偷超碰亚洲| 亚洲欧美日韩偷拍色图| 色嗨嗨在线| 久久一二区四| 老熟妇91| 国产18精品亚洲精品| 五十路熟女工口| 日韩大香蕉AV影片| 操逼操逼逼操操逼91| 色99视频| 欧美伊人电影| 免费一级欧美片片线观看| 宅男午夜在线视频| 婷婷五月天激情四射| 国产激情在线观看| 操死我了啊啊啊| 欧美大香蕉同搞| 少妇毛片久久| 欧美v日韩v亚洲v最新在线| 不卡啪啪视频| 精品国产乱码久久久影院| 色噜噜国产在线| 无码操逼视频一下| 26UUU欧美激情一区二区| 亚洲一区二区三区不卡国产欧美| 九九玖玖精品| 影音先锋每日最新资源在线观看 | 日韩操逼HD| 欧美久久婷婷| 亚洲成人免费中文字幕| 性性久久| 中国探花熟女| 天天射日日干| 大香蕉伊人网WWWn0n| 欧美一级久久久久久久大片动画| 青青11操操操操操操操操| 在线a亚洲视频播放在线| 亚洲精品丝袜| 亚洲综合电影| 亚洲素人网| 日日碰狠狠添天天爽超| 69一区二区三区 | 欧美制服另类丝袜| 天天操人人操狠狠插| 日韩欧美中文字亚洲慕| 人妻少妇精品一区二区三区| 日本羞羞的视频在线播放| 91丝袜激情在线| 97国产成人精品免费视频| 久久色精品视频在线| 国产91精品久久久久久久网曝门| 奇米四色影视777久久久| av橘色网站| 一区=区三区视频| 色成人Www精品永久观看| 69一区二区三区 | 噜噜噜亚洲精品| 91一区二区| 国产精品一区二区三区,亚洲综合| JuliaAnnXXX888| 久久欧洲| 麻豆av一区二区三区| 国产大学生高潮在线播放 | 日本一二三高清| 丁香六月婷| 中文字幕精品资源在线| 午夜福利av电影在线| 久久久人妻| 狠久久| 九九av| 九九热这里只有在线精品视 伊人草 成人菠萝蜜视频在线观看 | 97在线欧洲| 青女在线| 韩日精品四区| 99热免费| 97超碰9| 台湾佬中文娱乐网久久久久久久久久com | 超碰在线一区二区三区| 麻豆色99999| 日韩淫色网| 夜夜操一区二区| 色超碰综合| 色综合20p| 日本孕妇孕交| 久操电影网| 久热伊人| 激情综合网激情综合| 少妇久久久| 国产女同在线观看视频| 日本人妻伦在线中文字幕| 久久久99免费| 色乱二区| 青草视频在线看看看看看看看看看| 在线日韩精品一区二区三区| 亚洲一卡二卡在线免费| 亚洲av影音先锋| www.色99| 秋霞男人网| 日日玩天天干| 国产精品天堂| 探花熟女,姿勢到位,體驗感也到位| 乱伦AVxx| 天天摸夜夜摸| 尤物视频网 刘玥| 亚洲精品xxx| 区一在线观看| 亚洲AV不卡在线观看尤物| 曰韩香蕉97| 九九九九热| 在线观看岛国有码| 91人妻超碰| 天操天操夜操夜月月年年操操| 亚洲情色 自拍| 一级@啪啪视频| 婷婷久久五月天| 国产精品一区二区后入| 97伊人网| 凹凸视频特色日本特黄| 中文在线久久字幕| 欲香欲色| 中文字幕日韩综合| 日日嗷| 少妇xx精品| 久久精品亚洲东京热色播| 哈哈操电影| 亚洲欧洲综合视频在线| 欧美78| 26uuu性| 激情文学欧美| 家庭乱伦国产精品| 日本超碰在线国产一区| 久久久性少妇| 最新日产中文在线麻豆| 中文字幕78| 精品日韩中文在线| 蜜桃久久久久久久久久久久 | 久久久一二三四区| 日本中文字幕高跟| 男人的天堂.com| 夜夜嗷嗷一区二区| 26uuu性| 一起草AV| 青青草在线视频播放器| 欧美熟妇成人一区二区| 亚洲,欧美,春色,另类 | 亚洲天堂人妻熟妇视频| 久久夜精品一区二区三区| 午夜无遮挡男女啪啪视频| 800zy一区二区| 岛国毛片在线观看免费| 手机久操欧美综合色码| 欧美色性爱| 精品中文一区二区| 五月综合色| 69天堂| 国产人妻一区二区三区欧美毛片| 国产乱伦性爱区| 日本精品九九九| 亚欧高清v| 91欧洲国产成人久久精品网站| 中文字幕日韩国产传媒欧美精品| 精品蜜乳AV免费观看| 欧美成人色| 日韩国产不卡在线视频| 二三四区精品| 视频分类 国内精品| 九热中文字幕| 日日嗨AV一区二区夜夜| 婷婷色婷婷| 亚洲A曰本VA欧美VA视频| 色天天野狼综合社区| 97久久久久久久精| 人妻一二三区| 91高清欧美| 乱理日韩中文| 婷婷亚洲五月***久久| 78精品在线| 欧美一二在线| 成人av动漫在线观看| 中文字幕后石码四区五区| 欧美激情超碰777| 天天综合网站| aⅴ日韩成人电影av在线免费看av大全| 国产午夜精品一区二区三区牛牛| 97网址www| 美國A片| 亚洲精品久久久久毛片A片拉屎| 99re95| 亚洲熟妇极品| 国产精品自拍欧美在线| 影音先锋乱伦资源| 日少妇视频| 国产又黄又粗的视频| 在线一道啪| yw尤物av无码点击进入麻豆| 一区二区不卡免费| 97欧美色资源| 国产老熟女| 性站| 啊嗯好大视频在线观看| 99色婷婷| www超碰| 看日韩操逼| 国产精品视频麻豆入口| 91视频精品| 91老熟妇| 国产400孕妇孕交群| 九九九久| 999精品女人| 91精品婷婷国产综合久久| 天堂伊人久久| 综合久久99亚洲人妻中文在线| 日韩精品熟妇| 日本超碰色精品| 亚州熟妇精品| 91白嫩| 麻豆成人影音在线| 精品九九| 成人免费看吃奶视频网站| 国产亚洲深夜激情| 国产性久久久| 伊人影院综合是一个与深夜成人在线 | 激情露脸爱| 加勒比少妇AV婷婷六月天超碰超碰| 九9热伊人| 东京热毛片调教| 青草地一本线一区二区三区| 欧美一级在线观看成人| 欧美日韩电影成人在线| 蜜乳AV网址| 一品道视频一区二区三区| 综合色图亚洲欧美| 国产乱人妻精品入口| 人人九九精| 九热中文字幕| 色香色欲天天综合网天天来吧| 一本道综合色图| 少妇极品熟妇人妻无码| 青青草好吊色| 国产伦精品一区二区三区在线观| 91亚洲不卡一区| 九九热精品视频六| 2019天天干天天操| 精品四五区| 午夜福利合集| 久久久久久国产精品免费网站| 久久久999日本大片| 死我十八禁| 久久五月天婷婷丁香中文字幕| 久久久精品视频免费观看| 色噜噜人妻av 中文字幕| 日本 情色 1区2区3区| 国产日韩欧美操逼视频| 99热97| 欧美综合91| 色播丁香| 亚洲综合嫩| 粉嫩绯色AV一区二区在线| 骚熟女吞| 日韩综合成人免费视频| 欧美大片一区二区三区 | 色爱综合网欧美| 欧美日韩在线视频网站| 白丝1区2区3区| 中文字幕丰满人妻日本| 综合天天网| 在线一道啪| 91N综合网在线| 人人天天干干| 亚洲另类色综合网站| 欧美日韩香蕉| chaopen97久久| 偷拍伦理视频| 中日亚韩免费视频| 男人的天堂无码| 亚洲AV无码久久久国产精品 | 亚洲欧洲网站免费观看| 2017天天操天天日| 久久黄黄| 亚洲精品三区在线观看| 青青草AV色| 91人妻视频| 噜噜噜无码AV一级一级久久影院| 精品人妻丰满熟妇一区二区三| 人妻久久久久久久久久久久久久久| 九九亚洲| 国产精品高朝久久久久久久| 人妻少妇色综合| 国产91会所女技师在线观看| 欧美专区17页| chaopen97久久| 婷婷久久网| 美中日韩无码| 91丨国产丨白浆秘 洗澡动漫| 美女黄码视频午夜| 国产馆极品诱惑| 一级做a爰片性色毛片久久| 福利大香蕉| 天天内射| 久久伊人青青草| 五月丁香综合啪啪| 国产精点久久久成人| 色哟哟AⅤ| 另类老少妇| 久久久久密臀视频| 国产精品久久久视频| 激情看片网站| 国产欧美日韩精品中文| 国产精品99精品视频网站| 一区二区高清视频| 天天综合中文字幕 91| 欧美色老汉| 国产AV线| 色与欲影视天天看综合网| 九九九九免费视频| 日韩欧美天天爽爽爽天天爽爽| SS久久| 91色堂| 嗯嗯嗯啊啊在线观看| 色一区二区三区综合| 青青草久久| 色九色久| 精品人妻一区二区三区四区不卡在| 超碰社区97| 成人性交午夜免费片| 99热这里都是精品| 老熟女综合| 日韩在线欧美精品一区二区| 成人av影院在线观看| 亚洲综合精品国产一区| 长长久久免费视频| 国产亚卅97| 蜜桃网熟妇| 综合97| av日韩在线观看电影| 狠狠干狠狠干| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 亚洲AV秘 精品久久老牛影视| 亚洲啪啪性视频| 久久a久久| 怡红院成人av| 久久系列| 日韩操人| 91亚洲丝袜| 东北少妇高潮zzzz| 人妻-91porn| 亚热日本熟女| 欧美性爱18观看| 大奶啊啊好爽| 99少妇| 在线播放成人网站| 91国产丝袜美女| 亚洲成a人片在线观看中文!!!| 色色色热| 欧美色蜜桃97| 天天天天天天天天天天干美女| 国产成人AV麻豆| 亚洲午夜未满十八勿入网站日本又色又爽又黄 | 日本精品一级二级三级| 精品国产久热在线观看| 中文字幕人乱码中文字的预防方法 | 五月开心网| 国产后入内射| 国产精品久久久久久久毛片1| 色噜噜狠狠色综合日日| 日日夜夜精品视频| 中文字幕人乱码中文字的预防方法 | 国产综合在线视频网站| 精品少妇999| 亚洲少妇色图自慰直播| 不卡av免费在线网址| 99www.bibizy香蕉资源国产一区二区三区高清 | 久久草草亚洲蜜桃臀| 久久久一区二区三区四曲免费听| 91爱| 精品一区二区麻豆| 可以免费观看的日韩av毛片| 日韩特一级久久| 久久国产99精品72福利| 日韩乱伦AⅤ| 97资源站日韩| oumeizonghese,www| 操一区| 热久久国产| 九九热re99re6在线精品| 亚洲成人精品久久久| 亚洲精品乱码久久久久久蜜桃麻豆| 欧美色图91| 久久久久国产精品人妻aⅴ天堂| 精品国产嫩穴视频| 色官网在线| 日韩国产欧美伦理在线| 一区二区视频在看| 免费草草草草草视频| 91红杏| 97色五月天完| 韩国黄色片精品久久久| 视频一区二区三区精品| 国产精品久久久久久久久久久久| 无码操逼天堂| 国产视频第2页| 爱爱久久| 白 大 人妻 区 在线| 97国产精品国| 国产原创精品| 美女啊啊啊啊pc| 自拍欧美| 密臀AV在线| 久偷拍欧美日韩三区| 欧亚日韩三区| 天天插夜夜爽| 久久精品国产97欧美精品亚洲| 97 超碰 人人做 人人爱| 97超碰热线| 蜜桃精品视频一区| 曰韩少妇无码| 久草电影网| 草草草视频| 日本韩国国产精品一区| 正在播放国产精品一区| 日本天天操| 在线不卡视频| 国产美女激情| 另类老少妇| 97日韩欧美| 最新亚洲人成网站在线影院| www.av在线视频| 久久香蕉国产传媒一区剧情天美| 69精品在线| 亚精品无码毛片一区二区三区| 日韩电影免费网站麻豆视频| 黄页| 欧美日韩亚洲一区二区在线观看 | 久久99操天天日| 精品然女一区二区| 人妻精品一区二区三区| 黑人精品XXX一区一二区| 国产成人无码网站在线视频| 极品色社| 久久网亚洲| 午夜视频久久久久一区| 色色丁香| 欧美精品欧美精品系列| 免费自拍三级综合| 99色热| 91劲爆| 精品中文字幕第一页| 天天色综合图片| 91美女视频。| 乱伦1色页| 91大神电影天堂| 亚洲女人91| 久久久com| 乱色老一区二区三区的观看方式| 黄色在线网站| 成人日本精品九区| 国产女大学生AV| 五月婷婷综合在线| 我想要啊 啊 啊| 久久AV无码网址| 9.1小视频| 大伊香蕉在线视频免费| 在线情色电影 91大| 蜜乳Av成人片网站| 91草草草| 看黄片视频免费| 91色欧美| 激情综合五| 91亚洲色图| 天天综合影院91| 欧美五十路熟| 长久操视频| 大香蕉综合在线| 一本色道人妻久久| 成年女人一区| 国产无吗在线播放| 人妻人妻天天碰| 99ri在线视频| 欧美色图综合| 久久夜嗨| 青青操狠狠撩| 天天色欧美| 二级久久网| 免费久久精品麻豆一区二区av| 91黄站| 动漫片子网站3黄| 欧美日本国产日韩激情视频| 激情文学小说一区二区| 欧美午夜精品久久久久久3D| 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 免费黄色片。| 大香蕉99re| 午夜成人福利影视| 久操视频资源站公开| 亚洲丝袜少妇在线| 欧美少妇性乱| 91黑丝在线播放| 操逼片国产| 超碰97中文| 亚洲色棕合| 亚州中文字幕超碰97| 黑丝少妇| 无码自拍SM| 18禁中文字幕| 2024黄色视频| 欧美色图欧美| 色香综合天天影视综合 | 美腿丝袜偷拍亚洲欧美| 亚洲熟女av中文字幕| 岛国AV一区二区电影| 51一区二区三区| 日本色色色| 丰满人妻一区二区三区免费 | 久久久久久久91| 欧美疯狂做爰xxxx| 无码二级三级| 高凊专区人人操| 成人自拍三级在线观看| 欧美中文狠| 色999五月色| 99re在线| 久久久熟女一区| 超91综合网| 国产自产自拍| 欧美日韩另类激情图片| 少妇毛片久久| 色噜噜精品一区二区三| 国产精品丝袜在线| 抽查国产福利主播| 入口操逼网站| 亚洲精品国产精品成人| 亚洲情色综合网| av大香蕉网站| 免费人成?大片在线播放| 嗯嗯啊啊好爽| 久久超碰天天| 精国久久一区二区三区98| 国内外色色色色色成人视频| 中文字幕美女91| 五月天伊人网| 蜜桃狠狠色伊人亚洲综合 | 东京日日夜夜| 国模私拍一区二区三区神乳| 亚洲午夜精品久久久中文影院| 天天操人人操骚逼网站| 综合国产97| 人妻加勒比东京热| 九九伊人网| 五月激情小说| 成人免费福利在线观看| 午夜乱轮操逼视频免费看| 亚洲资源站| 国产精品一区在线播放| 日韩射图| 久久久久久免费电影| 精品美女人人干| 98福利在线视频| 偷拍片久久| 二级毛片| 欧美97免费| 酒色综合网| 少妇久久久久久| 激情小说图片亚洲首页| 精品国产三级av韩国在线| 国产一区二区三区高清视频| 自拍偷拍 日韩欧美| 中文字幕日韩电影人妻| 免费又黄又裸乳的视频| 日本性爱不卡视频| 91碰碰碰| 东京太热久久久| 久久伊人青青草| 黑人综合色| 啪啪啪综合网| 精品亚洲国产成人精品| 国产伦精品一区二区三区在线观| 五月天色色网站| 91丝袜美女| 91精品国产乱码| 午夜经典| 欧洲综合无码| 99婷婷| 乱久久久| 96久久久| 五月天婷婷激情| 欲香欲色天天天综合和网| 日韩欧美三级| 国产亚洲精品美女久久久| 五月天激情影院| 亚洲美女色图| 国产高清自拍视频| 亚洲免费看片| 欧美色91| 三级激情网站| 亚洲乱色视频一区、二区在线| 日韩97视频| 国产欧美日韩一区二区三区| 久久乐| 97超级久久| 久久精品亚洲成a人天堂| 情色五月天久久久| 国产精品女aA片爽爽视频| 色一情一乱一乱一区91Av| www被窝色com| 超碰成人公开| 国产女人9999| 天堂无码精品国产久| 精品久久大胆人体| 成人av福利在线观看| 丝袜内射| 无码直播久久久| 另类 综合 日韩 欧美 亚洲| 亚洲色欲天天天堂色欲网女| 欧洲中文字幕| 日韩免费中文字幕视频| 日本在线不卡123| 亚洲本色精品一区二区久久| 国产精品久久久亚洲一区| 日韩精品亚洲一二三| 91啪啪| 亚洲欧美国产va在线播放频| 蜜桃中文字日产乱幕4区| 人人弄人人摸| 91性| 国产视频一区二区在线| 国产强奸乱伦第1页| 九一亚洲国产免费| 久久人人舔人人爽舔人人av片| 婷婷精品国产欧美精品亚洲人人爽| 亚洲欧美成人在线| 麻豆三极片| 久久久9 9 9精品| 欧美.亚洲.另类.丝袜.制服.诱惑| 久 久无码人妻AV| 国产丰满少妇久久久精品影院| 大香网站| 91久久久亚洲| 四虎884| 久久做97| 欧美综合自拍成人自拍第二十页| 亚洲 无码 偷拍| 亚洲超碰综合网| 日本国产欧美高清在线| 日本欧美m v精品网站加| 3p国产色噜噜一区| 亚洲天堂一二| 欧美日韩国产中文精品字幕自在自线,| 欧美视频一| 91激情综合| 日韩乱码Av| 在线色导航| 97亚洲色图| 一区二区三区无卡视频在线观看| 日韩AV一起草| 亚洲AV成人精品网站在AV| 少妇熟女视频一区二区三区| 美女超碰978| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 中文乱码字幕观看视频| 爱干爱射网啊啊啊| 国产强奸超碰AV| 国产精品视频麻豆入口| 天天肏视频| 女生看匆91网站|