BleReader.Net
1.0.0
wrapper ง่าย ๆ ที่สร้างขึ้นเพื่ออ่านข้อมูลผู้ผลิตจากอุปกรณ์ Bluetooth LE โดยใช้. NET
ปัจจุบันรองรับ Linux โดยใช้ DBUS และ Bluez (โดยใช้ Dotnet-Bluez) นอกเหนือจากการให้ข้อมูลผู้ผลิตดิบแล้วยังมีข้อมูลที่แยกวิเคราะห์สำหรับอุปกรณ์เฉพาะ (รองรับเฉพาะ Ruuvitag ในปัจจุบัน)
มีให้เป็นแพ็คเกจ Nuget:
dotnet add package BleReader.Net
รับข้อมูล ruuvitag:
var adapterName = "hci0";
var scanDurationSeconds = 5;
var ruuviMacAddress = "12:34:56:78:90:AB";
IBleReader reader = new BleReader(new DotNetBlueZService());
await reader.ScanAsync(adapterName, scanDurationSeconds);
var ruuviTag = await reader.GetManufacturerDataAsync<RuuviTag>(ruuviMacAddress);
if (ruuviTag != null)
{
var dataAsJson = JsonSerializer.Serialize(ruuviTag, new JsonSerializerOptions() { WriteIndented = true });
Console.WriteLine($"Data: {dataAsJson}");
}
else
{
Console.WriteLine("No RuuviTag found");
}
เอาท์พุท:
Data: {
"DataFormat": 5,
"Humidity": 27.495,
"Temperature": 18.1,
"AirPressure": 1006.94,
"AccelerationX": -0.004,
"AccelerationY": -0.012,
"AccelerationZ": 1.032,
"BatteryVoltage": 2.881,
"TxPower": 4,
"MovementCounter": 184,
"MeasurementSequenceNumber": 12774,
"MacAddress": "12-34-56-78-90-AB"
}
รับข้อมูลของอุปกรณ์ที่พบทั้งหมด:
var adapterName = "hci0";
var scanDurationSeconds = 5;
IBleReader reader = new BleReader(new DotNetBlueZService());
await reader.ScanAsync(adapterName, scanDurationSeconds);
var deviceInfoList = await reader.GetAllDevicesAsync();
var firstDevice = deviceInfoList.FirstOrDefault();
if (firstDevice != null)
{
var bytesAsString = BitConverter.ToString(firstDevice.ManufacturerData?.Data);
Console.WriteLine($"Bluetooth device with address {firstDevice.Address} found");
Console.WriteLine($"Manufacturer ID = {firstDevice.ManufacturerData?.Id}");
Console.WriteLine($"Manufacturer data = {bytesAsString}");
}
else
{
Console.WriteLine("No devices found");
}
เอาท์พุท:
Bluetooth device with address 12:34:56:78:90:AB found
Manufacturer ID = 1177
Manufacturer data = 05-0E-24-2A-F6-C6-06-FF-FC-FF-F4-04-08-A0-36-B8-31-E6-12-34-56-78-90-AB
คุณสามารถมีส่วนร่วมโดยการส่งข้อบกพร่องคำขอคุณสมบัติหรือคำขอดึง (เช่นการใช้การสนับสนุนสำหรับประเภทอุปกรณ์อื่น ๆ )