Переглянути джерело

correct version/battery Nightscout Device Status upload

- remove unneeded unwrapped check to ensure battery percent is always returned
- added .error and .unknown states to BatteryState
- updated debugPrint reporting
- use releaseVersionNumber instead of hard-coded "0.7.1"
Paul Plant 1 рік тому
батько
коміт
aed088adcd

+ 2 - 0
FreeAPS/Sources/Models/Battery.swift

@@ -10,4 +10,6 @@ struct Battery: JSON {
 enum BatteryState: String, JSON {
     case normal
     case low
+    case unknown
+    case error
 }

+ 10 - 7
FreeAPS/Sources/Services/Network/NightscoutManager.swift

@@ -342,24 +342,27 @@ final class BaseNightscoutManager: NightscoutManager, Injectable {
                     let status: String? = last.status
                     let display: Bool? = last.display
 
-                    if let percent = percent, let voltage = voltage, let status = status, let display = display {
+                    if let status {
                         debugPrint(
-                            "Home State Model: \(#function) \(DebuggingIdentifiers.succeeded) setup battery from core data successfully"
+                            "NightscoutManager: \(#function) \(DebuggingIdentifiers.succeeded) setup battery from core data successfully"
                         )
                         return Battery(
                             percent: percent,
                             voltage: voltage,
-                            string: BatteryState(rawValue: status) ?? BatteryState.normal,
+                            string: BatteryState(rawValue: status) ?? BatteryState.unknown,
                             display: display
                         )
                     }
                 }
-                return Battery(percent: 100, voltage: 100, string: BatteryState.normal, display: false)
+                debugPrint(
+                    "NightscoutManager: \(#function) \(DebuggingIdentifiers.succeeded) successfully fetched; but no battery data available. Returning fallback default."
+                )
+                return Battery(percent: nil, voltage: nil, string: BatteryState.error, display: nil)
             } catch {
                 debugPrint(
-                    "Home State Model: \(#function) \(DebuggingIdentifiers.failed) failed to setup battery from core data"
+                    "NightscoutManager: \(#function) \(DebuggingIdentifiers.failed) failed to setup battery from core data"
                 )
-                return Battery(percent: 100, voltage: 100, string: BatteryState.normal, display: false)
+                return Battery(percent: nil, voltage: nil, string: BatteryState.error, display: nil)
             }
         }
     }
@@ -434,7 +437,7 @@ final class BaseNightscoutManager: NightscoutManager, Injectable {
             iob: iob?.first,
             suggested: modifiedSuggestedDetermination,
             enacted: settingsManager.settings.closedLoop ? fetchedEnactedDetermination : nil,
-            version: "0.7.1"
+            version: Bundle.main.releaseVersionNumber ?? "Unknown"
         )
 
         // Gather all relevant data for NS Status