欧美成人午夜精品久久久,国产?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| 久热人妻| 狠狠撸激情综合丁香五月天俺来啦| 视频1区2区| 五月丁香婷婷综合网| 色爱终和网| 思思热久久艹| 国产精品操| 亚洲V国产V欧美V久久久久久| 丁香五月六月婷婷综合| 色色色色综合| 高清无码视频网址| 婷婷综合六月| 丁香婷婷色五月天| 五月婷婷网久久| 99人妻碰碰碰久久久久禁片| 91人人网| 九久9精品| 最熟少妇乱码| 1囯产午夜仑鲁鲁| 五月综合激情婷婷六月色窝| 欧美精品XXXXBBBB| 无码激情AAAAA片-区区| 五月天婷婷在线观看| 丁香五月激情啪啪| 色婷婷亚洲在线| 成人五月天在线观看| 中文字幕成人日韩| 五月婷婷欧洲| 九九色video| 日日操夜夜撸| 丁香五月激情综合| 免费视频无码| 亚洲乱码日产精品BD在线观看| 丁香五月五月婷婷| 99热这里只有精品8| 99热这里只有精品13| 久久xxxx| 996er在线观看| 久久超级碰视频| 丁香激情综合| 五月激香蕉网| 色吊丝99| 婷婷激情六月综合| 97碰碰视频在线观看| 高清 码 免费看片短视频| 亚洲天堂AV综合网| 五月激情射| 久久五月天丁香花| 操比激情五月综合| 人人操AV| 26uuu美女三级视频| 91 九色 熟女| 五月天激情在线视频| 久久婷婷五月综合| 国产欧美婷婷五月| 亭亭五月激情亚洲在线| 婷婷五月天偷拍| 色婷婷a三区麻| 亚洲看av的网站| 91精品电影18T| 狠狠色丁香五月婷巨| 成人午夜无码视频| 激情六月五月婷婷综合网| 亚洲一色色色色色色色色| av在线免费播放| 99re视频在线播放| 婷婷丁香五月久久| av性爱网站| 九九色视频| www.久久av.com| 狠狠做深爱婷婷久久综合一区| 天天操夜夜橾| 欧美日韩成人| 一起草AV入口| 中文字幕激情综合| 婷婷激情五月天激情在线| 成人网在线视频| 色色色色色色色色网站| 激情AV| 国产免费一区二区三区三州老师F1F1.CC | www.婷婷| 亚洲免费电影2| 久久久久久久久久久久久久久久久精典| 91碰免费视频| 欧美在线视频99| 久久五月六月| 99热免费| 夜夜爽77777妓女免费下载| 色综合综合综合| av五月天婷婷丁香| 色九网| 色婷婷精品小视频| 五月婷婷丁香啪啪| 玖玖@三月天天丁香婷婷| 欧美网站视频4399| 1010日日无码| 五月婷婷香| 日韩国产在线精品| 九九九这里只有精品| 亚洲激情综合色站| 色色色地址| 久久怡红院| 98热精品| 六月丁香激情综合| 这里只有精品免费| 国产亚洲精品久久一区二区三区| 在线另类| 五月丁香婷婷久久| 婷婷五月天美女21p| 91色综合| 99热超| 色99亚洲| 五月婷婷开心网| 亚洲精级| 亚洲综合网激情五月天| 久久这里都是精品| 操操综合网婷婷| 99亚色色色| 99精品视频免费| 91色久| 丁香九月色| 99在线精品观看99| 久久大香蕉同僚| 青青草青青草五月天| 色色免费网站| 伊人国产婷婷五月天| 色狠狠综合入口| 婷婷大香蕉| 国产精品24r| 婷婷五月黄色激情在线| 丁香五月激情婷婷| 亚洲啪视频| 婷婷五月深爱五月| 丁香婷婷六月| www.五月天社区| 99国产精品久久久久久久久久久 | 啪啪操网| 凹凸操Av| 真实熟女-91九色| 丁香五月婷婷久久久| 亚洲色婷婷五月天| www.com任你艹| 久色五月婷婷综合| 99精品丁香五月| 久久这里这里有精品免费视频| 五月丁香 啪啪| 中文字幕人妻一区二区| 日韩三十六页| 婷婷性爱无码视频| 激情性爱五月天网页| 五月天·www·com| 国产69精品久久久久999小说| 99在线视频精品| 夜夜撸夜夜骑| 天堂资源欧日浪女在线播放| 亚洲黄色影视| 五月激情另类| 丁香六月婷婷操逼网| 麻豆科斗777| 五月丁香婷婷六月| 久久五月丁香激情综合| 丁香五月婷婷av影院| 婷婷五六日| 五月丁香综合激情| 五月婷婷久| 欧美天堂婷婷日韩| 天天舔天天爽| 日本一级黄色电影| 久久精品国产AV一区二区三区 | 99热这里只有精品最新| 日韩五月婷婷| 久久伊人婷婷| xx综合网| 人妻无码视频网| 天天人人天天爽| 国产亚洲99久久精品| 九九精品在线视频观看| 婷婷五月五月丁香| 欧美人久久| 久久精彩免费视频| 久久之人妻| 色婷婷五月天| 人妻久久久久久久久久久| 免费日本aⅴ中文字幕 | 婷婷基地成人五月天| 丁香五月影院| 日日操天天操| 五月婷婷激情四季| 激情五月天福利| 激情综合一| 日本久久精品| 五月伊人婷婷999| 久久婷婷网| 天天色情站| 精品久久久91久久影视网| 我要看激情五月天| 色婷婷久久综合| 中文字幕 码精品视频网站| 五月婷婷久久综合| 中文字幕AV网址| 97色色综合| 激情婷婷丁香色情五月天| 色婷婷狠狠久久综合五月| 五月天久久91| 五月丁香六月婷婷免费| 狠狠色97| 国产精品久久久久久久久久免费 | 青青草轻轻操| 色99热| 91人人操人人看| 丁香激情四射| 超碰人人在线观看| www久久久| 色婷婷久久综合中文久久一本| 棕合影院色色| 99久热精品在线| 激情综合久久| 成人在线综合| 欧美一级操逼视频| 天堂婷婷丁香六月网| 激情99| 在线视频区| 精品女人九九九| 婷婷色色网| 人妻久久婷婷| 婷婷色在线播放| 亚洲国产精品VA在线看黑人| 91碰碰| www.深爱激情| 亚洲五月综合色播| 免费99情趣网视频| 538在线| 1024操逼视频| 国洲夜色亚热在线久久| 日本三级日本黄色| 成人国产欧美大片一区| 五月综合激情婷婷六月色窝| 99视频自拍| 欧美乱码国产一级A片| 欧美性爱5月天天天看| 九九色影院| 久久香蕉婷婷| WWW.久久久久久久久久久久久| 久久小说网| 久久99婷婷| 色五月婷婷一二| 天天操夜夜爽| 五月丁香婷婷俺| 99久久a线观| 六月丁香婷| 天天插天天射天天干| 在线观看欧美3区| 久久艹 五月天| 五月天婷婷久久| 乱码操操| 天天精品视频免费观看| 久久九九网| 色色色色五月| 激情小说五月天| 激情五月天久久丁香| 伊人玖玖婷婷| 人妻九九九九| 777久久精品| 这里只有精品在线播放| 五月丁香激情婷婷综合| 激情五月天激情五月天| 99毛片| 色婷婷88| 99综合网| 五月天丁香婷婷视频网址| 97高清国语自产拍| 九九色网| 婷婷五月色综合| 丁香五月91| 五月丁香综合激情网| 综合狠狠干| 六月丁香婷婷色狠狠久久| 99碰视频| 六月欧美综合色情| 色婷婷激情五月天在线观看| 色色色热热热| 五月丁香久久| 婷婷大香焦| 久久九九99.www| 热99热久| 丁香六月婷婷激情综合| 激情九九综合网| 亚洲天码视频www蛋播视频| 色色网站在线| 婷婷五月天开心网| 91婷婷丁香五月亚洲| 亚洲影院婷婷色| 六月婷色| 国熟女视频| 深爱五月网| 天天肏高清在线| 美女五月天| 伊人在线视频| 亚洲无线视频| 天天天天天天天操| 久久三级视频| 狠狠综合久久综合| 色婷丁香五月| 99亚洲精品视频| 超碰97人人操| 丁香五月停停av| 99乱视频| 五月丁香六月花| 综合久久高清| 国产AV一区二区三区最新精品 | av性爱在线| 欧洲色色| 色五月,com| 久久婷婷五月天激情| 丁香五月自拍| 九九精品亚洲| 91在线97视频| 女人天堂av| 国产欧美va| 噜噜在线| 大香蕉婷婷五月| 婷婷五月天亚洲天堂| 99综合视频| 色五月婷婷网| 在线婷婷| 国产精品色婷婷99久久精品| 色色五月天 亚洲| 欧美 日韩 成人在线| 激情色中文| 久久视频九九视频| 五月婷婷之综合激情| 五月婷中文娱乐综合| 婷婷五月在线综合| 99性视频| 99re在线视频精品,这里只有精品18,| 久久爱婷婷| 嫩草AV久久伊人妇女超级A| 9 9热这里有精品| 操笔无码| 色色色综合| 九九热AV| 婷婷午夜天| 久久思思99| 丁香婷婷色五月天| 五月天成人在线视频丁香| 丁香婷婷成人网| 国产AV一区二区三区最新精品 | 激情五月天噢美| 九九热最新| 婷婷五月精品| 亚洲五月天婷婷综合| 九九黄色网| www.婷婷亚洲基地| 狠狠爱综合| 成人网站av免费网站推荐| 婷婷五月天伊人网在线观看视频| 亚洲国产精品二二三三区| 99在线观看亚洲| 色七七九九| 影音先锋 一区| 久久这里有精品视频| 国产一级片色色| 天天色伊人| 国外亚洲成AV人片在线观看| 日日干干天天干| 亚洲欧洲中文日韩久久AV乱码| 性爱先锋AV| 激情久久五月天| 婷婷激情在线| 婷婷伊人五月天| 五月综合色| www.99热| 精品国产va久久久久久久| 日韩无码成人电影| 激情影院免费视频婷婷五月天| 欧美大片免费播放器| 精品99久久久久成人网站免费| 狠狠色噜噜狠狠狠狠综合| 色五月婷婷中文字幕在线观看| 99热手机在线精品| 五月丁香婷婷六月天| 国产99久久久国产精品免费看| 五月天婷婷在看| 免费看欧美成人A片无码| 夜夜夜夜操| 丁香五月婷婷啪啪视频| 色噜噜狠狠色综无码久久合欧美| 亚洲超碰在线| 91肏肏肏| 午夜成人综合| 婷婷激情五月天天天开心| 国产亚洲精品AAAA片APP| 五月丁香婷婷六月天| 五月丁香影院| 久色欧美| 少妇激情基地| 色五月婷婷丁香凹凸| 开心五月天激情网| 久久综合激情五月天| www.五月天| 无码色色| 日韩欧美五月丁综合| 人与禽A片啪啪| 婷婷五月天日本无码| 9九色首页| 色色色网站| 日本不卡高字幕在线2019| 夜夜操天天爽| 激情小说五月天社区丁香| 五月婷婷激情| 七七色色综合| 久久婷婷五月草视频| 九九久久精品國產| 538在线精品| 成人va在线播放| 丁香婷婷大香蕉| 激情五月黄色| 色爱亚洲| 人人摸人人| 久久这里这里有精品免费视频| 久草婷婷网 | 色色 9| 亚洲无线视频| 超碰A V在线| 91一起操| 婷婷丁香五月天激情| 国产亚洲99| 伊人大蕉香| 伊人久久婷婷| 婷婷射图| 久久婷婷激情视频| 狠狠色丁香婷婷综合久久97AV| 无码髙清| 五月丁香婷婷99| 被强行糟蹋的女人A片| 色婷婷丁香五月| 噜噜噜噜在线| 婷婷激情另类| 操一区| 人妻五月天激情开心网| 中文字幕不卡网站| 人妻内射一区二区在线视频| 另类小说五月天| 丁香五月影院| 五月丁香六月情| 丁香六月 人妻| 内射综合网| 久久在线人妻| 97色伦另类图片小说视频| 色五月色五天色情网| 超碰97久久| av一区二区电影免费在线观看| 五月丁香影视| 丁香五月社区| 五月激情天| 99热久| 久久作爱| aa久久| 高清无码视频网址| 99热在这里只有精品| 人人色AV| 久久婷婷在线| 5月丁香六月婷婷| 六月亚洲| 婷婷五月天亚洲激情戏精品| 九九草热在线观看| 日逼免费视频 | 久久 中文 日本| 伊人激情综合| 婷婷激情五月天激情小说| 99在线资源视频| 碰碰碰97国产| 4399精品一区二区| 9久久久| 黄色短视频在线观看| 日碰日| 人人操婷婷| 97在线日韩| 亚洲欧美日韩另类| 丁香六月婷婷综合啪啪| 婷婷久久五月| 99这里有精品免费| 99热这里只有精品50| 久久这里只有精品无码| 欧美啄木乌丝袜人妻系列| 九九热这里只有精品7| 2017狠狠干| 婷婷丁香亚洲色综合91| 91九色小视频| 色色婷| 狠狠色婷婷7| 婷婷五月丁香综合激情小说| 色噜噜狠狠插综合| 99九九热在线观看| 国产亚洲精品AAAAAAA片| 老美AA片| 91丨九色丨老农村| 色色色色欧洲| 天天天天做夜夜夜夜做| 五月婷婷色五月| 丁香蜜臀黄色婷婷五月天| 97人人干人人操| 91精品久久久久久综合五月天| 99在线精品免费视频| 午夜AV网| 婷婷五月在线免费| 五月天色裸体视频| 激情五月婷婷| 欧美三级韩国三级日本三斤| 九洲一级A片| 99爱在线| 人人操人人爰人人一天天碰夜夜拍夜夜爽-中国A级毛片天天看天天谢… | 亚洲黄色影视| 中文字幕 久久9999| 色婷婷五月天偷拍| 丁香久久| 精品99在线观看| 热九九在线| 操逼棍操逼| 99久久综合网| 日韩成人不卡| 狠狠色噜噜狠狠色噜噜噜999| 丁香五月天啪啪激情综和网| 激情五月丁香五月| 99久久終合| 成人五月天在线观看| 青青福利网| 五月婷婷五月天| 亚洲成av人影院| 亚洲乱码w在线观看| 99无码免费视频| 日本色五月婷婷| 国产美女无遮挡裸体毛片A片| ...婷婷五月综合不卡,国产在线手机| 婷婷五月天激情在线观看| 天天射影院| 久草婷婷网 | 激情五月丁香五月| 4399在线观看免费高清黄色视频| 五月婷婷色丁香| 五月丁香欧美综合| 色色综合热| 狠狠干在线视频| 婷婷久久五月丁香| 久久久五月激| 99欧美| 久热一本| 国产精品美女| 久久ri精品视频| 六月婷五月丁香| 91九色首页| 婷婷激情四射五月天| 蜜臀九九九九| 无码激情AAAAA片-区区| 日韩好吊操| 日韩久热| 影音先锋四区| 五月丁香久人妻中文| 九九激情| 六月丁香VA| 久热伊人| 无码毛片992367| 99热成人| 99爱免费在线观看| 操操碰| 婷婷在线播放av| 91丨九色丨高潮丰满日本| 91久草五月天婷婷| 欧美婷婷综合| 9九九久久精品无码专区| 五月婷婷六月丁香激情综合网| 五月丁香啪| 另类天堂| 综合网色| 日日鲁鲁夜夜爽爽| 国产无套精品一区二区| 五月婷婷无码专区| 99精品视频播放| 综合色综合| 色婷婷狠狠禁18久久| 色婷婷色情| av免费在线看不卡无毒| 精品皮股午夜AV| 99九九这里有免费视频| 六月丁香婷婷六月激情综合| 色色色色色色色五月| 日夜夜久久| 九九久久玖玖爱| 91人人爽久久涩噜噜噜| 色爱99| 91狠狠综合网| 26uuu视频欧美| 九色视频91| 丁香六月激情综合网| 大香蕉色婷婷伊人在线| 五月亭亭性| www.日本91| 亚洲天堂热| 热久久77777| 日韩二区搞逼插逼毛片| 婷婷久久色| 91丁香五月| 成人精品免费在线观看| 99久久综合网| 一级性感毛片| 中文字幕成人| 五月丁香花免费视频| 91人人人人人人人| 丁香婷婷久久| 婷婷五月丁香伊人网| 五月婷久草| 操97| 五月婷婷丁香在线视频| 99日精品视频| 内射人妻视频国内| 天天干天天爽| 丁香婷婷六月天| 国产AV网页| www久久99| 天天干-天天日| 99啪在线| 丰满少妇猛烈A片免费看观看 | 操逼电影免费看| 婷婷五月激情在线| 欧美丁香五月| 天天色视频| 久久这里有精品在线观看| 91人碰| 97色婷婷| 狠狠干综合网| 婷婷五月天成人基地| 五月丁香激| 国产精品18久久久| www久久99| 丁香五月婷在线观看| 婷婷亚洲日本| 中文字幕网站在线观看| 亚洲乱码日产精品BD在线观看| 五月婷婷五月色| 丁香五月日啪| 五月婷婷久久久| 97久久精品视频| 亚洲精品视频在线播放| 日韩一级网站| 婷婷六月五月| 99热这里精| 色99在线| 一丁香五月天月AV| 战争与艾拉电影免费观看| 狠狠舔| 五月开心久久| 天天干天天爽| 婷婷亚洲天堂| 欧美激情综合| 香蕉狠狠爱视频| 一起草性爱不卡视频| 五月激情视频网| 婷婷在线播放av| 丁香六月| 美女伊人久久| 免费观看2018www黄色操逼网站| 亚洲精品又粗又大又爽A片| 亚洲综合色婷婷| 婷婷五月天AV| 亚洲婷婷欧美婷婷| 思思热视频| 99热这里只有精品18| 婷婷六月丁香激情综合| 亚洲色色爱| 九月丁香婷婷| 九月婷婷| 激情色播| 天天激情5月天亚洲| 97人人搞| 另类亚洲2| 色婷婷XXXXX| 99热自拍| 六月亚洲婷婷6月中文字幕| 欧美一级色| 99精品久久久久久久婷婷| 亚洲黄色精品| 成人欧美日韩| 色5月婷婷| 99re66热这里只有精品| 人妻性操逼中文字幕 国产| 成人短视频在线| 亚洲综合婷婷| 激情图片亚洲| 激情五月丁香色婷婷| 青青五月天婷婷| 99热在线中文字幕| 成人精品99| 舔色婷婷| 久久五月丁香婷婷| 狠狠操狠狠插| 亚洲日本韩国| 亚洲天堂制| 五月天AV大香蕉| 色九九九综合| 99内射视频| 色婷婷久久综合| 91丨九色丨大屁股| 丁香五月色情| 国产精品久久久爽爽爽麻豆色哟哟 | 美女丁香五月天| 能看的AV网站| 亚洲免费婷婷| 五月天婷婷色| 丁香五月天久久| 99免费青青蜜臀| 久久久91| 99热这里只有精品23| 伊人五月丁香| 婷婷丁香成人| 日韩人妻白浆视频系列| 99偷拍视频在线日本| 国产精品久久久久久白浆色欲| 小视频在线亚洲| 性日本精品| 91婷婷搞| 国产午夜伦鲁鲁| 综合五月丁香97| 99国产小视频2013| 久久久久久久久人妻| www色色com| 国产精品久久久久9999小说| 射久久丁香五月| 国产综合婷婷| 五月丁香激情婷婷综合字幕| 色香欲综合| 激情开心五月天| 国产女生爱爱AA| a色色色色色| 婷婷色丁香六月| 婷婷五月六月丁香| 五月婷婷国产| 第六色在线| 91精品久久久久久久久| 老美AA片| 婷婷五月天色| 26uuu精品一区二区| av在线资源| 五月激情婷婷国产精品久久久久久| 97丁香花五月天激情小说| 天天综合网在线| 成人无码精品1区2区3区免费看| 亚洲色图81p| 狠狠操.COM| 色噜噜狠狠色综合日日| 婷婷在线网| 色婷婷久久久| 五月丁香六月在线| 色婷婷中文| 五月丁香久久网| 97婷婷丁香| 久9热在线免费观看| 侠女刀之记忆电影在线看免费| 天天肏高清在线| 亚州第一黄网| 国产性色蜜乳| 97色色视频| 久久久婷| 九九色逼| 九月婷婷色色| 婷婷成人五月天成人文学| 亚洲av| 国产色婷婷亚洲| 色色色色色色色色网站| 99在线观看精品| 五月天开心婷婷激情网站 | 99干免费视频| 涩涩五| 丁香五月婷婷色| 五月色在线| www狠狠| 另类A片| www.久久综合| 色五月婷婷综合在线| 国产精品久久久海的味道| 激情五月天色播| 操碰99| 激情五月丁香综合网站| 黄网在线免费观| 亚洲mm色| 成熟妇人A片免费看网站| 亚洲成人色五月婷婷综合| 日日爽日日| 他改变了拜占庭| 精品久久99| 色色五月天激情| 日日夜夜天天综合| 天天综合情| 五月综合视频| 亚州激情在线视频| 欧美精品在线观看| 丁香五月天成人| av一区二区电影免费在线观看| 五月伊人视频在线看| 天天日中文| 国产精品成人av在线观看春天| 九久久九精品视频| 九九婷婷网五月天| 六月婷欧美| 日韩亚洲视频| 丁香五月狠狠在线观看| 亚洲欧美在线观看| 五月婷婷丁香综合| 日韩欧美老妇性视频91久久久| 亚洲成人无码网站| 人妻性操逼中文字幕 国产| 久久98| 手机激情网| 婷婷丁香五月天操逼| 天天干天天拍| 久久永久网址| 色色色色丁香| 五月丁香综合网| 91久久久久久久久久| 婷婷综合视频| 色色色视频| 欧美A片在线视频免费观看| 天天日夜夜曹| 六月婷婷色色色| 婷婷五月天受日本法律保护| 婷婷情色开心五月天99| www.99热视频| 久久er免费视频| 99久久综合狠狠综合久久| 色屌丝中文字幕| 快乐激情五月色婷婷| 91.www综合| 婷婷五月婷婷| 亚洲欧洲色色| 日韩在线成人电影| 99精品在线| 五月的色婷婷高潮| 丁香五月天导航| 一本色道久久88加勒比| 色吧婷婷| 久久婷婷五月激情网站| 日韩视频女神99| 第九色区av天堂| 五月天婷婷社区| 做爱夜夜干天天操| 九九九九无码| 精品夜夜澡人妻无码AV| 色播播五月天| 五月婷婷久久内射| 大香蕉久久久| 91九色PORNY肉丝在线| 激情av在线| 天天色,天天操,天天射| 丁香久久五月婷综合| 天天插天天插| 欧美性爱五月天| 狠狠色婷婷丁香六月| 亚欧州精品视频| 久久日本wwww色| 99操| 色婷婷久久综合| 激情五月四色| 噜色精品| 超碰av在线| 天堂亚洲 在线| www。久久久久一b。Cc| 丝袜大香蕉| 五月婷婷激情视频| 六月丁香婷婷色69| 夜夜躁狠狠| 婷婷伊人中文字幕| 超碰com| 国内久久亭亭| 亚洲午夜国产成人电影VA国产欧…| 久久性爱视频网站| xx久久| 五月天婷婷爱| 成人狠狠成人狠狠成人狠狠成人狠狠| 天天操天天爱天天日| 4399欧美另类视频| 四季日韩AV无码综合| 精品人妻午夜一区二区三区四区| 很很干天天干| www.色99| 六月丁香av| 开心婷婷丁香五月| 中文字幕久久婷九女同| 久9视频| 性爱久久| 九九99久久| 五月丁香淫淫婷婷婷| www,婷婷五月天,com| 成人欧美一区二区三区在线观看 | 免费精品66| 欧美狠狠一在草| 丁香成人五月天| 久久久ww| 五月天婷婷涩涩| 色婷婷中文| 久久加勤综合| 182无码| 色五月色综合| 天天综合天综合久久网| 激情五月综合网丁| 日本久久色| 免费在线观看av网站| 夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂亚洲亚洲亚洲亚洲亚洲亚洲亚洲亚洲色 | 五月天婷婷久久| 色综合五月天| 色五月婷婷色| 精品一二三区久久AAA片| 激情五月天综合网| 人妻丰满精品一区二区A片| 久久久婷婷| 国产成人一区二区三区在线观看| 婷婷在线播放| 影音先锋91在线资源站| 五月停停大香蕉| 色色综合五月| 婷婷婷久久久| 久久9热| 欧美三日本三级少妇三99| 色婷婷综合亚洲| 噜噜噜噜婷婷五月天| 九热在线这里有精品6| 婷婷五月天影视| 九九热这里只有精品在线观看| 五月婷婷六月丁香综合| 天天综合久久| 五月丁香在线观看| 男女啪啪做爰高潮无遮挡| 任你弄在线视频免费| 九九综合五月欧美| 人人操日| 国产日日夜夜操| 人草人人| 99re这里| 丁香色综合| 67194国产| av网站免费在线| 九九热精品99| 凹凸7777操操操| www.lingjunshare.com| 狠狠色成人影片| 99re6久热只有精品6在线直播| 国外亚洲成AV人片在线观看| 99国产97在线,| 99日本黄站| 色婷婷综合五月| 五月丁香成人视频| www.夜夜操.com| 国产69久久久欧美黑人A片| 五月丁香婷婷狠狠操| 九色91视频| 99在线看片| 婷婷九月在线| 香蕉久久国产AV一区二区| 五月丁香日逼| 婷婷丁香色五月亚洲| 99免费视频精品| 婷婷五月电影| 天天爽夜夜爽夜夜爽精| 色五月婷婷亚洲| 亚洲va成人va成人va在线观看| 狠狠色噜噜狠狠狠狠狠色综合久久| 日韩精品超碰在线观看| 亚洲丁香五月美女| 超碰日日操| 狠狠爱综合| 狠狠综合久久综合| 五月天天丁香婷婷在线中| 五月天狠狠网| 双性美人被调教到喷水A片| 先锋资源婷婷| www久热com| 久久怕怕视频| 99人人操人人操人人精| 九九九九九九九热| 丁香桃色网| 操人视频91| 99精品视频免费观看,| 九久9精品| 性爱五月婷| 亚洲性受XXXX五月丁香| 日韩人妻在线观看| 婷婷丁香黄色| 婷婷五月婷婷五月| 99久热| 婷婷色九月| 天天爱天天吃狠天天透| 深夜婷婷 丁香| 青青夜夜狠狠夜夜狠狠| 久久婷婷网| 美女xx不卡| 99热777| 69精品人人人人| 97色女人在线| www.五月天婷婷| 亚洲无码猫咪| 婷婷五月久久| 成人做爰A片免费看视频| 九九色精品| 最新av在线观看| 影音先锋91资源站| WWW五月| ZpRSw| 免费观看的AV| AA片在线观看视频在线播放| 五月丁香婷婷无码中文| 99热成人精品网站| 丁香五月 性爱| 久久人人人人妻| 一本色道久久88综合日韩精品| 婷婷六月丁香开心深深爱| 丁香五月婷婷啪啪啪| 婷婷涩涩五月天| 久久hd| 婷婷色中文| 五月天婷婷成人网| 五月狠狠| 天天综合久久| 美欧日韩国产成人在战| 婷婷瑟瑟五月天| 91a片爽| 色五开心五月五月深深爱| 雪千夏麻豆| 激情小说视频图片网| 婷婷色色色| 欧美成人性爱网| 玖玖爱导航| 成人电影在线免费试看| 日本啪啪网| 久久五月丁香| 五月天色婷婷激情综合| 99免费视频| 天天插轮理| 性爱激情久久| 丁香婷婷深情五月亚洲| 青996青| YJLZZJLZZ亚洲乱熟无码| 粉嫩av懂色av蜜臀av熟妇| 婷婷色色网| 这里只有精品日韩精品| 老美AA片| 欧美日韩AAAA| 丁香五月婷婷操逼| 99re在线视频| 天天做天天要天天爱| 另类少妇人与禽zOZZ0性伦| 啄木鸟黑丝一区二区| 超碰成人黄色网| 五月色婷婷综合| 亚洲综合999| 激情开心五月天| 色插综合网| 精品导航在线x不卡| 秋霞A V毛片| 99热精品网| 久久免费干| 欧美色99| 天天射夜夜爽| 九九九激情网| 伊人网碰碰| 丁香五月天激情五月天激情五月天激情网 | 青青草深爱激情网| 禁片二区| 五月丁香| 婷婷色五月情| 另类图片五月天婷婷| 婷婷综合色图| 森林影视大全,最好看的2019年视频 | 综合久久五月天| 色欲婷婷五月天| 国产在线网| 日本啪啪网| 婷婷成人丁香色情基地30| 99色.com| 99在线免费视频| 色综合久久88色综合天天99| 色天使色婷婷| 五月天开心色色网| www.99色| 久久婷婷色综合老司机| 九九色99| 五月天婷婷中文字幕在线播放| 五月丁香激情综合六月涩涩爱| 国产成人一区二区三区在线观看| 丁香五月天之婷婷影院| 久久精品在线| 五月天综合久久丁香91| 国产亚洲精品AAAA片APP| 大婷婷色呦呦噜噜色呦呦噜噜| 五月天婷婷色播综合在线| 婷丁香五月天| www免费在线视频| 伦乱天堂| 婷婷综合精品视频97| 综合欧美五月婷婷| 玖玖婷婷色| 97五月婷| 亚韩在线视频| 午夜丁香婷婷| 99热只有国产在线精品| 1024日韩| 超碰在线综合| 67久久| 国产精产国品一二三在观看| 在线另类视频| 久久九九热视频| 亚洲AAAA网| 67194中文字幕| 亚洲黄色av网站| 久久大香蕉丁香| 亚洲无码99| 91狠狠色丁香婷婷综合久久精品| 色五月天电影| 天天色域综合网| 97色五月天| 人人色婷婷五月天| 色情五月天丁香社区| 久久五月天免费网站| 一级黄色操B| 99热超碰人| 婷婷丁香九色| 少妇被躁爽到高潮无码文| 激情伊人五月天| 中文字幕在线免费| 五月丁香六月婷婷成人电影| 99热久久这里只有精品2010| 99热大全在线观看| 狠狠色丁香久久久婷| 久久精品4| 婷婷内射视频在线| 一级二级色大片| 在线99色| 玖玖爱导航| 婷婷五月欧美| 操b视频在线观看一区二区| 色五月丁香A欧美com | 99色在线观看视频者| 中文字幕无码人妻少妇免费视频| 五月婷婷丁香| 丁香五月在线播放| www.色五月| 久久曰曰| 中国女人做爰A片| 国产精产国品一二三在观看| 欧美怡红院黄站| 色色欧美色色色| 伊人爱爱日本| 99情色五月天| 人人干人人操外国| 婷婷性爱视频在线| 九九99香蕉在线视频播放| 中文字幕五月久久婷| 超碰A V在线| 99久久97久久欧美综合网| 任你擦免费视频| 日韩一级片| 丁香婷婷六月婷婷六月婷婷六月婷婷| 天天综合久久| 婷婷瑟五月天久久综合| 婷婷综合激情五月综合| 色五月婷激情| 婷婷丁香高潮了| 婷婷瑟瑟五月天| 99热超碰天堂网| 激情五月丁香五月色| 色情综合网| 苗黎美女四级成人版一级二级毛片| 亚洲中字AV电影在线网站| 九九九九九九热| 五月婷婷亚洲色图| 97人人操在线| 99精品这里只有免费视频| 管管補管管紱| 五月激情久久| 五月婷婷人人人操| 亚洲av网站| 99热精品在线观看| www.久久色.com| 日本久久爽| 激情深爱综合| 婷婷五亚洲| 午夜成人网站在线观看| 超碰九色| 任你干线上免费视频有3吗| 丁香婷婷综合影院| 丁香五月黄色| 97碰免费视频在线| 四虎婷婷五月天| 五月丁香六月激情视频| 九九这里都是精品| 五月丁香婷婷钟和色图| 狠狠综合色网| 丁香六月婷婷综合激情欧美| 狠狠狠狠操| 久久婷婷五月综合色奶水99啪| 九九综合伊人| 无码免费人妻A片AAA毛片西瓜| bukadeavzaixian| 只有精品视频在线观看| 五月天婷婷视频30| 久99久视频| 99热在线观看成人| 色琪琪一综合久久激情五月视频| 婷婷五月欧美综合| 日日夜夜狠狠| www.99热| 噜噜五月天综合| 深爱婷婷色| 91超级碰在线视频| AAA级久久久精品| 丁香五月影视| 婷婷五月骚厕所| 亚洲视频99| 黄色毛片精品| 色婷婷4| 久超超碰| 国产精品色情AAAAA片软件| 六月丁香婷婷色狠狠久久| 亚洲一区先锋影音| 99精品自拍视频| 久久久久久久,99精品视频| 综合亚洲六月婷婷在线| 久久久这里有精品| 搡BBBB搡BBB搡18 | 99操视频| 天天天摸夜夜夜玩| 成人国产欧美大片一区| 久99热在线观看| 国产在线另类五月婷婷| 五月天色婷婷综合| 97色女人在线| 天天爽日日爽夜夜爽| JAPANRCEP老熟妇乱子伦视频 | 丁香影院五月综合| 怡红院院在线导航网| 天天色天天日| 色色色com| a69在线视频| 老司机伊人| 国产97色在线| 狠狠色噜噜狠狠狠狠综合| 天天色中文字幕女优AV| 五月色婷婷在线观看| 青草五月天| 五月婷婷影视| 2025最新亚洲激情在线| 五月丁香激情综合网| 婷婷六月视频| 久久人人妻| www.久久色.com| 综合激情深爱| 九九婷| 麻豆五月丁香婷婷| 乱精品一区字幕二区| 精品99这里有| 婷婷综合| 色五月激情综合网| 色婷婷婷婷| 久久婷婷婷| 国产精品国产| 激情五月综合第一页| 99这里只有精品|