Skip to content

Commit b671e4b

Browse files
authored
Version 0.6.0 (#146)
* Renaming RL from RileyLinkDeviceTableViewController * Change default autocapitalization type * Revert debugging code. Avoid reloading table on start of rename op. Add disclosure indicator to RL Name row, to indicate it can be edited * Adding the read clock command For LoopKit/Loop#49 * Fixing missing idle status row * Fix ChangeSensorSetup2PumpEvent parsing on 551 pumps * Some NSUploadKit framework refactoring; ensuring tests are running (#144) * Adding easy sharing to the CommandResponseViewController (#143) * agvtool
1 parent 933b17b commit b671e4b

32 files changed

+491
-192
lines changed

MinimedKit/Info.plist

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<key>CFBundlePackageType</key>
1616
<string>FMWK</string>
1717
<key>CFBundleShortVersionString</key>
18-
<string>0.5.0</string>
18+
<string>0.6.0</string>
1919
<key>CFBundleSignature</key>
2020
<string>????</string>
2121
<key>CFBundleVersion</key>

MinimedKit/Messages/ReadSettingsCarelinkMessageBody.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,10 @@ public class ReadSettingsCarelinkMessageBody: CarelinkLongMessageBody {
5454
}
5555

5656
let maxBolusTicks: UInt8 = rxData[7]
57-
maxBolus = Double(maxBolusTicks) * self.dynamicType.maxBolusMultiplier
57+
maxBolus = Double(maxBolusTicks) / self.dynamicType.maxBolusMultiplier
5858

5959
let maxBasalTicks: Int = Int(bigEndianBytes: rxData[8...9])
60-
maxBasal = Double(maxBasalTicks) * self.dynamicType.maxBasalMultiplier
60+
maxBasal = Double(maxBasalTicks) / self.dynamicType.maxBasalMultiplier
6161

6262
let rawSelectedBasalProfile: UInt8 = rxData[12]
6363
selectedBasalProfile = BasalProfile(rawValue: rawSelectedBasalProfile)

MinimedKit/PumpEvents/ChangeSensorSetup2PumpEvent.swift

+6-2
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,12 @@ public struct ChangeSensorSetup2PumpEvent: TimestampedPumpEvent {
1414
public let timestamp: NSDateComponents
1515

1616
public init?(availableData: NSData, pumpModel: PumpModel) {
17-
length = 37
18-
17+
if pumpModel.hasLowSuspend {
18+
length = 41
19+
} else {
20+
length = 37
21+
}
22+
1923
guard length <= availableData.length else {
2024
return nil
2125
}

MinimedKitTests/Info.plist

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<key>CFBundlePackageType</key>
1616
<string>BNDL</string>
1717
<key>CFBundleShortVersionString</key>
18-
<string>0.5.0</string>
18+
<string>0.6.0</string>
1919
<key>CFBundleSignature</key>
2020
<string>????</string>
2121
<key>CFBundleVersion</key>

MinimedKitTests/PumpMessageTests.swift

-25
This file was deleted.

NightscoutUploadKit/Info.plist

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<key>CFBundlePackageType</key>
1616
<string>FMWK</string>
1717
<key>CFBundleShortVersionString</key>
18-
<string>0.5.0</string>
18+
<string>0.6.0</string>
1919
<key>CFBundleSignature</key>
2020
<string>????</string>
2121
<key>CFBundleVersion</key>

NightscoutUploadKit/NightscoutUploader.swift

+32-45
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,13 @@ public enum UploadError: ErrorType {
1818
case MissingTimezone
1919
}
2020

21-
public class NightscoutUploader: NSObject {
21+
private let defaultNightscoutEntriesPath = "/api/v1/entries.json"
22+
private let defaultNightscoutTreatmentPath = "/api/v1/treatments.json"
23+
private let defaultNightscoutDeviceStatusPath = "/api/v1/devicestatus.json"
2224

23-
enum DexcomSensorError: UInt8 {
25+
public class NightscoutUploader {
26+
27+
enum DexcomSensorError: Int {
2428
case SensorNotActive = 1
2529
case SensorNotCalibrated = 5
2630
case BadRF = 12
@@ -29,46 +33,35 @@ public class NightscoutUploader: NSObject {
2933
public var siteURL: String?
3034
public var APISecret: String?
3135

32-
var entries: [AnyObject]
33-
var deviceStatuses: [AnyObject]
34-
var treatmentsQueue: [NightscoutTreatment]
36+
private(set) var entries = [[String: AnyObject]]()
37+
private(set) var deviceStatuses = [[String: AnyObject]]()
38+
private(set) var treatmentsQueue = [NightscoutTreatment]()
3539

36-
var lastMeterMessageRxTime: NSDate?
40+
private(set) var lastMeterMessageRxTime: NSDate?
3741

38-
public private(set) var observingPumpEventsSince: NSDate
42+
public private(set) var observingPumpEventsSince: NSDate!
3943

40-
var lastStoredTreatmentTimestamp: NSDate = NSDate.distantPast() {
41-
didSet {
42-
NSUserDefaults.standardUserDefaults().lastStoredTreatmentTimestamp = lastStoredTreatmentTimestamp
44+
private(set) var lastStoredTreatmentTimestamp: NSDate? {
45+
get {
46+
return NSUserDefaults.standardUserDefaults().lastStoredTreatmentTimestamp
47+
}
48+
set {
49+
NSUserDefaults.standardUserDefaults().lastStoredTreatmentTimestamp = newValue
4350
}
4451
}
45-
46-
let defaultNightscoutEntriesPath = "/api/v1/entries.json"
47-
let defaultNightscoutTreatmentPath = "/api/v1/treatments.json"
48-
let defaultNightscoutDeviceStatusPath = "/api/v1/devicestatus.json"
49-
52+
5053
public var errorHandler: ((error: ErrorType, context: String) -> Void)?
51-
52-
public var pumpID: String? {
53-
didSet {
54-
if oldValue != nil {
55-
self.observingPumpEventsSince = NSDate().dateByAddingTimeInterval(60*60*24*(-1))
56-
}
57-
}
54+
55+
public func reset() {
56+
observingPumpEventsSince = NSDate(timeIntervalSinceNow: NSTimeInterval(hours: -24))
57+
lastStoredTreatmentTimestamp = nil
5858
}
5959

60-
public init(siteURL: String?, APISecret: String?, pumpID: String?) {
61-
entries = [AnyObject]()
62-
treatmentsQueue = [NightscoutTreatment]()
63-
deviceStatuses = [AnyObject]()
64-
60+
public init(siteURL: String?, APISecret: String?) {
6561
self.siteURL = siteURL
6662
self.APISecret = APISecret
67-
self.pumpID = pumpID
6863

69-
self.observingPumpEventsSince = NSUserDefaults.standardUserDefaults().lastStoredTreatmentTimestamp ?? NSDate().dateByAddingTimeInterval(60*60*24*(-1))
70-
71-
super.init()
64+
observingPumpEventsSince = lastStoredTreatmentTimestamp ?? NSDate(timeIntervalSinceNow: NSTimeInterval(hours: -24))
7265
}
7366

7467
// MARK: - Processing data from pump
@@ -117,12 +110,6 @@ public class NightscoutUploader: NSObject {
117110

118111
public func handlePumpStatus(status: MySentryPumpStatusMessageBody, device: String) {
119112

120-
enum DexcomSensorErrorType: Int {
121-
case DX_SENSOR_NOT_ACTIVE = 1
122-
case DX_SENSOR_NOT_CALIBRATED = 5
123-
case DX_BAD_RF = 12
124-
}
125-
126113
var recordSGV = true
127114

128115
let glucose: Int = {
@@ -132,12 +119,12 @@ public class NightscoutUploader: NSObject {
132119
case .HighBG:
133120
return 401
134121
case .WeakSignal:
135-
return DexcomSensorErrorType.DX_BAD_RF.rawValue
122+
return DexcomSensorError.BadRF.rawValue
136123
case .MeterBGNow, .CalError:
137-
return DexcomSensorErrorType.DX_SENSOR_NOT_CALIBRATED.rawValue
124+
return DexcomSensorError.SensorNotCalibrated.rawValue
138125
case .Lost, .Missing, .Ended, .Unknown, .Off, .Warmup:
139126
recordSGV = false
140-
return DexcomSensorErrorType.DX_SENSOR_NOT_ACTIVE.rawValue
127+
return DexcomSensorError.SensorNotActive.rawValue
141128
}
142129
}()
143130

@@ -235,7 +222,7 @@ public class NightscoutUploader: NSObject {
235222

236223
let date = NSDate()
237224
let epochTime = date.timeIntervalSince1970 * 1000
238-
let entry = [
225+
let entry: [String: AnyObject] = [
239226
"date": epochTime,
240227
"dateString": TimeFormat.timestampStrFromDate(date),
241228
"mbg": msg.glucose,
@@ -244,7 +231,7 @@ public class NightscoutUploader: NSObject {
244231
]
245232

246233
// Skip duplicates
247-
if lastMeterMessageRxTime == nil || lastMeterMessageRxTime!.timeIntervalSinceNow < -3 * 60 {
234+
if lastMeterMessageRxTime == nil || lastMeterMessageRxTime!.timeIntervalSinceNow.minutes < -3 {
248235
entries.append(entry)
249236
lastMeterMessageRxTime = NSDate()
250237
}
@@ -312,7 +299,7 @@ public class NightscoutUploader: NSObject {
312299

313300
func flushDeviceStatuses() {
314301
let inFlight = deviceStatuses
315-
deviceStatuses = [AnyObject]()
302+
deviceStatuses = []
316303
uploadToNS(inFlight, endpoint: defaultNightscoutDeviceStatusPath) { (error) in
317304
if let error = error {
318305
self.errorHandler?(error: error, context: "Uploading device status")
@@ -324,7 +311,7 @@ public class NightscoutUploader: NSObject {
324311

325312
func flushEntries() {
326313
let inFlight = entries
327-
entries = [AnyObject]()
314+
entries = []
328315
uploadToNS(inFlight, endpoint: defaultNightscoutEntriesPath) { (error) in
329316
if let error = error {
330317
self.errorHandler?(error: error, context: "Uploading nightscout entries")
@@ -336,7 +323,7 @@ public class NightscoutUploader: NSObject {
336323

337324
func flushTreatments() {
338325
let inFlight = treatmentsQueue
339-
treatmentsQueue = [NightscoutTreatment]()
326+
treatmentsQueue = []
340327
uploadToNS(inFlight.map({$0.dictionaryRepresentation}), endpoint: defaultNightscoutTreatmentPath) { (error) in
341328
if let error = error {
342329
self.errorHandler?(error: error, context: "Uploading nightscout treatment records")

NightscoutUploadKitTests/Info.plist

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<key>CFBundlePackageType</key>
1616
<string>BNDL</string>
1717
<key>CFBundleShortVersionString</key>
18-
<string>0.5.0</string>
18+
<string>0.6.0</string>
1919
<key>CFBundleSignature</key>
2020
<string>????</string>
2121
<key>CFBundleVersion</key>

0 commit comments

Comments
 (0)