Skip to content

Commit a90e4ef

Browse files
authored
Fix sensor state display (#701)
1 parent 84ffd0f commit a90e4ef

File tree

2 files changed

+20
-5
lines changed

2 files changed

+20
-5
lines changed

Loop/Managers/CGM/DexCGMManager.swift

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ final class ShareClientManager: CGMManager {
6767

6868
let managedDataInterval: TimeInterval? = nil
6969

70-
private var latestBackfill: ShareGlucose?
70+
fileprivate var latestBackfill: ShareGlucose?
7171

7272
func fetchNewDataIfNeeded(with deviceManager: DeviceDataManager, _ completion: @escaping (CGMResult) -> Void) {
7373
guard let shareClient = deviceManager.remoteDataManager.shareService.client else {
@@ -140,7 +140,14 @@ final class G5CGMManager: DexCGMManager, TransmitterDelegate {
140140
}
141141

142142
override var sensorState: SensorDisplayable? {
143-
return latestReading ?? super.sensorState
143+
let transmitterDate = latestReading?.readDate ?? .distantPast
144+
let shareDate = shareManager?.latestBackfill?.startDate ?? .distantPast
145+
146+
if transmitterDate > shareDate {
147+
return latestReading
148+
} else {
149+
return super.sensorState
150+
}
144151
}
145152

146153
override var managedDataInterval: TimeInterval? {
@@ -190,6 +197,7 @@ final class G5CGMManager: DexCGMManager, TransmitterDelegate {
190197
"## G5CGMManager",
191198
"latestReading: \(String(describing: latestReading))",
192199
"transmitter: \(String(describing: transmitter))",
200+
"providesBLEHeartbeat: \(providesBLEHeartbeat)",
193201
super.debugDescription,
194202
""
195203
].joined(separator: "\n")
@@ -294,6 +302,7 @@ final class G4CGMManager: DexCGMManager, ReceiverDelegate {
294302
"## G4CGMManager",
295303
"latestReading: \(String(describing: latestReading))",
296304
"receiver: \(receiver)",
305+
"providesBLEHeartbeat: \(providesBLEHeartbeat)",
297306
super.debugDescription,
298307
""
299308
].joined(separator: "\n")
@@ -325,7 +334,7 @@ final class G4CGMManager: DexCGMManager, ReceiverDelegate {
325334

326335
func receiver(_ receiver: Receiver, didLogBluetoothEvent event: String) {
327336
// Uncomment to debug communication
328-
// NSLog(["event": "\(event)", "collectedAt": NSDateFormatter.ISO8601StrictDateFormatter().stringFromDate(NSDate())])
337+
// NSLog("\(#function): \(event)")
329338
}
330339
}
331340

Loop/Managers/DeviceDataManager.swift

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,13 @@ final class DeviceDataManager {
241241
// MARK: Pump data
242242

243243
/// TODO: Isolate to queue
244-
fileprivate var latestPumpStatusFromMySentry: MySentryPumpStatusMessageBody?
244+
fileprivate var latestPumpStatusFromMySentry: MySentryPumpStatusMessageBody? {
245+
didSet {
246+
if let manager = cgmManager as? EnliteCGMManager {
247+
manager.sensorState = latestPumpStatusFromMySentry
248+
}
249+
}
250+
}
245251

246252
/**
247253
Handles receiving a MySentry status message, which are only posted by MM x23 pumps.
@@ -613,7 +619,7 @@ final class DeviceDataManager {
613619
}
614620

615621
var sensorInfo: SensorDisplayable? {
616-
return cgmManager?.sensorState ?? latestPumpStatusFromMySentry
622+
return cgmManager?.sensorState
617623
}
618624

619625
// MARK: - Configuration

0 commit comments

Comments
 (0)