Skip to content

Incorrect unit for blood pressure #114

@Walter0697

Description

@Walter0697

It seems like for the official GATT specification, bit 0 will have a value of 0 if the unit is mmHg, and a value of 1 if the unit is kPa. However, the logic in the code seems to be reserved.

private extension Flag {
    static let unitFlag: Flag = 0x01
    static let timeStamp: Flag = 0x02
    static let pulseRate: Flag = 0x04
}

struct BloodPressureCharacteristic {
    
    let systolicPressure: Measurement<UnitPressure>
    let diastolicPressure: Measurement<UnitPressure>
    let meanArterialPressure: Measurement<UnitPressure>
    let date: Date?
    let pulseRate: Int?
    
    init(data: Data) throws {
        let flags: UInt8 = try data.read()
        let unit: UnitPressure = Flag.isAvailable(bits: flags, flag: .unitFlag) ? .millimetersOfMercury : .kilopascals

The incorrect logic cant be found in BloodPressureCharacteristic.swift and BloodPressureCharacteristic.swift

If I am correct, the correct code should be
let unit: UnitPressure = Flag.isAvailable(bits: flags, flag: .unitFlag) ? .kilopascals : .millimetersOfMercury

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions