簡體   English   中英

Android(Xamarin)如何通過藍牙從手鐲中獲取數據(脈沖)

[英]Android(Xamarin) How to get data(pulse) from the bracelet via Bluetooth

我的目標是使用我的應用程序從健身手鐲Torntisc T1獲取數據(脈沖),並獨立處理手鐲中的數據。

為了實現我使用Xamarin並找到了一個用於Xamarin插件的藍牙LE插件來連接到設備並從中接收數據。 但是,獲得的所有特征稱為“ 未知特征 ”,並且值為0字節。 雖然它有5個服務,每個服務都有3個特征。 1服務中唯一的特征名稱是:“ 設備名稱 ”,“ 外觀 ”,“ 外圍設備首選連接參數 ”。 但是,值(值)到處是0字節。 如何獲得特色? 如何獲得脈搏?

在手鐲上有一個應用程序H Band 2.0,它顯示了相當多的手鐲設置,問題出現在哪里呢?

原生app H Band 2.0 在這里嘗試反編譯。 我在以下目錄中找到了負責連接的類: sources \\ no \\ nordicsemi \\ android \\ dfu 我看到通過BluetoothGatt做了什么。 不幸的是,我不是java和android的專家,不熟悉這個庫。 我沒有找到任何與“脈沖”相關的方法或任何東西,但是大量的魔法解析特征: parse (characteristic)

foreach (var TestService in Services)
            {
                var characteristics = await TestService.GetCharacteristicsAsync();
                foreach (var Characteristic in characteristics)
                {
                    var properties = Characteristic.Properties;
                    var name = Characteristic.Name;
                    var serv = Characteristic.Service;
                    var value = Characteristic.Value;
                    var stringValue = value.ToString();
                    string result = "";
                    if (value.Length != 0)
                        result = System.Text.Encoding.UTF8.GetString(value, 0, value.Length - 1);
                }
            }

在此輸入圖像描述

首先,您可以使用以下應用程序更好地概述您正在使用的服務和特性,而無需編寫調用來獲取所需的值。

說過你需要文檔才能與設備通信,我的意思是你發送的數據,可接受的響應如何映射到有意義的數據等.BLE的核心是低能量位,意味着交換為盡可能少的數據。 如果沒有文檔,你可以將整數映射到你不知道的枚舉值,你可以從反編譯的源代碼中恢復工作,但它會更難以達到數量級。

還有一件事是,BLE是眾所周知的不可靠的(如果你在samsungs上遇到gatt 133錯誤,你會明白的),所以大多數實現還有一種額外的網絡層來處理丟棄和優雅降級,以及發送更大的和平數據,這是根據應用程序/設備自定義開發的,您還需要大量文檔來實現它,這不是一件小事。

你選擇的圖書館非常好,可以很好地包裝你需要的大部分東西,但它不能處理不穩定性,所以你必須自己處理這個部分。

干杯:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM