请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:AFE49I30 我正在尝试使用 PPG/ECG 传感器计算心率 (我正在使用 AFE49I30传感器) 使用 Xamarin 表单应用程序。
- 我有一个蓝牙设备、该蓝牙设备使用 Plugin.BLE 软件包连接至 Xamarin Form 应用。
- 连接后、我将获得蓝牙设备的所有服务和服务特征。
- PPG/ECG 的特性之后验证了电路。 我得到的是 PPG/ECG 字节数组。 现在、我该怎么做才能从该字节数组中获取心率计数?
下面显示了一些代码屏幕截图、以获取心率字节数组。
- PPG 使用以下代码获取字节数组数据:

public async void GetPPGLiveData()
{
if (App.device != null)
{
var temp = App.DeviceDetailsModel.FirstOrDefault(a => a.DeviceService.Id.StartsWith("00005c00"));
var PPGservices = await App.device.GetServiceAsync(new Guid(temp.DeviceService.Id));
if (PPGservices != null)
{
var PPGcharacter = temp.DeviceServiceCharacs.FirstOrDefault(a => a.Id.StartsWith("00005c02"));
var PPGList = await PPGservices.GetCharacteristicAsync(new Guid(PPGcharacter.Id));
PPGList.ValueUpdated += (o, args) =>
{
var receivedBytes = args.Characteristic.Value;
Xamarin.Essentials.MainThread.BeginInvokeOnMainThread(async () =>
{
//Need to write some Heart Rate calculation Logic.
});
};
await PPGList.StartUpdatesAsync();
}
}
}
- ECG 使用以下代码获取字节数组数据:

public async void GetECGLiveData()
{
if (App.device != null)
{
var temp = App.DeviceDetailsModel.FirstOrDefault(a => a.DeviceService.Id.StartsWith("00005c00"));
var ECGservices = await App.device.GetServiceAsync(new Guid(temp.DeviceService.Id));
if (ECGservices != null)
{
var ECGcharacter = temp.DeviceServiceCharacs.FirstOrDefault(a => a.Id.StartsWith("00005c01"));
var ECGList = await ECGservices.GetCharacteristicAsync(new Guid(ECGcharacter.Id));
ECGList.ValueUpdated += (o, args) =>
{
var receivedBytes = args.Characteristic.Value;
Xamarin.Essentials.MainThread.InvokeOnMainThreadAsync(async () =>
{
//Need to Write Some calculation logic here.
});
};
await ECGList.StartUpdatesAsync();
}
}
}