From e45716f0867be056fff0615088602985dacf7ac3 Mon Sep 17 00:00:00 2001 From: Pete Schwamb Date: Sat, 27 May 2017 11:19:08 -0500 Subject: [PATCH 1/2] Log g5 errors, non-ok calibration states, and unknown data --- Loop/Managers/CGM/DexCGMManager.swift | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/Loop/Managers/CGM/DexCGMManager.swift b/Loop/Managers/CGM/DexCGMManager.swift index c118e8bfba..2680d20873 100644 --- a/Loop/Managers/CGM/DexCGMManager.swift +++ b/Loop/Managers/CGM/DexCGMManager.swift @@ -109,6 +109,8 @@ final class ShareClientManager: CGMManager { final class G5CGMManager: DexCGMManager, TransmitterDelegate { private let transmitter: Transmitter? + let logger = DiagnosticLogger() + init(transmitterID: String?) { if let transmitterID = transmitterID { @@ -161,10 +163,15 @@ final class G5CGMManager: DexCGMManager, TransmitterDelegate { // MARK: - TransmitterDelegate func transmitter(_ transmitter: Transmitter, didError error: Error) { + logger.addError(error, fromSource: "xDripG5.Transmitter") delegate?.cgmManager(self, didUpdateWith: .error(error)) } func transmitter(_ transmitter: Transmitter, didRead glucose: Glucose) { + if !glucose.state.hasReliableGlucose { + logger.addError(String(describing: glucose.state), fromSource: "xDripG5.Transmitter") + } + guard glucose != latestReading, let quantity = glucose.glucose else { delegate?.cgmManager(self, didUpdateWith: .noData) return @@ -177,6 +184,7 @@ final class G5CGMManager: DexCGMManager, TransmitterDelegate { } func transmitter(_ transmitter: Transmitter, didReadUnknownData data: Data) { + logger.addError("Unknown sensor data: " + data.hexadecimalString, fromSource: "xDripG5.Transmitter") // This can be used for protocol discovery, but isn't necessary for normal operation } } @@ -255,3 +263,20 @@ final class G4CGMManager: DexCGMManager, ReceiverDelegate { // NSLog(["event": "\(event)", "collectedAt": NSDateFormatter.ISO8601StrictDateFormatter().stringFromDate(NSDate())]) } } + +extension CalibrationState: CustomStringConvertible { + public var description: String { + switch self { + case .needCalibration, .needFirstInitialCalibration, .needSecondInitialCalibration: + return NSLocalizedString("Sensor needs calibration", comment: "The description of sensor calibration state when sensor needs calibration.") + case .ok: + return NSLocalizedString("Sensor calibration is OK", comment: "The description of sensor calibration state when sensor calibration is ok.") + case .stopped: + return NSLocalizedString("Sensor is stopped", comment: "The description of sensor calibration state when sensor sensor is stopped.") + case .warmup: + return NSLocalizedString("Sensor is warming up", comment: "The description of sensor calibration state when sensor sensor is warming up.") + case .unknown(let rawValue): + return String(format: NSLocalizedString("Sensor is in unknown state %1$d", comment: "The description of sensor calibration state when raw value is unknown. (1: missing data details)"), rawValue) + } + } +} From 0320869fa68fc1725e1bf854e215894863855da5 Mon Sep 17 00:00:00 2001 From: Pete Schwamb Date: Sat, 24 Jun 2017 22:41:53 -0500 Subject: [PATCH 2/2] Update to new DiagnosticLogger --- Loop/Managers/CGM/DexCGMManager.swift | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/Loop/Managers/CGM/DexCGMManager.swift b/Loop/Managers/CGM/DexCGMManager.swift index 2680d20873..8a3a32a7d4 100644 --- a/Loop/Managers/CGM/DexCGMManager.swift +++ b/Loop/Managers/CGM/DexCGMManager.swift @@ -109,8 +109,7 @@ final class ShareClientManager: CGMManager { final class G5CGMManager: DexCGMManager, TransmitterDelegate { private let transmitter: Transmitter? - let logger = DiagnosticLogger() - + let logger = DiagnosticLogger.shared!.forCategory("G5CGMManager") init(transmitterID: String?) { if let transmitterID = transmitterID { @@ -163,13 +162,13 @@ final class G5CGMManager: DexCGMManager, TransmitterDelegate { // MARK: - TransmitterDelegate func transmitter(_ transmitter: Transmitter, didError error: Error) { - logger.addError(error, fromSource: "xDripG5.Transmitter") + logger.error(error) delegate?.cgmManager(self, didUpdateWith: .error(error)) } func transmitter(_ transmitter: Transmitter, didRead glucose: Glucose) { if !glucose.state.hasReliableGlucose { - logger.addError(String(describing: glucose.state), fromSource: "xDripG5.Transmitter") + logger.error(String(describing: glucose.state)) } guard glucose != latestReading, let quantity = glucose.glucose else { @@ -184,7 +183,7 @@ final class G5CGMManager: DexCGMManager, TransmitterDelegate { } func transmitter(_ transmitter: Transmitter, didReadUnknownData data: Data) { - logger.addError("Unknown sensor data: " + data.hexadecimalString, fromSource: "xDripG5.Transmitter") + logger.error("Unknown sensor data: " + data.hexadecimalString) // This can be used for protocol discovery, but isn't necessary for normal operation } }