蓝牙低功耗,如何解析RR间隔值?

Thu*_*ran 1 iphone bluetooth-lowenergy

我的应用程序是从智能心脏设备接收信息.现在我可以看到脉搏值.你能帮我解析RR间隔值吗?如何检查设备是否支持RR间隔值?

任何建议

谢谢

小智 8

你检查过蓝牙规格了吗?下面的示例代码在C#中,但我认为它显示了解析每个心率包中数据的方法.

//first byte of heart rate record denotes flags
byte flags = heartRateRecord[0];

ushort offset = 1;

bool HRC2 = (flags & 1) == 1;
if (HRC2) //this means the BPM is un uint16
{
    short hr = BitConverter.ToInt16(heartRateRecord, offset);
    offset += 2;
}
else //BPM is uint8
{
    byte hr = heartRateRecord[offset];
    offset += 1;
}

//see if EE is available
//if so, pull 2 bytes
bool ee = (flags & (1 << 3)) != 0;
if (ee)
    offset += 2;

//see if RR is present
//if so, the number of RR values is total bytes left / 2 (size of uint16)
bool rr = (flags & (1 << 4)) != 0;
if (rr)
{
    int count = (heartRateRecord.Length - offset)/2;
    for (int i = 0; i < count; i++)
    {
        //each existence of these values means an R-Wave was already detected
        //the ushort means the time (1/1024 seconds) since last r-wave
        ushort value = BitConverter.ToUInt16(heartRateRecord, offset);

        double intervalLengthInSeconds = value/1024.0;
        offset += 2;
    }
}
Run Code Online (Sandbox Code Playgroud)