Skip to content
On this page

Respiration Rate

The Respiration Rate value is sent both as an instantaneous value during the measurement and as part of the final results.

The application can receive the Respiration Rate result by implementing VitalSignsListener:

Swift
func onVitalSign(vitalSign: VitalSign) {
    DispatchQueue.main.async {
        if (vitalSign.type == VitalSignTypes.respirationRate) {
            if let respirationRate = vitalSign as? VitalSignRespirationRate {
                print("Respiration Rate: \(respirationRate.value)")
            }
        }
    }
}

func onFinalResults(results: VitalSignsResults) {
    DispatchQueue.main.async {
        if let respirationRate = results.getResult(of: VitalSignTypes.respirationRate) as? VitalSignRespirationRate {
            print("Respiration Rate: \(respirationRate.value)")
            print("Confidence Level: \(respirationRate.confidence?.level ?? ConfidenceLevel.unknown)")            
        }
    }
}
Objective-C
- (void)onVitalSignWithVitalSign:(id<BNHVitalSign> _Nullable)vitalSign {
    dispatch_async(dispatch_get_main_queue(), ^{
        if (vitalSign.type == BNHVitalSignTypes.respirationRate) {
            BNHVitalSignRespirationRate *respirationRate = (BNHVitalSignRespirationRate *)vitalSign;
            if (respirationRate != nil) {
                NSLog(@"Respiration Rate: %ld", (long)respirationRate.value);
            }
        }
    });
}

- (void)onFinalResultsWithResults:(BNHVitalSignsResults *)results {
    dispatch_async(dispatch_get_main_queue(), ^{
        BNHVitalSignRespirationRate *respirationRate = (BNHVitalSignRespirationRate *)[results getResultOf:BNHVitalSignTypes.respirationRate];
        if (respirationRate != nil) {
            NSLog(@"Respiration Rate: %ld", (long)respirationRate.value);

            BNHVitalSignConfidence *confidence = respirationRate.confidence;
            if (confidence != nil) {
                NSLog(@"Confidence Level: %ld", (long)confidence.level);
            }
            else {
                NSLog(@"Confidence Level: %d", 0);
            }
        }
    });
}

For general information about vital signs see the Vital Signs and Health Indicators Information Page.

For a list of supported vital signs per platform and measurement mode (face/finger) see the Supported Vital Signs Page.

Important

Note that vital signs are sent on a background thread. The application must switch to the UI thread in order to perform UI updates.