diff --git a/.gitignore b/.gitignore index 692e056954..79927b784d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,9 @@ *.iml -wear/wear.iml .gradle /local.properties -/.idea/workspace.xml -/.idea/libraries .DS_Store /build /captures +*.apk +build/ +.idea/ diff --git a/.idea/.name b/.idea/.name deleted file mode 100644 index b53cf7e34f..0000000000 --- a/.idea/.name +++ /dev/null @@ -1 +0,0 @@ -AndroidAPS \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml deleted file mode 100644 index 96cc43efa6..0000000000 --- a/.idea/compiler.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml deleted file mode 100644 index e7bedf3377..0000000000 --- a/.idea/copyright/profiles_settings.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml deleted file mode 100644 index 97626ba454..0000000000 --- a/.idea/encodings.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml deleted file mode 100644 index 2cb270bcda..0000000000 --- a/.idea/gradle.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml deleted file mode 100644 index 491c025e3d..0000000000 --- a/.idea/inspectionProfiles/Project_Default.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml deleted file mode 100644 index 3b312839bf..0000000000 --- a/.idea/inspectionProfiles/profiles_settings.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index fbb68289f4..0000000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index beeeadee79..0000000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml deleted file mode 100644 index 7f68460d8b..0000000000 --- a/.idea/runConfigurations.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 94a25f7f4c..0000000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 9740cf7335..18cf49f1b8 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -44,7 +44,7 @@ android { minSdkVersion 21 targetSdkVersion 23 versionCode 1100 - versionName "1.1" + versionName "1.1g" buildConfigField "String", "BUILDVERSION", generateGitBuild() } lintOptions { @@ -70,7 +70,7 @@ android { dimension "limits" buildConfigField "int", "MAXBOLUS", "5" } - full { + full { dimension "standard" buildConfigField "boolean", "APS", "true" buildConfigField "boolean", "PUMPDRIVERS", "true" @@ -97,25 +97,47 @@ android { wear { dimension "wear" buildConfigField "boolean", "WEAR", "true" + buildConfigField "boolean", "WEAR_CONTROL", "false" + + } + wearcontrol { + dimension "wear" + buildConfigField "boolean", "WEAR", "true" + buildConfigField "boolean", "WEAR_CONTROL", "true" } nowear { dimension "wear" buildConfigField "boolean", "WEAR", "false" + buildConfigField "boolean", "WEAR_CONTROL", "false" + } + } +} + +allprojects { + repositories { + jcenter() + flatDir { + dirs 'libs' } } } dependencies { - wearWearApp project(path: ':wear', configuration: 'fullRelease') + wearWearApp project(path: ':wear', configuration: 'restrictedRelease') + wearcontrolWearApp project(path: ':wear', configuration: 'fullRelease') + compile fileTree(include: ['*.jar'], dir: 'libs') compile('com.crashlytics.sdk.android:crashlytics:2.5.7@aar') { transitive = true; } + compile 'com.android.support:appcompat-v7:23.4.0' compile 'com.android.support:support-v4:23.4.0' compile 'com.android.support:cardview-v7:23.4.0' compile 'com.android.support:recyclerview-v7:23.4.0' compile 'com.android.support:gridlayout-v7:23.4.0' + compile "com.android.support:design:23.4.0" + compile "com.android.support:percent:23.4.0" compile 'com.wdullaer:materialdatetimepicker:2.3.0' compile 'com.squareup:otto:1.3.7' compile 'com.j256.ormlite:ormlite-core:4.46' @@ -134,4 +156,6 @@ dependencies { androidTestCompile 'org.mockito:mockito-core:2.+' androidTestCompile "com.google.dexmaker:dexmaker:1.2" androidTestCompile "com.google.dexmaker:dexmaker-mockito:1.2" -} + compile(name:'android-edittext-validator-v1.3.4-mod', ext:'aar') + +} \ No newline at end of file diff --git a/app/libs/android-edittext-validator-v1.3.4-mod.aar b/app/libs/android-edittext-validator-v1.3.4-mod.aar new file mode 100644 index 0000000000..e08904b772 Binary files /dev/null and b/app/libs/android-edittext-validator-v1.3.4-mod.aar differ diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d49ee22092..8f500c4421 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -33,9 +33,12 @@ + + + diff --git a/app/src/main/assets/OpenAPSAMA/basal-set-temp.js b/app/src/main/assets/OpenAPSAMA/basal-set-temp.js new file mode 100644 index 0000000000..9745869194 --- /dev/null +++ b/app/src/main/assets/OpenAPSAMA/basal-set-temp.js @@ -0,0 +1,61 @@ +'use strict'; + +function reason(rT, msg) { + rT.reason = (rT.reason ? rT.reason + '. ' : '') + msg; + console.error(msg); +} + +var tempBasalFunctions = {}; + +tempBasalFunctions.getMaxSafeBasal = function getMaxSafeBasal(profile) { + + var max_daily_safety_multiplier = (isNaN(profile.max_daily_safety_multiplier) || profile.max_daily_safety_multiplier == null) ? 3 : profile.max_daily_safety_multiplier; + var current_basal_safety_multiplier = (isNaN(profile.current_basal_safety_multiplier) || profile.current_basal_safety_multiplier == null) ? 4 : profile.current_basal_safety_multiplier; + + return Math.min(profile.max_basal, max_daily_safety_multiplier * profile.max_daily_basal, current_basal_safety_multiplier * profile.current_basal); +}; + +tempBasalFunctions.setTempBasal = function setTempBasal(rate, duration, profile, rT, currenttemp) { + //var maxSafeBasal = Math.min(profile.max_basal, 3 * profile.max_daily_basal, 4 * profile.current_basal); + + var maxSafeBasal = tempBasalFunctions.getMaxSafeBasal(profile); +var round_basal = require('./round-basal'); + + if (rate < 0) { + rate = 0; + } // if >30m @ 0 required, zero temp will be extended to 30m instead + else if (rate > maxSafeBasal) { + rate = maxSafeBasal; + } + + var suggestedRate = round_basal(rate, profile); + if (typeof(currenttemp) !== 'undefined' && typeof(currenttemp.duration) !== 'undefined' && typeof(currenttemp.rate) !== 'undefined' && currenttemp.duration > 20 && suggestedRate <= currenttemp.rate * 1.2 && suggestedRate >= currenttemp.rate * 0.8) { + rT.reason += ", but "+currenttemp.duration+"m left and " + currenttemp.rate + " ~ req " + suggestedRate + "U/hr: no action required"; + return rT; + } + + if (suggestedRate === profile.current_basal) { + if (profile.skip_neutral_temps) { + if (typeof(currenttemp) !== 'undefined' && typeof(currenttemp.duration) !== 'undefined' && currenttemp.duration > 0) { + reason(rT, 'Suggested rate is same as profile rate, a temp basal is active, canceling current temp'); + rT.duration = 0; + rT.rate = 0; + return rT; + } else { + reason(rT, 'Suggested rate is same as profile rate, no temp basal is active, doing nothing'); + return rT; + } + } else { + reason(rT, 'Setting neutral temp basal of ' + profile.current_basal + 'U/hr'); + rT.duration = duration; + rT.rate = suggestedRate; + return rT; + } + } else { + rT.duration = duration; + rT.rate = suggestedRate; + return rT; + } +}; + +module.exports = tempBasalFunctions; diff --git a/app/src/main/assets/OpenAPSAMA/determine-basal.js b/app/src/main/assets/OpenAPSAMA/determine-basal.js new file mode 100644 index 0000000000..ac4fe2598c --- /dev/null +++ b/app/src/main/assets/OpenAPSAMA/determine-basal.js @@ -0,0 +1,498 @@ +/* + Determine Basal + + Released under MIT license. See the accompanying LICENSE.txt file for + full terms and conditions + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +*/ + + +var round_basal = require('../round-basal') + +// Rounds value to 'digits' decimal places +function round(value, digits) +{ + var scale = Math.pow(10, digits); + return Math.round(value * scale) / scale; +} + +// we expect BG to rise or fall at the rate of BGI, +// adjusted by the rate at which BG would need to rise / +// fall to get eventualBG to target over DIA/2 hours +function calculate_expected_delta(dia, target_bg, eventual_bg, bgi) { + // (hours * mins_per_hour) / 5 = how many 5 minute periods in dia/2 + var dia_in_5min_blocks = (dia/2 * 60) / 5; + var target_delta = target_bg - eventual_bg; + var expectedDelta = round(bgi + (target_delta / dia_in_5min_blocks), 1); + return expectedDelta; +} + + +function convert_bg(value, profile) +{ + if (profile.out_units == "mmol/L") + { + return round(value / 18, 1).toFixed(1); + } + else + { + return value.toFixed(0); + } +} + +var determine_basal = function determine_basal(glucose_status, currenttemp, iob_data, profile, autosens_data, meal_data, tempBasalFunctions) { + var rT = { //short for requestedTemp + }; + + if (typeof profile === 'undefined' || typeof profile.current_basal === 'undefined') { + rT.error ='Error: could not get current basal rate'; + return rT; + } + var basal = profile.current_basal; + if (typeof autosens_data !== 'undefined' ) { + basal = profile.current_basal * autosens_data.ratio; + basal = round_basal(basal, profile); + if (basal != profile.current_basal) { + console.error("Adjusting basal from "+profile.current_basal+" to "+basal); + } + } + + var bg = glucose_status.glucose; + // TODO: figure out how to use raw isig data to estimate BG + if (bg < 39) { //Dexcom is in ??? mode or calibrating + rT.reason = "CGM is calibrating or in ??? state"; + if (basal <= currenttemp.rate * 1.2) { // high temp is running + rT.reason += "; setting current basal of " + basal + " as temp"; + return tempBasalFunctions.setTempBasal(basal, 30, profile, rT, currenttemp); + } else { //do nothing. + rT.reason += ", temp " + currenttemp.rate + " <~ current basal " + basal + "U/hr"; + return rT; + } + } + + var max_iob = profile.max_iob; // maximum amount of non-bolus IOB OpenAPS will ever deliver + + // if target_bg is set, great. otherwise, if min and max are set, then set target to their average + var target_bg; + var min_bg; + var max_bg; + if (typeof profile.min_bg !== 'undefined') { + min_bg = profile.min_bg; + } + if (typeof profile.max_bg !== 'undefined') { + max_bg = profile.max_bg; + } + if (typeof profile.target_bg !== 'undefined') { + target_bg = profile.target_bg; + } else { + if (typeof profile.min_bg !== 'undefined' && typeof profile.max_bg !== 'undefined') { + target_bg = (profile.min_bg + profile.max_bg) / 2; + } else { + rT.error ='Error: could not determine target_bg'; + return rT; + } + } + + // adjust min, max, and target BG for sensitivity, such that 50% increase in ISF raises target from 100 to 120 + if (typeof autosens_data !== 'undefined' && profile.autosens_adjust_targets) { + if (profile.temptargetSet) { + console.error("Temp Target set, not adjusting with autosens"); + } else { + min_bg = Math.round((min_bg - 60) / autosens_data.ratio) + 60; + max_bg = Math.round((max_bg - 60) / autosens_data.ratio) + 60; + new_target_bg = Math.round((target_bg - 60) / autosens_data.ratio) + 60; + if (target_bg == new_target_bg) { + console.error("target_bg unchanged:", new_target_bg); + } else { + console.error("Adjusting target_bg from", target_bg, "to", new_target_bg); + } + target_bg = new_target_bg; + } + } + + if (typeof iob_data === 'undefined' ) { + rT.error ='Error: iob_data undefined'; + return rT; + } + + var iobArray = iob_data; + if (typeof(iob_data.length) && iob_data.length > 1) { + iob_data = iobArray[0]; + //console.error(JSON.stringify(iob_data[0])); + } + + if (typeof iob_data.activity === 'undefined' || typeof iob_data.iob === 'undefined' ) { + rT.error ='Error: iob_data missing some property'; + return rT; + } + + var tick; + + if (glucose_status.delta > -0.5) { + tick = "+" + round(glucose_status.delta,0); + } else { + tick = round(glucose_status.delta,0); + } + var minDelta = Math.min(glucose_status.delta, glucose_status.short_avgdelta, glucose_status.long_avgdelta); + var minAvgDelta = Math.min(glucose_status.short_avgdelta, glucose_status.long_avgdelta); + + var sens = profile.sens; + if (typeof autosens_data !== 'undefined' ) { + sens = profile.sens / autosens_data.ratio; + sens = round(sens, 1); + if (sens != profile.sens) { + console.error("Adjusting sens from "+profile.sens+" to "+sens); + } + } + + //calculate BG impact: the amount BG "should" be rising or falling based on insulin activity alone + var bgi = round(( -iob_data.activity * sens * 5 ), 2); + // project deviations for 30 minutes + var deviation = Math.round( 30 / 5 * ( minDelta - bgi ) ); + // don't overreact to a big negative delta: use minAvgDelta if deviation is negative + if (deviation < 0) { + deviation = Math.round( (30 / 5) * ( minAvgDelta - bgi ) ); + } + + // calculate the naive (bolus calculator math) eventual BG based on net IOB and sensitivity + if (iob_data.iob > 0) { + var naive_eventualBG = Math.round( bg - (iob_data.iob * sens) ); + } else { // if IOB is negative, be more conservative and use the lower of sens, profile.sens + var naive_eventualBG = Math.round( bg - (iob_data.iob * Math.min(sens, profile.sens) ) ); + } + // and adjust it for the deviation above + var eventualBG = naive_eventualBG + deviation; + // calculate what portion of that is due to bolussnooze + var bolusContrib = iob_data.bolussnooze * sens; + // and add it back in to get snoozeBG, plus another 50% to avoid low-temping at mealtime + var naive_snoozeBG = Math.round( naive_eventualBG + 1.5 * bolusContrib ); + // adjust that for deviation like we did eventualBG + var snoozeBG = naive_snoozeBG + deviation; + + var expectedDelta = calculate_expected_delta(profile.dia, target_bg, eventualBG, bgi); + if (typeof eventualBG === 'undefined' || isNaN(eventualBG)) { + rT.error ='Error: could not calculate eventualBG'; + return rT; + } + + // min_bg of 90 -> threshold of 70, 110 -> 80, and 130 -> 90 + var threshold = min_bg - 0.5*(min_bg-50); + + rT = { + 'temp': 'absolute' + , 'bg': bg + , 'tick': tick + , 'eventualBG': eventualBG + , 'snoozeBG': snoozeBG + }; + + var basaliob; + if (iob_data.basaliob) { basaliob = iob_data.basaliob; } + else { basaliob = iob_data.iob - iob_data.bolussnooze; } + + // generate predicted future BGs based on IOB, COB, and current absorption rate + + var COBpredBGs = []; + var aCOBpredBGs = []; + var IOBpredBGs = []; + COBpredBGs.push(bg); + aCOBpredBGs.push(bg); + IOBpredBGs.push(bg); + //console.error(meal_data); + // carb impact and duration are 0 unless changed below + var ci = 0; + var cid = 0; + // calculate current carb absorption rate, and how long to absorb all carbs + // CI = current carb impact on BG in mg/dL/5m + ci = Math.round((minDelta - bgi)*10)/10; + if (meal_data.mealCOB * 2 > meal_data.carbs) { + // set ci to a minimum of 3mg/dL/5m (default) if less than half of carbs have absorbed + ci = Math.max(profile.min_5m_carbimpact, ci); + } + aci = 10; + //5m data points = g * (1U/10g) * (40mg/dL/1U) / (mg/dL/5m) + cid = meal_data.mealCOB * ( sens / profile.carb_ratio ) / ci; + acid = meal_data.mealCOB * ( sens / profile.carb_ratio ) / aci; + console.error("Carb Impact:",ci,"mg/dL per 5m; CI Duration:",Math.round(10*cid/6)/10,"hours"); + console.error("Accel. Carb Impact:",aci,"mg/dL per 5m; ACI Duration:",Math.round(10*acid/6)/10,"hours"); + var minPredBG = 999; + var maxPredBG = bg; + var eventualPredBG = bg; + try { + iobArray.forEach(function(iobTick) { + //console.error(iobTick); + predBGI = round(( -iobTick.activity * sens * 5 ), 2); + // predicted deviation impact drops linearly from current deviation down to zero + // over 60 minutes (data points every 5m) + predDev = ci * ( 1 - Math.min(1,IOBpredBGs.length/(60/5)) ); + IOBpredBG = IOBpredBGs[IOBpredBGs.length-1] + predBGI + predDev; + //IOBpredBG = IOBpredBGs[IOBpredBGs.length-1] + predBGI; + // predicted carb impact drops linearly from current carb impact down to zero + // eventually accounting for all carbs (if they can be absorbed over DIA) + predCI = Math.max(0, ci * ( 1 - COBpredBGs.length/Math.max(cid*2,1) ) ); + predACI = Math.max(0, aci * ( 1 - COBpredBGs.length/Math.max(acid*2,1) ) ); + COBpredBG = COBpredBGs[COBpredBGs.length-1] + predBGI + Math.min(0,predDev) + predCI; + aCOBpredBG = aCOBpredBGs[aCOBpredBGs.length-1] + predBGI + Math.min(0,predDev) + predACI; + //console.error(predBGI, predCI, predBG); + IOBpredBGs.push(IOBpredBG); + COBpredBGs.push(COBpredBG); + aCOBpredBGs.push(aCOBpredBG); + // wait 45m before setting minPredBG + if ( COBpredBGs.length > 9 && (COBpredBG < minPredBG) ) { minPredBG = COBpredBG; } + if ( COBpredBG > maxPredBG ) { maxPredBG = COBpredBG; } + }); + // set eventualBG to include effect of carbs + //console.error("PredBGs:",JSON.stringify(predBGs)); + } catch (e) { + console.error("Problem with iobArray. Optional feature Advanced Meal Assist disabled."); + } + rT.predBGs = {}; + IOBpredBGs.forEach(function(p, i, theArray) { + theArray[i] = Math.round(Math.min(401,Math.max(39,p))); + }); + for (var i=IOBpredBGs.length-1; i > 12; i--) { + if (IOBpredBGs[i-1] != IOBpredBGs[i]) { break; } + else { IOBpredBGs.pop(); } + } + rT.predBGs.IOB = IOBpredBGs; + if (meal_data.mealCOB > 0) { + aCOBpredBGs.forEach(function(p, i, theArray) { + theArray[i] = Math.round(Math.min(401,Math.max(39,p))); + }); + for (var i=aCOBpredBGs.length-1; i > 12; i--) { + if (aCOBpredBGs[i-1] != aCOBpredBGs[i]) { break; } + else { aCOBpredBGs.pop(); } + } + rT.predBGs.aCOB = aCOBpredBGs; + } + if (meal_data.mealCOB > 0 && ci > 0 ) { + COBpredBGs.forEach(function(p, i, theArray) { + theArray[i] = Math.round(Math.min(401,Math.max(39,p))); + }); + for (var i=COBpredBGs.length-1; i > 12; i--) { + if (COBpredBGs[i-1] != COBpredBGs[i]) { break; } + else { COBpredBGs.pop(); } + } + rT.predBGs.COB = COBpredBGs; + eventualBG = Math.max(eventualBG, Math.round(COBpredBGs[COBpredBGs.length-1]) ); + rT.eventualBG = eventualBG; + minPredBG = Math.min(minPredBG, eventualBG); + // set snoozeBG to minPredBG + snoozeBG = Math.round(Math.max(snoozeBG,minPredBG)); + rT.snoozeBG = snoozeBG; + } + + rT.COB=meal_data.mealCOB; + rT.IOB=iob_data.iob; + rT.reason="COB: " + meal_data.mealCOB + ", Dev: " + deviation + ", BGI: " + bgi + ", ISF: " + convert_bg(sens, profile) + ", Target: " + convert_bg(target_bg, profile) + "; "; + if (bg < threshold) { // low glucose suspend mode: BG is < ~80 + rT.reason += "BG " + convert_bg(bg, profile) + "<" + convert_bg(threshold, profile); + if ((glucose_status.delta <= 0 && minDelta <= 0) || (glucose_status.delta < expectedDelta && minDelta < expectedDelta) || bg < 60 ) { + // BG is still falling / rising slower than predicted + return tempBasalFunctions.setTempBasal(0, 30, profile, rT, currenttemp); + } + if (glucose_status.delta > minDelta) { + rT.reason += ", delta " + glucose_status.delta + ">0"; + } else { + rT.reason += ", min delta " + minDelta.toFixed(2) + ">0"; + } + if (currenttemp.duration > 15 && (round_basal(basal, profile) === round_basal(currenttemp.rate, profile))) { + rT.reason += ", temp " + currenttemp.rate + " ~ req " + basal + "U/hr"; + return rT; + } else { + rT.reason += "; setting current basal of " + basal + " as temp"; + return tempBasalFunctions.setTempBasal(basal, 30, profile, rT, currenttemp); + } + } + + if (eventualBG < min_bg) { // if eventual BG is below target: + rT.reason += "Eventual BG " + convert_bg(eventualBG, profile) + " < " + convert_bg(min_bg, profile); + // if 5m or 30m avg BG is rising faster than expected delta + if (minDelta > expectedDelta && minDelta > 0) { + if (glucose_status.delta > minDelta) { + rT.reason += ", but Delta " + tick + " > Exp. Delta " + expectedDelta; + } else { + rT.reason += ", but Min. Delta " + minDelta.toFixed(2) + " > Exp. Delta " + expectedDelta; + } + if (currenttemp.duration > 15 && (round_basal(basal, profile) === round_basal(currenttemp.rate, profile))) { + rT.reason += ", temp " + currenttemp.rate + " ~ req " + basal + "U/hr"; + return rT; + } else { + rT.reason += "; setting current basal of " + basal + " as temp"; + return tempBasalFunctions.setTempBasal(basal, 30, profile, rT, currenttemp); + } + } + + if (eventualBG < min_bg) { + // if we've bolused recently, we can snooze until the bolus IOB decays (at double speed) + if (snoozeBG > min_bg) { // if adding back in the bolus contribution BG would be above min + rT.reason += ", bolus snooze: eventual BG range " + convert_bg(eventualBG, profile) + "-" + convert_bg(snoozeBG, profile); + //console.error(currenttemp, basal ); + if (currenttemp.duration > 15 && (round_basal(basal, profile) === round_basal(currenttemp.rate, profile))) { + rT.reason += ", temp " + currenttemp.rate + " ~ req " + basal + "U/hr"; + return rT; + } else { + rT.reason += "; setting current basal of " + basal + " as temp"; + return tempBasalFunctions.setTempBasal(basal, 30, profile, rT, currenttemp); + } + } else { + // calculate 30m low-temp required to get projected BG up to target + // use snoozeBG to more gradually ramp in any counteraction of the user's boluses + // multiply by 2 to low-temp faster for increased hypo safety + var insulinReq = 2 * Math.min(0, (snoozeBG - target_bg) / sens); + insulinReq = round( insulinReq , 2); + if (minDelta < 0 && minDelta > expectedDelta) { + // if we're barely falling, newinsulinReq should be barely negative + rT.reason += ", Snooze BG " + convert_bg(snoozeBG, profile); + var newinsulinReq = round(( insulinReq * (minDelta / expectedDelta) ), 2); + //console.error("Increasing insulinReq from " + insulinReq + " to " + newinsulinReq); + insulinReq = newinsulinReq; + } + // rate required to deliver insulinReq less insulin over 30m: + var rate = basal + (2 * insulinReq); + rate = round_basal(rate, profile); + // if required temp < existing temp basal + var insulinScheduled = currenttemp.duration * (currenttemp.rate - basal) / 60; + if (insulinScheduled < insulinReq - basal*0.3) { // if current temp would deliver a lot (30% of basal) less than the required insulin, raise the rate + rT.reason += ", "+currenttemp.duration + "m@" + (currenttemp.rate - basal).toFixed(3) + " = " + insulinScheduled.toFixed(3) + " < req " + insulinReq + "-" + basal*0.3; + return tempBasalFunctions.setTempBasal(rate, 30, profile, rT, currenttemp); + } + if (typeof currenttemp.rate !== 'undefined' && (currenttemp.duration > 5 && rate >= currenttemp.rate * 0.8)) { + rT.reason += ", temp " + currenttemp.rate + " ~< req " + rate + "U/hr"; + return rT; + } else { + rT.reason += ", setting " + rate + "U/hr"; + return tempBasalFunctions.setTempBasal(rate, 30, profile, rT, currenttemp); + } + } + } + } + + var minutes_running; + if (typeof currenttemp.duration == 'undefined' || currenttemp.duration == 0) { + minutes_running = 30; + } else if (typeof currenttemp.minutesrunning !== 'undefined'){ + // If the time the current temp is running is not defined, use default request duration of 30 minutes. + minutes_running = currenttemp.minutesrunning; + } else { + minutes_running = 30 - currenttemp.duration; + } + + // if there is a low-temp running, and eventualBG would be below min_bg without it, let it run + if (round_basal(currenttemp.rate, profile) < round_basal(basal, profile) ) { + var lowtempimpact = (currenttemp.rate - basal) * ((30-minutes_running)/60) * sens; + var adjEventualBG = eventualBG + lowtempimpact; + if ( adjEventualBG < min_bg ) { + rT.reason += "letting low temp of " + currenttemp.rate + " run."; + return rT; + } + } + + // if eventual BG is above min but BG is falling faster than expected Delta + if (minDelta < expectedDelta) { + if (glucose_status.delta < minDelta) { + rT.reason += "Eventual BG " + convert_bg(eventualBG, profile) + " > " + convert_bg(min_bg, profile) + " but Delta " + tick + " < Exp. Delta " + expectedDelta; + } else { + rT.reason += "Eventual BG " + convert_bg(eventualBG, profile) + " > " + convert_bg(min_bg, profile) + " but Min. Delta " + minDelta.toFixed(2) + " < Exp. Delta " + expectedDelta; + } + if (currenttemp.duration > 15 && (round_basal(basal, profile) === round_basal(currenttemp.rate, profile))) { + rT.reason += ", temp " + currenttemp.rate + " ~ req " + basal + "U/hr"; + return rT; + } else { + rT.reason += "; setting current basal of " + basal + " as temp"; + return tempBasalFunctions.setTempBasal(basal, 30, profile, rT, currenttemp); + } + } + // eventualBG or snoozeBG (from minPredBG) is below max_bg + if (eventualBG < max_bg || snoozeBG < max_bg) { + // if there is a high-temp running and eventualBG > max_bg, let it run + if (eventualBG > max_bg && round_basal(currenttemp.rate, profile) > round_basal(basal, profile) ) { + rT.reason += ", " + eventualBG + " > " + max_bg + ": no action required (letting high temp of " + currenttemp.rate + " run)." + return rT; + } + + rT.reason += convert_bg(eventualBG, profile)+"-"+convert_bg(snoozeBG, profile)+" in range: no temp required"; + if (currenttemp.duration > 15 && (round_basal(basal, profile) === round_basal(currenttemp.rate, profile))) { + rT.reason += ", temp " + currenttemp.rate + " ~ req " + basal + "U/hr"; + return rT; + } else { + rT.reason += "; setting current basal of " + basal + " as temp"; + return tempBasalFunctions.setTempBasal(basal, 30, profile, rT, currenttemp); + } + } + + // eventual BG is at/above target: + // if iob is over max, just cancel any temps + var basaliob; + if (iob_data.basaliob) { basaliob = iob_data.basaliob; } + else { basaliob = iob_data.iob - iob_data.bolussnooze; } + rT.reason += "Eventual BG " + convert_bg(eventualBG, profile) + " >= " + convert_bg(max_bg, profile) + ", "; + if (basaliob > max_iob) { + rT.reason += "basaliob " + round(basaliob,2) + " > max_iob " + max_iob; + if (currenttemp.duration > 15 && (round_basal(basal, profile) === round_basal(currenttemp.rate, profile))) { + rT.reason += ", temp " + currenttemp.rate + " ~ req " + basal + "U/hr"; + return rT; + } else { + rT.reason += "; setting current basal of " + basal + " as temp"; + return tempBasalFunctions.setTempBasal(basal, 30, profile, rT, currenttemp); + } + } else { // otherwise, calculate 30m high-temp required to get projected BG down to target + + // insulinReq is the additional insulin required to get down to max bg: + // if in meal assist mode, check if snoozeBG is lower, as eventualBG is not dependent on IOB + var insulinReq = round( (Math.min(snoozeBG,eventualBG) - target_bg) / sens, 2); + if (minDelta < 0 && minDelta > expectedDelta) { + var newinsulinReq = round(( insulinReq * (1 - (minDelta / expectedDelta)) ), 2); + //console.error("Reducing insulinReq from " + insulinReq + " to " + newinsulinReq); + insulinReq = newinsulinReq; + } + // if that would put us over max_iob, then reduce accordingly + if (insulinReq > max_iob-basaliob) { + rT.reason += "max_iob " + max_iob + ", "; + insulinReq = max_iob-basaliob; + } + + // rate required to deliver insulinReq more insulin over 30m: + var rate = basal + (2 * insulinReq); + rate = round_basal(rate, profile); + +// var maxSafeBasal = Math.min(profile.max_basal, 3 * profile.max_daily_basal, 4 * basal); + + var maxSafeBasal = tempBasalFunctions.getMaxSafeBasal(profile); + + if (rate > maxSafeBasal) { + rT.reason += "adj. req. rate: "+rate+" to maxSafeBasal: "+maxSafeBasal+", "; + rate = round_basal(maxSafeBasal, profile); + } + + var insulinScheduled = currenttemp.duration * (currenttemp.rate - basal) / 60; + if (insulinScheduled >= insulinReq * 2) { // if current temp would deliver >2x more than the required insulin, lower the rate + rT.reason += currenttemp.duration + "m@" + (currenttemp.rate - basal).toFixed(3) + " = " + insulinScheduled.toFixed(3) + " > 2 * req " + insulinReq + ". Setting temp basal of " + rate + "U/hr"; + return tempBasalFunctions.setTempBasal(rate, 30, profile, rT, currenttemp); + } + + if (typeof currenttemp.duration == 'undefined' || currenttemp.duration == 0) { // no temp is set + rT.reason += "no temp, setting " + rate + "U/hr"; + return tempBasalFunctions.setTempBasal(rate, 30, profile, rT, currenttemp); + } + + if (currenttemp.duration > 5 && (round_basal(rate, profile) <= round_basal(currenttemp.rate, profile))) { // if required temp <~ existing temp basal + rT.reason += "temp " + currenttemp.rate + " >~ req " + rate + "U/hr"; + return rT; + } + + // required temp > existing temp basal + rT.reason += "temp " + currenttemp.rate + "<" + rate + "U/hr"; + return tempBasalFunctions.setTempBasal(rate, 30, profile, rT, currenttemp); + } + +}; + +module.exports = determine_basal; diff --git a/app/src/main/java/info/nightscout/androidaps/Config.java b/app/src/main/java/info/nightscout/androidaps/Config.java index 62bdc6eb1a..de4dc5d49b 100644 --- a/app/src/main/java/info/nightscout/androidaps/Config.java +++ b/app/src/main/java/info/nightscout/androidaps/Config.java @@ -7,7 +7,7 @@ public class Config { // MAIN FUCTIONALITY public static final boolean APS = BuildConfig.APS; // PLUGINS - public static final boolean OPENAPSMAENABLED = APS; + public static final boolean OPENAPSENABLED = APS; public static final boolean LOOPENABLED = APS; public static final boolean WEAR = BuildConfig.WEAR; diff --git a/app/src/main/java/info/nightscout/androidaps/Constants.java b/app/src/main/java/info/nightscout/androidaps/Constants.java index 6cd7c764dd..52cb5d85a1 100644 --- a/app/src/main/java/info/nightscout/androidaps/Constants.java +++ b/app/src/main/java/info/nightscout/androidaps/Constants.java @@ -6,7 +6,7 @@ import com.j256.ormlite.stmt.query.In; * Created by mike on 07.06.2016. */ public class Constants { - public static final String MGDL = "mg/dl"; // This is Nightscout representation + public static final String MGDL = "mg/dl"; // This is Nightscout's representation public static final String MMOL = "mmol"; public static final double MMOLL_TO_MGDL = 18; // 18.0182; @@ -24,5 +24,32 @@ public class Constants { public static final long keepAliveMsecs = 5 * 60 * 1000L; + // SMS COMMUNICATOR public static final long remoteBolusMinDistance = 15 * 60 * 1000L; + + // Circadian Percentage Profile + public static final int CPP_MIN_PERCENTAGE = 50; + public static final int CPP_MAX_PERCENTAGE = 200; + + // Defaults for settings + public static final String MAX_BG_DEFAULT_MGDL = "180"; + public static final String MAX_BG_DEFAULT_MMOL = "10"; + public static final String MIN_BG_DEFAULT_MGDL = "100"; + public static final String MIN_BG_DEFAULT_MMOL = "5"; + public static final String TARGET_BG_DEFAULT_MGDL = "150"; + public static final String TARGET_BG_DEFAULT_MMOL = "7"; + + // Very Hard Limits Ranges + // First value is the Lowest and second value is the Highest a Limit can define + public static final int[] VERY_HARD_LIMIT_MIN_BG = {72,180}; + public static final int[] VERY_HARD_LIMIT_MAX_BG = {90,270}; + public static final int[] VERY_HARD_LIMIT_TARGET_BG = {80,200}; + + // Very Hard Limits Ranges for Temp Targets + public static final int[] VERY_HARD_LIMIT_TEMP_MIN_BG = {72,180}; + public static final int[] VERY_HARD_LIMIT_TEMP_MAX_BG = {72,270}; + public static final int[] VERY_HARD_LIMIT_TEMP_TARGET_BG = {72,200}; + + //DanaR + public static final double dailyLimitWarning = 0.95d; } diff --git a/app/src/main/java/info/nightscout/androidaps/MainActivity.java b/app/src/main/java/info/nightscout/androidaps/MainActivity.java index 2bd72f178b..36931ccd5b 100644 --- a/app/src/main/java/info/nightscout/androidaps/MainActivity.java +++ b/app/src/main/java/info/nightscout/androidaps/MainActivity.java @@ -1,15 +1,16 @@ package info.nightscout.androidaps; import android.Manifest; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.content.pm.PackageManager; +import android.graphics.Rect; import android.os.Build; import android.os.Bundle; import android.preference.PreferenceManager; import android.support.v4.app.ActivityCompat; -import android.support.v4.app.Fragment; import android.support.v4.content.ContextCompat; import android.support.v4.view.ViewPager; import android.support.v7.app.AlertDialog; @@ -17,6 +18,10 @@ import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.Menu; import android.view.MenuItem; +import android.view.MotionEvent; +import android.view.View; +import android.view.inputmethod.InputMethodManager; +import android.widget.EditText; import com.joanzapata.iconify.Iconify; import com.joanzapata.iconify.fonts.FontAwesomeModule; @@ -29,12 +34,12 @@ import info.nightscout.androidaps.events.EventAppExit; import info.nightscout.androidaps.events.EventPreferenceChange; import info.nightscout.androidaps.events.EventRefreshGui; import info.nightscout.androidaps.interfaces.PluginBase; -import info.nightscout.androidaps.plugins.DanaR.Services.ExecutionService; -import info.nightscout.androidaps.receivers.KeepAliveReceiver; import info.nightscout.androidaps.tabs.SlidingTabLayout; import info.nightscout.androidaps.tabs.TabPageAdapter; +import info.nightscout.utils.LogDialog; import info.nightscout.utils.ImportExportPrefs; import info.nightscout.utils.LocaleHelper; +import info.nightscout.utils.PasswordProtection; public class MainActivity extends AppCompatActivity { private static Logger log = LoggerFactory.getLogger(MainActivity.class); @@ -121,8 +126,13 @@ public class MainActivity extends AppCompatActivity { int id = item.getItemId(); switch (id) { case R.id.nav_preferences: - Intent i = new Intent(getApplicationContext(), PreferencesActivity.class); - startActivity(i); + PasswordProtection.QueryPassword(this, R.string.settings_password, "settings_password", new Runnable() { + @Override + public void run() { + Intent i = new Intent(getApplicationContext(), PreferencesActivity.class); + startActivity(i); + } + }, null); break; case R.id.nav_resetdb: new AlertDialog.Builder(this) @@ -145,6 +155,9 @@ public class MainActivity extends AppCompatActivity { ImportExportPrefs.verifyStoragePermissions(this); ImportExportPrefs.importSharedPreferences(this); break; + case R.id.nav_show_logcat: + LogDialog.showLogcat(this); + break; // case R.id.nav_test_alarm: // final int REQUEST_CODE_ASK_PERMISSIONS = 2355; // int permission = ActivityCompat.checkSelfPermission(this, Manifest.permission.SYSTEM_ALERT_WINDOW); @@ -258,4 +271,21 @@ public class MainActivity extends AppCompatActivity { } } } + + @Override + public boolean dispatchTouchEvent(MotionEvent event) { + if (event.getAction() == MotionEvent.ACTION_DOWN) { + View v = getCurrentFocus(); + if ( v instanceof EditText) { + Rect outRect = new Rect(); + v.getGlobalVisibleRect(outRect); + if (!outRect.contains((int)event.getRawX(), (int)event.getRawY())) { + v.clearFocus(); + InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); + imm.hideSoftInputFromWindow(v.getWindowToken(), 0); + } + } + } + return super.dispatchTouchEvent(event); + } } diff --git a/app/src/main/java/info/nightscout/androidaps/MainApp.java b/app/src/main/java/info/nightscout/androidaps/MainApp.java index 2c5f46a259..415e30c1ce 100644 --- a/app/src/main/java/info/nightscout/androidaps/MainApp.java +++ b/app/src/main/java/info/nightscout/androidaps/MainApp.java @@ -29,6 +29,7 @@ import info.nightscout.androidaps.plugins.Loop.LoopFragment; import info.nightscout.androidaps.plugins.MDI.MDIFragment; import info.nightscout.androidaps.plugins.NSProfile.NSProfileFragment; import info.nightscout.androidaps.plugins.Objectives.ObjectivesFragment; +import info.nightscout.androidaps.plugins.OpenAPSAMA.OpenAPSAMAFragment; import info.nightscout.androidaps.plugins.OpenAPSMA.OpenAPSMAFragment; import info.nightscout.androidaps.plugins.Overview.OverviewFragment; import info.nightscout.androidaps.plugins.SafetyFragment.SafetyFragment; @@ -38,6 +39,7 @@ import info.nightscout.androidaps.plugins.SourceMM640g.SourceMM640gFragment; import info.nightscout.androidaps.plugins.SourceNSClient.SourceNSClientFragment; import info.nightscout.androidaps.plugins.SourceXdrip.SourceXdripFragment; import info.nightscout.androidaps.plugins.TempBasals.TempBasalsFragment; +import info.nightscout.androidaps.plugins.TempTargetRange.TempTargetRangeFragment; import info.nightscout.androidaps.plugins.Treatments.TreatmentsFragment; import info.nightscout.androidaps.plugins.VirtualPump.VirtualPumpFragment; import info.nightscout.androidaps.plugins.Wear.WearFragment; @@ -82,11 +84,13 @@ public class MainApp extends Application { pluginsList.add(MDIFragment.getPlugin()); pluginsList.add(VirtualPumpFragment.getPlugin()); if (Config.LOOPENABLED) pluginsList.add(LoopFragment.getPlugin()); - if (Config.OPENAPSMAENABLED) pluginsList.add(OpenAPSMAFragment.getPlugin()); + if (Config.OPENAPSENABLED) pluginsList.add(OpenAPSMAFragment.getPlugin()); + if (Config.OPENAPSENABLED) pluginsList.add(OpenAPSAMAFragment.getPlugin()); pluginsList.add(NSProfileFragment.getPlugin()); pluginsList.add(SimpleProfileFragment.getPlugin()); pluginsList.add(LocalProfileFragment.getPlugin()); pluginsList.add(CircadianPercentageProfileFragment.getPlugin()); + if (Config.APS) pluginsList.add(TempTargetRangeFragment.getPlugin()); pluginsList.add(TreatmentsFragment.getPlugin()); pluginsList.add(TempBasalsFragment.getPlugin()); pluginsList.add(SafetyFragment.getPlugin()); diff --git a/app/src/main/java/info/nightscout/androidaps/PreferencesActivity.java b/app/src/main/java/info/nightscout/androidaps/PreferencesActivity.java index f6edcdd827..f0d60cae19 100644 --- a/app/src/main/java/info/nightscout/androidaps/PreferencesActivity.java +++ b/app/src/main/java/info/nightscout/androidaps/PreferencesActivity.java @@ -11,13 +11,15 @@ import android.preference.PreferenceFragment; import android.preference.PreferenceGroup; import android.preference.PreferenceManager; + import info.nightscout.androidaps.events.EventPreferenceChange; import info.nightscout.androidaps.events.EventRefreshGui; import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.plugins.DanaR.BluetoothDevicePreference; -import info.nightscout.androidaps.plugins.DanaR.DanaRFragment; import info.nightscout.androidaps.plugins.DanaR.DanaRPlugin; import info.nightscout.androidaps.plugins.DanaRKorean.DanaRKoreanPlugin; +import info.nightscout.androidaps.plugins.OpenAPSAMA.OpenAPSAMAPlugin; +import info.nightscout.androidaps.plugins.VirtualPump.VirtualPumpPlugin; import info.nightscout.utils.LocaleHelper; public class PreferencesActivity extends PreferenceActivity implements SharedPreferences.OnSharedPreferenceChangeListener { @@ -40,6 +42,9 @@ public class PreferencesActivity extends PreferenceActivity implements SharedPre recreate(); MainApp.bus().post(new EventRefreshGui(true)); } + if (key.equals("short_tabtitles")) { + MainApp.bus().post(new EventRefreshGui(true)); + } updatePrefSummary(myPreferenceFragment.getPreference(key)); } @@ -50,10 +55,10 @@ public class PreferencesActivity extends PreferenceActivity implements SharedPre } if (pref instanceof EditTextPreference) { EditTextPreference editTextPref = (EditTextPreference) pref; - if (pref.getTitle().toString().toLowerCase().contains("password")) - { + if (pref.getKey().contains("password")) { pref.setSummary("******"); - } else if (editTextPref.getText() != null && !editTextPref.getText().equals("")){ + } else if (editTextPref.getText() != null && !editTextPref.getText().equals("")) { + ((EditTextPreference) pref).setDialogMessage(editTextPref.getDialogMessage()); pref.setSummary(editTextPref.getText()); } } @@ -78,6 +83,7 @@ public class PreferencesActivity extends PreferenceActivity implements SharedPre @Override public void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); + addPreferencesFromResource(R.xml.pref_password); addPreferencesFromResource(R.xml.pref_quickwizard); addPreferencesFromResource(R.xml.pref_language); if (Config.CAREPORTALENABLED) @@ -85,20 +91,29 @@ public class PreferencesActivity extends PreferenceActivity implements SharedPre addPreferencesFromResource(R.xml.pref_treatments); if (Config.APS) addPreferencesFromResource(R.xml.pref_closedmode); - if (Config.OPENAPSMAENABLED) + if (Config.OPENAPSENABLED) addPreferencesFromResource(R.xml.pref_openapsma); - addPreferencesFromResource(R.xml.pref_nightscout); + if (MainApp.getSpecificPlugin(OpenAPSAMAPlugin.class) != null && MainApp.getSpecificPlugin(OpenAPSAMAPlugin.class).isEnabled(PluginBase.APS)) + addPreferencesFromResource(R.xml.pref_openapsama); + addPreferencesFromResource(R.xml.pref_profile); if (Config.DANAR) { DanaRPlugin danaRPlugin = (DanaRPlugin) MainApp.getSpecificPlugin(DanaRPlugin.class); DanaRKoreanPlugin danaRKoreanPlugin = (DanaRKoreanPlugin) MainApp.getSpecificPlugin(DanaRKoreanPlugin.class); if (danaRPlugin.isEnabled(PluginBase.PUMP) || danaRKoreanPlugin.isEnabled(PluginBase.PUMP)) { addPreferencesFromResource(R.xml.pref_danar); + } + if (danaRPlugin.isEnabled(PluginBase.PROFILE) || danaRKoreanPlugin.isEnabled(PluginBase.PROFILE)) { addPreferencesFromResource(R.xml.pref_danarprofile); } } + VirtualPumpPlugin virtualPumpPlugin = (VirtualPumpPlugin) MainApp.getSpecificPlugin(VirtualPumpPlugin.class); + if (virtualPumpPlugin != null && virtualPumpPlugin.isEnabled(PluginBase.PUMP)) { + addPreferencesFromResource(R.xml.pref_virtualpump); + } if (Config.SMSCOMMUNICATORENABLED) addPreferencesFromResource(R.xml.pref_smscommunicator); addPreferencesFromResource(R.xml.pref_others); + addPreferencesFromResource(R.xml.pref_advanced); initSummary(getPreferenceScreen()); } diff --git a/app/src/main/java/info/nightscout/androidaps/Services/DataService.java b/app/src/main/java/info/nightscout/androidaps/Services/DataService.java index 7ba381f130..100a452ede 100644 --- a/app/src/main/java/info/nightscout/androidaps/Services/DataService.java +++ b/app/src/main/java/info/nightscout/androidaps/Services/DataService.java @@ -6,7 +6,6 @@ import android.content.SharedPreferences; import android.os.Bundle; import android.preference.PreferenceManager; import android.provider.Telephony; -import android.support.annotation.Nullable; import com.j256.ormlite.dao.Dao; import com.j256.ormlite.stmt.PreparedQuery; @@ -29,26 +28,29 @@ import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; import info.nightscout.androidaps.db.BgReading; import info.nightscout.androidaps.db.DanaRHistoryRecord; +import info.nightscout.androidaps.db.TempTarget; import info.nightscout.androidaps.db.Treatment; import info.nightscout.androidaps.events.EventNewBG; import info.nightscout.androidaps.events.EventNewBasalProfile; -import info.nightscout.androidaps.events.EventTreatmentChange; import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.interfaces.PumpInterface; import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.DanaR.History.DanaRNSHistorySync; import info.nightscout.androidaps.plugins.NSProfile.NSProfilePlugin; import info.nightscout.androidaps.plugins.Objectives.ObjectivesPlugin; +import info.nightscout.androidaps.plugins.Overview.Notification; import info.nightscout.androidaps.plugins.Overview.OverviewPlugin; +import info.nightscout.androidaps.plugins.Overview.events.EventDismissNotification; +import info.nightscout.androidaps.plugins.Overview.events.EventNewNotification; import info.nightscout.androidaps.plugins.SmsCommunicator.SmsCommunicatorPlugin; import info.nightscout.androidaps.plugins.SmsCommunicator.events.EventNewSMS; import info.nightscout.androidaps.plugins.SourceMM640g.SourceMM640gPlugin; import info.nightscout.androidaps.plugins.SourceNSClient.SourceNSClientPlugin; import info.nightscout.androidaps.plugins.SourceXdrip.SourceXdripPlugin; +import info.nightscout.androidaps.plugins.TempTargetRange.events.EventTempTargetRangeChange; import info.nightscout.androidaps.receivers.DataReceiver; import info.nightscout.client.data.NSProfile; import info.nightscout.client.data.NSSgv; -import info.nightscout.utils.ToastUtils; public class DataService extends IntentService { @@ -251,10 +253,15 @@ public class DataService extends IntentService { ConfigBuilderPlugin.nsClientVersionCode = bundles.getInt("nsclientversioncode"); // for ver 1.17 contains 117 ConfigBuilderPlugin.nsClientVersionName = bundles.getString("nsclientversionname"); log.debug("Got versions: NSClient: " + ConfigBuilderPlugin.nsClientVersionName + " Nightscout: " + ConfigBuilderPlugin.nightscoutVersionName); - if (ConfigBuilderPlugin.nsClientVersionCode < 118) - ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.sResources.getString(R.string.unsupportedclientver)); + if (ConfigBuilderPlugin.nsClientVersionCode < 121) { + Notification notification = new Notification(Notification.OLD_NSCLIENT, MainApp.sResources.getString(R.string.unsupportedclientver), Notification.URGENT); + MainApp.bus().post(new EventNewNotification(notification)); + } else { + MainApp.bus().post(new EventDismissNotification(Notification.OLD_NSCLIENT)); + } } else { - ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.sResources.getString(R.string.unsupportedclientver)); + Notification notification = new Notification(Notification.OLD_NSCLIENT, MainApp.sResources.getString(R.string.unsupportedclientver), Notification.URGENT); + MainApp.bus().post(new EventNewNotification(notification)); } if (bundles.containsKey("status")) { try { @@ -378,7 +385,8 @@ public class DataService extends IntentService { String trstring = bundles.getString("treatment"); JSONObject trJson = new JSONObject(trstring); String _id = trJson.getString("_id"); - removeTreatmentFromDb(_id); + MainApp.getDbHelper().delete(_id); + handleRemoveTempTargetRecord(trJson); } if (bundles.containsKey("treatments")) { @@ -387,7 +395,8 @@ public class DataService extends IntentService { for (int i = 0; i < jsonArray.length(); i++) { JSONObject trJson = jsonArray.getJSONObject(i); String _id = trJson.getString("_id"); - removeTreatmentFromDb(_id); + MainApp.getDbHelper().delete(_id); + handleRemoveTempTargetRecord(trJson); } } } catch (Exception e) { @@ -443,6 +452,7 @@ public class DataService extends IntentService { private void handleAddedTreatment(String trstring) throws JSONException, SQLException { JSONObject trJson = new JSONObject(trstring); handleDanaRHistoryRecords(trJson); // update record _id in history + handleAddChangeTempTargetRecord(trJson); if (!trJson.has("insulin") && !trJson.has("carbs")) { if (Config.logIncommingData) log.debug("ADD: Uninterested treatment: " + trstring); @@ -455,9 +465,9 @@ public class DataService extends IntentService { if (trJson.has("timeIndex")) { if (Config.logIncommingData) log.debug("ADD: timeIndex found: " + trstring); - stored = findByTimeIndex(trJson.getLong("timeIndex")); + stored = MainApp.getDbHelper().findTreatmentByTimeIndex(trJson.getLong("timeIndex")); } else { - stored = findById(_id); + stored = MainApp.getDbHelper().findTreatmentById(_id); } if (stored != null) { @@ -465,10 +475,9 @@ public class DataService extends IntentService { log.debug("ADD: Existing treatment: " + trstring); if (trJson.has("timeIndex")) { stored._id = _id; - int updated = MainApp.getDbHelper().getDaoTreatments().update(stored); + int updated = MainApp.getDbHelper().update(stored); if (Config.logIncommingData) log.debug("Records updated: " + updated); - scheduleTreatmentChange(); } } else { if (Config.logIncommingData) @@ -480,25 +489,29 @@ public class DataService extends IntentService { treatment.created_at = new Date(trJson.getLong("mills")); if (trJson.has("eventType")) { treatment.mealBolus = true; - if (trJson.get("eventType").equals("Correction Bolus")) treatment.mealBolus = false; - if (trJson.get("eventType").equals("Bolus Wizard") && treatment.carbs <= 0) + if (trJson.get("eventType").equals("Correction Bolus")) + treatment.mealBolus = false; + double carbs = treatment.carbs; + if (trJson.has("boluscalc")) { + JSONObject boluscalc = trJson.getJSONObject("boluscalc"); + if (boluscalc.has("carbs")) { + carbs = Math.max(boluscalc.getDouble("carbs"), carbs); + } + } + if (carbs <= 0) treatment.mealBolus = false; } treatment.setTimeIndex(treatment.getTimeIndex()); - try { - MainApp.getDbHelper().getDaoTreatments().createOrUpdate(treatment); - if (Config.logIncommingData) - log.debug("ADD: Stored treatment: " + treatment.log()); - } catch (SQLException e) { - e.printStackTrace(); - } - scheduleTreatmentChange(); + MainApp.getDbHelper().createOrUpdate(treatment); + if (Config.logIncommingData) + log.debug("ADD: Stored treatment: " + treatment.log()); } } private void handleChangedTreatment(String trstring) throws JSONException, SQLException { JSONObject trJson = new JSONObject(trstring); handleDanaRHistoryRecords(trJson); // update record _id in history + handleAddChangeTempTargetRecord(trJson); if (!trJson.has("insulin") && !trJson.has("carbs")) { if (Config.logIncommingData) log.debug("CHANGE: Uninterested treatment: " + trstring); @@ -511,15 +524,15 @@ public class DataService extends IntentService { if (trJson.has("timeIndex")) { if (Config.logIncommingData) log.debug("ADD: timeIndex found: " + trstring); - stored = findByTimeIndex(trJson.getLong("timeIndex")); + stored = MainApp.getDbHelper().findTreatmentByTimeIndex(trJson.getLong("timeIndex")); } else { - stored = findById(_id); + stored = MainApp.getDbHelper().findTreatmentById(_id); } if (stored != null) { if (Config.logIncommingData) log.debug("CHANGE: Removing old: " + trstring); - removeTreatmentFromDb(_id); + MainApp.getDbHelper().delete(_id); } if (Config.logIncommingData) @@ -532,21 +545,24 @@ public class DataService extends IntentService { treatment.created_at = new Date(trJson.getLong("mills")); if (trJson.has("eventType")) { treatment.mealBolus = true; - if (trJson.get("eventType").equals("Correction Bolus")) treatment.mealBolus = false; - if (trJson.get("eventType").equals("Bolus Wizard") && treatment.carbs <= 0) + if (trJson.get("eventType").equals("Correction Bolus")) + treatment.mealBolus = false; + double carbs = treatment.carbs; + if (trJson.has("boluscalc")) { + JSONObject boluscalc = trJson.getJSONObject("boluscalc"); + if (boluscalc.has("carbs")) { + carbs = Math.max(boluscalc.getDouble("carbs"), carbs); + } + } + if (carbs <= 0) treatment.mealBolus = false; } treatment.setTimeIndex(treatment.getTimeIndex()); - try { - Dao.CreateOrUpdateStatus status = MainApp.getDbHelper().getDaoTreatments().createOrUpdate(treatment); - if (Config.logIncommingData) - log.debug("Records updated: " + status.getNumLinesChanged()); - if (Config.logIncommingData) - log.debug("CHANGE: Stored treatment: " + treatment.log()); - } catch (SQLException e) { - e.printStackTrace(); - } - scheduleTreatmentChange(); + Dao.CreateOrUpdateStatus status = MainApp.getDbHelper().createOrUpdate(treatment); + if (Config.logIncommingData) + log.debug("Records updated: " + status.getNumLinesChanged()); + if (Config.logIncommingData) + log.debug("CHANGE: Stored treatment: " + treatment.log()); } public void handleDanaRHistoryRecords(JSONObject trJson) throws JSONException, SQLException { @@ -573,63 +589,83 @@ public class DataService extends IntentService { } } - @Nullable - public static Treatment findById(String _id) { - try { - Dao daoTreatments = MainApp.getDbHelper().getDaoTreatments(); - QueryBuilder queryBuilder = daoTreatments.queryBuilder(); - Where where = queryBuilder.where(); - where.eq("_id", _id); - queryBuilder.limit(10); - PreparedQuery preparedQuery = queryBuilder.prepare(); - List trList = daoTreatments.query(preparedQuery); - if (trList.size() != 1) { - //log.debug("Treatment findById query size: " + trList.size()); - return null; - } else { - //log.debug("Treatment findById found: " + trList.get(0).log()); - return trList.get(0); - } - } catch (SQLException e) { - e.printStackTrace(); - } - return null; - } + /* + { + "_id": "58795998aa86647ba4d68ce7", + "enteredBy": "", + "eventType": "Temporary Target", + "reason": "Eating Soon", + "targetTop": 80, + "targetBottom": 80, + "duration": 120, + "created_at": "2017-01-13T22:50:00.782Z", + "carbs": null, + "insulin": null +} + */ - @Nullable - public static Treatment findByTimeIndex(Long timeIndex) { - try { - QueryBuilder qb = null; - Dao daoTreatments = MainApp.getDbHelper().getDaoTreatments(); - QueryBuilder queryBuilder = daoTreatments.queryBuilder(); - Where where = queryBuilder.where(); - where.eq("timeIndex", timeIndex); - queryBuilder.limit(10); - PreparedQuery preparedQuery = queryBuilder.prepare(); - List trList = daoTreatments.query(preparedQuery); - if (trList.size() != 1) { - log.debug("Treatment findByTimeIndex query size: " + trList.size()); - return null; - } else { - log.debug("Treatment findByTimeIndex found: " + trList.get(0).log()); - return trList.get(0); - } - } catch (SQLException e) { - e.printStackTrace(); - } - return null; - } - - private void removeTreatmentFromDb(String _id) throws SQLException { - Treatment stored = findById(_id); - if (stored != null) { - log.debug("REMOVE: Existing treatment (removing): " + _id); - int removed = MainApp.getDbHelper().getDaoTreatments().delete(stored); + public void handleAddChangeTempTargetRecord(JSONObject trJson) throws JSONException, SQLException { + if (trJson.has("eventType") && trJson.getString("eventType").equals("Temporary Target")) { if (Config.logIncommingData) - log.debug("Records removed: " + removed); - scheduleTreatmentChange(); - } else { - log.debug("REMOVE: Not stored treatment (ignoring): " + _id); + log.debug("Processing TempTarget record: " + trJson.toString()); + Dao daoTempTargets = MainApp.getDbHelper().getDaoTempTargets(); + QueryBuilder queryBuilder = daoTempTargets.queryBuilder(); + Where where = queryBuilder.where(); + where.eq("_id", trJson.getString("_id")).or().eq("timeIndex", trJson.getLong("mills")); + PreparedQuery preparedQuery = queryBuilder.prepare(); + List list = daoTempTargets.query(preparedQuery); + NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile(); + if (profile == null) return; // no profile data, better ignore than do something wrong + String units = profile.getUnits(); + if (list.size() == 0) { + // Record does not exists. add + TempTarget newRecord = new TempTarget(); + newRecord.timeStart = new Date(trJson.getLong("mills")); + newRecord.duration = trJson.getInt("duration"); + newRecord.low = NSProfile.toMgdl(trJson.getDouble("targetBottom"), units); + newRecord.high = NSProfile.toMgdl(trJson.getDouble("targetTop"), units); + newRecord.reason = trJson.getString("reason"); + newRecord._id = trJson.getString("_id"); + newRecord.setTimeIndex(newRecord.getTimeIndex()); + daoTempTargets.createIfNotExists(newRecord); + if (Config.logIncommingData) + log.debug("Adding TempTarget record to database: " + newRecord.log()); + MainApp.bus().post(new EventTempTargetRangeChange()); + } else if (list.size() == 1) { + if (Config.logIncommingData) + log.debug("Updating TempTarget record in database: " + trJson.getString("_id")); + TempTarget record = list.get(0); + record.timeStart = new Date(trJson.getLong("mills")); + record.duration = trJson.getInt("duration"); + record.low = NSProfile.toMgdl(trJson.getDouble("targetBottom"), units); + record.high = NSProfile.toMgdl(trJson.getDouble("targetTop"), units); + record.reason = trJson.getString("reason"); + record._id = trJson.getString("_id"); + daoTempTargets.update(record); + MainApp.bus().post(new EventTempTargetRangeChange()); + } + } + } + + public void handleRemoveTempTargetRecord(JSONObject trJson) throws JSONException, SQLException { + if (trJson.has("_id")) { + Dao daoTempTargets = MainApp.getDbHelper().getDaoTempTargets(); + QueryBuilder queryBuilder = daoTempTargets.queryBuilder(); + Where where = queryBuilder.where(); + where.eq("_id", trJson.getString("_id")); + PreparedQuery preparedQuery = queryBuilder.prepare(); + List list = daoTempTargets.query(preparedQuery); + + if (list.size() == 1) { + TempTarget record = list.get(0); + if (Config.logIncommingData) + log.debug("Removing TempTarget record from database: " + record.log()); + daoTempTargets.delete(record); + MainApp.bus().post(new EventTempTargetRangeChange()); + } else { + if (Config.logIncommingData) + log.debug("TempTarget not found database: " + trJson.toString()); + } } } @@ -639,9 +675,4 @@ public class DataService extends IntentService { MainApp.bus().post(new EventNewSMS(bundle)); } - public void scheduleTreatmentChange() { - MainApp.bus().post(new EventTreatmentChange()); - } - - } diff --git a/app/src/main/java/info/nightscout/androidaps/Services/Intents.java b/app/src/main/java/info/nightscout/androidaps/Services/Intents.java index e46071e7ff..921b04b936 100644 --- a/app/src/main/java/info/nightscout/androidaps/Services/Intents.java +++ b/app/src/main/java/info/nightscout/androidaps/Services/Intents.java @@ -31,4 +31,6 @@ public interface Intents { String ACTION_NEW_BG_ESTIMATE_NO_DATA = "com.eveningoutpost.dexdrip.BgEstimateNoData"; String NS_EMULATOR = "com.eveningoutpost.dexdrip.NS_EMULATOR"; + + String ACTION_REMOTE_CALIBRATION = "com.eveningoutpost.dexdrip.NewCalibration"; } diff --git a/app/src/main/java/info/nightscout/androidaps/data/GlucoseStatus.java b/app/src/main/java/info/nightscout/androidaps/data/GlucoseStatus.java new file mode 100644 index 0000000000..9fc8bd0ff4 --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/data/GlucoseStatus.java @@ -0,0 +1,189 @@ +package info.nightscout.androidaps.data; + +import android.content.SharedPreferences; +import android.preference.PreferenceManager; +import android.support.annotation.Nullable; +import android.text.Html; +import android.text.Spanned; + +import com.j256.ormlite.dao.Dao; +import com.j256.ormlite.stmt.PreparedQuery; +import com.j256.ormlite.stmt.QueryBuilder; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import info.nightscout.androidaps.MainApp; +import info.nightscout.androidaps.R; +import info.nightscout.androidaps.db.BgReading; +import info.nightscout.utils.DecimalFormatter; +import info.nightscout.utils.Round; + +/** + * Created by mike on 04.01.2017. + */ + +public class GlucoseStatus { + private static Logger log = LoggerFactory.getLogger(GlucoseStatus.class); + public double glucose = 0d; + public double delta = 0d; + public double avgdelta = 0d; + public double short_avgdelta = 0d; + public double long_avgdelta = 0d; + + + @Override + public String toString() { + return MainApp.sResources.getString(R.string.glucose) + " " + DecimalFormatter.to0Decimal(glucose) + " mg/dl\n" + + MainApp.sResources.getString(R.string.delta) + " " + DecimalFormatter.to0Decimal(delta) + " mg/dl\n" + + MainApp.sResources.getString(R.string.short_avgdelta) + " " + DecimalFormatter.to2Decimal(short_avgdelta) + " mg/dl\n" + + MainApp.sResources.getString(R.string.long_avgdelta) + " " + DecimalFormatter.to2Decimal(long_avgdelta) + " mg/dl"; + } + + public Spanned toSpanned() { + return Html.fromHtml("" + MainApp.sResources.getString(R.string.glucose) + ": " + DecimalFormatter.to0Decimal(glucose) + " mg/dl
" + + "" + MainApp.sResources.getString(R.string.delta) + ": " + DecimalFormatter.to0Decimal(delta) + " mg/dl
" + + "" + MainApp.sResources.getString(R.string.short_avgdelta) + ": " + DecimalFormatter.to2Decimal(short_avgdelta) + " mg/dl
" + + "" + MainApp.sResources.getString(R.string.long_avgdelta) + ": " + DecimalFormatter.to2Decimal(long_avgdelta) + " mg/dl"); + } + + public GlucoseStatus() { + } + + public GlucoseStatus round() { + this.glucose = Round.roundTo(this.glucose, 0.1); + this.delta = Round.roundTo(this.delta, 0.01); + this.avgdelta = Round.roundTo(this.avgdelta, 0.01); + this.short_avgdelta = Round.roundTo(this.short_avgdelta, 0.01); + this.long_avgdelta = Round.roundTo(this.long_avgdelta, 0.01); + return this; + } + + @Nullable + public static GlucoseStatus getGlucoseStatusData() { + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(MainApp.instance()); + + // load 45min + long fromtime = (long) (new Date().getTime() - 60 * 1000L * 45); + List data = MainApp.getDbHelper().getBgreadingsDataFromTime(fromtime, false); + + int sizeRecords = data.size(); + if (sizeRecords < 4 || data.get(0).timeIndex < new Date().getTime() - 7 * 60 * 1000L) { + return null; + } + + BgReading now = data.get(0); + long now_date = now.timeIndex; + double change; + + ArrayList last_deltas = new ArrayList(); + ArrayList short_deltas = new ArrayList(); + ArrayList long_deltas = new ArrayList(); + + for (int i = 1; i < data.size(); i++) { + if (data.get(i).value > 38) { + BgReading then = data.get(i); + long then_date = then.timeIndex; + double avgdelta = 0; + long minutesago; + + minutesago = Math.round((now_date - then_date) / (1000d * 60)); + // multiply by 5 to get the same units as delta, i.e. mg/dL/5m + change = now.value - then.value; + avgdelta = change / minutesago * 5; + + // use the average of all data points in the last 2.5m for all further "now" calculations + if (0 < minutesago && minutesago < 2.5) { + now.value = (now.value + then.value) / 2; + now_date = (now_date + then_date) / 2; + // short_deltas are calculated from everything ~5-15 minutes ago + } else if (2.5 < minutesago && minutesago < 17.5) { + //console.error(minutesago, avgdelta); + short_deltas.add(avgdelta); + // last_deltas are calculated from everything ~5 minutes ago + if (2.5 < minutesago && minutesago < 7.5) { + last_deltas.add(avgdelta); + } + // long_deltas are calculated from everything ~20-40 minutes ago + } else if (17.5 < minutesago && minutesago < 42.5) { + long_deltas.add(avgdelta); + } + } + } + + GlucoseStatus status = new GlucoseStatus(); + status.glucose = now.value; + + status.short_avgdelta = average(short_deltas); + + if(prefs.getBoolean("always_use_shortavg",false) || last_deltas.isEmpty()){ + status.delta = status.short_avgdelta; + } else { + status.delta = average(last_deltas); + } + + status.long_avgdelta = average(long_deltas); + status.avgdelta = status.short_avgdelta; // for OpenAPS MA + + return status.round(); + } + + /* + * Return last BgReading from database or null if db is empty + */ + @Nullable + public static BgReading lastBg() { + List bgList = null; + + try { + Dao daoBgReadings = MainApp.getDbHelper().getDaoBgReadings(); + QueryBuilder queryBuilder = daoBgReadings.queryBuilder(); + queryBuilder.orderBy("timeIndex", false); + queryBuilder.limit(1L); + queryBuilder.where().gt("value", 38); + PreparedQuery preparedQuery = queryBuilder.prepare(); + bgList = daoBgReadings.query(preparedQuery); + + } catch (SQLException e) { + log.debug(e.getMessage(), e); + } + if (bgList != null && bgList.size() > 0) + return bgList.get(0); + else + return null; + } + + /* + * Return bg reading if not old ( <9 min ) + * or null if older + */ + @Nullable + public static BgReading actualBg() { + BgReading lastBg = lastBg(); + + if (lastBg == null) + return null; + + if (lastBg.timeIndex > new Date().getTime() - 9 * 60 * 1000) + return lastBg; + + return null; + } + + public static double average(ArrayList array) { + double sum = 0d; + + if (array.size() == 0) + return 0d; + + for (Double value : array) { + sum += value; + } + return sum / array.size(); + } +} diff --git a/app/src/main/java/info/nightscout/androidaps/data/IobTotal.java b/app/src/main/java/info/nightscout/androidaps/data/IobTotal.java new file mode 100644 index 0000000000..f2a6ad0df2 --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/data/IobTotal.java @@ -0,0 +1,137 @@ +package info.nightscout.androidaps.data; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.Date; + +import info.nightscout.androidaps.MainApp; +import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; +import info.nightscout.client.data.NSProfile; +import info.nightscout.utils.DateUtil; +import info.nightscout.utils.Round; + +public class IobTotal { + public Double iob; + public Double activity; + public Double bolussnooze; + public Double basaliob; + public Double netbasalinsulin; + public Double hightempinsulin; + + public Double netInsulin = 0d; // for calculations from temp basals only + public Double netRatio = 0d; // for calculations from temp basals only + + long time; + + public IobTotal(long time) { + this.iob = 0d; + this.activity = 0d; + this.bolussnooze = 0d; + this.basaliob = 0d; + this.netbasalinsulin = 0d; + this.hightempinsulin = 0d; + this.time = time; + } + + public IobTotal plus(IobTotal other) { + iob += other.iob; + activity += other.activity; + bolussnooze += other.bolussnooze; + basaliob += other.basaliob; + netbasalinsulin += other.netbasalinsulin; + hightempinsulin += other.hightempinsulin; + netInsulin += other.netInsulin; + netRatio += other.netRatio; + return this; + } + + public static IobTotal combine(IobTotal bolusIOB, IobTotal basalIob) { + IobTotal result = new IobTotal(bolusIOB.time); + result.iob = bolusIOB.iob + basalIob.basaliob; + result.activity = bolusIOB.activity + basalIob.activity; + result.bolussnooze = bolusIOB.bolussnooze; + result.basaliob = basalIob.basaliob; + result.netbasalinsulin = basalIob.netbasalinsulin; + result.hightempinsulin = basalIob.hightempinsulin; + return result; + } + + public IobTotal round() { + this.iob = Round.roundTo(this.iob, 0.001); + this.activity = Round.roundTo(this.activity, 0.0001); + this.bolussnooze = Round.roundTo(this.bolussnooze, 0.0001); + this.basaliob = Round.roundTo(this.basaliob, 0.001); + this.netbasalinsulin = Round.roundTo(this.netbasalinsulin, 0.001); + this.hightempinsulin = Round.roundTo(this.hightempinsulin, 0.001); + return this; + } + + public JSONObject json() { + JSONObject json = new JSONObject(); + try { + json.put("iob", iob); + json.put("basaliob", basaliob); + json.put("activity", activity); + json.put("time", DateUtil.toISOString(new Date())); + } catch (JSONException e) { + e.printStackTrace(); + } + return json; + } + + public JSONObject determineBasalJson() { + JSONObject json = new JSONObject(); + try { + json.put("iob", iob); + json.put("basaliob", basaliob); + json.put("bolussnooze", bolussnooze); + json.put("activity", activity); + json.put("time", DateUtil.toISOString(new Date(time))); + } catch (JSONException e) { + e.printStackTrace(); + } + return json; + } + + public static IobTotal calulateFromTreatmentsAndTemps() { + ConfigBuilderPlugin.getActiveTreatments().updateTotalIOB(); + IobTotal bolusIob = ConfigBuilderPlugin.getActiveTreatments().getLastCalculation().round(); + ConfigBuilderPlugin.getActiveTempBasals().updateTotalIOB(); + IobTotal basalIob = ConfigBuilderPlugin.getActiveTempBasals().getLastCalculation().round(); + IobTotal iobTotal = IobTotal.combine(bolusIob, basalIob).round(); + return iobTotal; + } + + public static IobTotal calulateFromTreatmentsAndTemps(long time) { + IobTotal bolusIob = ConfigBuilderPlugin.getActiveTreatments().getCalculationToTime(time).round(); + IobTotal basalIob = ConfigBuilderPlugin.getActiveTempBasals().getCalculationToTime(time).round(); + IobTotal iobTotal = IobTotal.combine(bolusIob, basalIob).round(); + return iobTotal; + } + + public static IobTotal[] calculateIobArrayInDia() { + NSProfile profile = ConfigBuilderPlugin.getActiveProfile().getProfile(); + // predict IOB out to DIA plus 30m + long time = new Date().getTime(); + int len = (int) ((profile.getDia() *60 + 30) / 5); + IobTotal[] array = new IobTotal[len]; + int pos = 0; + for (int i = 0; i < len; i++){ + long t = time + i * 5 * 60000; + IobTotal iob = calulateFromTreatmentsAndTemps(t); + array[pos] = iob; + pos++; + } + return array; + } + + public static JSONArray convertToJSONArray(IobTotal[] iobArray) { + JSONArray array = new JSONArray(); + for (int i = 0; i < iobArray.length; i ++) { + array.put(iobArray[i].determineBasalJson()); + } + return array; + } +} diff --git a/app/src/main/java/info/nightscout/androidaps/data/MealData.java b/app/src/main/java/info/nightscout/androidaps/data/MealData.java new file mode 100644 index 0000000000..b8e73c3e00 --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/data/MealData.java @@ -0,0 +1,48 @@ +package info.nightscout.androidaps.data; + +import java.util.Date; +import java.util.List; + +import info.nightscout.androidaps.MainApp; +import info.nightscout.androidaps.db.BgReading; +import info.nightscout.androidaps.db.Treatment; +import info.nightscout.androidaps.interfaces.PluginBase; +import info.nightscout.androidaps.plugins.OpenAPSAMA.Autosens; +import info.nightscout.androidaps.plugins.OpenAPSAMA.AutosensResult; +import info.nightscout.androidaps.plugins.OpenAPSAMA.OpenAPSAMAPlugin; +import info.nightscout.client.data.NSProfile; + +/** + * Created by mike on 04.01.2017. + */ +public class MealData { + public double boluses = 0d; + public double carbs = 0d; + public double mealCOB = 0.0d; + + + public void addTreatment(Treatment treatment) { + NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile(); + if (profile == null) return; + + List bgReadings = MainApp.getDbHelper().getBgreadingsDataFromTime((long) (new Date().getTime() - 60 * 60 * 1000L * profile.getDia() * 2), false); + + long now = new Date().getTime(); + long dia_ago = now - (new Double(1.5d * profile.getDia() * 60 * 60 * 1000l)).longValue(); + long t = treatment.created_at.getTime(); + if (t > dia_ago && t <= now) { + if (treatment.carbs >= 1) { + carbs += treatment.carbs; + if (MainApp.getSpecificPlugin(OpenAPSAMAPlugin.class).isEnabled(PluginBase.APS)) { + AutosensResult result = Autosens.detectSensitivityandCarbAbsorption(bgReadings, t); + double myCarbsAbsorbed = result.carbsAbsorbed; + double myMealCOB = Math.max(0, carbs - myCarbsAbsorbed); + mealCOB = Math.max(mealCOB, myMealCOB); + } + } + if (treatment.insulin > 0 && treatment.mealBolus) { + boluses += treatment.insulin; + } + } + } +} diff --git a/app/src/main/java/info/nightscout/androidaps/data/PumpEnactResult.java b/app/src/main/java/info/nightscout/androidaps/data/PumpEnactResult.java index 38a340acb0..7ce7c14678 100644 --- a/app/src/main/java/info/nightscout/androidaps/data/PumpEnactResult.java +++ b/app/src/main/java/info/nightscout/androidaps/data/PumpEnactResult.java @@ -14,7 +14,7 @@ import info.nightscout.client.data.NSProfile; import info.nightscout.utils.DecimalFormatter; import info.nightscout.utils.Round; -public class PumpEnactResult extends Object implements Parcelable { +public class PumpEnactResult extends Object { public boolean success = false; // request was processed successfully (but possible no change was needed) public boolean enacted = false; // request was processed successfully and change has been made public String comment = ""; @@ -85,43 +85,6 @@ public class PumpEnactResult extends Object implements Parcelable { return Html.fromHtml(ret); } - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel dest, int flags) { - dest.writeInt(success ? 1 : 0); - dest.writeInt(enacted ? 1 : 0); - dest.writeInt(isPercent ? 1 : 0); - dest.writeString(comment); - dest.writeInt(duration); - dest.writeDouble(absolute); - dest.writeInt(percent); - } - - public final Parcelable.Creator CREATOR = new Parcelable.Creator() { - public PumpEnactResult createFromParcel(Parcel in) { - return new PumpEnactResult(in); - } - - public PumpEnactResult[] newArray(int size) { - return new PumpEnactResult[size]; - } - }; - - protected PumpEnactResult(Parcel in) { - success = in.readInt() == 1 ? true : false; - enacted = in.readInt() == 1 ? true : false; - isPercent = in.readInt() == 1 ? true : false; - duration = in.readInt(); - comment = in.readString(); - absolute = in.readDouble(); - percent = in.readInt(); - - } - public PumpEnactResult() { } diff --git a/app/src/main/java/info/nightscout/androidaps/db/DatabaseHelper.java b/app/src/main/java/info/nightscout/androidaps/db/DatabaseHelper.java index fccb964394..47b8aa222f 100644 --- a/app/src/main/java/info/nightscout/androidaps/db/DatabaseHelper.java +++ b/app/src/main/java/info/nightscout/androidaps/db/DatabaseHelper.java @@ -3,11 +3,7 @@ package info.nightscout.androidaps.db; import android.content.Context; import android.database.DatabaseUtils; import android.database.sqlite.SQLiteDatabase; -import android.os.Parcel; -import android.os.Parcelable; import android.support.annotation.Nullable; -import android.text.Html; -import android.text.Spanned; import com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper; import com.j256.ormlite.dao.Dao; @@ -24,12 +20,15 @@ import java.sql.SQLException; import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledFuture; +import java.util.concurrent.TimeUnit; +import info.nightscout.androidaps.Config; import info.nightscout.androidaps.Constants; import info.nightscout.androidaps.MainApp; -import info.nightscout.androidaps.R; -import info.nightscout.utils.DecimalFormatter; -import info.nightscout.utils.Round; +import info.nightscout.androidaps.events.EventTreatmentChange; public class DatabaseHelper extends OrmLiteSqliteOpenHelper { private static Logger log = LoggerFactory.getLogger(DatabaseHelper.class); @@ -37,13 +36,20 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper { public static final String DATABASE_NAME = "AndroidAPSDb"; public static final String DATABASE_BGREADINGS = "BgReadings"; public static final String DATABASE_TEMPBASALS = "TempBasals"; + public static final String DATABASE_TEMPTARGETS = "TempTargets"; public static final String DATABASE_TREATMENTS = "Treatments"; public static final String DATABASE_DANARHISTORY = "DanaRHistory"; private static final int DATABASE_VERSION = 5; + private long latestTreatmentChange = 0; + + private static final ScheduledExecutorService worker = Executors.newSingleThreadScheduledExecutor(); + private static ScheduledFuture scheduledPost = null; + public DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); + onCreate(getWritableDatabase(), getConnectionSource()); } @@ -52,11 +58,12 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper { try { log.info("onCreate"); TableUtils.createTableIfNotExists(connectionSource, TempBasal.class); + TableUtils.createTableIfNotExists(connectionSource, TempTarget.class); TableUtils.createTableIfNotExists(connectionSource, Treatment.class); TableUtils.createTableIfNotExists(connectionSource, BgReading.class); TableUtils.createTableIfNotExists(connectionSource, DanaRHistoryRecord.class); } catch (SQLException e) { - log.error(DatabaseHelper.class.getName(), "Can't create database", e); + log.error("Can't create database", e); throw new RuntimeException(e); } } @@ -66,12 +73,13 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper { try { log.info(DatabaseHelper.class.getName(), "onUpgrade"); TableUtils.dropTable(connectionSource, TempBasal.class, true); + TableUtils.dropTable(connectionSource, TempTarget.class, true); TableUtils.dropTable(connectionSource, Treatment.class, true); TableUtils.dropTable(connectionSource, BgReading.class, true); TableUtils.dropTable(connectionSource, DanaRHistoryRecord.class, true); onCreate(database, connectionSource); } catch (SQLException e) { - log.error(DatabaseHelper.class.getName(), "Can't drop databases", e); + log.error("Can't drop databases", e); throw new RuntimeException(e); } } @@ -87,35 +95,39 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper { public void cleanUpDatabases() { // TODO: call it somewhere log.debug("Before BgReadings size: " + DatabaseUtils.queryNumEntries(getReadableDatabase(), DATABASE_BGREADINGS)); - getWritableDatabase().delete("BgReadings", "timeIndex" + " < '" + (new Date().getTime() - Constants.hoursToKeepInDatabase * 60 * 60 * 1000L) + "'", null); + getWritableDatabase().delete(DATABASE_BGREADINGS, "timeIndex" + " < '" + (new Date().getTime() - Constants.hoursToKeepInDatabase * 60 * 60 * 1000L) + "'", null); log.debug("After BgReadings size: " + DatabaseUtils.queryNumEntries(getReadableDatabase(), DATABASE_BGREADINGS)); log.debug("Before TempBasals size: " + DatabaseUtils.queryNumEntries(getReadableDatabase(), DATABASE_TEMPBASALS)); - getWritableDatabase().delete("TempBasals", "timeIndex" + " < '" + (new Date().getTime() - Constants.hoursToKeepInDatabase * 60 * 60 * 1000L) + "'", null); + getWritableDatabase().delete(DATABASE_TEMPBASALS, "timeIndex" + " < '" + (new Date().getTime() - Constants.hoursToKeepInDatabase * 60 * 60 * 1000L) + "'", null); log.debug("After TempBasals size: " + DatabaseUtils.queryNumEntries(getReadableDatabase(), DATABASE_TEMPBASALS)); + log.debug("Before TempTargets size: " + DatabaseUtils.queryNumEntries(getReadableDatabase(), DATABASE_TEMPTARGETS)); + getWritableDatabase().delete(DATABASE_TEMPTARGETS, "timeIndex" + " < '" + (new Date().getTime() - Constants.hoursToKeepInDatabase * 60 * 60 * 1000L) + "'", null); + log.debug("After TempTargets size: " + DatabaseUtils.queryNumEntries(getReadableDatabase(), DATABASE_TEMPTARGETS)); + log.debug("Before Treatments size: " + DatabaseUtils.queryNumEntries(getReadableDatabase(), DATABASE_TREATMENTS)); - getWritableDatabase().delete("Treatments", "timeIndex" + " < '" + (new Date().getTime() - Constants.hoursToKeepInDatabase * 60 * 60 * 1000L) + "'", null); + getWritableDatabase().delete(DATABASE_TREATMENTS, "timeIndex" + " < '" + (new Date().getTime() - Constants.hoursToKeepInDatabase * 60 * 60 * 1000L) + "'", null); log.debug("After Treatments size: " + DatabaseUtils.queryNumEntries(getReadableDatabase(), DATABASE_TREATMENTS)); - log.debug("Before History size: " + DatabaseUtils.queryNumEntries(getReadableDatabase(), "DanaRHistory")); - getWritableDatabase().delete("History", "recordDate" + " < '" + (new Date().getTime() - Constants.daysToKeepHistoryInDatabase * 24 * 60 * 60 * 1000L) + "'", null); - log.debug("After History size: " + DatabaseUtils.queryNumEntries(getReadableDatabase(), "DanaRHistory")); + log.debug("Before History size: " + DatabaseUtils.queryNumEntries(getReadableDatabase(), DATABASE_DANARHISTORY)); + getWritableDatabase().delete(DATABASE_DANARHISTORY, "recordDate" + " < '" + (new Date().getTime() - Constants.daysToKeepHistoryInDatabase * 24 * 60 * 60 * 1000L) + "'", null); + log.debug("After History size: " + DatabaseUtils.queryNumEntries(getReadableDatabase(), DATABASE_DANARHISTORY)); } public void resetDatabases() { try { TableUtils.dropTable(connectionSource, TempBasal.class, true); + TableUtils.dropTable(connectionSource, TempTarget.class, true); TableUtils.dropTable(connectionSource, Treatment.class, true); TableUtils.dropTable(connectionSource, BgReading.class, true); TableUtils.dropTable(connectionSource, DanaRHistoryRecord.class, true); TableUtils.createTableIfNotExists(connectionSource, TempBasal.class); + TableUtils.createTableIfNotExists(connectionSource, TempTarget.class); TableUtils.createTableIfNotExists(connectionSource, Treatment.class); TableUtils.createTableIfNotExists(connectionSource, BgReading.class); TableUtils.createTableIfNotExists(connectionSource, DanaRHistoryRecord.class); -// MainApp.bus().post(new EventNewBG()); -// MainApp.bus().post(new EventTreatmentChange()); -// MainApp.bus().post(new EventTempBasalChange()); + latestTreatmentChange = 0; } catch (SQLException e) { e.printStackTrace(); } @@ -123,9 +135,18 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper { public void resetTreatments() { try { - TableUtils.dropTable(connectionSource, Treatment.class, true); TableUtils.createTableIfNotExists(connectionSource, Treatment.class); + latestTreatmentChange = 0; + } catch (SQLException e) { + e.printStackTrace(); + } + } + + public void resetTempTargets() { + try { + TableUtils.dropTable(connectionSource, TempTarget.class, true); + TableUtils.createTableIfNotExists(connectionSource, TempTarget.class); } catch (SQLException e) { e.printStackTrace(); } @@ -135,7 +156,11 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper { return getDao(TempBasal.class); } - public Dao getDaoTreatments() throws SQLException { + public Dao getDaoTempTargets() throws SQLException { + return getDao(TempTarget.class); + } + + private Dao getDaoTreatments() throws SQLException { return getDao(Treatment.class); } @@ -147,54 +172,12 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper { return getDao(DanaRHistoryRecord.class); } - /* - * Return last BgReading from database or null if db is empty - */ - @Nullable - public BgReading lastBg() { - List bgList = null; - - try { - Dao daoBgReadings = MainApp.getDbHelper().getDaoBgReadings(); - QueryBuilder queryBuilder = daoBgReadings.queryBuilder(); - queryBuilder.orderBy("timeIndex", false); - queryBuilder.limit(1L); - queryBuilder.where().gt("value", 38); - PreparedQuery preparedQuery = queryBuilder.prepare(); - bgList = daoBgReadings.query(preparedQuery); - - } catch (SQLException e) { - log.debug(e.getMessage(), e); - } - if (bgList != null && bgList.size() > 0) - return bgList.get(0); - else - return null; - } - - /* - * Return bg reading if not old ( <9 min ) - * or null if older - */ - @Nullable - public BgReading actualBg() { - BgReading lastBg = lastBg(); - - if (lastBg == null) - return null; - - if (lastBg.timeIndex > new Date().getTime() - 9 * 60 * 1000) - return lastBg; - - return null; - } - - public List getDataFromTime(long mills) { + public List getBgreadingsDataFromTime(long mills, boolean ascending) { try { Dao daoBgreadings = getDaoBgReadings(); List bgReadings; QueryBuilder queryBuilder = daoBgreadings.queryBuilder(); - queryBuilder.orderBy("timeIndex", true); + queryBuilder.orderBy("timeIndex", ascending); Where where = queryBuilder.where(); where.ge("timeIndex", mills).and().gt("value", 38); PreparedQuery preparedQuery = queryBuilder.prepare(); @@ -206,126 +189,191 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper { return new ArrayList(); } - /* - * Returns glucose_status for openAPS or null if no actual data available - */ - public static class GlucoseStatus implements Parcelable { - public double glucose = 0d; - public double delta = 0d; - public double avgdelta = 0d; + // TREATMENT HANDLING - @Override - public String toString() { - return MainApp.sResources.getString(R.string.glucose) + " " + DecimalFormatter.to0Decimal(glucose) + " mg/dl\n" + - MainApp.sResources.getString(R.string.delta) + " " + DecimalFormatter.to0Decimal(delta) + " mg/dl\n" + - MainApp.sResources.getString(R.string.avgdelta) + " " + DecimalFormatter.to2Decimal(avgdelta) + " mg/dl"; + public boolean isDataUnchanged(long time) { + if (time >= latestTreatmentChange) return true; + else return false; + } + + public int update(Treatment treatment) { + int updated = 0; + try { + updated = getDaoTreatments().update(treatment); + latestTreatmentChange = treatment.getTimeIndex(); + } catch (SQLException e) { + e.printStackTrace(); } + scheduleTreatmentChange(); + return updated; + } - public Spanned toSpanned() { - return Html.fromHtml("" + MainApp.sResources.getString(R.string.glucose) + ": " + DecimalFormatter.to0Decimal(glucose) + " mg/dl
" + - "" + MainApp.sResources.getString(R.string.delta) + ": " + DecimalFormatter.to0Decimal(delta) + " mg/dl
" + - "" + MainApp.sResources.getString(R.string.avgdelta) + ": " + DecimalFormatter.to2Decimal(avgdelta) + " mg/dl"); + public Dao.CreateOrUpdateStatus createOrUpdate(Treatment treatment) { + Dao.CreateOrUpdateStatus status = null; + try { + status = getDaoTreatments().createOrUpdate(treatment); + latestTreatmentChange = treatment.getTimeIndex(); + } catch (SQLException e) { + e.printStackTrace(); } + scheduleTreatmentChange(); + return status; + } - @Override - public int describeContents() { - return 0; + public void create(Treatment treatment) { + try { + getDaoTreatments().create(treatment); + latestTreatmentChange = treatment.getTimeIndex(); + } catch (SQLException e) { + e.printStackTrace(); } + scheduleTreatmentChange(); + } - @Override - public void writeToParcel(Parcel dest, int flags) { - dest.writeDouble(avgdelta); - dest.writeDouble(delta); - dest.writeDouble(glucose); + public void delete(Treatment treatment) { + try { + getDaoTreatments().delete(treatment); + latestTreatmentChange = treatment.getTimeIndex(); + } catch (SQLException e) { + e.printStackTrace(); } + scheduleTreatmentChange(); + } - public final Parcelable.Creator CREATOR = new Parcelable.Creator() { - public GlucoseStatus createFromParcel(Parcel in) { - return new GlucoseStatus(in); + public int delete(String _id) { + Treatment stored = findTreatmentById(_id); + int removed = 0; + if (stored != null) { + log.debug("REMOVE: Existing treatment (removing): " + _id); + try { + removed = getDaoTreatments().delete(stored); + } catch (SQLException e) { + e.printStackTrace(); } - - public GlucoseStatus[] newArray(int size) { - return new GlucoseStatus[size]; - } - }; - - private GlucoseStatus(Parcel in) { - avgdelta = in.readDouble(); - delta = in.readDouble(); - glucose = in.readDouble(); - } - - public GlucoseStatus() { - } - - public GlucoseStatus(Double glucose, Double delta, Double avgdelta) { - this.glucose = glucose; - this.delta = delta; - this.avgdelta = avgdelta; - } - - public GlucoseStatus round() { - this.glucose = Round.roundTo(this.glucose, 0.1); - this.delta = Round.roundTo(this.delta, 0.01); - this.avgdelta = Round.roundTo(this.avgdelta, 0.01); - return this; + if (Config.logIncommingData) + log.debug("Records removed: " + removed); + latestTreatmentChange = stored.getTimeIndex(); + scheduleTreatmentChange(); + } else { + log.debug("REMOVE: Not stored treatment (ignoring): " + _id); } + return removed; } @Nullable - public GlucoseStatus getGlucoseStatusData() { - GlucoseStatus result = new GlucoseStatus(); + public Treatment findTreatmentById(String _id) { try { - - Dao daoBgreadings = null; - daoBgreadings = getDaoBgReadings(); - List bgReadings; - QueryBuilder queryBuilder = daoBgreadings.queryBuilder(); - queryBuilder.orderBy("timeIndex", false); - queryBuilder.where().gt("value", 38); - queryBuilder.limit(4l); - PreparedQuery preparedQuery = queryBuilder.prepare(); - bgReadings = daoBgreadings.query(preparedQuery); - - int sizeRecords = bgReadings.size(); - - if (sizeRecords < 4 || bgReadings.get(sizeRecords - 4).timeIndex < new Date().getTime() - 7 * 60 * 1000L) { + Dao daoTreatments = getDaoTreatments(); + QueryBuilder queryBuilder = daoTreatments.queryBuilder(); + Where where = queryBuilder.where(); + where.eq("_id", _id); + queryBuilder.limit(10L); + PreparedQuery preparedQuery = queryBuilder.prepare(); + List trList = daoTreatments.query(preparedQuery); + if (trList.size() != 1) { + //log.debug("Treatment findTreatmentById query size: " + trList.size()); return null; - } - - double minutes = 5; - double change; - double avg; - - if (bgReadings.size() > 3) { - BgReading now = bgReadings.get(sizeRecords - 4); - BgReading last = bgReadings.get(sizeRecords - 3); - BgReading last1 = bgReadings.get(sizeRecords - 2); - BgReading last2 = bgReadings.get(sizeRecords - 1); - if (last2.value > 38) { - minutes = (now.timeIndex - last2.timeIndex)/(60d*1000); - change = now.value - last2.value; - } else if (last1.value > 38) { - minutes = (now.timeIndex - last1.timeIndex)/(60d*1000);; - change = now.value - last1.value; - } else if (last.value > 38) { - minutes = (now.timeIndex - last.timeIndex)/(60d*1000); - change = now.value - last.value; - } else { - change = 0; - } - //multiply by 5 to get the same unit as delta, i.e. mg/dL/5m - avg = change / minutes * 5; - - result.glucose = now.value; - result.delta = (now.value - last.value)*5*60*1000/(now.getTimeIndex() - last.getTimeIndex()); - result.avgdelta = avg; + } else { + //log.debug("Treatment findTreatmentById found: " + trList.get(0).log()); + return trList.get(0); } } catch (SQLException e) { e.printStackTrace(); - return null; } - result.round(); - return result; + return null; } + + @Nullable + public Treatment findTreatmentByTimeIndex(Long timeIndex) { + try { + QueryBuilder qb = null; + Dao daoTreatments = getDaoTreatments(); + QueryBuilder queryBuilder = daoTreatments.queryBuilder(); + Where where = queryBuilder.where(); + where.eq("timeIndex", timeIndex); + queryBuilder.limit(10L); + PreparedQuery preparedQuery = queryBuilder.prepare(); + List trList = daoTreatments.query(preparedQuery); + if (trList.size() != 1) { + log.debug("Treatment findTreatmentByTimeIndex query size: " + trList.size()); + return null; + } else { + log.debug("Treatment findTreatmentByTimeIndex found: " + trList.get(0).log()); + return trList.get(0); + } + } catch (SQLException e) { + e.printStackTrace(); + } + return null; + } + + static public void scheduleTreatmentChange() { + class PostRunnable implements Runnable { + public void run() { + MainApp.bus().post(new EventTreatmentChange()); + scheduledPost = null; + } + } + // prepare task for execution in 5 sec + // cancel waiting task to prevent sending multiple posts + if (scheduledPost != null) + scheduledPost.cancel(false); + Runnable task = new PostRunnable(); + final int sec = 5; + scheduledPost = worker.schedule(task, sec, TimeUnit.SECONDS); + + } + + public List getTreatmentDataFromTime(long mills, boolean ascending) { + try { + Dao daoTreatments = getDaoTreatments(); + List treatments; + QueryBuilder queryBuilder = daoTreatments.queryBuilder(); + queryBuilder.orderBy("timeIndex", ascending); + Where where = queryBuilder.where(); + where.ge("timeIndex", mills); + PreparedQuery preparedQuery = queryBuilder.prepare(); + treatments = daoTreatments.query(preparedQuery); + return treatments; + } catch (SQLException e) { + e.printStackTrace(); + } + return new ArrayList(); + } + + public List getTemptargetsDataFromTime(long mills, boolean ascending) { + try { + Dao daoTempTargets = getDaoTempTargets(); + List tempTargets; + QueryBuilder queryBuilder = daoTempTargets.queryBuilder(); + queryBuilder.orderBy("timeIndex", ascending); + Where where = queryBuilder.where(); + where.ge("timeIndex", mills); + PreparedQuery preparedQuery = queryBuilder.prepare(); + tempTargets = daoTempTargets.query(preparedQuery); + return tempTargets; + } catch (SQLException e) { + e.printStackTrace(); + } + return new ArrayList(); + } + + + public List getTempbasalsDataFromTime(long mills, boolean ascending, boolean isExtended) { + try { + Dao daoTempbasals = getDaoTempBasals(); + List tempbasals; + QueryBuilder queryBuilder = daoTempbasals.queryBuilder(); + queryBuilder.orderBy("timeIndex", ascending); + Where where = queryBuilder.where(); + where.ge("timeIndex", mills).and().eq("isExtended", isExtended); + PreparedQuery preparedQuery = queryBuilder.prepare(); + tempbasals = daoTempbasals.query(preparedQuery); + return tempbasals; + } catch (SQLException e) { + e.printStackTrace(); + } + return new ArrayList(); + } + } diff --git a/app/src/main/java/info/nightscout/androidaps/db/TempBasal.java b/app/src/main/java/info/nightscout/androidaps/db/TempBasal.java index 649ada3738..99389777d5 100644 --- a/app/src/main/java/info/nightscout/androidaps/db/TempBasal.java +++ b/app/src/main/java/info/nightscout/androidaps/db/TempBasal.java @@ -10,7 +10,7 @@ import java.util.Date; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.data.Iob; -import info.nightscout.androidaps.plugins.OpenAPSMA.IobTotal; +import info.nightscout.androidaps.data.IobTotal; import info.nightscout.client.data.NSProfile; import info.nightscout.utils.DateUtil; import info.nightscout.utils.DecimalFormatter; @@ -53,7 +53,7 @@ public class TempBasal { public IobTotal iobCalc(Date time) { - IobTotal result = new IobTotal(); + IobTotal result = new IobTotal(time.getTime()); NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile(); if (profile == null) @@ -131,7 +131,7 @@ public class TempBasal { public int getRealDuration() { Long msecs = getTimeEnd().getTime() - timeStart.getTime(); - return (int) (msecs / 60 / 1000); + return Math.round(msecs / 60f / 1000); } public long getMillisecondsFromStart() { @@ -140,8 +140,8 @@ public class TempBasal { public int getPlannedRemainingMinutes() { if (timeEnd != null) return 0; - long remainingMin = (getPlannedTimeEnd().getTime() - new Date().getTime()) / 1000 / 60; - return (remainingMin < 0) ? 0 : (int) remainingMin; + float remainingMin = (getPlannedTimeEnd().getTime() - new Date().getTime()) / 1000f / 60; + return (remainingMin < 0) ? 0 : Math.round(remainingMin); } public boolean isInProgress() { diff --git a/app/src/main/java/info/nightscout/androidaps/db/TempTarget.java b/app/src/main/java/info/nightscout/androidaps/db/TempTarget.java new file mode 100644 index 0000000000..051a1d3d40 --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/db/TempTarget.java @@ -0,0 +1,78 @@ +package info.nightscout.androidaps.db; + +import com.j256.ormlite.field.DatabaseField; +import com.j256.ormlite.table.DatabaseTable; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.Date; + +import info.nightscout.androidaps.Constants; +import info.nightscout.androidaps.MainApp; +import info.nightscout.androidaps.plugins.TempTargetRange.TempTargetRangePlugin; +import info.nightscout.utils.DecimalFormatter; + +@DatabaseTable(tableName = DatabaseHelper.DATABASE_TEMPTARGETS) +public class TempTarget { + private static Logger log = LoggerFactory.getLogger(TempTarget.class); + + public long getTimeIndex() { + return timeStart.getTime() - timeStart.getTime() % 1000; + } + + public void setTimeIndex(long timeIndex) { + this.timeIndex = timeIndex; + } + + @DatabaseField(id = true, useGetSet = true) + public long timeIndex; + + @DatabaseField + public Date timeStart; + + @DatabaseField + public double low; // in mgdl + + @DatabaseField + public double high; // in mgdl + + @DatabaseField + public String reason; + + @DatabaseField + public int duration; // in minutes + + @DatabaseField + public String _id; // NS _id + + public Date getPlannedTimeEnd() { + return new Date(timeStart.getTime() + 60 * 1_000 * duration); + } + + public String lowValueToUnitsToString(String units) { + if (units.equals(Constants.MGDL)) return DecimalFormatter.to0Decimal(low); + else return DecimalFormatter.to1Decimal(low * Constants.MGDL_TO_MMOLL); + } + + public String highValueToUnitsToString(String units) { + if (units.equals(Constants.MGDL)) return DecimalFormatter.to0Decimal(high); + else return DecimalFormatter.to1Decimal(low * Constants.MGDL_TO_MMOLL); + } + + public boolean isInProgress() { + return ((TempTargetRangePlugin) MainApp.getSpecificPlugin(TempTargetRangePlugin.class)).getTempTargetInProgress(new Date().getTime()) == this; + } + + public String log() { + return "TempTarget{" + + "timeIndex=" + timeIndex + + ", timeStart=" + timeStart + + ", duration=" + duration + + ", reason=" + reason + + ", low=" + low + + ", high=" + high + + '}'; + } + +} diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventBolusRequested.java b/app/src/main/java/info/nightscout/androidaps/events/EventBolusRequested.java new file mode 100644 index 0000000000..1f41119b4b --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/events/EventBolusRequested.java @@ -0,0 +1,21 @@ +package info.nightscout.androidaps.events; + +/** + * Created by adrian on 07/02/17. + */ + +public class EventBolusRequested { + private double amount; + + public EventBolusRequested (double amount){ + this.amount = amount; + } + + public double getAmount() { + return amount; + } + + public void setAmount(double amount) { + this.amount = amount; + } +} diff --git a/app/src/main/java/info/nightscout/androidaps/interfaces/APSInterface.java b/app/src/main/java/info/nightscout/androidaps/interfaces/APSInterface.java index 5d1f166b63..11c01112ba 100644 --- a/app/src/main/java/info/nightscout/androidaps/interfaces/APSInterface.java +++ b/app/src/main/java/info/nightscout/androidaps/interfaces/APSInterface.java @@ -11,5 +11,5 @@ public interface APSInterface { public APSResult getLastAPSResult(); public Date getLastAPSRun(); - public void invoke(); + public void invoke(String initiator); } diff --git a/app/src/main/java/info/nightscout/androidaps/interfaces/PluginBase.java b/app/src/main/java/info/nightscout/androidaps/interfaces/PluginBase.java index 3fe4b675c7..4442b83041 100644 --- a/app/src/main/java/info/nightscout/androidaps/interfaces/PluginBase.java +++ b/app/src/main/java/info/nightscout/androidaps/interfaces/PluginBase.java @@ -21,6 +21,7 @@ public interface PluginBase { String getFragmentClass(); String getName(); + String getNameShort(); boolean isEnabled(int type); boolean isVisibleInTabs(int type); boolean canBeHidden(int type); diff --git a/app/src/main/java/info/nightscout/androidaps/interfaces/PumpInterface.java b/app/src/main/java/info/nightscout/androidaps/interfaces/PumpInterface.java index cde760fc28..550b05103e 100644 --- a/app/src/main/java/info/nightscout/androidaps/interfaces/PumpInterface.java +++ b/app/src/main/java/info/nightscout/androidaps/interfaces/PumpInterface.java @@ -17,6 +17,8 @@ import info.nightscout.client.data.NSProfile; public interface PumpInterface { boolean isInitialized(); + boolean isSuspended(); + boolean isBusy(); boolean isTempBasalInProgress(); boolean isExtendedBoluslInProgress(); @@ -28,6 +30,9 @@ public interface PumpInterface { int setNewBasalProfile(NSProfile profile); boolean isThisProfileSet(NSProfile profile); + Date lastStatusTime(); + void updateStatus(String reason); + double getBaseBasalRate(); // base basal rate, not temp basal double getTempBasalAbsoluteRate(); double getTempBasalRemainingMinutes(); @@ -48,4 +53,6 @@ public interface PumpInterface { String deviceID(); PumpDescription getPumpDescription(); + + public String shortStatus(boolean veryShort); } diff --git a/app/src/main/java/info/nightscout/androidaps/interfaces/TempBasalsInterface.java b/app/src/main/java/info/nightscout/androidaps/interfaces/TempBasalsInterface.java index 0abb176734..aa01d77adb 100644 --- a/app/src/main/java/info/nightscout/androidaps/interfaces/TempBasalsInterface.java +++ b/app/src/main/java/info/nightscout/androidaps/interfaces/TempBasalsInterface.java @@ -3,7 +3,7 @@ package info.nightscout.androidaps.interfaces; import java.util.Date; import info.nightscout.androidaps.db.TempBasal; -import info.nightscout.androidaps.plugins.OpenAPSMA.IobTotal; +import info.nightscout.androidaps.data.IobTotal; /** * Created by mike on 14.06.2016. @@ -11,7 +11,10 @@ import info.nightscout.androidaps.plugins.OpenAPSMA.IobTotal; public interface TempBasalsInterface { void updateTotalIOB(); IobTotal getLastCalculation(); + IobTotal getCalculationToTime(long time); TempBasal getTempBasal (Date time); TempBasal getExtendedBolus (Date time); + + long oldestDataAvaialable(); } diff --git a/app/src/main/java/info/nightscout/androidaps/interfaces/TreatmentsInterface.java b/app/src/main/java/info/nightscout/androidaps/interfaces/TreatmentsInterface.java index 26641193b4..efb5f85fd0 100644 --- a/app/src/main/java/info/nightscout/androidaps/interfaces/TreatmentsInterface.java +++ b/app/src/main/java/info/nightscout/androidaps/interfaces/TreatmentsInterface.java @@ -2,10 +2,9 @@ package info.nightscout.androidaps.interfaces; import java.util.List; +import info.nightscout.androidaps.data.MealData; import info.nightscout.androidaps.db.Treatment; -import info.nightscout.androidaps.plugins.OpenAPSMA.IobTotal; -import info.nightscout.androidaps.plugins.Treatments.TreatmentsFragment; -import info.nightscout.androidaps.plugins.Treatments.TreatmentsPlugin; +import info.nightscout.androidaps.data.IobTotal; /** * Created by mike on 14.06.2016. @@ -14,6 +13,7 @@ public interface TreatmentsInterface { void updateTotalIOB(); IobTotal getLastCalculation(); - TreatmentsPlugin.MealData getMealData(); + IobTotal getCalculationToTime(long time); + MealData getMealData(); List getTreatments(); } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Actions/ActionsFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Actions/ActionsFragment.java index 88643752ee..c3ea14dc79 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Actions/ActionsFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Actions/ActionsFragment.java @@ -12,6 +12,7 @@ import android.widget.Button; import com.squareup.otto.Subscribe; +import info.nightscout.androidaps.Config; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; import info.nightscout.androidaps.events.EventInitializationChanged; @@ -35,6 +36,7 @@ public class ActionsFragment extends Fragment implements FragmentBase, View.OnCl } Button profileSwitch; + Button tempTarget; Button extendedBolus; Button tempBasal; Button fill; @@ -49,11 +51,13 @@ public class ActionsFragment extends Fragment implements FragmentBase, View.OnCl View view = inflater.inflate(R.layout.actions_fragment, container, false); profileSwitch = (Button) view.findViewById(R.id.actions_profileswitch); + tempTarget = (Button) view.findViewById(R.id.actions_temptarget); extendedBolus = (Button) view.findViewById(R.id.actions_extendedbolus); tempBasal = (Button) view.findViewById(R.id.actions_settempbasal); fill = (Button) view.findViewById(R.id.actions_fill); profileSwitch.setOnClickListener(this); + tempTarget.setOnClickListener(this); extendedBolus.setOnClickListener(this); tempBasal.setOnClickListener(this); fill.setOnClickListener(this); @@ -90,22 +94,26 @@ public class ActionsFragment extends Fragment implements FragmentBase, View.OnCl activity.runOnUiThread(new Runnable() { @Override public void run() { - if (!MainApp.getConfigBuilder().getPumpDescription().isSetBasalProfileCapable || !MainApp.getConfigBuilder().isInitialized()) + if (!MainApp.getConfigBuilder().getPumpDescription().isSetBasalProfileCapable || !MainApp.getConfigBuilder().isInitialized() || MainApp.getConfigBuilder().isSuspended()) profileSwitch.setVisibility(View.GONE); else profileSwitch.setVisibility(View.VISIBLE); - if (!MainApp.getConfigBuilder().getPumpDescription().isExtendedBolusCapable || !MainApp.getConfigBuilder().isInitialized()) + if (!MainApp.getConfigBuilder().getPumpDescription().isExtendedBolusCapable || !MainApp.getConfigBuilder().isInitialized() || MainApp.getConfigBuilder().isSuspended()) extendedBolus.setVisibility(View.GONE); else extendedBolus.setVisibility(View.VISIBLE); - if (!MainApp.getConfigBuilder().getPumpDescription().isTempBasalCapable || !MainApp.getConfigBuilder().isInitialized()) + if (!MainApp.getConfigBuilder().getPumpDescription().isTempBasalCapable || !MainApp.getConfigBuilder().isInitialized() || MainApp.getConfigBuilder().isSuspended()) tempBasal.setVisibility(View.GONE); else tempBasal.setVisibility(View.VISIBLE); - if (!MainApp.getConfigBuilder().getPumpDescription().isRefillingCapable || !MainApp.getConfigBuilder().isInitialized()) + if (!MainApp.getConfigBuilder().getPumpDescription().isRefillingCapable || !MainApp.getConfigBuilder().isInitialized() || MainApp.getConfigBuilder().isSuspended()) fill.setVisibility(View.GONE); else fill.setVisibility(View.VISIBLE); + if (!Config.APS) + tempTarget.setVisibility(View.GONE); + else + tempTarget.setVisibility(View.VISIBLE); } }); } @@ -117,11 +125,18 @@ public class ActionsFragment extends Fragment implements FragmentBase, View.OnCl switch (view.getId()) { case R.id.actions_profileswitch: NewNSTreatmentDialog newDialog = new NewNSTreatmentDialog(); - final OptionsToShow profileswitch = new OptionsToShow(R.id.careportal_profileswitch, R.string.careportal_profileswitch, true, false, false, false, false, false, false, true, false); + final OptionsToShow profileswitch = new OptionsToShow(R.id.careportal_profileswitch, R.string.careportal_profileswitch, true, false, false, false, false, false, false, true, false, false); profileswitch.executeProfileSwitch = true; newDialog.setOptions(profileswitch); newDialog.show(manager, "NewNSTreatmentDialog"); break; + case R.id.actions_temptarget: + NewNSTreatmentDialog newTTDialog = new NewNSTreatmentDialog(); + final OptionsToShow temptarget = new OptionsToShow(R.id.careportal_temporarytarget, R.string.careportal_temporarytarget, false, false, false, false, true, false, false, false, false, true); + temptarget.executeTempTarget = true; + newTTDialog.setOptions(temptarget); + newTTDialog.show(manager, "NewNSTreatmentDialog"); + break; case R.id.actions_extendedbolus: NewExtendedBolusDialog newExtendedDialog = new NewExtendedBolusDialog(); newExtendedDialog.show(manager, "NewExtendedDialog"); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Actions/ActionsPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/Actions/ActionsPlugin.java index df283bac13..eedd0e4baf 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Actions/ActionsPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Actions/ActionsPlugin.java @@ -28,6 +28,17 @@ public class ActionsPlugin implements PluginBase { return MainApp.sResources.getString(R.string.actions); } + @Override + public String getNameShort() { + String name = MainApp.sResources.getString(R.string.actions_shortname); + if (!name.trim().isEmpty()){ + //only if translation exists + return name; + } + // use long name as fallback + return getName(); + } + @Override public boolean isEnabled(int type) { return type == GENERAL && fragmentEnabled; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/NewTempBasalDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/NewTempBasalDialog.java index f95bdc41b4..ea0ef114e8 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/NewTempBasalDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/NewTempBasalDialog.java @@ -151,7 +151,7 @@ public class NewTempBasalDialog extends DialogFragment implements View.OnClickLi } if (!result.success) { AlertDialog.Builder builder = new AlertDialog.Builder(context); - builder.setTitle(MainApp.sResources.getString(R.string.treatmentdeliveryerror)); + builder.setTitle(MainApp.sResources.getString(R.string.tempbasaldeliveryerror)); builder.setMessage(result.comment); builder.setPositiveButton(MainApp.sResources.getString(R.string.ok), null); builder.show(); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/CareportalFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/CareportalFragment.java index 05245bd0b1..69db12c29b 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/CareportalFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/CareportalFragment.java @@ -8,10 +8,8 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; import info.nightscout.androidaps.interfaces.FragmentBase; -import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.plugins.Careportal.Dialogs.NewNSTreatmentDialog; public class CareportalFragment extends Fragment implements FragmentBase, View.OnClickListener { @@ -25,25 +23,26 @@ public class CareportalFragment extends Fragment implements FragmentBase, View.O return careportalPlugin; } - // bg,insulin,carbs,prebolus,duration,percent,absolute,profile,split - final OptionsToShow bgcheck = new OptionsToShow(R.id.careportal_bgcheck, R.string.careportal_bgcheck, true, true, true, false, false, false, false, false, false); - final OptionsToShow snackbolus = new OptionsToShow(R.id.careportal_snackbolus, R.string.careportal_snackbolus, true, true, true, true, false, false, false, false, false); - final OptionsToShow mealbolus = new OptionsToShow(R.id.careportal_mealbolus, R.string.careportal_mealbolus, true, true, true, true, false, false, false, false, false); - final OptionsToShow correctionbolus = new OptionsToShow(R.id.careportal_correctionbolus, R.string.careportal_correctionbolus, true, true, true, true, false, false, false, false, false); - final OptionsToShow carbcorrection = new OptionsToShow(R.id.careportal_carbscorrection, R.string.careportal_carbscorrection, true, false, true, false, false, false, false, false, false); - final OptionsToShow combobolus = new OptionsToShow(R.id.careportal_combobolus, R.string.careportal_combobolus, true, true, true, true, true, false, false, false, true); - final OptionsToShow announcement = new OptionsToShow(R.id.careportal_announcement, R.string.careportal_announcement, true, false, false, false, false, false, false, false, false); - final OptionsToShow note = new OptionsToShow(R.id.careportal_note, R.string.careportal_note, true, false, false, false, true, false, false, false, false); - final OptionsToShow question = new OptionsToShow(R.id.careportal_question, R.string.careportal_question, true, false, false, false, false, false, false, false, false); - final OptionsToShow exercise = new OptionsToShow(R.id.careportal_exercise, R.string.careportal_exercise, false, false, false, false, true, false, false, false, false); - final OptionsToShow sitechange = new OptionsToShow(R.id.careportal_pumpsitechange, R.string.careportal_pumpsitechange, true, true, false, false, false, false, false, false, false); - final OptionsToShow sensorstart = new OptionsToShow(R.id.careportal_cgmsensorstart, R.string.careportal_cgmsensorstart, true, false, false, false, false, false, false, false, false); - final OptionsToShow sensorchange = new OptionsToShow(R.id.careportal_cgmsensorinsert, R.string.careportal_cgmsensorinsert, true, false, false, false, false, false, false, false, false); - final OptionsToShow insulinchange = new OptionsToShow(R.id.careportal_insulincartridgechange, R.string.careportal_insulincartridgechange, true, false, false, false, false, false, false, false, false); - final OptionsToShow tempbasalstart = new OptionsToShow(R.id.careportal_tempbasalstart, R.string.careportal_tempbasalstart, true, false, false, false, true, true, true, false, false); - final OptionsToShow tempbasalend = new OptionsToShow(R.id.careportal_tempbasalend, R.string.careportal_tempbasalend, true, false, false, false, false, false, false, false, false); - final OptionsToShow profileswitch = new OptionsToShow(R.id.careportal_profileswitch, R.string.careportal_profileswitch, true, false, false, false, false, false, false, true, false); - final OptionsToShow openapsoffline = new OptionsToShow(R.id.careportal_openapsoffline, R.string.careportal_openapsoffline, false, false, false, false, true, false, false, false, false); + // bg,insulin,carbs,prebolus,duration,percent,absolute,profile,split,temptarget + final OptionsToShow bgcheck = new OptionsToShow(R.id.careportal_bgcheck, R.string.careportal_bgcheck, true, true, true, false, false, false, false, false, false, false); + final OptionsToShow snackbolus = new OptionsToShow(R.id.careportal_snackbolus, R.string.careportal_snackbolus, true, true, true, true, false, false, false, false, false, false); + final OptionsToShow mealbolus = new OptionsToShow(R.id.careportal_mealbolus, R.string.careportal_mealbolus, true, true, true, true, false, false, false, false, false, false); + final OptionsToShow correctionbolus = new OptionsToShow(R.id.careportal_correctionbolus, R.string.careportal_correctionbolus, true, true, true, true, false, false, false, false, false, false); + final OptionsToShow carbcorrection = new OptionsToShow(R.id.careportal_carbscorrection, R.string.careportal_carbscorrection, true, false, true, false, false, false, false, false, false, false); + final OptionsToShow combobolus = new OptionsToShow(R.id.careportal_combobolus, R.string.careportal_combobolus, true, true, true, true, true, false, false, false, true, false); + final OptionsToShow announcement = new OptionsToShow(R.id.careportal_announcement, R.string.careportal_announcement, true, false, false, false, false, false, false, false, false, false); + final OptionsToShow note = new OptionsToShow(R.id.careportal_note, R.string.careportal_note, true, false, false, false, true, false, false, false, false, false); + final OptionsToShow question = new OptionsToShow(R.id.careportal_question, R.string.careportal_question, true, false, false, false, false, false, false, false, false, false); + final OptionsToShow exercise = new OptionsToShow(R.id.careportal_exercise, R.string.careportal_exercise, false, false, false, false, true, false, false, false, false, false); + final OptionsToShow sitechange = new OptionsToShow(R.id.careportal_pumpsitechange, R.string.careportal_pumpsitechange, true, true, false, false, false, false, false, false, false, false); + final OptionsToShow sensorstart = new OptionsToShow(R.id.careportal_cgmsensorstart, R.string.careportal_cgmsensorstart, true, false, false, false, false, false, false, false, false, false); + final OptionsToShow sensorchange = new OptionsToShow(R.id.careportal_cgmsensorinsert, R.string.careportal_cgmsensorinsert, true, false, false, false, false, false, false, false, false, false); + final OptionsToShow insulinchange = new OptionsToShow(R.id.careportal_insulincartridgechange, R.string.careportal_insulincartridgechange, true, false, false, false, false, false, false, false, false, false); + final OptionsToShow tempbasalstart = new OptionsToShow(R.id.careportal_tempbasalstart, R.string.careportal_tempbasalstart, true, false, false, false, true, true, true, false, false, false); + final OptionsToShow tempbasalend = new OptionsToShow(R.id.careportal_tempbasalend, R.string.careportal_tempbasalend, true, false, false, false, false, false, false, false, false, false); + final OptionsToShow profileswitch = new OptionsToShow(R.id.careportal_profileswitch, R.string.careportal_profileswitch, true, false, false, false, false, false, false, true, false, false); + final OptionsToShow openapsoffline = new OptionsToShow(R.id.careportal_openapsoffline, R.string.careportal_openapsoffline, false, false, false, false, true, false, false, false, false, false); + final OptionsToShow temptarget = new OptionsToShow(R.id.careportal_temporarytarget, R.string.careportal_temporarytarget, false, false, false, false, true, false, false, false, false, true); @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, @@ -68,6 +67,7 @@ public class CareportalFragment extends Fragment implements FragmentBase, View.O view.findViewById(R.id.careportal_tempbasalend).setOnClickListener(this); view.findViewById(R.id.careportal_tempbasalstart).setOnClickListener(this); view.findViewById(R.id.careportal_openapsoffline).setOnClickListener(this); + view.findViewById(R.id.careportal_temporarytarget).setOnClickListener(this); return view; } @@ -130,6 +130,9 @@ public class CareportalFragment extends Fragment implements FragmentBase, View.O case R.id.careportal_openapsoffline: newDialog.setOptions(openapsoffline); break; + case R.id.careportal_temporarytarget: + newDialog.setOptions(temptarget); + break; default: newDialog = null; } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/CareportalPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/CareportalPlugin.java index 87f9f0f817..9fd4cbca85 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/CareportalPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/CareportalPlugin.java @@ -24,6 +24,17 @@ public class CareportalPlugin implements PluginBase { return MainApp.sResources.getString(R.string.careportal); } + @Override + public String getNameShort() { + String name = MainApp.sResources.getString(R.string.careportal_shortname); + if (!name.trim().isEmpty()){ + //only if translation exists + return name; + } + // use long name as fallback + return getName(); + } + @Override public boolean isEnabled(int type) { return type == GENERAL && fragmentEnabled; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/Dialogs/NewNSTreatmentDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/Dialogs/NewNSTreatmentDialog.java index b941cdb4c2..4c93b88102 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/Dialogs/NewNSTreatmentDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/Dialogs/NewNSTreatmentDialog.java @@ -13,17 +13,20 @@ import android.support.v4.app.FragmentActivity; import android.support.v7.app.AlertDialog; import android.text.Editable; import android.text.TextWatcher; +import android.text.format.DateFormat; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.Button; +import android.widget.CompoundButton; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.RadioButton; import android.widget.Spinner; import android.widget.TextView; +import com.j256.ormlite.dao.Dao; import com.wdullaer.materialdatetimepicker.date.DatePickerDialog; import com.wdullaer.materialdatetimepicker.time.RadialPickerLayout; import com.wdullaer.materialdatetimepicker.time.TimePickerDialog; @@ -33,6 +36,7 @@ import org.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.sql.SQLException; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.Calendar; @@ -42,10 +46,14 @@ import java.util.Date; import info.nightscout.androidaps.Constants; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; +import info.nightscout.androidaps.data.GlucoseStatus; +import info.nightscout.androidaps.db.TempTarget; import info.nightscout.androidaps.events.EventNewBasalProfile; import info.nightscout.androidaps.interfaces.PumpInterface; import info.nightscout.androidaps.plugins.Careportal.OptionsToShow; +import info.nightscout.androidaps.plugins.CircadianPercentageProfile.CircadianPercentageProfilePlugin; import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; +import info.nightscout.androidaps.plugins.TempTargetRange.events.EventTempTargetRangeChange; import info.nightscout.client.data.NSProfile; import info.nightscout.utils.DateUtil; import info.nightscout.utils.PlusMinusEditText; @@ -73,6 +81,7 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick LinearLayout layoutAbsolute; LinearLayout layoutCarbTime; LinearLayout layoutProfile; + LinearLayout layoutTempTarget; Button dateButton; Button timeButton; Button okButton; @@ -91,6 +100,9 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick EditText carbTimeEdit; EditText splitEdit; Spinner profileSpinner; + EditText low; + EditText high; + Spinner reasonSpinner; PlusMinusEditText editBg; PlusMinusEditText editCarbs; @@ -142,6 +154,7 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick layoutAbsolute = (LinearLayout) view.findViewById(R.id.careportal_newnstreatment_absolute_layout); layoutCarbTime = (LinearLayout) view.findViewById(R.id.careportal_newnstreatment_carbtime_layout); layoutProfile = (LinearLayout) view.findViewById(R.id.careportal_newnstreatment_profile_layout); + layoutTempTarget = (LinearLayout) view.findViewById(R.id.careportal_newnstreatment_temptarget_layout); bgUnitsView = (TextView) view.findViewById(R.id.careportal_newnstreatment_bgunits); meterRadioButton = (RadioButton) view.findViewById(R.id.careportal_newnstreatment_meter); @@ -193,6 +206,10 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick notesEdit = (EditText) view.findViewById(R.id.careportal_newnstreatment_notes); splitEdit = (EditText) view.findViewById(R.id.careportal_newnstreatment_splitinput); + reasonSpinner = (Spinner) view.findViewById(R.id.careportal_newnstreatment_temptarget_reason); + low = (EditText) view.findViewById(R.id.careportal_temptarget_low); + high = (EditText) view.findViewById(R.id.careportal_temptarget_high); + eventTime = new Date(); dateButton = (Button) view.findViewById(R.id.careportal_newnstreatment_eventdate); timeButton = (Button) view.findViewById(R.id.careportal_newnstreatment_eventtime); @@ -204,7 +221,7 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick okButton = (Button) view.findViewById(R.id.careportal_newnstreatment_ok); okButton.setOnClickListener(this); - // BG + // profile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile(); ArrayList profileList; units = Constants.MGDL; @@ -227,6 +244,17 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick } } + // temp target + ArrayList reasonList = new ArrayList(); + reasonList.add(MainApp.sResources.getString(R.string.eatingsoon)); + reasonList.add(MainApp.sResources.getString(R.string.activity)); + reasonList.add(MainApp.sResources.getString(R.string.manual)); + ArrayAdapter adapterReason = new ArrayAdapter(getContext(), + android.R.layout.simple_spinner_item, reasonList); + adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + reasonSpinner.setAdapter(adapterReason); + + // bg bgUnitsView.setText(units); // Set BG if not old @@ -239,10 +267,32 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick // meterRadioButton.setChecked(true); // } - if (units.equals(Constants.MMOL)) - editBg = new PlusMinusEditText(view, R.id.careportal_newnstreatment_bginput, R.id.careportal_newnstreatment_bg_plus, R.id.careportal_newnstreatment_bg_minus, 0d, 0d, 40d, 0.1d, new DecimalFormat("0.0"), false); + Double bg = NSProfile.fromMgdlToUnits(GlucoseStatus.getGlucoseStatusData() != null ? GlucoseStatus.getGlucoseStatusData().glucose : 0d, profile != null ? profile.getUnits() : Constants.MGDL); + if (profile == null) + editBg = new PlusMinusEditText(view, R.id.careportal_newnstreatment_bginput, R.id.careportal_newnstreatment_bg_plus, R.id.careportal_newnstreatment_bg_minus, bg, 0d, 500d, 0.1d, new DecimalFormat("0.0"), false); + else if (profile.getUnits().equals(Constants.MMOL)) + editBg = new PlusMinusEditText(view, R.id.careportal_newnstreatment_bginput, R.id.careportal_newnstreatment_bg_plus, R.id.careportal_newnstreatment_bg_minus, bg, 0d, 30d, 0.1d, new DecimalFormat("0.0"), false); else - editBg = new PlusMinusEditText(view, R.id.careportal_newnstreatment_bginput, R.id.careportal_newnstreatment_bg_plus, R.id.careportal_newnstreatment_bg_minus, 0d, 0d, 500d, 1d, new DecimalFormat("0"), false); + editBg = new PlusMinusEditText(view, R.id.careportal_newnstreatment_bginput, R.id.careportal_newnstreatment_bg_plus, R.id.careportal_newnstreatment_bg_minus, bg, 0d, 500d, 1d, new DecimalFormat("0"), false); + bgInputEdit.addTextChangedListener(new TextWatcher() { + + public void afterTextChanged(Editable s) {} + + public void beforeTextChanged(CharSequence s, int start, int count, int after) {} + + public void onTextChanged(CharSequence s, int start, int before, int count) { + if (sensorRadioButton.isChecked()) meterRadioButton.setChecked(true); + } + }); + sensorRadioButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + NSProfile profile = ConfigBuilderPlugin.getActiveProfile().getProfile(); + if (profile == null) return; + Double bg = NSProfile.fromMgdlToUnits(GlucoseStatus.getGlucoseStatusData() != null ? GlucoseStatus.getGlucoseStatusData().glucose : 0d, profile.getUnits()); + editBg.setValue(bg); + } + }); Integer maxCarbs = MainApp.getConfigBuilder().applyCarbsConstraints(Constants.carbsOnlyForCheckLimit); editCarbs = new PlusMinusEditText(view, R.id.careportal_newnstreatment_carbsinput, R.id.careportal_newnstreatment_carbs_plus, R.id.careportal_newnstreatment_carbs_minus, 0d, 0d, (double) maxCarbs, 1d, new DecimalFormat("0"), false); @@ -271,6 +321,7 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick showOrHide(layoutAbsolute, options.absolute); showOrHide(layoutCarbTime, options.prebolus); showOrHide(layoutProfile, options.profile); + showOrHide(layoutTempTarget, options.tempTarget); return view; } @@ -304,7 +355,7 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick this, calendar.get(Calendar.HOUR_OF_DAY), calendar.get(Calendar.MINUTE), - df.is24HourFormat(context) + DateFormat.is24HourFormat(context) ); tpd.setThemeDark(true); tpd.dismissOnPause(true); @@ -344,6 +395,7 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick String enteredBy = SP.getString("careportal_enteredby", ""); JSONObject data = new JSONObject(); try { + boolean allowZeroDuration = false; data.put("created_at", DateUtil.toISOString(eventTime)); switch (options.eventType) { case R.id.careportal_bgcheck: @@ -403,6 +455,16 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick case R.id.careportal_openapsoffline: data.put("eventType", "OpenAPS Offline"); break; + case R.id.careportal_temporarytarget: + data.put("eventType", "Temporary Target"); + if (!reasonSpinner.getSelectedItem().toString().equals("")) + data.put("reason", reasonSpinner.getSelectedItem().toString()); + if (SafeParse.stringToDouble(low.getText().toString()) != 0d) + data.put("targetBottom", SafeParse.stringToDouble(low.getText().toString())); + if (SafeParse.stringToDouble(high.getText().toString()) != 0d) + data.put("targetTop", SafeParse.stringToDouble(high.getText().toString())); + allowZeroDuration = true; + break; } if (SafeParse.stringToDouble(bgInputEdit.getText().toString()) != 0d) { data.put("glucose", SafeParse.stringToDouble(bgInputEdit.getText().toString())); @@ -414,7 +476,7 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick data.put("carbs", SafeParse.stringToDouble(carbsEdit.getText().toString())); if (SafeParse.stringToDouble(insulinEdit.getText().toString()) != 0d) data.put("insulin", SafeParse.stringToDouble(insulinEdit.getText().toString())); - if (SafeParse.stringToDouble(durationeEdit.getText().toString()) != 0d) + if (allowZeroDuration || SafeParse.stringToDouble(durationeEdit.getText().toString()) != 0d) data.put("duration", SafeParse.stringToDouble(durationeEdit.getText().toString())); if (layoutPercent.getVisibility() != View.GONE) data.put("percent", SafeParse.stringToDouble(percentEdit.getText().toString())); @@ -509,6 +571,14 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick ret += data.get("profile"); ret += "\n"; } + if (data.has("targetBottom") && data.has("targetTop")) { + ret += getString(R.string.target_range); + ret += " "; + ret += data.get("targetBottom"); + ret += " - "; + ret += data.get("targetTop"); + ret += "\n"; + } if (data.has("created_at")) { ret += getString(R.string.careportal_newnstreatment_eventtime_label); ret += ": "; @@ -543,7 +613,7 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick public void run() { try { String profile = data.getString("profile"); - NSProfile nsProfile = MainApp.getConfigBuilder().getActiveProfile().getProfile(); + NSProfile nsProfile = ConfigBuilderPlugin.getActiveProfile().getProfile(); nsProfile.setActiveProfile(profile); PumpInterface pump = MainApp.getConfigBuilder(); if (pump != null) { @@ -553,6 +623,12 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick } else { log.error("No active pump selected"); } + if (ConfigBuilderPlugin.getActiveProfile() instanceof CircadianPercentageProfilePlugin) { + CircadianPercentageProfilePlugin cpp = (CircadianPercentageProfilePlugin) ConfigBuilderPlugin.getActiveProfile(); + data.put("CircadianPercentageProfile", true); + data.put("timeshift", cpp.timeshift); + data.put("percentage", cpp.percentage); + } ConfigBuilderPlugin.uploadCareportalEntryToNS(data); } catch (JSONException e) { e.printStackTrace(); @@ -560,6 +636,39 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick } }); } + } else if (options.executeTempTarget) { + try { + if ((data.has("targetBottom") && data.has("targetTop")) || (data.has("duration")&& data.getInt("duration") == 0)) { + sHandler.post(new Runnable() { + @Override + public void run() { + try { + TempTarget tempTarget = new TempTarget(); + tempTarget.timeStart = eventTime; + tempTarget.duration = data.getInt("duration"); + tempTarget.reason = data.getString("reason"); + if(tempTarget.duration != 0) { + tempTarget.low = NSProfile.toMgdl(data.getDouble("targetBottom"), ConfigBuilderPlugin.getActiveProfile().getProfile().getUnits()); + tempTarget.high = NSProfile.toMgdl(data.getDouble("targetTop"), ConfigBuilderPlugin.getActiveProfile().getProfile().getUnits()); + } else { + tempTarget.low = 0; + tempTarget.high = 0; + } + tempTarget.setTimeIndex(tempTarget.getTimeIndex()); + Dao dao = MainApp.getDbHelper().getDaoTempTargets(); + log.debug("Creating new TempTarget db record: " + tempTarget.log()); + dao.createIfNotExists(tempTarget); + MainApp.bus().post(new EventTempTargetRangeChange()); + ConfigBuilderPlugin.uploadCareportalEntryToNS(data); + } catch (JSONException | SQLException e) { + e.printStackTrace(); + } + } + }); + } + } catch (JSONException e) { + e.printStackTrace(); + } } else { ConfigBuilderPlugin.uploadCareportalEntryToNS(data); } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/OptionsToShow.java b/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/OptionsToShow.java index e5a086c07e..23ce1dbcde 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/OptionsToShow.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/OptionsToShow.java @@ -16,9 +16,11 @@ public class OptionsToShow { public boolean absolute; public boolean profile; public boolean split; + public boolean tempTarget; // perform direct actions public boolean executeProfileSwitch = false; + public boolean executeTempTarget = false; public OptionsToShow(int eventType, int eventName, @@ -30,7 +32,8 @@ public class OptionsToShow { boolean percent, boolean absolute, boolean profile, - boolean split) { + boolean split, + boolean tempTarget) { this.eventType = eventType; this.eventName = eventName; this.bg = bg; @@ -42,5 +45,6 @@ public class OptionsToShow { this.absolute = absolute; this.profile = profile; this.split = split; + this.tempTarget = tempTarget; } } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/CircadianPercentageProfile/CircadianPercentageProfileFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/CircadianPercentageProfile/CircadianPercentageProfileFragment.java index 8158490197..bb4513b069 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/CircadianPercentageProfile/CircadianPercentageProfileFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/CircadianPercentageProfile/CircadianPercentageProfileFragment.java @@ -4,22 +4,27 @@ package info.nightscout.androidaps.plugins.CircadianPercentageProfile; import android.app.Activity; import android.content.Context; import android.os.Bundle; +import android.support.design.widget.Snackbar; import android.support.v4.app.DialogFragment; import android.support.v4.app.Fragment; +import android.support.v4.content.ContextCompat; import android.text.Editable; import android.text.Html; import android.text.TextWatcher; +import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.inputmethod.InputMethodManager; import android.widget.Button; import android.widget.EditText; +import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.RadioButton; import android.widget.TextView; +import com.andreabaccega.widget.FormEditText; import com.squareup.otto.Subscribe; import org.slf4j.Logger; @@ -34,25 +39,24 @@ import info.nightscout.androidaps.plugins.Careportal.Dialogs.NewNSTreatmentDialo import info.nightscout.androidaps.plugins.Careportal.OptionsToShow; import info.nightscout.utils.DecimalFormatter; import info.nightscout.utils.SafeParse; -import info.nightscout.utils.ToastUtils; public class CircadianPercentageProfileFragment extends Fragment implements FragmentBase { private static Logger log = LoggerFactory.getLogger(CircadianPercentageProfileFragment.class); private static CircadianPercentageProfilePlugin circadianPercentageProfilePlugin = new CircadianPercentageProfilePlugin(); + private Object snackbarCaller; public static CircadianPercentageProfilePlugin getPlugin() { return circadianPercentageProfilePlugin; } - EditText diaView; + FormEditText diaView; RadioButton mgdlView; RadioButton mmolView; - EditText carView; - EditText targetlowView; - EditText targethighView; - EditText percentageView; - EditText timeshiftView; + FormEditText targetlowView; + FormEditText targethighView; + FormEditText percentageView; + FormEditText timeshiftView; TextView profileView; TextView baseprofileIC; TextView baseprofileBasal; @@ -65,20 +69,25 @@ public class CircadianPercentageProfileFragment extends Fragment implements Frag ImageView iceditIcon; ImageView isfeditIcon; BasalEditDialog basalEditDialog; + FrameLayout fl; + Snackbar mSnackBar; + static Boolean percentageViewHint = true; + static Boolean timeshiftViewHint = true; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View layout = inflater.inflate(R.layout.circadianpercentageprofile_fragment, container, false); - diaView = (EditText) layout.findViewById(R.id.circadianpercentageprofile_dia); + fl = (FrameLayout) layout.findViewById(R.id.circadianpercentageprofile_framelayout); + fl.requestFocusFromTouch(); + diaView = (FormEditText) layout.findViewById(R.id.circadianpercentageprofile_dia); mgdlView = (RadioButton) layout.findViewById(R.id.circadianpercentageprofile_mgdl); mmolView = (RadioButton) layout.findViewById(R.id.circadianpercentageprofile_mmol); - carView = (EditText) layout.findViewById(R.id.circadianpercentageprofile_car); - targetlowView = (EditText) layout.findViewById(R.id.circadianpercentageprofile_targetlow); - targethighView = (EditText) layout.findViewById(R.id.circadianpercentageprofile_targethigh); - percentageView = (EditText) layout.findViewById(R.id.circadianpercentageprofile_percentage); - timeshiftView = (EditText) layout.findViewById(R.id.circadianpercentageprofile_timeshift); + targetlowView = (FormEditText) layout.findViewById(R.id.circadianpercentageprofile_targetlow); + targethighView = (FormEditText) layout.findViewById(R.id.circadianpercentageprofile_targethigh); + percentageView = (FormEditText) layout.findViewById(R.id.circadianpercentageprofile_percentage); + timeshiftView = (FormEditText) layout.findViewById(R.id.circadianpercentageprofile_timeshift); profileView = (TextView) layout.findViewById(R.id.circadianpercentageprofile_profileview); baseprofileBasal = (TextView) layout.findViewById(R.id.circadianpercentageprofile_baseprofilebasal); baseprofileBasalLayout = (LinearLayout) layout.findViewById(R.id.circadianpercentageprofile_baseprofilebasal_layout); @@ -101,7 +110,6 @@ public class CircadianPercentageProfileFragment extends Fragment implements Frag mgdlView.setChecked(circadianPercentageProfilePlugin.mgdl); mmolView.setChecked(circadianPercentageProfilePlugin.mmol); diaView.setText(circadianPercentageProfilePlugin.dia.toString()); - carView.setText(circadianPercentageProfilePlugin.car.toString()); targetlowView.setText(circadianPercentageProfilePlugin.targetLow.toString()); targethighView.setText(circadianPercentageProfilePlugin.targetHigh.toString()); percentageView.setText("" + circadianPercentageProfilePlugin.percentage); @@ -133,30 +141,13 @@ public class CircadianPercentageProfileFragment extends Fragment implements Frag @Override public void onClick(View view) { NewNSTreatmentDialog newDialog = new NewNSTreatmentDialog(); - final OptionsToShow profileswitch = new OptionsToShow(R.id.careportal_profileswitch, R.string.careportal_profileswitch, true, false, false, false, false, false, false, true, false); + final OptionsToShow profileswitch = new OptionsToShow(R.id.careportal_profileswitch, R.string.careportal_profileswitch, true, false, false, false, false, false, false, true, false, false); profileswitch.executeProfileSwitch = true; newDialog.setOptions(profileswitch); newDialog.show(getFragmentManager(), "NewNSTreatmentDialog"); } }); - timeshiftView.setOnFocusChangeListener(new View.OnFocusChangeListener() { - @Override - public void onFocusChange(View view, boolean b) { - if (b) - ToastUtils.showToastInUiThread(getContext(), getString(R.string.timeshift_hint)); - - } - }); - - percentageView.setOnFocusChangeListener(new View.OnFocusChangeListener() { - @Override - public void onFocusChange(View view, boolean b) { - if (b) - ToastUtils.showToastInUiThread(getContext(), getString(R.string.percentagefactor_hint)); - } - }); - timeIcon.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -204,6 +195,76 @@ public class CircadianPercentageProfileFragment extends Fragment implements Frag } }); + timeshiftView.setOnFocusChangeListener(new View.OnFocusChangeListener() { + + @Override + public void onFocusChange(View view, boolean hasFocus) { + if (!hasFocus) { + if(mSnackBar!=null && snackbarCaller == timeshiftView){ + mSnackBar.dismiss(); + } + timeshiftView.clearFocus(); + fl.requestFocusFromTouch(); + } + else { + if (timeshiftViewHint) { + customSnackbar(view, getString(R.string.timeshift_hint), timeshiftView); + } + } + } + }); + + percentageView.setOnFocusChangeListener(new View.OnFocusChangeListener() { + + @Override + public void onFocusChange(View view, boolean hasFocus) { + if (!hasFocus) { + if(mSnackBar!=null && snackbarCaller == percentageView){ + mSnackBar.dismiss(); + } + percentageView.clearFocus(); + fl.requestFocusFromTouch(); + } + else { + if (percentageViewHint) { + customSnackbar(view, getString(R.string.percentagefactor_hint), percentageView); + } + } + } + }); + + diaView.setOnFocusChangeListener(new View.OnFocusChangeListener() { + + @Override + public void onFocusChange(View view, boolean hasFocus) { + if (!hasFocus) { + diaView.clearFocus(); + fl.requestFocusFromTouch(); + } + } + }); + + targethighView.setOnFocusChangeListener(new View.OnFocusChangeListener() { + + @Override + public void onFocusChange(View view, boolean hasFocus) { + if (!hasFocus) { + targethighView.clearFocus(); + fl.requestFocusFromTouch(); + } + } + }); + + targetlowView.setOnFocusChangeListener(new View.OnFocusChangeListener() { + + @Override + public void onFocusChange(View view, boolean hasFocus) { + if (!hasFocus) { + targetlowView.clearFocus(); + fl.requestFocusFromTouch(); + } + } + }); TextWatcher textWatch = new TextWatcher() { @@ -220,23 +281,36 @@ public class CircadianPercentageProfileFragment extends Fragment implements Frag public void onTextChanged(CharSequence s, int start, int before, int count) { - if (SafeParse.stringToInt(percentageView.getText().toString()) == 0) { - circadianPercentageProfilePlugin.percentage = 100; - } else { - circadianPercentageProfilePlugin.percentage = SafeParse.stringToInt(percentageView.getText().toString()); + if (percentageView.testValidity()) { + if (SafeParse.stringToInt(percentageView.getText().toString()) == 0) { + circadianPercentageProfilePlugin.percentage = 100; + } else { + circadianPercentageProfilePlugin.percentage = SafeParse.stringToInt(percentageView.getText().toString()); + } + updateProfileInfo(); + } + if (timeshiftView.testValidity()) { + circadianPercentageProfilePlugin.timeshift = SafeParse.stringToInt(timeshiftView.getText().toString()); + updateProfileInfo(); + } + if (diaView.testValidity()) { + circadianPercentageProfilePlugin.dia = SafeParse.stringToDouble(diaView.getText().toString()); + updateProfileInfo(); + } + if (targethighView.testValidity()) { + circadianPercentageProfilePlugin.targetLow = SafeParse.stringToDouble(targetlowView.getText().toString()); + updateProfileInfo(); + } + if (targetlowView.testValidity()) { + circadianPercentageProfilePlugin.targetHigh = SafeParse.stringToDouble(targethighView.getText().toString()); + updateProfileInfo(); } - circadianPercentageProfilePlugin.dia = SafeParse.stringToDouble(diaView.getText().toString()); - circadianPercentageProfilePlugin.car = SafeParse.stringToDouble(carView.getText().toString()); - circadianPercentageProfilePlugin.targetLow = SafeParse.stringToDouble(targetlowView.getText().toString()); - circadianPercentageProfilePlugin.targetHigh = SafeParse.stringToDouble(targethighView.getText().toString()); - circadianPercentageProfilePlugin.timeshift = SafeParse.stringToInt(timeshiftView.getText().toString()); circadianPercentageProfilePlugin.storeSettings(); updateProfileInfo(); } }; diaView.addTextChangedListener(textWatch); - carView.addTextChangedListener(textWatch); targetlowView.addTextChangedListener(textWatch); targethighView.addTextChangedListener(textWatch); percentageView.addTextChangedListener(textWatch); @@ -247,6 +321,35 @@ public class CircadianPercentageProfileFragment extends Fragment implements Frag return layout; } + private void customSnackbar(View view, final String Msg, Object snackbarCaller) { + if(mSnackBar!= null) mSnackBar.dismiss(); + + this.snackbarCaller = snackbarCaller; + if (timeshiftViewHint || percentageViewHint) { + //noinspection WrongConstant + mSnackBar = Snackbar.make(view, Msg, 7000) + .setActionTextColor(ContextCompat.getColor(MainApp.instance(), R.color.notificationInfo)) + .setAction(getString(R.string.dont_show_again), new View.OnClickListener() { + @Override + public void onClick(View v) { + if (Msg.equals(getString(R.string.percentagefactor_hint))) { + percentageViewHint = false; + } else if (Msg.equals(getString(R.string.timeshift_hint))) { + timeshiftViewHint = false; + } + } + }); + view = mSnackBar.getView(); + FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) view.getLayoutParams(); + params.gravity = Gravity.CENTER_HORIZONTAL | Gravity.TOP; + view.setLayoutParams(params); + view.setBackgroundColor(ContextCompat.getColor(MainApp.instance(), R.color.cardview_dark_background)); + TextView mainTextView = (TextView) (view).findViewById(android.support.design.R.id.snackbar_text); + mainTextView.setTextColor(ContextCompat.getColor(MainApp.instance(), R.color.mdtp_white)); + mSnackBar.show(); + } + } + private void updateProfileInfo() { StringBuilder sb = new StringBuilder(); sb.append("

"); @@ -279,6 +382,7 @@ public class CircadianPercentageProfileFragment extends Fragment implements Frag basalEditDialog.dismiss(); } basalEditDialog = null; + fl.requestFocusFromTouch(); } public static class BasalEditDialog extends DialogFragment { @@ -359,6 +463,7 @@ public class CircadianPercentageProfileFragment extends Fragment implements Frag basalEditDialog = null; MainApp.bus().unregister(this); + fl.requestFocusFromTouch(); } @Override @@ -366,6 +471,7 @@ public class CircadianPercentageProfileFragment extends Fragment implements Frag super.onResume(); MainApp.bus().register(this); onStatusEvent(null); + fl.requestFocusFromTouch(); } @Subscribe @@ -375,7 +481,7 @@ public class CircadianPercentageProfileFragment extends Fragment implements Frag activity.runOnUiThread(new Runnable() { @Override public void run() { - if (!MainApp.getConfigBuilder().isInitialized() || !MainApp.getConfigBuilder().getPumpDescription().isSetBasalProfileCapable) { + if (!MainApp.getConfigBuilder().isInitialized() || MainApp.getConfigBuilder().isSuspended() || !MainApp.getConfigBuilder().getPumpDescription().isSetBasalProfileCapable) { profileswitchButton.setVisibility(View.GONE); } else { profileswitchButton.setVisibility(View.VISIBLE); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/CircadianPercentageProfile/CircadianPercentageProfilePlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/CircadianPercentageProfile/CircadianPercentageProfilePlugin.java index 274e1a941d..56aa813c29 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/CircadianPercentageProfile/CircadianPercentageProfilePlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/CircadianPercentageProfile/CircadianPercentageProfilePlugin.java @@ -15,7 +15,6 @@ import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.interfaces.ProfileInterface; -import info.nightscout.androidaps.plugins.OpenAPSMA.OpenAPSMAPlugin; import info.nightscout.client.data.NSProfile; import info.nightscout.utils.DecimalFormatter; import info.nightscout.utils.SafeParse; @@ -27,8 +26,6 @@ import info.nightscout.utils.ToastUtils; */ public class CircadianPercentageProfilePlugin implements PluginBase, ProfileInterface { public static final String SETTINGS_PREFIX = "CircadianPercentageProfile"; - public static final int MIN_PERCENTAGE = 50; - public static final int MAX_PERCENTAGE = 200; private static Logger log = LoggerFactory.getLogger(CircadianPercentageProfilePlugin.class); private static boolean fragmentEnabled = true; @@ -39,11 +36,10 @@ public class CircadianPercentageProfilePlugin implements PluginBase, ProfileInte boolean mgdl; boolean mmol; Double dia; - Double car; Double targetLow; Double targetHigh; - int percentage; - int timeshift; + public int percentage; + public int timeshift; double[] basebasal = new double[]{1d, 1d, 1d, 1d, 1d, 1d, 1d, 1d, 1d, 1d, 1d, 1d, 1d, 1d, 1d, 1d, 1d, 1d, 1d, 1d, 1d, 1d, 1d, 1d}; double[] baseisf = new double[]{35d, 35d, 35d, 35d, 35d, 35d, 35d, 35d, 35d, 35d, 35d, 35d, 35d, 35d, 35d, 35d, 35d, 35d, 35d, 35d, 35d, 35d, 35d, 35d}; double[] baseic = new double[]{4d, 4d, 4d, 4d, 4d, 4d, 4d, 4d, 4d, 4d, 4d, 4d, 4d, 4d, 4d, 4d, 4d, 4d, 4d, 4d, 4d, 4d, 4d, 4d}; @@ -67,6 +63,17 @@ public class CircadianPercentageProfilePlugin implements PluginBase, ProfileInte return MainApp.instance().getString(R.string.circadian_percentage_profile); } + @Override + public String getNameShort() { + String name = MainApp.sResources.getString(R.string.circadian_percentage_profile_shortname); + if (!name.trim().isEmpty()){ + //only if translation exists + return name; + } + // use long name as fallback + return getName(); + } + @Override public boolean isEnabled(int type) { return type == PROFILE && fragmentEnabled; @@ -100,7 +107,6 @@ public class CircadianPercentageProfilePlugin implements PluginBase, ProfileInte editor.putBoolean(SETTINGS_PREFIX + "mmol", mmol); editor.putBoolean(SETTINGS_PREFIX + "mgdl", mgdl); editor.putString(SETTINGS_PREFIX + "dia", dia.toString()); - editor.putString(SETTINGS_PREFIX + "car", car.toString()); editor.putString(SETTINGS_PREFIX + "targetlow", targetLow.toString()); editor.putString(SETTINGS_PREFIX + "targethigh", targetHigh.toString()); editor.putString(SETTINGS_PREFIX + "timeshift", timeshift + ""); @@ -142,13 +148,6 @@ public class CircadianPercentageProfilePlugin implements PluginBase, ProfileInte log.debug(e.getMessage()); } else dia = 3d; - if (settings.contains(SETTINGS_PREFIX + "car")) - try { - car = SafeParse.stringToDouble(settings.getString(SETTINGS_PREFIX + "car", "20")); - } catch (Exception e) { - log.debug(e.getMessage()); - } - else car = 20d; if (settings.contains(SETTINGS_PREFIX + "targetlow")) try { targetLow = SafeParse.stringToDouble(settings.getString(SETTINGS_PREFIX + "targetlow", "80")); @@ -228,9 +227,7 @@ public class CircadianPercentageProfilePlugin implements PluginBase, ProfileInte } profile.put("carbratio", icArray); - profile.put("carbs_hr", car); - - JSONArray isfArray = new JSONArray(); + JSONArray isfArray = new JSONArray(); for (int i = 0; i < 24; i++) { isfArray.put(new JSONObject().put("timeAsSeconds", i * 60 * 60).put("value", baseisf[(offset + i) % 24] * 100d / percentage)); } @@ -262,13 +259,13 @@ public class CircadianPercentageProfilePlugin implements PluginBase, ProfileInte } private void performLimitCheck() { - if (percentage < MIN_PERCENTAGE || percentage > MAX_PERCENTAGE){ + if (percentage < Constants.CPP_MIN_PERCENTAGE || percentage > Constants.CPP_MAX_PERCENTAGE){ String msg = String.format(MainApp.sResources.getString(R.string.openapsma_valueoutofrange), "Profile-Percentage"); log.error(msg); MainApp.getConfigBuilder().uploadError(msg); ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), msg, R.raw.error); - percentage = Math.max(percentage, MIN_PERCENTAGE); - percentage = Math.min(percentage, MAX_PERCENTAGE); + percentage = Math.max(percentage, Constants.CPP_MIN_PERCENTAGE); + percentage = Math.min(percentage, Constants.CPP_MAX_PERCENTAGE); } } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderFragment.java index 7c23346711..bf9f3fb0b2 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderFragment.java @@ -9,7 +9,9 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; +import android.widget.Button; import android.widget.CheckBox; +import android.widget.LinearLayout; import android.widget.ListAdapter; import android.widget.ListView; import android.widget.TextView; @@ -28,6 +30,7 @@ import info.nightscout.androidaps.interfaces.ProfileInterface; import info.nightscout.androidaps.interfaces.PumpInterface; import info.nightscout.androidaps.plugins.NSProfile.NSProfilePlugin; import info.nightscout.androidaps.plugins.VirtualPump.VirtualPumpPlugin; +import info.nightscout.utils.PasswordProtection; public class ConfigBuilderFragment extends Fragment implements FragmentBase { @@ -62,9 +65,10 @@ public class ConfigBuilderFragment extends Fragment implements FragmentBase { PluginCustomAdapter constraintsDataAdapter = null; PluginCustomAdapter generalDataAdapter = null; + LinearLayout mainLayout; + Button unlock; // TODO: sorting - // TODO: Toast and sound when command failed @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, @@ -90,6 +94,25 @@ public class ConfigBuilderFragment extends Fragment implements FragmentBase { if (ConfigBuilderPlugin.nightscoutVersionCode < 900) nightscoutVerView.setTextColor(Color.RED); setViews(); + + unlock = (Button) view.findViewById(R.id.configbuilder_unlock); + mainLayout = (LinearLayout) view.findViewById(R.id.configbuilder_mainlayout); + + if (PasswordProtection.isLocked("settings_password")) { + mainLayout.setVisibility(View.GONE); + unlock.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + PasswordProtection.QueryPassword(getContext(), R.string.settings_password, "settings_password", new Runnable() { + @Override + public void run() { + mainLayout.setVisibility(View.VISIBLE); + unlock.setVisibility(View.GONE); + } + }, null); + } + }); + } return view; } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java index ccbec0581f..a0b2a7b3b0 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java @@ -16,9 +16,12 @@ import org.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.sql.SQLException; import java.util.ArrayList; import java.util.Date; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledFuture; +import java.util.concurrent.TimeUnit; import info.nightscout.androidaps.Config; import info.nightscout.androidaps.MainApp; @@ -27,6 +30,7 @@ import info.nightscout.androidaps.Services.Intents; import info.nightscout.androidaps.data.PumpEnactResult; import info.nightscout.androidaps.db.TempBasal; import info.nightscout.androidaps.db.Treatment; +import info.nightscout.androidaps.events.EventBolusRequested; import info.nightscout.androidaps.events.EventNewBG; import info.nightscout.androidaps.events.EventTempBasalChange; import info.nightscout.androidaps.events.EventTreatmentChange; @@ -43,13 +47,13 @@ import info.nightscout.androidaps.plugins.DanaR.comm.MsgError; import info.nightscout.androidaps.plugins.Loop.APSResult; import info.nightscout.androidaps.plugins.Loop.DeviceStatus; import info.nightscout.androidaps.plugins.Loop.LoopPlugin; -import info.nightscout.androidaps.plugins.OpenAPSMA.DetermineBasalResult; +import info.nightscout.androidaps.plugins.OpenAPSAMA.DetermineBasalResultAMA; +import info.nightscout.androidaps.plugins.OpenAPSMA.DetermineBasalResultMA; import info.nightscout.androidaps.plugins.Overview.Dialogs.BolusProgressDialog; -import info.nightscout.androidaps.plugins.Actions.dialogs.NewExtendedBolusDialog; +import info.nightscout.androidaps.plugins.Overview.Dialogs.BolusProgressHelperActivity; import info.nightscout.androidaps.plugins.Overview.Notification; import info.nightscout.androidaps.plugins.Overview.events.EventDismissNotification; import info.nightscout.androidaps.plugins.Overview.events.EventNewNotification; -import info.nightscout.androidaps.plugins.SmsCommunicator.SmsCommunicatorPlugin; import info.nightscout.client.data.DbLogger; import info.nightscout.client.data.NSProfile; import info.nightscout.utils.DateUtil; @@ -75,14 +79,16 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain static ArrayList pluginList; - static Date lastDeviceStatusUpload = new Date(0); + private static final ScheduledExecutorService worker = Executors.newSingleThreadScheduledExecutor(); + private static ScheduledFuture scheduledPost = null; PowerManager.WakeLock mWakeLock; public ConfigBuilderPlugin() { MainApp.bus().register(this); PowerManager powerManager = (PowerManager) MainApp.instance().getApplicationContext().getSystemService(Context.POWER_SERVICE); - mWakeLock = powerManager.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "ConfigBuilderPlugin");; + mWakeLock = powerManager.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "ConfigBuilderPlugin"); + ; } @Override @@ -100,6 +106,17 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain return MainApp.instance().getString(R.string.configbuilder); } + @Override + public String getNameShort() { + String name = MainApp.sResources.getString(R.string.configbuilder_shortname); + if (!name.trim().isEmpty()) { + //only if translation exists + return name; + } + // use long name as fallback + return getName(); + } + @Override public boolean isEnabled(int type) { return type == GENERAL && true; @@ -199,14 +216,14 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain public void logPluginStatus() { for (PluginBase p : pluginList) { log.debug(p.getName() + ":" + - (p.isEnabled(1) ? " GENERAL" : "") + - (p.isEnabled(2) ? " TREATMENT" : "") + - (p.isEnabled(3) ? " TEMPBASAL" : "") + - (p.isEnabled(4) ? " PROFILE" : "") + - (p.isEnabled(5) ? " APS" : "") + - (p.isEnabled(6) ? " PUMP" : "") + - (p.isEnabled(7) ? " CONSTRAINTS" : "") + - (p.isEnabled(8) ? " LOOP" : "") + + (p.isEnabled(1) ? " GENERAL" : "") + + (p.isEnabled(2) ? " TREATMENT" : "") + + (p.isEnabled(3) ? " TEMPBASAL" : "") + + (p.isEnabled(4) ? " PROFILE" : "") + + (p.isEnabled(5) ? " APS" : "") + + (p.isEnabled(6) ? " PUMP" : "") + + (p.isEnabled(7) ? " CONSTRAINTS" : "") + + (p.isEnabled(8) ? " LOOP" : "") + (p.isEnabled(9) ? " BGSOURCE" : "") ); } @@ -324,6 +341,16 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain return activePump.isInitialized(); } + @Override + public boolean isSuspended() { + return activePump.isSuspended(); + } + + @Override + public boolean isBusy() { + return activePump.isBusy(); + } + @Override public boolean isTempBasalInProgress() { return activePump.isTempBasalInProgress(); @@ -362,6 +389,16 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain return activePump.isThisProfileSet(profile); } + @Override + public Date lastStatusTime() { + return activePump.lastStatusTime(); + } + + @Override + public void updateStatus(String reason) { + activePump.updateStatus(reason); + } + @Override public double getBaseBasalRate() { return activePump.getBaseBasalRate(); @@ -404,6 +441,8 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain bolusProgressDialog.show(((AppCompatActivity) context).getSupportFragmentManager(), "BolusProgress"); } + MainApp.bus().post(new EventBolusRequested(insulin)); + PumpEnactResult result = activePump.deliverTreatment(insulin, carbs, context); BolusProgressDialog.bolusEnded = true; @@ -423,15 +462,10 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain t.carbs = (double) result.carbsDelivered; // with different carbTime record will come back from nightscout t.created_at = new Date(); t.mealBolus = result.carbsDelivered > 0; - try { - MainApp.getDbHelper().getDaoTreatments().create(t); - } catch (SQLException e) { - e.printStackTrace(); - } + MainApp.getDbHelper().create(t); t.setTimeIndex(t.getTimeIndex()); t.carbs = (double) result.carbsDelivered; uploadBolusWizardRecord(t, glucose, glucoseType, carbTime, boluscalc); - MainApp.bus().post(new EventTreatmentChange()); } mWakeLock.release(); return result; @@ -448,12 +482,20 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain carbs = applyCarbsConstraints(carbs); BolusProgressDialog bolusProgressDialog = null; - if (context != null) { + if (context != null ) { bolusProgressDialog = new BolusProgressDialog(); bolusProgressDialog.setInsulin(insulin); bolusProgressDialog.show(((AppCompatActivity) context).getSupportFragmentManager(), "BolusProgress"); + } else { + Intent i = new Intent(); + i.putExtra("insulin", insulin.doubleValue()); + i.setClass(MainApp.instance(), BolusProgressHelperActivity.class); + i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + MainApp.instance().startActivity(i); } + MainApp.bus().post(new EventBolusRequested(insulin)); + PumpEnactResult result = activePump.deliverTreatment(insulin, carbs, context); BolusProgressDialog.bolusEnded = true; @@ -475,21 +517,15 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain t.carbs = (double) result.carbsDelivered; t.created_at = new Date(); t.mealBolus = t.carbs > 0; - try { - MainApp.getDbHelper().getDaoTreatments().create(t); - } catch (SQLException e) { - e.printStackTrace(); - } + MainApp.getDbHelper().create(t); t.setTimeIndex(t.getTimeIndex()); t.sendToNSClient(); - MainApp.bus().post(new EventTreatmentChange()); } mWakeLock.release(); return result; } - @Override public void stopBolusDelivering() { activePump.stopBolusDelivering(); @@ -587,6 +623,17 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain result.comment = MainApp.sResources.getString(R.string.pumpNotInitialized); result.enacted = false; result.success = false; + log.debug("applyAPSRequest: " + MainApp.sResources.getString(R.string.pumpNotInitialized)); + return result; + } + + if (isSuspended()) { + result = new PumpEnactResult(); + result.comment = MainApp.sResources.getString(R.string.pumpsuspended); + result.enacted = false; + result.success = false; + log.debug("applyAPSRequest: " + MainApp.sResources.getString(R.string.pumpsuspended)); + return result; } if (Config.logCongigBuilderActions) @@ -647,12 +694,21 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain emptyDescription.isBolusCapable = false; emptyDescription.isExtendedBolusCapable = false; emptyDescription.isSetBasalProfileCapable = false; - emptyDescription.isTempBasalCapable = false; + emptyDescription.isTempBasalCapable = true; // needs to be true before real driver is selected emptyDescription.isRefillingCapable = false; return emptyDescription; } } + @Override + public String shortStatus(boolean veryShort) { + if (activePump != null) { + return activePump.shortStatus(veryShort); + } else { + return "No Pump active!"; + } + } + /** * Constraints interface **/ @@ -697,7 +753,8 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain @Override public boolean isAMAModeEnabled() { - boolean result = true; + SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); + boolean result = preferences.getBoolean("openapsama_useautosens", false); ArrayList constraintsPlugins = MainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class); for (PluginBase p : constraintsPlugins) { @@ -770,22 +827,7 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain @Subscribe public void onStatusEvent(final EventNewBG ev) { - Thread t = new Thread(new Runnable() { - @Override - public void run() { - // Give some time to Loop - try { - Thread.sleep(120 * 1000L); - } catch (InterruptedException e) { - e.printStackTrace(); - } - // if status not uploaded, upload pump status only - if (new Date().getTime() - lastDeviceStatusUpload.getTime() > 120 * 1000L) { - uploadDeviceStatus(); - } - } - }); - t.start(); + uploadDeviceStatus(120); } public void uploadTempBasalStartAbsolute(Double absolute, double durationInMinutes) { @@ -797,7 +839,7 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain data.put("absolute", absolute); data.put("created_at", DateUtil.toISOString(new Date())); data.put("enteredBy", MainApp.instance().getString(R.string.app_name)); - data.put("notes", MainApp.sResources.getString(R.string.androidaps_tempbasalstartnote) + " " + absolute + "u/h " + durationInMinutes +" min"); // ECOR + data.put("notes", MainApp.sResources.getString(R.string.androidaps_tempbasalstartnote) + " " + absolute + "u/h " + durationInMinutes + " min"); // ECOR Bundle bundle = new Bundle(); bundle.putString("action", "dbAdd"); bundle.putString("collection", "treatments"); @@ -827,7 +869,7 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain data.put("percent", percent - 100); data.put("created_at", DateUtil.toISOString(new Date())); data.put("enteredBy", MainApp.instance().getString(R.string.app_name)); - data.put("notes", MainApp.sResources.getString(R.string.androidaps_tempbasalstartnote) + " " + percent + "% " + durationInMinutes +" min"); // ECOR + data.put("notes", MainApp.sResources.getString(R.string.androidaps_tempbasalstartnote) + " " + percent + "% " + durationInMinutes + " min"); // ECOR Bundle bundle = new Bundle(); bundle.putString("action", "dbAdd"); bundle.putString("collection", "treatments"); @@ -891,18 +933,24 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain } } - public void uploadDeviceStatus() { + public void doUploadDeviceStatus() { DeviceStatus deviceStatus = new DeviceStatus(); try { LoopPlugin.LastRun lastRun = LoopPlugin.lastRun; - if (lastRun != null && lastRun.lastAPSRun.getTime() > new Date().getTime() - 60 * 1000L) { + if (lastRun != null && lastRun.lastAPSRun.getTime() > new Date().getTime() - 300 * 1000L) { // do not send if result is older than 1 min APSResult apsResult = lastRun.request; apsResult.json().put("timestamp", DateUtil.toISOString(lastRun.lastAPSRun)); deviceStatus.suggested = apsResult.json(); - if (lastRun.request instanceof DetermineBasalResult) { - DetermineBasalResult result = (DetermineBasalResult) lastRun.request; + if (lastRun.request instanceof DetermineBasalResultMA) { + DetermineBasalResultMA result = (DetermineBasalResultMA) lastRun.request; + deviceStatus.iob = result.iob.json(); + deviceStatus.iob.put("time", DateUtil.toISOString(lastRun.lastAPSRun)); + } + + if (lastRun.request instanceof DetermineBasalResultAMA) { + DetermineBasalResultAMA result = (DetermineBasalResultAMA) lastRun.request; deviceStatus.iob = result.iob.json(); deviceStatus.iob.put("time", DateUtil.toISOString(lastRun.lastAPSRun)); } @@ -921,18 +969,36 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain } if (activePump != null) { deviceStatus.device = "openaps://" + deviceID(); - deviceStatus.pump = getJSONStatus(); + JSONObject pumpstatus = getJSONStatus(); + if (pumpstatus != null) { + deviceStatus.pump = getJSONStatus(); + } deviceStatus.created_at = DateUtil.toISOString(new Date()); deviceStatus.sendToNSClient(); - lastDeviceStatusUpload = new Date(); } } catch (JSONException e) { e.printStackTrace(); } } + static public void uploadDeviceStatus(int sec) { + class PostRunnable implements Runnable { + public void run() { + MainApp.getConfigBuilder().doUploadDeviceStatus(); + scheduledPost = null; + } + } + // prepare task for execution + // cancel waiting task to prevent sending multiple posts + if (scheduledPost != null) + scheduledPost.cancel(false); + Runnable task = new PostRunnable(); + scheduledPost = worker.schedule(task, sec, TimeUnit.SECONDS); + log.debug("Scheduling devicestatus upload in " + sec + " sec"); + } + public void uploadBolusWizardRecord(Treatment t, double glucose, String glucoseType, int carbTime, JSONObject boluscalc) { JSONObject data = new JSONObject(); try { @@ -974,7 +1040,25 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain intent.putExtras(bundle); intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); context.sendBroadcast(intent); - DbLogger.dbAdd(intent, data.toString(), NewExtendedBolusDialog.class); + DbLogger.dbAdd(intent, data.toString(), ConfigBuilderPlugin.class); + } catch (Exception e) { + e.printStackTrace(); + } + + } + + public static void removeCareportalEntryFromNS(String _id) { + try { + Context context = MainApp.instance().getApplicationContext(); + Bundle bundle = new Bundle(); + bundle.putString("action", "dbRemove"); + bundle.putString("collection", "treatments"); + bundle.putString("_id", _id); + Intent intent = new Intent(Intents.ACTION_DATABASE); + intent.putExtras(bundle); + intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); + context.sendBroadcast(intent); + DbLogger.dbRemove(intent, _id, ConfigBuilderPlugin.class); } catch (Exception e) { e.printStackTrace(); } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/DanaRFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/DanaRFragment.java index b7fae2a125..7c59790e35 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/DanaRFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/DanaRFragment.java @@ -29,6 +29,7 @@ import info.nightscout.androidaps.events.EventTempBasalChange; import info.nightscout.androidaps.interfaces.FragmentBase; import info.nightscout.androidaps.plugins.DanaR.Dialogs.ProfileViewDialog; import info.nightscout.androidaps.plugins.DanaR.History.DanaRHistoryActivity; +import info.nightscout.androidaps.plugins.DanaR.History.DanaRStatsActivity; import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRConnectionStatus; import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRNewStatus; import info.nightscout.utils.DateUtil; @@ -63,8 +64,11 @@ public class DanaRFragment extends Fragment implements FragmentBase { TextView batteryView; TextView reservoirView; TextView iobView; + TextView firmwareView; Button viewProfileButton; Button historyButton; + Button statsButton; + public DanaRFragment() { if (sHandlerThread == null) { @@ -103,8 +107,11 @@ public class DanaRFragment extends Fragment implements FragmentBase { batteryView = (TextView) view.findViewById(R.id.danar_battery); reservoirView = (TextView) view.findViewById(R.id.danar_reservoir); iobView = (TextView) view.findViewById(R.id.danar_iob); + firmwareView = (TextView) view.findViewById(R.id.danar_firmware); viewProfileButton = (Button) view.findViewById(R.id.danar_viewprofile); historyButton = (Button) view.findViewById(R.id.danar_history); + statsButton = (Button) view.findViewById(R.id.danar_stats); + viewProfileButton.setOnClickListener(new View.OnClickListener() { @Override @@ -122,6 +129,13 @@ public class DanaRFragment extends Fragment implements FragmentBase { } }); + statsButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + startActivity(new Intent(getContext(), DanaRStatsActivity.class)); + } + }); + btConnectionView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -194,24 +208,24 @@ public class DanaRFragment extends Fragment implements FragmentBase { @SuppressLint("SetTextI18n") @Override public void run() { - - if (DanaRPlugin.getDanaRPump().lastConnection.getTime() != 0) { - Long agoMsec = new Date().getTime() - DanaRPlugin.getDanaRPump().lastConnection.getTime(); + DanaRPump pump = DanaRPlugin.getDanaRPump(); + if (pump.lastConnection.getTime() != 0) { + Long agoMsec = new Date().getTime() - pump.lastConnection.getTime(); int agoMin = (int) (agoMsec / 60d / 1000d); - lastConnectionView.setText(DateUtil.timeString(DanaRPlugin.getDanaRPump().lastConnection) + " (" + String.format(MainApp.sResources.getString(R.string.minago), agoMin) + ")"); + lastConnectionView.setText(DateUtil.timeString(pump.lastConnection) + " (" + String.format(MainApp.sResources.getString(R.string.minago), agoMin) + ")"); SetWarnColor.setColor(lastConnectionView, agoMin, 16d, 31d); } - if (DanaRPlugin.getDanaRPump().lastBolusTime.getTime() != 0) { - Long agoMsec = new Date().getTime() - DanaRPlugin.getDanaRPump().lastBolusTime.getTime(); + if (pump.lastBolusTime.getTime() != 0) { + Long agoMsec = new Date().getTime() - pump.lastBolusTime.getTime(); double agoHours = agoMsec / 60d / 60d / 1000d; if (agoHours < 6) // max 6h back - lastBolusView.setText(DateUtil.timeString(DanaRPlugin.getDanaRPump().lastBolusTime) + " (" + DecimalFormatter.to1Decimal(agoHours) + " " + getString(R.string.hoursago) + ") " + DecimalFormatter.to2Decimal(getPlugin().getDanaRPump().lastBolusAmount) + " U"); + lastBolusView.setText(DateUtil.timeString(pump.lastBolusTime) + " (" + DecimalFormatter.to1Decimal(agoHours) + " " + MainApp.sResources.getString(R.string.hoursago) + ") " + DecimalFormatter.to2Decimal(getPlugin().getDanaRPump().lastBolusAmount) + " U"); else lastBolusView.setText(""); } - dailyUnitsView.setText(DecimalFormatter.to0Decimal(DanaRPlugin.getDanaRPump().dailyTotalUnits) + " / " + DanaRPlugin.getDanaRPump().maxDailyTotalUnits + " U"); - SetWarnColor.setColor(dailyUnitsView, DanaRPlugin.getDanaRPump().dailyTotalUnits, DanaRPlugin.getDanaRPump().maxDailyTotalUnits * 0.75d, DanaRPlugin.getDanaRPump().maxDailyTotalUnits * 0.9d); - basaBasalRateView.setText("( " + (DanaRPlugin.getDanaRPump().activeProfile + 1) + " ) " + DecimalFormatter.to2Decimal(getPlugin().getBaseBasalRate()) + " U/h"); + dailyUnitsView.setText(DecimalFormatter.to0Decimal(pump.dailyTotalUnits) + " / " + pump.maxDailyTotalUnits + " U"); + SetWarnColor.setColor(dailyUnitsView, pump.dailyTotalUnits, pump.maxDailyTotalUnits * 0.75d, pump.maxDailyTotalUnits * 0.9d); + basaBasalRateView.setText("( " + (pump.activeProfile + 1) + " ) " + DecimalFormatter.to2Decimal(getPlugin().getBaseBasalRate()) + " U/h"); if (getPlugin().isRealTempBasalInProgress()) { tempBasalView.setText(getPlugin().getRealTempBasal().toString()); } else { @@ -222,11 +236,16 @@ public class DanaRFragment extends Fragment implements FragmentBase { } else { extendedBolusView.setText(""); } - reservoirView.setText(DecimalFormatter.to0Decimal(DanaRPlugin.getDanaRPump().reservoirRemainingUnits) + " / 300 U"); - SetWarnColor.setColorInverse(reservoirView, DanaRPlugin.getDanaRPump().reservoirRemainingUnits, 50d, 20d); - batteryView.setText("{fa-battery-" + (DanaRPlugin.getDanaRPump().batteryRemaining / 25) + "}"); - SetWarnColor.setColorInverse(batteryView, DanaRPlugin.getDanaRPump().batteryRemaining, 51d, 26d); - iobView.setText(DanaRPlugin.getDanaRPump().iob + " U"); + reservoirView.setText(DecimalFormatter.to0Decimal(pump.reservoirRemainingUnits) + " / 300 U"); + SetWarnColor.setColorInverse(reservoirView, pump.reservoirRemainingUnits, 50d, 20d); + batteryView.setText("{fa-battery-" + (pump.batteryRemaining / 25) + "}"); + SetWarnColor.setColorInverse(batteryView, pump.batteryRemaining, 51d, 26d); + iobView.setText(pump.iob + " U"); + if (pump.isNewPump) { + firmwareView.setText(String.format(MainApp.sResources.getString(R.string.danar_model), pump.model, pump.protocol, pump.productCode)); + } else { + firmwareView.setText("OLD"); + } } }); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/DanaRPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/DanaRPlugin.java index 72a7a74248..7889471d6b 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/DanaRPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/DanaRPlugin.java @@ -66,7 +66,7 @@ public class DanaRPlugin implements PluginBase, PumpInterface, ConstraintsInterf private static DanaRPump sDanaRPump = new DanaRPump(); private static boolean useExtendedBoluses = false; - private static PumpDescription pumpDescription = new PumpDescription(); + public static PumpDescription pumpDescription = new PumpDescription(); public static DanaRPump getDanaRPump() { return sDanaRPump; @@ -85,7 +85,7 @@ public class DanaRPlugin implements PluginBase, PumpInterface, ConstraintsInterf pumpDescription.bolusStep = 0.05d; pumpDescription.isExtendedBolusCapable = true; - pumpDescription.extendedBolusStep = 0.1d; + pumpDescription.extendedBolusStep = 0.05d; pumpDescription.isTempBasalCapable = true; pumpDescription.lowTempBasalStyle = PumpDescription.PERCENT; @@ -154,6 +154,17 @@ public class DanaRPlugin implements PluginBase, PumpInterface, ConstraintsInterf return MainApp.instance().getString(R.string.danarpump); } + @Override + public String getNameShort() { + String name = MainApp.sResources.getString(R.string.danarpump_shortname); + if (!name.trim().isEmpty()){ + //only if translation exists + return name; + } + // use long name as fallback + return getName(); + } + @Override public boolean isEnabled(int type) { if (type == PluginBase.PROFILE) return fragmentProfileEnabled && fragmentPumpEnabled; @@ -200,6 +211,17 @@ public class DanaRPlugin implements PluginBase, PumpInterface, ConstraintsInterf return getDanaRPump().lastConnection.getTime() > 0 && getDanaRPump().isExtendedBolusEnabled; } + @Override + public boolean isSuspended() { + return getDanaRPump().pumpSuspended; + } + + @Override + public boolean isBusy() { + if (sExecutionService == null) return false; + return sExecutionService.isConnected() || sExecutionService.isConnecting(); + } + // Pump interface @Override public boolean isTempBasalInProgress() { @@ -247,12 +269,14 @@ public class DanaRPlugin implements PluginBase, PumpInterface, ConstraintsInterf if (!isInitialized()) return true; // TODO: not sure what's better. so far TRUE to prevent too many SMS DanaRPump pump = getDanaRPump(); + if (pump.pumpProfiles == null) + return true; // TODO: not sure what's better. so far TRUE to prevent too many SMS int basalValues = pump.basal48Enable ? 48 : 24; int basalIncrement = pump.basal48Enable ? 30 * 60 : 60 * 60; for (int h = 0; h < basalValues; h++) { Double pumpValue = pump.pumpProfiles[pump.activeProfile][h]; Double profileValue = profile.getBasal(h * basalIncrement); - if (!pumpValue.equals(profileValue)) { + if (Math.abs(pumpValue - profileValue) > getPumpDescription().basalStep) { log.debug("Diff found. Hour: " + h + " Pump: " + pumpValue + " Profile: " + profileValue); return false; } @@ -260,6 +284,18 @@ public class DanaRPlugin implements PluginBase, PumpInterface, ConstraintsInterf return true; } + @Override + public Date lastStatusTime() { + return getDanaRPump().lastConnection; + } + + @Override + public void updateStatus(String reason) { + if (!isConnected() && !isConnecting()) { + doConnect(reason); + } + } + @Override public double getBaseBasalRate() { return getDanaRPump().currentBasal; @@ -267,17 +303,19 @@ public class DanaRPlugin implements PluginBase, PumpInterface, ConstraintsInterf @Override public double getTempBasalAbsoluteRate() { - if (isRealTempBasalInProgress()) { - if (getRealTempBasal().isAbsolute) { - return getRealTempBasal().absolute; + TempBasal tb = getRealTempBasal(); + if (tb != null) { + if (tb.isAbsolute) { + return tb.absolute; } else { Double baseRate = getBaseBasalRate(); - Double tempRate = baseRate * (getRealTempBasal().percent / 100d); + Double tempRate = baseRate * (tb.percent / 100d); return tempRate; } } - if (isExtendedBoluslInProgress() && useExtendedBoluses) { - return getBaseBasalRate() + getExtendedBolus().absolute; + TempBasal eb = getExtendedBolus(); + if (eb != null && useExtendedBoluses) { + return getBaseBasalRate() + eb.absolute; } return 0; } @@ -469,7 +507,7 @@ public class DanaRPlugin implements PluginBase, PumpInterface, ConstraintsInterf } // Compare with extended rate in progress - if (Math.abs(getDanaRPump().extendedBolusAbsoluteRate - extendedRateToSet) < 0.02D) { // Allow some rounding diff + if (isExtendedBoluslInProgress() && Math.abs(getDanaRPump().extendedBolusAbsoluteRate - extendedRateToSet) < getPumpDescription().extendedBolusStep) { // correct extended already set result.success = true; result.absolute = getDanaRPump().extendedBolusAbsoluteRate; @@ -678,17 +716,18 @@ public class DanaRPlugin implements PluginBase, PumpInterface, ConstraintsInterf JSONObject extended = new JSONObject(); try { battery.put("percent", getDanaRPump().batteryRemaining); - status.put("status", "normal"); + status.put("status", getDanaRPump().pumpSuspended ? "suspended" : "normal"); status.put("timestamp", DateUtil.toISOString(getDanaRPump().lastConnection)); extended.put("Version", BuildConfig.VERSION_NAME + "-" + BuildConfig.BUILDVERSION); extended.put("PumpIOB", getDanaRPump().iob); extended.put("LastBolus", getDanaRPump().lastBolusTime.toLocaleString()); extended.put("LastBolusAmount", getDanaRPump().lastBolusAmount); - if (isTempBasalInProgress()) { + TempBasal tb = getTempBasal(); + if (tb != null) { extended.put("TempBasalAbsoluteRate", getTempBasalAbsoluteRate()); - extended.put("TempBasalStart", getTempBasal().timeStart.toLocaleString()); - extended.put("TempBasalRemaining", getTempBasal().getPlannedRemainingMinutes()); - extended.put("IsExtended", getTempBasal().isExtended); + extended.put("TempBasalStart", tb.timeStart.toLocaleString()); + extended.put("TempBasalRemaining", tb.getPlannedRemainingMinutes()); + extended.put("IsExtended", tb.isExtended); } extended.put("BaseBasalRate", getBaseBasalRate()); try { @@ -800,7 +839,7 @@ public class DanaRPlugin implements PluginBase, PumpInterface, ConstraintsInterf } // Reply for sms communicator - public String shortStatus() { + public String shortStatus(boolean veryShort) { String ret = ""; if (getDanaRPump().lastConnection.getTime() != 0) { Long agoMsec = new Date().getTime() - getDanaRPump().lastConnection.getTime(); @@ -816,6 +855,9 @@ public class DanaRPlugin implements PluginBase, PumpInterface, ConstraintsInterf if (isExtendedBoluslInProgress()) { ret += "Extended: " + getExtendedBolus().toString() + "\n"; } + if (!veryShort){ + ret += "TDD: " + DecimalFormatter.to0Decimal(getDanaRPump().dailyTotalUnits) + " / " + getDanaRPump().maxDailyTotalUnits + " U\n"; + } ret += "IOB: " + getDanaRPump().iob + "U\n"; ret += "Reserv: " + DecimalFormatter.to0Decimal(getDanaRPump().reservoirRemainingUnits) + "U\n"; ret += "Batt: " + getDanaRPump().batteryRemaining + "\n"; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/DanaRPump.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/DanaRPump.java index 535b80a296..1e9808becd 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/DanaRPump.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/DanaRPump.java @@ -36,7 +36,7 @@ public class DanaRPump { public String serialNumber = ""; public Date shippingDate = new Date(0); public String shippingCountry = ""; - public boolean isNewPump = false; + public boolean isNewPump = true; public int password = -1; public Date pumpTime = new Date(0); @@ -124,7 +124,6 @@ public class DanaRPump { SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); double dia = SafeParse.stringToDouble(SP.getString("danarprofile_dia", "3")); - double car = SafeParse.stringToDouble(SP.getString("danarprofile_car", "20")); try { json.put("defaultProfile", PROFILE_PREFIX + (activeProfile + 1)); @@ -139,8 +138,6 @@ public class DanaRPump { carbratios.put(new JSONObject().put("time", "22:00").put("timeAsSeconds", 22 * 3600).put("value", nightCIR)); profile.put("carbratio", carbratios); - profile.put("carbs_hr", car); - JSONArray sens = new JSONArray(); sens.put(new JSONObject().put("time", "00:00").put("timeAsSeconds", 0).put("value", nightCF)); sens.put(new JSONObject().put("time", "06:00").put("timeAsSeconds", 6 * 3600).put("value", morningCF)); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/History/DanaRStatsActivity.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/History/DanaRStatsActivity.java new file mode 100644 index 0000000000..674213d66f --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/History/DanaRStatsActivity.java @@ -0,0 +1,571 @@ +package info.nightscout.androidaps.plugins.DanaR.History; + +import android.app.Activity; +import android.content.ComponentName; +import android.content.Context; +import android.content.Intent; +import android.content.ServiceConnection; +import android.content.SharedPreferences; +import android.graphics.Color; +import android.graphics.Rect; +import android.os.Bundle; +import android.os.Handler; +import android.os.HandlerThread; +import android.os.IBinder; +import android.preference.PreferenceManager; +import android.support.v7.widget.LinearLayoutManager; +import android.text.TextUtils; +import android.view.KeyEvent; +import android.view.MotionEvent; +import android.view.View; +import android.view.WindowManager; +import android.view.inputmethod.EditorInfo; +import android.view.inputmethod.InputMethodManager; +import android.widget.Button; +import android.widget.EditText; +import android.widget.TableLayout; +import android.widget.TableRow; +import android.widget.TextView; + +import com.j256.ormlite.dao.Dao; +import com.j256.ormlite.stmt.PreparedQuery; +import com.j256.ormlite.stmt.QueryBuilder; +import com.j256.ormlite.stmt.Where; +import com.squareup.otto.Subscribe; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.sql.SQLException; +import java.text.DateFormat; +import java.text.DecimalFormat; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Date; +import java.util.List; + +import info.nightscout.androidaps.MainApp; +import info.nightscout.androidaps.R; +import info.nightscout.androidaps.db.DanaRHistoryRecord; +import info.nightscout.androidaps.interfaces.ProfileInterface; +import info.nightscout.androidaps.plugins.CircadianPercentageProfile.CircadianPercentageProfilePlugin; +import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; +import info.nightscout.androidaps.plugins.DanaR.Services.ExecutionService; +import info.nightscout.androidaps.plugins.DanaR.comm.RecordTypes; +import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRConnectionStatus; +import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRSyncStatus; +import info.nightscout.utils.DecimalFormatter; +import info.nightscout.utils.SafeParse; +import info.nightscout.utils.ToastUtils; + +public class DanaRStatsActivity extends Activity { + private static Logger log = LoggerFactory.getLogger(DanaRStatsActivity.class); + + private boolean mBounded; + private static ExecutionService mExecutionService; + + private Handler mHandler; + private static HandlerThread mHandlerThread; + + TextView statusView, statsMessage,totalBaseBasal2; + EditText totalBaseBasal; + Button reloadButton; + LinearLayoutManager llm; + TableLayout tl,ctl,etl; + String TBB; + double magicNumber; + DecimalFormat decimalFormat; + + List historyList = new ArrayList<>(); + + public DanaRStatsActivity() { + super(); + mHandlerThread = new HandlerThread(DanaRStatsActivity.class.getSimpleName()); + mHandlerThread.start(); + this.mHandler = new Handler(mHandlerThread.getLooper()); + } + + @Override + public void onStart() { + super.onStart(); + Intent intent = new Intent(this, ExecutionService.class); + bindService(intent, mConnection, Context.BIND_AUTO_CREATE); + } + + @Override + protected void onResume() { + super.onResume(); + MainApp.bus().register(this); + } + + @Override + protected void onPause() { + super.onPause(); + MainApp.bus().unregister(this); + } + + @Override + public void onStop() { + super.onStop(); + if (mBounded) { + unbindService(mConnection); + mBounded = false; + } + } + + @Override + public boolean dispatchTouchEvent(MotionEvent event) { + if (event.getAction() == MotionEvent.ACTION_DOWN) { + View myView = getCurrentFocus(); + if ( myView instanceof EditText) { + Rect rect = new Rect(); + myView.getGlobalVisibleRect(rect); + if (!rect.contains((int)event.getRawX(), (int)event.getRawY())) { + myView.clearFocus(); + } + } + } + return super.dispatchTouchEvent( event ); + } + + ServiceConnection mConnection = new ServiceConnection() { + + public void onServiceDisconnected(ComponentName name) { + log.debug("Service is disconnected"); + mBounded = false; + mExecutionService = null; + } + + public void onServiceConnected(ComponentName name, IBinder service) { + log.debug("Service is connected"); + mBounded = true; + ExecutionService.LocalBinder mLocalBinder = (ExecutionService.LocalBinder) service; + mExecutionService = mLocalBinder.getServiceInstance(); + } + }; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.danar_statsactivity); + getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN); + statusView = (TextView) findViewById(R.id.danar_stats_connection_status); + reloadButton = (Button) findViewById(R.id.danar_statsreload); + totalBaseBasal = (EditText) findViewById(R.id.danar_stats_editTotalBaseBasal); + totalBaseBasal2 = (TextView) findViewById(R.id.danar_stats_editTotalBaseBasal2); + statsMessage = (TextView) findViewById(R.id.danar_stats_Message); + + statusView.setVisibility(View.GONE); + statsMessage.setVisibility(View.GONE); + + totalBaseBasal2.setEnabled(false); + totalBaseBasal2.setClickable(false); + totalBaseBasal2.setFocusable(false); + totalBaseBasal2.setInputType(0); + + decimalFormat = new DecimalFormat("0.000"); + llm = new LinearLayoutManager(this); + + final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); + TBB = preferences.getString("TBB", "10.00"); + totalBaseBasal.setText(TBB); + + ProfileInterface pi = ConfigBuilderPlugin.getActiveProfile(); + if (pi != null && pi instanceof CircadianPercentageProfilePlugin){ + double cppTBB = ((CircadianPercentageProfilePlugin)pi).baseBasalSum(); + totalBaseBasal.setText(decimalFormat.format(cppTBB)); + SharedPreferences.Editor edit = preferences.edit(); + edit.putString("TBB",totalBaseBasal.getText().toString()); + edit.commit(); + TBB = preferences.getString("TBB", ""); + } + + // stats table + tl = (TableLayout) findViewById(R.id.main_table); + TableRow tr_head = new TableRow(this); + tr_head.setBackgroundColor(Color.DKGRAY); + tr_head.setLayoutParams(new TableLayout.LayoutParams( + TableLayout.LayoutParams.MATCH_PARENT, + TableLayout.LayoutParams.WRAP_CONTENT)); + + TextView label_date = new TextView(this); + label_date.setText(getString(R.string.danar_stats_date)); + label_date.setTextColor(Color.WHITE); + tr_head.addView(label_date); + + TextView label_basalrate = new TextView(this); + label_basalrate.setText(getString(R.string.danar_stats_basalrate)); + label_basalrate.setTextColor(Color.WHITE); + tr_head.addView(label_basalrate); + + TextView label_bolus = new TextView(this); + label_bolus.setText(getString(R.string.danar_stats_bolus)); + label_bolus.setTextColor(Color.WHITE); + tr_head.addView(label_bolus); + + TextView label_tdd = new TextView(this); + label_tdd.setText(getString(R.string.danar_stats_tdd)); + label_tdd.setTextColor(Color.WHITE); + tr_head.addView(label_tdd); + + TextView label_ratio = new TextView(this); + label_ratio.setText(getString(R.string.danar_stats_ratio)); + label_ratio.setTextColor(Color.WHITE); + tr_head.addView(label_ratio); + + // add stats headers to tables + tl.addView(tr_head, new TableLayout.LayoutParams( + TableLayout.LayoutParams.MATCH_PARENT, + TableLayout.LayoutParams.WRAP_CONTENT)); + + // cumulative table + ctl = (TableLayout) findViewById(R.id.cumulative_table); + TableRow ctr_head = new TableRow(this); + ctr_head.setBackgroundColor(Color.DKGRAY); + ctr_head.setLayoutParams(new TableLayout.LayoutParams( + TableLayout.LayoutParams.MATCH_PARENT, + TableLayout.LayoutParams.WRAP_CONTENT)); + + TextView label_cum_amount_days = new TextView(this); + label_cum_amount_days.setText(getString(R.string.danar_stats_amount_days)); + label_cum_amount_days.setTextColor(Color.WHITE); + ctr_head.addView(label_cum_amount_days); + + TextView label_cum_tdd = new TextView(this); + label_cum_tdd.setText(getString(R.string.danar_stats_tdd)); + label_cum_tdd.setTextColor(Color.WHITE); + ctr_head.addView(label_cum_tdd); + + TextView label_cum_ratio = new TextView(this); + label_cum_ratio.setText(getString(R.string.danar_stats_ratio)); + label_cum_ratio.setTextColor(Color.WHITE); + ctr_head.addView(label_cum_ratio); + + // add cummulative headers to tables + ctl.addView(ctr_head, new TableLayout.LayoutParams( + TableLayout.LayoutParams.MATCH_PARENT, + TableLayout.LayoutParams.WRAP_CONTENT)); + + // expontial table + etl = (TableLayout) findViewById(R.id.expweight_table); + TableRow etr_head = new TableRow(this); + etr_head.setBackgroundColor(Color.DKGRAY); + etr_head.setLayoutParams(new TableLayout.LayoutParams( + TableLayout.LayoutParams.MATCH_PARENT, + TableLayout.LayoutParams.WRAP_CONTENT)); + + TextView label_exp_weight = new TextView(this); + label_exp_weight.setText(getString(R.string.danar_stats_weight)); + label_exp_weight.setTextColor(Color.WHITE); + etr_head.addView(label_exp_weight); + + TextView label_exp_tdd = new TextView(this); + label_exp_tdd.setText(getString(R.string.danar_stats_tdd)); + label_exp_tdd.setTextColor(Color.WHITE); + etr_head.addView(label_exp_tdd); + + TextView label_exp_ratio = new TextView(this); + label_exp_ratio.setText(getString(R.string.danar_stats_ratio)); + label_exp_ratio.setTextColor(Color.WHITE); + etr_head.addView(label_exp_ratio); + + // add expontial headers to tables + etl.addView(etr_head, new TableLayout.LayoutParams( + TableLayout.LayoutParams.MATCH_PARENT, + TableLayout.LayoutParams.WRAP_CONTENT)); + + reloadButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mExecutionService.isConnected() || mExecutionService.isConnecting()) { + ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), getString(R.string.pumpbusy)); + return; + } + mHandler.post(new Runnable() { + @Override + public void run() { + runOnUiThread(new Runnable() { + @Override + public void run() { + reloadButton.setVisibility(View.GONE); + statusView.setVisibility(View.VISIBLE); + statsMessage.setVisibility(View.VISIBLE); + statsMessage.setText(getString(R.string.danar_stats_warning_Message)); + } + }); + mExecutionService.loadHistory(RecordTypes.RECORD_TYPE_DAILY); + loadDataFromDB(RecordTypes.RECORD_TYPE_DAILY); + runOnUiThread(new Runnable() { + @Override + public void run() { + reloadButton.setVisibility(View.VISIBLE); + statusView.setVisibility(View.GONE); + statsMessage.setVisibility(View.GONE); + } + }); + } + }); + } + }); + + totalBaseBasal.setOnEditorActionListener(new TextView.OnEditorActionListener() { + @Override + public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { + if(actionId== EditorInfo.IME_ACTION_DONE){ + totalBaseBasal.clearFocus(); + return true; + } + return false; + } + }); + + totalBaseBasal.setOnFocusChangeListener(new View.OnFocusChangeListener() { + @Override + public void onFocusChange(View v, boolean hasFocus) { + if(hasFocus){ + totalBaseBasal.getText().clear(); + } else { + SharedPreferences.Editor edit = preferences.edit(); + edit.putString("TBB",totalBaseBasal.getText().toString()); + edit.commit(); + TBB = preferences.getString("TBB", ""); + loadDataFromDB(RecordTypes.RECORD_TYPE_DAILY); + InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); + imm.hideSoftInputFromWindow(totalBaseBasal.getWindowToken(), 0); + } + } + }); + + loadDataFromDB(RecordTypes.RECORD_TYPE_DAILY); + } + + private void loadDataFromDB(byte type) { + try { + Dao dao = MainApp.getDbHelper().getDaoDanaRHistory(); + QueryBuilder queryBuilder = dao.queryBuilder(); + queryBuilder.orderBy("recordDate", false); + Where where = queryBuilder.where(); + where.eq("recordCode", type); + queryBuilder.limit(10L); + PreparedQuery preparedQuery = queryBuilder.prepare(); + historyList = dao.query(preparedQuery); + } catch (SQLException e) { + e.printStackTrace(); + historyList = new ArrayList<>(); + } + runOnUiThread(new Runnable() { + @Override + public void run() { + cleanTable(tl); + cleanTable(ctl); + cleanTable(etl); + DateFormat df = new SimpleDateFormat("dd.MM."); + + if(TextUtils.isEmpty(TBB)) { + totalBaseBasal.setError("Please Enter Total Base Basal"); + return; + } + else { + magicNumber = SafeParse.stringToDouble(TBB); + } + + magicNumber *=2; + totalBaseBasal2.setText(decimalFormat.format(magicNumber)); + + int i = 0; + double sum = 0d; + double weighted03 = 0d; + double weighted05 = 0d; + double weighted07 = 0d; + + for (DanaRHistoryRecord record: historyList) { + double tdd= record.getRecordDailyBolus() + record.getRecordDailyBasal(); + + // Create the table row + TableRow tr = new TableRow(DanaRStatsActivity.this); + if(i%2!=0) tr.setBackgroundColor(Color.DKGRAY); + tr.setId(100+i); + tr.setLayoutParams(new TableLayout.LayoutParams( + TableLayout.LayoutParams.MATCH_PARENT, + TableLayout.LayoutParams.WRAP_CONTENT)); + + // Here create the TextView dynamically + TextView labelDATE = new TextView(DanaRStatsActivity.this); + labelDATE.setId(200+i); + labelDATE.setText(df.format(new Date(record.getRecordDate()))); + labelDATE.setTextColor(Color.WHITE); + tr.addView(labelDATE); + + TextView labelBASAL = new TextView(DanaRStatsActivity.this); + labelBASAL.setId(300+i); + labelBASAL.setText(DecimalFormatter.to2Decimal(record.getRecordDailyBasal()) + " U"); + labelBASAL.setTextColor(Color.WHITE); + tr.addView(labelBASAL); + + TextView labelBOLUS = new TextView(DanaRStatsActivity.this); + labelBOLUS.setId(400+i); + labelBOLUS.setText(DecimalFormatter.to2Decimal(record.getRecordDailyBolus()) + " U"); + labelBOLUS.setTextColor(Color.WHITE); + tr.addView(labelBOLUS); + + TextView labelTDD = new TextView(DanaRStatsActivity.this); + labelTDD.setId(500+i); + labelTDD.setText(DecimalFormatter.to2Decimal(tdd) + " U"); + labelTDD.setTextColor(Color.WHITE); + tr.addView(labelTDD); + + TextView labelRATIO = new TextView(DanaRStatsActivity.this); + labelRATIO.setId(600+i); + labelRATIO.setText(Math.round(100*tdd/magicNumber) +" %"); + labelRATIO.setTextColor(Color.WHITE); + tr.addView(labelRATIO); + + // add stats rows to tables + tl.addView(tr, new TableLayout.LayoutParams( + TableLayout.LayoutParams.MATCH_PARENT, + TableLayout.LayoutParams.WRAP_CONTENT)); + + sum = sum + tdd; + i++; + + // Create the cumtable row + TableRow ctr = new TableRow(DanaRStatsActivity.this); + if(i%2==0) ctr.setBackgroundColor(Color.DKGRAY); + ctr.setId(700+i); + ctr.setLayoutParams(new TableLayout.LayoutParams( + TableLayout.LayoutParams.MATCH_PARENT, + TableLayout.LayoutParams.WRAP_CONTENT)); + + // Here create the TextView dynamically + TextView labelDAYS = new TextView(DanaRStatsActivity.this); + labelDAYS.setId(800+i); + labelDAYS.setText("" + i); + labelDAYS.setTextColor(Color.WHITE); + ctr.addView(labelDAYS); + + TextView labelCUMTDD = new TextView(DanaRStatsActivity.this); + labelCUMTDD.setId(900+i); + labelCUMTDD.setText(DecimalFormatter.to2Decimal(sum/i) + " U"); + labelCUMTDD.setTextColor(Color.WHITE); + ctr.addView(labelCUMTDD); + + TextView labelCUMRATIO = new TextView(DanaRStatsActivity.this); + labelCUMRATIO.setId(1000+i); + labelCUMRATIO.setText(Math.round(100*sum/i/magicNumber) + " %"); + labelCUMRATIO.setTextColor(Color.WHITE); + ctr.addView(labelCUMRATIO); + + // add cummulative rows to tables + ctl.addView(ctr, new TableLayout.LayoutParams( + TableLayout.LayoutParams.MATCH_PARENT, + TableLayout.LayoutParams.WRAP_CONTENT)); + } + + if (historyList.size()<3 || !(df.format(new Date(historyList.get(0).getRecordDate())).equals(df.format(new Date(System.currentTimeMillis() - 1000*60*60*24))))){ + statsMessage.setVisibility(View.VISIBLE); + statsMessage.setText(getString(R.string.danar_stats_olddata_Message)); + + } else { + tl.setBackgroundColor(Color.TRANSPARENT); + } + + Collections.reverse(historyList); + + i = 0; + + for (DanaRHistoryRecord record: historyList) { + double tdd= record.getRecordDailyBolus() + record.getRecordDailyBasal(); + if(i == 0 ) { + weighted03 = tdd; + weighted05 = tdd; + weighted07 = tdd; + + } else { + weighted07 = (weighted07*0.3 + tdd*0.7); + weighted05 = (weighted05*0.5 + tdd*0.5); + weighted03 = (weighted03*0.7 + tdd*0.3); + } + i++; + } + + // Create the exptable row + TableRow etr = new TableRow(DanaRStatsActivity.this); + if(i%2!=0) etr.setBackgroundColor(Color.DKGRAY); + etr.setId(1100+i); + etr.setLayoutParams(new TableLayout.LayoutParams( + TableLayout.LayoutParams.MATCH_PARENT, + TableLayout.LayoutParams.WRAP_CONTENT)); + + // Here create the TextView dynamically + TextView labelWEIGHT = new TextView(DanaRStatsActivity.this); + labelWEIGHT.setId(1200+i); + labelWEIGHT.setText("0.3\n" + "0.5\n" + "0.7"); + labelWEIGHT.setTextColor(Color.WHITE); + etr.addView(labelWEIGHT); + + TextView labelEXPTDD = new TextView(DanaRStatsActivity.this); + labelEXPTDD.setId(1300+i); + labelEXPTDD.setText(DecimalFormatter.to2Decimal(weighted03) + + " U\n" + DecimalFormatter.to2Decimal(weighted05) + + " U\n" + DecimalFormatter.to2Decimal(weighted07) + " U"); + labelEXPTDD.setTextColor(Color.WHITE); + etr.addView(labelEXPTDD); + + TextView labelEXPRATIO = new TextView(DanaRStatsActivity.this); + labelEXPRATIO.setId(1400+i); + labelEXPRATIO.setText(Math.round(100*weighted03/magicNumber) +" %\n" + + Math.round(100*weighted05/magicNumber) +" %\n" + + Math.round(100*weighted07/magicNumber) +" %"); + labelEXPRATIO.setTextColor(Color.WHITE); + etr.addView(labelEXPRATIO); + + // add exponentail rows to tables + etl.addView(etr, new TableLayout.LayoutParams( + TableLayout.LayoutParams.MATCH_PARENT, + TableLayout.LayoutParams.WRAP_CONTENT)); + } + }); + } + + private void cleanTable(TableLayout table) { + int childCount = table.getChildCount(); + // Remove all rows except the first one + if (childCount > 1) { + table.removeViews(1, childCount - 1); + } + } + + @Subscribe + public void onStatusEvent(final EventDanaRSyncStatus s) { + log.debug("EventDanaRSyncStatus: " + s.message); + runOnUiThread( + new Runnable() { + @Override + public void run() { + statusView.setText(s.message); + } + }); + } + + @Subscribe + public void onStatusEvent(final EventDanaRConnectionStatus c) { + runOnUiThread( + new Runnable() { + @Override + public void run() { + if (c.sStatus == EventDanaRConnectionStatus.CONNECTING) { + statusView.setText(String.format(getString(R.string.danar_history_connectingfor), c.sSecondsElapsed)); + log.debug("EventDanaRConnectionStatus: " + "Connecting for " + c.sSecondsElapsed + "s"); + } else if (c.sStatus == EventDanaRConnectionStatus.CONNECTED) { + statusView.setText(MainApp.sResources.getString(R.string.connected)); + log.debug("EventDanaRConnectionStatus: Connected"); + } else { + statusView.setText(MainApp.sResources.getString(R.string.disconnected)); + log.debug("EventDanaRConnectionStatus: Disconnected"); + } + } + } + ); + } +} \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/SerialIOThread.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/SerialIOThread.java index f4fc489d0c..9521c00fcc 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/SerialIOThread.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/SerialIOThread.java @@ -176,6 +176,10 @@ public class SerialIOThread extends Thread { } if (!message.received) { log.warn("Reply not received " + message.getMessageName()); + if (message.getCommand() == 0xF0F1) { + DanaRPlugin.getDanaRPump().isNewPump = false; + log.debug("Old firmware detected"); + } } scheduleDisconnection(); } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/Services/ExecutionService.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/Services/ExecutionService.java index 66acc7292e..e7ecb4c742 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/Services/ExecutionService.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/Services/ExecutionService.java @@ -26,12 +26,15 @@ import java.util.Set; import java.util.UUID; import info.nightscout.androidaps.Config; +import info.nightscout.androidaps.Constants; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; import info.nightscout.androidaps.db.Treatment; import info.nightscout.androidaps.events.EventAppExit; import info.nightscout.androidaps.events.EventInitializationChanged; import info.nightscout.androidaps.events.EventPreferenceChange; +import info.nightscout.androidaps.interfaces.PluginBase; +import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.DanaR.DanaRPlugin; import info.nightscout.androidaps.plugins.DanaR.DanaRPump; import info.nightscout.androidaps.plugins.DanaR.SerialIOThread; @@ -77,6 +80,8 @@ import info.nightscout.androidaps.plugins.DanaR.comm.RecordTypes; import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRBolusStart; import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRConnectionStatus; import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRNewStatus; +import info.nightscout.androidaps.plugins.Overview.Notification; +import info.nightscout.androidaps.plugins.Overview.events.EventNewNotification; import info.nightscout.client.data.NSProfile; import info.nightscout.utils.SafeParse; import info.nightscout.utils.ToastUtils; @@ -226,6 +231,9 @@ public class ExecutionService extends Service { if (!getPumpStatus()) { mSerialIOThread.disconnect("getPumpStatus failed"); waitMsec(3000); + if (!MainApp.getSpecificPlugin(DanaRPlugin.class).isEnabled(PluginBase.PUMP)) + return; + getBTSocketForSelectedPump(); } } } @@ -272,22 +280,25 @@ public class ExecutionService extends Service { private boolean getPumpStatus() { try { + MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.PERFORMING, 0, MainApp.sResources.getString(R.string.gettingpumpstatus))); MsgStatus statusMsg = new MsgStatus(); MsgStatusBasic statusBasicMsg = new MsgStatusBasic(); MsgStatusTempBasal tempStatusMsg = new MsgStatusTempBasal(); MsgStatusBolusExtended exStatusMsg = new MsgStatusBolusExtended(); + MsgCheckValue checkValue = new MsgCheckValue(); + if (danaRPump.isNewPump) { + mSerialIOThread.sendMessage(checkValue); + if (!checkValue.received) { + return false; + } + } - mSerialIOThread.sendMessage(new MsgSettingShippingInfo()); // TODO: show it somewhere mSerialIOThread.sendMessage(tempStatusMsg); // do this before statusBasic because here is temp duration mSerialIOThread.sendMessage(exStatusMsg); mSerialIOThread.sendMessage(statusMsg); mSerialIOThread.sendMessage(statusBasicMsg); - if (danaRPump.isNewPump) { - mSerialIOThread.sendMessage(new MsgCheckValue()); - } - if (!statusMsg.received) { mSerialIOThread.sendMessage(statusMsg); } @@ -330,6 +341,13 @@ public class ExecutionService extends Service { danaRPump.lastConnection = now; MainApp.bus().post(new EventDanaRNewStatus()); MainApp.bus().post(new EventInitializationChanged()); + MainApp.getConfigBuilder().uploadDeviceStatus(60); + if (danaRPump.dailyTotalUnits > danaRPump.maxDailyTotalUnits * Constants.dailyLimitWarning ) { + log.debug("Approaching daily limit: " + danaRPump.dailyTotalUnits + "/" + danaRPump.maxDailyTotalUnits); + Notification reportFail = new Notification(Notification.APPROACHING_DAILY_LIMIT, MainApp.sResources.getString(R.string.approachingdailylimit), Notification.URGENT); + MainApp.bus().post(new EventNewNotification(reportFail)); + MainApp.getConfigBuilder().uploadError(MainApp.sResources.getString(R.string.approachingdailylimit) + ": " + danaRPump.dailyTotalUnits + "/" + danaRPump.maxDailyTotalUnits + "U"); + } } catch (Exception e) { e.printStackTrace(); } @@ -339,30 +357,37 @@ public class ExecutionService extends Service { public boolean tempBasal(int percent, int durationInHours) { connect("tempBasal"); if (!isConnected()) return false; + MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.PERFORMING, 0, MainApp.sResources.getString(R.string.settingtempbasal))); mSerialIOThread.sendMessage(new MsgSetTempBasalStart(percent, durationInHours)); mSerialIOThread.sendMessage(new MsgStatusTempBasal()); + MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.PERFORMING, 0, MainApp.sResources.getString(R.string.disconnecting))); return true; } public boolean tempBasalStop() { connect("tempBasalStop"); if (!isConnected()) return false; + MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.PERFORMING, 0, MainApp.sResources.getString(R.string.stoppingtempbasal))); mSerialIOThread.sendMessage(new MsgSetTempBasalStop()); mSerialIOThread.sendMessage(new MsgStatusTempBasal()); + MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.PERFORMING, 0, MainApp.sResources.getString(R.string.disconnecting))); return true; } public boolean extendedBolus(double insulin, int durationInHalfHours) { connect("extendedBolus"); if (!isConnected()) return false; + MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.PERFORMING, 0, MainApp.sResources.getString(R.string.settingextendedbolus))); mSerialIOThread.sendMessage(new MsgSetExtendedBolusStart(insulin, (byte) (durationInHalfHours & 0xFF))); mSerialIOThread.sendMessage(new MsgStatusBolusExtended()); + MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.PERFORMING, 0, MainApp.sResources.getString(R.string.disconnecting))); return true; } public boolean extendedBolusStop() { connect("extendedBolusStop"); if (!isConnected()) return false; + MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.PERFORMING, 0, MainApp.sResources.getString(R.string.stoppingextendedbolus))); mSerialIOThread.sendMessage(new MsgSetExtendedBolusStop()); mSerialIOThread.sendMessage(new MsgStatusBolusExtended()); return true; @@ -476,6 +501,7 @@ public class ExecutionService extends Service { public boolean updateBasalsInPump(final NSProfile profile) { connect("updateBasalsInPump"); if (!isConnected()) return false; + MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.PERFORMING, 0, MainApp.sResources.getString(R.string.updatingbasalrates))); double[] basal = buildDanaRProfileRecord(profile); MsgSetBasalProfile msgSet = new MsgSetBasalProfile((byte) 0, basal); mSerialIOThread.sendMessage(msgSet); @@ -483,6 +509,7 @@ public class ExecutionService extends Service { mSerialIOThread.sendMessage(msgActivate); danaRPump.lastSettingsRead = new Date(0); // force read full settings getPumpStatus(); + MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.PERFORMING, 0, MainApp.sResources.getString(R.string.disconnecting))); return true; } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/comm/MsgCheckValue.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/comm/MsgCheckValue.java index 775de6eb29..5e97e2c55e 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/comm/MsgCheckValue.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/comm/MsgCheckValue.java @@ -24,6 +24,9 @@ public class MsgCheckValue extends MessageBase { public void handleMessage(byte[] bytes) { DanaRPump pump = DanaRPlugin.getDanaRPump(); + DanaRPlugin.getDanaRPump().isNewPump = true; + log.debug("New firmware confirmed"); + pump.model = intFromBuff(bytes, 0, 1); pump.protocol = intFromBuff(bytes, 1, 1); pump.productCode = intFromBuff(bytes, 2, 1); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/comm/MsgSetExtendedBolusStart.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/comm/MsgSetExtendedBolusStart.java index 86fb0bc9f5..894227e07d 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/comm/MsgSetExtendedBolusStart.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/comm/MsgSetExtendedBolusStart.java @@ -3,6 +3,7 @@ package info.nightscout.androidaps.plugins.DanaR.comm; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import info.nightscout.androidaps.BuildConfig; import info.nightscout.androidaps.Config; import info.nightscout.androidaps.MainApp; @@ -21,7 +22,7 @@ public class MsgSetExtendedBolusStart extends MessageBase { if (halfhours > 16) halfhours = 16; amount = MainApp.getConfigBuilder().applyBolusConstraints(amount); if (amount < 0d) amount = 0d; - if (amount > 10d) amount = 10d; + if (amount > BuildConfig.MAXBOLUS) amount = BuildConfig.MAXBOLUS; AddParamInt((int) (amount * 100)); AddParamByte(halfhours); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/comm/MsgSettingBasal.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/comm/MsgSettingBasal.java index 77ebfd0021..319fe787f3 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/comm/MsgSettingBasal.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/comm/MsgSettingBasal.java @@ -23,7 +23,7 @@ public class MsgSettingBasal extends MessageBase { pump.pumpProfiles[pump.activeProfile] = new double[24]; for (int index = 0; index < 24; index++) { int basal = intFromBuff(bytes, 2 * index, 2); - if (basal < 10) basal = 0; + if (basal < DanaRPlugin.pumpDescription.basalMinimumRate) basal = 0; pump.pumpProfiles[pump.activeProfile][index] = basal / 100d; } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/comm/MsgSettingShippingInfo.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/comm/MsgSettingShippingInfo.java index 9b71f0060b..faa68c5eb7 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/comm/MsgSettingShippingInfo.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/comm/MsgSettingShippingInfo.java @@ -24,10 +24,6 @@ public class MsgSettingShippingInfo extends MessageBase { pump.serialNumber = stringFromBuff(bytes, 0, 10); pump.shippingDate = dateFromBuff(bytes, 10); pump.shippingCountry = asciiStringFromBuff(bytes, 13, 3); - if (pump.shippingDate.getTime() > new Date(116, 4, 1).getTime()) { - pump.isNewPump = true; - } else - pump.isNewPump = false; if (Config.logDanaMessageDetail) { log.debug("Serial number: " + pump.serialNumber); log.debug("Shipping date: " + pump.shippingDate); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/events/EventDanaRConnectionStatus.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/events/EventDanaRConnectionStatus.java index a74529416a..fef8868d2b 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/events/EventDanaRConnectionStatus.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/events/EventDanaRConnectionStatus.java @@ -4,12 +4,20 @@ public class EventDanaRConnectionStatus { public static final int CONNECTING = 0; public static final int CONNECTED = 1; public static final int DISCONNECTED = 2; + public static final int PERFORMING = 3; public int sStatus = DISCONNECTED; public int sSecondsElapsed = 0; + public String sAction = ""; public EventDanaRConnectionStatus(int status, int secondsElapsed) { sStatus = status; sSecondsElapsed = secondsElapsed; } + + public EventDanaRConnectionStatus(int status, int secondsElapsed, String action) { + sStatus = status; + sSecondsElapsed = secondsElapsed; + sAction = action; + } } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanFragment.java index 907718f636..4142b43ff6 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanFragment.java @@ -31,6 +31,7 @@ import info.nightscout.androidaps.plugins.DanaR.Dialogs.ProfileViewDialog; import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRConnectionStatus; import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRNewStatus; import info.nightscout.androidaps.plugins.DanaRKorean.History.DanaRHistoryActivity; +import info.nightscout.androidaps.plugins.DanaRKorean.History.DanaRStatsActivity; import info.nightscout.utils.DateUtil; import info.nightscout.utils.DecimalFormatter; import info.nightscout.utils.SetWarnColor; @@ -60,8 +61,11 @@ public class DanaRKoreanFragment extends Fragment implements FragmentBase { TextView batteryView; TextView reservoirView; TextView iobView; + TextView firmwareView; Button viewProfileButton; Button historyButton; + Button statsButton; + public DanaRKoreanFragment() { if (sHandlerThread == null) { @@ -100,8 +104,11 @@ public class DanaRKoreanFragment extends Fragment implements FragmentBase { batteryView = (TextView) view.findViewById(R.id.danar_battery); reservoirView = (TextView) view.findViewById(R.id.danar_reservoir); iobView = (TextView) view.findViewById(R.id.danar_iob); + firmwareView = (TextView) view.findViewById(R.id.danar_firmware); viewProfileButton = (Button) view.findViewById(R.id.danar_viewprofile); historyButton = (Button) view.findViewById(R.id.danar_history); + statsButton = (Button) view.findViewById(R.id.danar_stats); + viewProfileButton.setOnClickListener(new View.OnClickListener() { @Override @@ -119,6 +126,13 @@ public class DanaRKoreanFragment extends Fragment implements FragmentBase { } }); + statsButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + startActivity(new Intent(getContext(), DanaRStatsActivity.class)); + } + }); + btConnectionView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -192,24 +206,24 @@ public class DanaRKoreanFragment extends Fragment implements FragmentBase { @SuppressLint("SetTextI18n") @Override public void run() { - - if (DanaRKoreanPlugin.getDanaRPump().lastConnection.getTime() != 0) { - Long agoMsec = new Date().getTime() - DanaRKoreanPlugin.getDanaRPump().lastConnection.getTime(); + DanaRKoreanPump pump = DanaRKoreanPlugin.getDanaRPump(); + if (pump.lastConnection.getTime() != 0) { + Long agoMsec = new Date().getTime() - pump.lastConnection.getTime(); int agoMin = (int) (agoMsec / 60d / 1000d); - lastConnectionView.setText(DateUtil.timeString(DanaRKoreanPlugin.getDanaRPump().lastConnection) + " (" + String.format(MainApp.sResources.getString(R.string.minago), agoMin) + ")"); + lastConnectionView.setText(DateUtil.timeString(pump.lastConnection) + " (" + String.format(MainApp.sResources.getString(R.string.minago), agoMin) + ")"); SetWarnColor.setColor(lastConnectionView, agoMin, 16d, 31d); } -// if (DanaRKoreanPlugin.getDanaRPump().lastBolusTime.getTime() != 0) { -// Long agoMsec = new Date().getTime() - DanaRKoreanPlugin.getDanaRPump().lastBolusTime.getTime(); +// if (pump.lastBolusTime.getTime() != 0) { +// Long agoMsec = new Date().getTime() - pump.lastBolusTime.getTime(); // double agoHours = agoMsec / 60d / 60d / 1000d; // if (agoHours < 6) // max 6h back -// lastBolusView.setText(formatTime.format(DanaRKoreanPlugin.getDanaRPump().lastBolusTime) + " (" + DecimalFormatter.to1Decimal(agoHours) + " " + getString(R.string.hoursago) + ") " + DecimalFormatter.to2Decimal(danaRKoreanPlugin.getDanaRPump().lastBolusAmount) + " U"); +// lastBolusView.setText(formatTime.format(pump.lastBolusTime) + " (" + DecimalFormatter.to1Decimal(agoHours) + " " + getString(R.string.hoursago) + ") " + DecimalFormatter.to2Decimal(pump.lastBolusAmount) + " U"); // else lastBolusView.setText(""); // } - dailyUnitsView.setText(DecimalFormatter.to0Decimal(DanaRKoreanPlugin.getDanaRPump().dailyTotalUnits) + " / " + DanaRKoreanPlugin.getDanaRPump().maxDailyTotalUnits + " U"); - SetWarnColor.setColor(dailyUnitsView, DanaRKoreanPlugin.getDanaRPump().dailyTotalUnits, DanaRKoreanPlugin.getDanaRPump().maxDailyTotalUnits * 0.75d, DanaRKoreanPlugin.getDanaRPump().maxDailyTotalUnits * 0.9d); - basaBasalRateView.setText("( " + (DanaRKoreanPlugin.getDanaRPump().activeProfile + 1) + " ) " + DecimalFormatter.to2Decimal(danaRKoreanPlugin.getBaseBasalRate()) + " U/h"); + dailyUnitsView.setText(DecimalFormatter.to0Decimal(pump.dailyTotalUnits) + " / " + pump.maxDailyTotalUnits + " U"); + SetWarnColor.setColor(dailyUnitsView, pump.dailyTotalUnits, pump.maxDailyTotalUnits * 0.75d, pump.maxDailyTotalUnits * 0.9d); + basaBasalRateView.setText("( " + (pump.activeProfile + 1) + " ) " + DecimalFormatter.to2Decimal(danaRKoreanPlugin.getBaseBasalRate()) + " U/h"); if (danaRKoreanPlugin.isRealTempBasalInProgress()) { tempBasalView.setText(danaRKoreanPlugin.getRealTempBasal().toString()); } else { @@ -220,11 +234,16 @@ public class DanaRKoreanFragment extends Fragment implements FragmentBase { } else { extendedBolusView.setText(""); } - reservoirView.setText(DecimalFormatter.to0Decimal(DanaRKoreanPlugin.getDanaRPump().reservoirRemainingUnits) + " / 300 U"); - SetWarnColor.setColorInverse(reservoirView, DanaRKoreanPlugin.getDanaRPump().reservoirRemainingUnits, 50d, 20d); - batteryView.setText("{fa-battery-" + (DanaRKoreanPlugin.getDanaRPump().batteryRemaining / 25) + "}"); - SetWarnColor.setColorInverse(batteryView, DanaRKoreanPlugin.getDanaRPump().batteryRemaining, 51d, 26d); - iobView.setText(DanaRKoreanPlugin.getDanaRPump().iob + " U"); + reservoirView.setText(DecimalFormatter.to0Decimal(pump.reservoirRemainingUnits) + " / 300 U"); + SetWarnColor.setColorInverse(reservoirView, pump.reservoirRemainingUnits, 50d, 20d); + batteryView.setText("{fa-battery-" + (pump.batteryRemaining / 25) + "}"); + SetWarnColor.setColorInverse(batteryView, pump.batteryRemaining, 51d, 26d); + iobView.setText(pump.iob + " U"); + if (pump.isNewPump) { + firmwareView.setText(String.format(MainApp.sResources.getString(R.string.danar_model), pump.model, pump.protocol, pump.productCode)); + } else { + firmwareView.setText("OLD"); + } } }); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanPlugin.java index 02fe206197..1384be16e2 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanPlugin.java @@ -66,7 +66,7 @@ public class DanaRKoreanPlugin implements PluginBase, PumpInterface, Constraints private static DanaRKoreanPump sDanaRKoreanPump = new DanaRKoreanPump(); private static boolean useExtendedBoluses = false; - private PumpDescription pumpDescription = new PumpDescription(); + public static PumpDescription pumpDescription = new PumpDescription(); public static DanaRKoreanPump getDanaRPump() { return sDanaRKoreanPump; @@ -85,7 +85,7 @@ public class DanaRKoreanPlugin implements PluginBase, PumpInterface, Constraints pumpDescription.bolusStep = 0.1d; pumpDescription.isExtendedBolusCapable = true; - pumpDescription.extendedBolusStep = 0.1d; + pumpDescription.extendedBolusStep = 0.05d; pumpDescription.isTempBasalCapable = true; pumpDescription.lowTempBasalStyle = PumpDescription.PERCENT; @@ -154,6 +154,17 @@ public class DanaRKoreanPlugin implements PluginBase, PumpInterface, Constraints return MainApp.instance().getString(R.string.danarkoreanpump); } + @Override + public String getNameShort() { + String name = MainApp.sResources.getString(R.string.danarpump_shortname); + if (!name.trim().isEmpty()){ + //only if translation exists + return name; + } + // use long name as fallback + return getName(); + } + @Override public boolean isEnabled(int type) { if (type == PluginBase.PROFILE) return fragmentProfileEnabled && fragmentPumpEnabled; @@ -200,6 +211,17 @@ public class DanaRKoreanPlugin implements PluginBase, PumpInterface, Constraints return getDanaRPump().lastConnection.getTime() > 0 && !getDanaRPump().isConfigUD && !getDanaRPump().isEasyModeEnabled && getDanaRPump().isExtendedBolusEnabled; } + @Override + public boolean isSuspended() { + return false; + } + + @Override + public boolean isBusy() { + if (sExecutionService == null) return false; + return sExecutionService.isConnected() || sExecutionService.isConnecting(); + } + // Pump interface @Override public boolean isTempBasalInProgress() { @@ -247,6 +269,8 @@ public class DanaRKoreanPlugin implements PluginBase, PumpInterface, Constraints if (!isInitialized()) return true; // TODO: not sure what's better. so far TRUE to prevent too many SMS DanaRKoreanPump pump = getDanaRPump(); + if (pump.pumpProfiles == null) + return true; // TODO: not sure what's better. so far TRUE to prevent too many SMS int basalValues = pump.basal48Enable ? 48 : 24; int basalIncrement = pump.basal48Enable ? 30 * 60 : 60 * 60; for (int h = 0; h < basalValues; h++) { @@ -260,6 +284,18 @@ public class DanaRKoreanPlugin implements PluginBase, PumpInterface, Constraints return true; } + @Override + public Date lastStatusTime() { + return getDanaRPump().lastConnection; + } + + @Override + public void updateStatus(String reason) { + if (!isConnected() && !isConnecting()) { + doConnect(reason); + } + } + @Override public double getBaseBasalRate() { return getDanaRPump().currentBasal; @@ -267,17 +303,19 @@ public class DanaRKoreanPlugin implements PluginBase, PumpInterface, Constraints @Override public double getTempBasalAbsoluteRate() { - if (isRealTempBasalInProgress()) { - if (getRealTempBasal().isAbsolute) { - return getRealTempBasal().absolute; + TempBasal tb = getRealTempBasal(); + if (tb != null) { + if (tb.isAbsolute) { + return tb.absolute; } else { Double baseRate = getBaseBasalRate(); - Double tempRate = baseRate * (getRealTempBasal().percent / 100d); + Double tempRate = baseRate * (tb.percent / 100d); return tempRate; } } - if (isExtendedBoluslInProgress() && useExtendedBoluses) { - return getBaseBasalRate() + getExtendedBolus().absolute; + TempBasal eb = getExtendedBolus(); + if (eb != null && useExtendedBoluses) { + return getBaseBasalRate() + eb.absolute; } return 0; } @@ -469,7 +507,7 @@ public class DanaRKoreanPlugin implements PluginBase, PumpInterface, Constraints } // Compare with extended rate in progress - if (Math.abs(getDanaRPump().extendedBolusAbsoluteRate - extendedRateToSet) < 0.02D) { // Allow some rounding diff + if (isExtendedBoluslInProgress() && Math.abs(getDanaRPump().extendedBolusAbsoluteRate - extendedRateToSet) < getPumpDescription().extendedBolusStep) { // correct extended already set result.success = true; result.absolute = getDanaRPump().extendedBolusAbsoluteRate; @@ -684,11 +722,12 @@ public class DanaRKoreanPlugin implements PluginBase, PumpInterface, Constraints extended.put("PumpIOB", getDanaRPump().iob); // extended.put("LastBolus", getDanaRPump().lastBolusTime.toLocaleString()); // extended.put("LastBolusAmount", getDanaRPump().lastBolusAmount); - if (isTempBasalInProgress()) { + TempBasal tb = getTempBasal(); + if (tb != null) { extended.put("TempBasalAbsoluteRate", getTempBasalAbsoluteRate()); - extended.put("TempBasalStart", getTempBasal().timeStart.toLocaleString()); - extended.put("TempBasalRemaining", getTempBasal().getPlannedRemainingMinutes()); - extended.put("IsExtended", getTempBasal().isExtended); + extended.put("TempBasalStart", tb.timeStart.toLocaleString()); + extended.put("TempBasalRemaining", tb.getPlannedRemainingMinutes()); + extended.put("IsExtended", tb.isExtended); } extended.put("BaseBasalRate", getBaseBasalRate()); try { @@ -800,7 +839,7 @@ public class DanaRKoreanPlugin implements PluginBase, PumpInterface, Constraints } // Reply for sms communicator - public String shortStatus() { + public String shortStatus(boolean veryShort) { String ret = ""; if (getDanaRPump().lastConnection.getTime() != 0) { Long agoMsec = new Date().getTime() - getDanaRPump().lastConnection.getTime(); @@ -816,6 +855,9 @@ public class DanaRKoreanPlugin implements PluginBase, PumpInterface, Constraints if (isExtendedBoluslInProgress()) { ret += "Extended: " + getExtendedBolus().toString() + "\n"; } + if (!veryShort){ + ret += "TDD: " + DecimalFormatter.to0Decimal(getDanaRPump().dailyTotalUnits) + " / " + getDanaRPump().maxDailyTotalUnits + " U\n"; + } ret += "IOB: " + getDanaRPump().iob + "U\n"; ret += "Reserv: " + DecimalFormatter.to0Decimal(getDanaRPump().reservoirRemainingUnits) + "U\n"; ret += "Batt: " + getDanaRPump().batteryRemaining + "\n"; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanPump.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanPump.java index 16ac0e2507..b29d9a4347 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanPump.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanPump.java @@ -36,7 +36,7 @@ public class DanaRKoreanPump { public String serialNumber = ""; public Date shippingDate = new Date(0); public String shippingCountry = ""; - public boolean isNewPump = false; + public boolean isNewPump = true; public int password = -1; public Date pumpTime = new Date(0); @@ -117,7 +117,6 @@ public class DanaRKoreanPump { SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); double dia = SafeParse.stringToDouble(SP.getString("danarprofile_dia", "3")); - double car = SafeParse.stringToDouble(SP.getString("danarprofile_car", "20")); try { json.put("defaultProfile", PROFILE_PREFIX + (activeProfile + 1)); @@ -132,8 +131,6 @@ public class DanaRKoreanPump { carbratios.put(new JSONObject().put("time", "22:00").put("timeAsSeconds", 22 * 3600).put("value", nightCIR)); profile.put("carbratio", carbratios); - profile.put("carbs_hr", car); - JSONArray sens = new JSONArray(); sens.put(new JSONObject().put("time", "00:00").put("timeAsSeconds", 0).put("value", nightCF)); sens.put(new JSONObject().put("time", "06:00").put("timeAsSeconds", 6 * 3600).put("value", morningCF)); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/History/DanaRStatsActivity.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/History/DanaRStatsActivity.java new file mode 100644 index 0000000000..d8b5390fbd --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/History/DanaRStatsActivity.java @@ -0,0 +1,571 @@ +package info.nightscout.androidaps.plugins.DanaRKorean.History; + +import android.app.Activity; +import android.content.ComponentName; +import android.content.Context; +import android.content.Intent; +import android.content.ServiceConnection; +import android.content.SharedPreferences; +import android.graphics.Color; +import android.graphics.Rect; +import android.os.Bundle; +import android.os.Handler; +import android.os.HandlerThread; +import android.os.IBinder; +import android.preference.PreferenceManager; +import android.support.v7.widget.LinearLayoutManager; +import android.text.TextUtils; +import android.view.KeyEvent; +import android.view.MotionEvent; +import android.view.View; +import android.view.WindowManager; +import android.view.inputmethod.EditorInfo; +import android.view.inputmethod.InputMethodManager; +import android.widget.Button; +import android.widget.EditText; +import android.widget.TableLayout; +import android.widget.TableRow; +import android.widget.TextView; + +import com.j256.ormlite.dao.Dao; +import com.j256.ormlite.stmt.PreparedQuery; +import com.j256.ormlite.stmt.QueryBuilder; +import com.j256.ormlite.stmt.Where; +import com.squareup.otto.Subscribe; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.sql.SQLException; +import java.text.DateFormat; +import java.text.DecimalFormat; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Date; +import java.util.List; + +import info.nightscout.androidaps.MainApp; +import info.nightscout.androidaps.R; +import info.nightscout.androidaps.db.DanaRHistoryRecord; +import info.nightscout.androidaps.interfaces.ProfileInterface; +import info.nightscout.androidaps.plugins.CircadianPercentageProfile.CircadianPercentageProfilePlugin; +import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; +import info.nightscout.androidaps.plugins.DanaR.comm.RecordTypes; +import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRConnectionStatus; +import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRSyncStatus; +import info.nightscout.androidaps.plugins.DanaRKorean.Services.ExecutionService; +import info.nightscout.utils.DecimalFormatter; +import info.nightscout.utils.SafeParse; +import info.nightscout.utils.ToastUtils; + +public class DanaRStatsActivity extends Activity { + private static Logger log = LoggerFactory.getLogger(DanaRStatsActivity.class); + + private boolean mBounded; + private static ExecutionService mExecutionService; + + private Handler mHandler; + private static HandlerThread mHandlerThread; + + TextView statusView, statsMessage,totalBaseBasal2; + EditText totalBaseBasal; + Button reloadButton; + LinearLayoutManager llm; + TableLayout tl,ctl,etl; + String TBB; + double magicNumber; + DecimalFormat decimalFormat; + + List historyList = new ArrayList<>(); + + public DanaRStatsActivity() { + super(); + mHandlerThread = new HandlerThread(DanaRStatsActivity.class.getSimpleName()); + mHandlerThread.start(); + this.mHandler = new Handler(mHandlerThread.getLooper()); + } + + @Override + public void onStart() { + super.onStart(); + Intent intent = new Intent(this, ExecutionService.class); + bindService(intent, mConnection, Context.BIND_AUTO_CREATE); + } + + @Override + protected void onResume() { + super.onResume(); + MainApp.bus().register(this); + } + + @Override + protected void onPause() { + super.onPause(); + MainApp.bus().unregister(this); + } + + @Override + public void onStop() { + super.onStop(); + if (mBounded) { + unbindService(mConnection); + mBounded = false; + } + } + + @Override + public boolean dispatchTouchEvent(MotionEvent event) { + if (event.getAction() == MotionEvent.ACTION_DOWN) { + View myView = getCurrentFocus(); + if ( myView instanceof EditText) { + Rect rect = new Rect(); + myView.getGlobalVisibleRect(rect); + if (!rect.contains((int)event.getRawX(), (int)event.getRawY())) { + myView.clearFocus(); + } + } + } + return super.dispatchTouchEvent( event ); + } + + ServiceConnection mConnection = new ServiceConnection() { + + public void onServiceDisconnected(ComponentName name) { + log.debug("Service is disconnected"); + mBounded = false; + mExecutionService = null; + } + + public void onServiceConnected(ComponentName name, IBinder service) { + log.debug("Service is connected"); + mBounded = true; + ExecutionService.LocalBinder mLocalBinder = (ExecutionService.LocalBinder) service; + mExecutionService = mLocalBinder.getServiceInstance(); + } + }; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.danar_statsactivity); + getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN); + statusView = (TextView) findViewById(R.id.danar_stats_connection_status); + reloadButton = (Button) findViewById(R.id.danar_statsreload); + totalBaseBasal = (EditText) findViewById(R.id.danar_stats_editTotalBaseBasal); + totalBaseBasal2 = (TextView) findViewById(R.id.danar_stats_editTotalBaseBasal2); + statsMessage = (TextView) findViewById(R.id.danar_stats_Message); + + statusView.setVisibility(View.GONE); + statsMessage.setVisibility(View.GONE); + + totalBaseBasal2.setEnabled(false); + totalBaseBasal2.setClickable(false); + totalBaseBasal2.setFocusable(false); + totalBaseBasal2.setInputType(0); + + decimalFormat = new DecimalFormat("0.000"); + llm = new LinearLayoutManager(this); + + final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); + TBB = preferences.getString("TBB", "10.00"); + totalBaseBasal.setText(TBB); + + ProfileInterface pi = ConfigBuilderPlugin.getActiveProfile(); + if (pi != null && pi instanceof CircadianPercentageProfilePlugin){ + double cppTBB = ((CircadianPercentageProfilePlugin)pi).baseBasalSum(); + totalBaseBasal.setText(decimalFormat.format(cppTBB)); + SharedPreferences.Editor edit = preferences.edit(); + edit.putString("TBB",totalBaseBasal.getText().toString()); + edit.commit(); + TBB = preferences.getString("TBB", ""); + } + + // stats table + tl = (TableLayout) findViewById(R.id.main_table); + TableRow tr_head = new TableRow(this); + tr_head.setBackgroundColor(Color.DKGRAY); + tr_head.setLayoutParams(new TableLayout.LayoutParams( + TableLayout.LayoutParams.MATCH_PARENT, + TableLayout.LayoutParams.WRAP_CONTENT)); + + TextView label_date = new TextView(this); + label_date.setText(getString(R.string.danar_stats_date)); + label_date.setTextColor(Color.WHITE); + tr_head.addView(label_date); + + TextView label_basalrate = new TextView(this); + label_basalrate.setText(getString(R.string.danar_stats_basalrate)); + label_basalrate.setTextColor(Color.WHITE); + tr_head.addView(label_basalrate); + + TextView label_bolus = new TextView(this); + label_bolus.setText(getString(R.string.danar_stats_bolus)); + label_bolus.setTextColor(Color.WHITE); + tr_head.addView(label_bolus); + + TextView label_tdd = new TextView(this); + label_tdd.setText(getString(R.string.danar_stats_tdd)); + label_tdd.setTextColor(Color.WHITE); + tr_head.addView(label_tdd); + + TextView label_ratio = new TextView(this); + label_ratio.setText(getString(R.string.danar_stats_ratio)); + label_ratio.setTextColor(Color.WHITE); + tr_head.addView(label_ratio); + + // add stats headers to tables + tl.addView(tr_head, new TableLayout.LayoutParams( + TableLayout.LayoutParams.MATCH_PARENT, + TableLayout.LayoutParams.WRAP_CONTENT)); + + // cumulative table + ctl = (TableLayout) findViewById(R.id.cumulative_table); + TableRow ctr_head = new TableRow(this); + ctr_head.setBackgroundColor(Color.DKGRAY); + ctr_head.setLayoutParams(new TableLayout.LayoutParams( + TableLayout.LayoutParams.MATCH_PARENT, + TableLayout.LayoutParams.WRAP_CONTENT)); + + TextView label_cum_amount_days = new TextView(this); + label_cum_amount_days.setText(getString(R.string.danar_stats_amount_days)); + label_cum_amount_days.setTextColor(Color.WHITE); + ctr_head.addView(label_cum_amount_days); + + TextView label_cum_tdd = new TextView(this); + label_cum_tdd.setText(getString(R.string.danar_stats_tdd)); + label_cum_tdd.setTextColor(Color.WHITE); + ctr_head.addView(label_cum_tdd); + + TextView label_cum_ratio = new TextView(this); + label_cum_ratio.setText(getString(R.string.danar_stats_ratio)); + label_cum_ratio.setTextColor(Color.WHITE); + ctr_head.addView(label_cum_ratio); + + // add cummulative headers to tables + ctl.addView(ctr_head, new TableLayout.LayoutParams( + TableLayout.LayoutParams.MATCH_PARENT, + TableLayout.LayoutParams.WRAP_CONTENT)); + + // expontial table + etl = (TableLayout) findViewById(R.id.expweight_table); + TableRow etr_head = new TableRow(this); + etr_head.setBackgroundColor(Color.DKGRAY); + etr_head.setLayoutParams(new TableLayout.LayoutParams( + TableLayout.LayoutParams.MATCH_PARENT, + TableLayout.LayoutParams.WRAP_CONTENT)); + + TextView label_exp_weight = new TextView(this); + label_exp_weight.setText(getString(R.string.danar_stats_weight)); + label_exp_weight.setTextColor(Color.WHITE); + etr_head.addView(label_exp_weight); + + TextView label_exp_tdd = new TextView(this); + label_exp_tdd.setText(getString(R.string.danar_stats_tdd)); + label_exp_tdd.setTextColor(Color.WHITE); + etr_head.addView(label_exp_tdd); + + TextView label_exp_ratio = new TextView(this); + label_exp_ratio.setText(getString(R.string.danar_stats_ratio)); + label_exp_ratio.setTextColor(Color.WHITE); + etr_head.addView(label_exp_ratio); + + // add expontial headers to tables + etl.addView(etr_head, new TableLayout.LayoutParams( + TableLayout.LayoutParams.MATCH_PARENT, + TableLayout.LayoutParams.WRAP_CONTENT)); + + reloadButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mExecutionService.isConnected() || mExecutionService.isConnecting()) { + ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), getString(R.string.pumpbusy)); + return; + } + mHandler.post(new Runnable() { + @Override + public void run() { + runOnUiThread(new Runnable() { + @Override + public void run() { + reloadButton.setVisibility(View.GONE); + statusView.setVisibility(View.VISIBLE); + statsMessage.setVisibility(View.VISIBLE); + statsMessage.setText(getString(R.string.danar_stats_warning_Message)); + } + }); + mExecutionService.loadHistory(RecordTypes.RECORD_TYPE_DAILY); + loadDataFromDB(RecordTypes.RECORD_TYPE_DAILY); + runOnUiThread(new Runnable() { + @Override + public void run() { + reloadButton.setVisibility(View.VISIBLE); + statusView.setVisibility(View.GONE); + statsMessage.setVisibility(View.GONE); + } + }); + } + }); + } + }); + + totalBaseBasal.setOnEditorActionListener(new TextView.OnEditorActionListener() { + @Override + public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { + if(actionId== EditorInfo.IME_ACTION_DONE){ + totalBaseBasal.clearFocus(); + return true; + } + return false; + } + }); + + totalBaseBasal.setOnFocusChangeListener(new View.OnFocusChangeListener() { + @Override + public void onFocusChange(View v, boolean hasFocus) { + if(hasFocus){ + totalBaseBasal.getText().clear(); + } else { + SharedPreferences.Editor edit = preferences.edit(); + edit.putString("TBB",totalBaseBasal.getText().toString()); + edit.commit(); + TBB = preferences.getString("TBB", ""); + loadDataFromDB(RecordTypes.RECORD_TYPE_DAILY); + InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); + imm.hideSoftInputFromWindow(totalBaseBasal.getWindowToken(), 0); + } + } + }); + + loadDataFromDB(RecordTypes.RECORD_TYPE_DAILY); + } + + private void loadDataFromDB(byte type) { + try { + Dao dao = MainApp.getDbHelper().getDaoDanaRHistory(); + QueryBuilder queryBuilder = dao.queryBuilder(); + queryBuilder.orderBy("recordDate", false); + Where where = queryBuilder.where(); + where.eq("recordCode", type); + queryBuilder.limit(10L); + PreparedQuery preparedQuery = queryBuilder.prepare(); + historyList = dao.query(preparedQuery); + } catch (SQLException e) { + e.printStackTrace(); + historyList = new ArrayList<>(); + } + runOnUiThread(new Runnable() { + @Override + public void run() { + cleanTable(tl); + cleanTable(ctl); + cleanTable(etl); + DateFormat df = new SimpleDateFormat("dd.MM."); + + if(TextUtils.isEmpty(TBB)) { + totalBaseBasal.setError("Please Enter Total Base Basal"); + return; + } + else { + magicNumber = SafeParse.stringToDouble(TBB); + } + + magicNumber *=2; + totalBaseBasal2.setText(decimalFormat.format(magicNumber)); + + int i = 0; + double sum = 0d; + double weighted03 = 0d; + double weighted05 = 0d; + double weighted07 = 0d; + + for (DanaRHistoryRecord record: historyList) { + double tdd= record.getRecordDailyBolus() + record.getRecordDailyBasal(); + + // Create the table row + TableRow tr = new TableRow(DanaRStatsActivity.this); + if(i%2!=0) tr.setBackgroundColor(Color.DKGRAY); + tr.setId(100+i); + tr.setLayoutParams(new TableLayout.LayoutParams( + TableLayout.LayoutParams.MATCH_PARENT, + TableLayout.LayoutParams.WRAP_CONTENT)); + + // Here create the TextView dynamically + TextView labelDATE = new TextView(DanaRStatsActivity.this); + labelDATE.setId(200+i); + labelDATE.setText(df.format(new Date(record.getRecordDate()))); + labelDATE.setTextColor(Color.WHITE); + tr.addView(labelDATE); + + TextView labelBASAL = new TextView(DanaRStatsActivity.this); + labelBASAL.setId(300+i); + labelBASAL.setText(DecimalFormatter.to2Decimal(record.getRecordDailyBasal()) + " U"); + labelBASAL.setTextColor(Color.WHITE); + tr.addView(labelBASAL); + + TextView labelBOLUS = new TextView(DanaRStatsActivity.this); + labelBOLUS.setId(400+i); + labelBOLUS.setText(DecimalFormatter.to2Decimal(record.getRecordDailyBolus()) + " U"); + labelBOLUS.setTextColor(Color.WHITE); + tr.addView(labelBOLUS); + + TextView labelTDD = new TextView(DanaRStatsActivity.this); + labelTDD.setId(500+i); + labelTDD.setText(DecimalFormatter.to2Decimal(tdd) + " U"); + labelTDD.setTextColor(Color.WHITE); + tr.addView(labelTDD); + + TextView labelRATIO = new TextView(DanaRStatsActivity.this); + labelRATIO.setId(600+i); + labelRATIO.setText(Math.round(100*tdd/magicNumber) +" %"); + labelRATIO.setTextColor(Color.WHITE); + tr.addView(labelRATIO); + + // add stats rows to tables + tl.addView(tr, new TableLayout.LayoutParams( + TableLayout.LayoutParams.MATCH_PARENT, + TableLayout.LayoutParams.WRAP_CONTENT)); + + sum = sum + tdd; + i++; + + // Create the cumtable row + TableRow ctr = new TableRow(DanaRStatsActivity.this); + if(i%2==0) ctr.setBackgroundColor(Color.DKGRAY); + ctr.setId(700+i); + ctr.setLayoutParams(new TableLayout.LayoutParams( + TableLayout.LayoutParams.MATCH_PARENT, + TableLayout.LayoutParams.WRAP_CONTENT)); + + // Here create the TextView dynamically + TextView labelDAYS = new TextView(DanaRStatsActivity.this); + labelDAYS.setId(800+i); + labelDAYS.setText("" + i); + labelDAYS.setTextColor(Color.WHITE); + ctr.addView(labelDAYS); + + TextView labelCUMTDD = new TextView(DanaRStatsActivity.this); + labelCUMTDD.setId(900+i); + labelCUMTDD.setText(DecimalFormatter.to2Decimal(sum/i) + " U"); + labelCUMTDD.setTextColor(Color.WHITE); + ctr.addView(labelCUMTDD); + + TextView labelCUMRATIO = new TextView(DanaRStatsActivity.this); + labelCUMRATIO.setId(1000+i); + labelCUMRATIO.setText(Math.round(100*sum/i/magicNumber) + " %"); + labelCUMRATIO.setTextColor(Color.WHITE); + ctr.addView(labelCUMRATIO); + + // add cummulative rows to tables + ctl.addView(ctr, new TableLayout.LayoutParams( + TableLayout.LayoutParams.MATCH_PARENT, + TableLayout.LayoutParams.WRAP_CONTENT)); + } + + if (historyList.size()<3 || !(df.format(new Date(historyList.get(0).getRecordDate())).equals(df.format(new Date(System.currentTimeMillis() - 1000*60*60*24))))){ + statsMessage.setVisibility(View.VISIBLE); + statsMessage.setText(getString(R.string.danar_stats_olddata_Message)); + + } else { + tl.setBackgroundColor(Color.TRANSPARENT); + } + + Collections.reverse(historyList); + + i = 0; + + for (DanaRHistoryRecord record: historyList) { + double tdd= record.getRecordDailyBolus() + record.getRecordDailyBasal(); + if(i == 0 ) { + weighted03 = tdd; + weighted05 = tdd; + weighted07 = tdd; + + } else { + weighted07 = (weighted07*0.3 + tdd*0.7); + weighted05 = (weighted05*0.5 + tdd*0.5); + weighted03 = (weighted03*0.7 + tdd*0.3); + } + i++; + } + + // Create the exptable row + TableRow etr = new TableRow(DanaRStatsActivity.this); + if(i%2!=0) etr.setBackgroundColor(Color.DKGRAY); + etr.setId(1100+i); + etr.setLayoutParams(new TableLayout.LayoutParams( + TableLayout.LayoutParams.MATCH_PARENT, + TableLayout.LayoutParams.WRAP_CONTENT)); + + // Here create the TextView dynamically + TextView labelWEIGHT = new TextView(DanaRStatsActivity.this); + labelWEIGHT.setId(1200+i); + labelWEIGHT.setText("0.3\n" + "0.5\n" + "0.7"); + labelWEIGHT.setTextColor(Color.WHITE); + etr.addView(labelWEIGHT); + + TextView labelEXPTDD = new TextView(DanaRStatsActivity.this); + labelEXPTDD.setId(1300+i); + labelEXPTDD.setText(DecimalFormatter.to2Decimal(weighted03) + + " U\n" + DecimalFormatter.to2Decimal(weighted05) + + " U\n" + DecimalFormatter.to2Decimal(weighted07) + " U"); + labelEXPTDD.setTextColor(Color.WHITE); + etr.addView(labelEXPTDD); + + TextView labelEXPRATIO = new TextView(DanaRStatsActivity.this); + labelEXPRATIO.setId(1400+i); + labelEXPRATIO.setText(Math.round(100*weighted03/magicNumber) +" %\n" + + Math.round(100*weighted05/magicNumber) +" %\n" + + Math.round(100*weighted07/magicNumber) +" %"); + labelEXPRATIO.setTextColor(Color.WHITE); + etr.addView(labelEXPRATIO); + + // add exponentail rows to tables + etl.addView(etr, new TableLayout.LayoutParams( + TableLayout.LayoutParams.MATCH_PARENT, + TableLayout.LayoutParams.WRAP_CONTENT)); + } + }); + } + + private void cleanTable(TableLayout table) { + int childCount = table.getChildCount(); + // Remove all rows except the first one + if (childCount > 1) { + table.removeViews(1, childCount - 1); + } + } + + @Subscribe + public void onStatusEvent(final EventDanaRSyncStatus s) { + log.debug("EventDanaRSyncStatus: " + s.message); + runOnUiThread( + new Runnable() { + @Override + public void run() { + statusView.setText(s.message); + } + }); + } + + @Subscribe + public void onStatusEvent(final EventDanaRConnectionStatus c) { + runOnUiThread( + new Runnable() { + @Override + public void run() { + if (c.sStatus == EventDanaRConnectionStatus.CONNECTING) { + statusView.setText(String.format(getString(R.string.danar_history_connectingfor), c.sSecondsElapsed)); + log.debug("EventDanaRConnectionStatus: " + "Connecting for " + c.sSecondsElapsed + "s"); + } else if (c.sStatus == EventDanaRConnectionStatus.CONNECTED) { + statusView.setText(MainApp.sResources.getString(R.string.connected)); + log.debug("EventDanaRConnectionStatus: Connected"); + } else { + statusView.setText(MainApp.sResources.getString(R.string.disconnected)); + log.debug("EventDanaRConnectionStatus: Disconnected"); + } + } + } + ); + } +} \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/SerialIOThread.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/SerialIOThread.java index ed53de2815..50f9e855ef 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/SerialIOThread.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/SerialIOThread.java @@ -176,6 +176,10 @@ public class SerialIOThread extends Thread { } if (!message.received) { log.warn("Reply not received " + message.getMessageName()); + if (message.getCommand() == 0xF0F1) { + DanaRKoreanPlugin.getDanaRPump().isNewPump = false; + log.debug("Old firmware detected"); + } } scheduleDisconnection(); } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/Services/ExecutionService.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/Services/ExecutionService.java index 29c001cc4c..0bad19b38e 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/Services/ExecutionService.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/Services/ExecutionService.java @@ -26,12 +26,14 @@ import java.util.Set; import java.util.UUID; import info.nightscout.androidaps.Config; +import info.nightscout.androidaps.Constants; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; import info.nightscout.androidaps.db.Treatment; import info.nightscout.androidaps.events.EventAppExit; import info.nightscout.androidaps.events.EventInitializationChanged; import info.nightscout.androidaps.events.EventPreferenceChange; +import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.plugins.DanaR.comm.MessageBase; import info.nightscout.androidaps.plugins.DanaR.comm.MsgBolusProgress; import info.nightscout.androidaps.plugins.DanaR.comm.MsgBolusStart; @@ -73,6 +75,8 @@ import info.nightscout.androidaps.plugins.DanaRKorean.comm.MsgSettingShippingInf import info.nightscout.androidaps.plugins.DanaRKorean.comm.MsgStatusBasic; import info.nightscout.androidaps.plugins.DanaRKorean.comm.MsgStatusBolusExtended; import info.nightscout.androidaps.plugins.DanaRKorean.comm.MsgStatusTempBasal; +import info.nightscout.androidaps.plugins.Overview.Notification; +import info.nightscout.androidaps.plugins.Overview.events.EventNewNotification; import info.nightscout.client.data.NSProfile; import info.nightscout.utils.SafeParse; import info.nightscout.utils.ToastUtils; @@ -222,6 +226,9 @@ public class ExecutionService extends Service { if (!getPumpStatus()) { mSerialIOThread.disconnect("getPumpStatus failed"); waitMsec(3000); + if (!MainApp.getSpecificPlugin(DanaRKoreanPlugin.class).isEnabled(PluginBase.PUMP)) + return; + getBTSocketForSelectedPump(); } } } @@ -268,11 +275,19 @@ public class ExecutionService extends Service { private boolean getPumpStatus() { try { + MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.PERFORMING, 0, MainApp.sResources.getString(R.string.gettingpumpstatus))); //MsgStatus statusMsg = new MsgStatus(); MsgStatusBasic statusBasicMsg = new MsgStatusBasic(); MsgStatusTempBasal tempStatusMsg = new MsgStatusTempBasal(); MsgStatusBolusExtended exStatusMsg = new MsgStatusBolusExtended(); + MsgCheckValue checkValue = new MsgCheckValue(); + if (danaRKoreanPump.isNewPump) { + mSerialIOThread.sendMessage(checkValue); + if (!checkValue.received) { + return false; + } + } mSerialIOThread.sendMessage(new MsgSettingShippingInfo()); // TODO: show it somewhere mSerialIOThread.sendMessage(tempStatusMsg); // do this before statusBasic because here is temp duration @@ -280,8 +295,6 @@ public class ExecutionService extends Service { //mSerialIOThread.sendMessage(statusMsg); mSerialIOThread.sendMessage(statusBasicMsg); - mSerialIOThread.sendMessage(new MsgCheckValue()); - // if (!statusMsg.received) { // mSerialIOThread.sendMessage(statusMsg); // } @@ -321,6 +334,13 @@ public class ExecutionService extends Service { danaRKoreanPump.lastConnection = now; MainApp.bus().post(new EventDanaRNewStatus()); MainApp.bus().post(new EventInitializationChanged()); + MainApp.getConfigBuilder().uploadDeviceStatus(60); + if (danaRKoreanPump.dailyTotalUnits > danaRKoreanPump.maxDailyTotalUnits * Constants.dailyLimitWarning ) { + log.debug("Approaching daily limit: " + danaRKoreanPump.dailyTotalUnits + "/" + danaRKoreanPump.maxDailyTotalUnits); + Notification reportFail = new Notification(Notification.APPROACHING_DAILY_LIMIT, MainApp.sResources.getString(R.string.approachingdailylimit), Notification.URGENT); + MainApp.bus().post(new EventNewNotification(reportFail)); + MainApp.getConfigBuilder().uploadError(MainApp.sResources.getString(R.string.approachingdailylimit) + ": " + danaRKoreanPump.dailyTotalUnits + "/" + danaRKoreanPump.maxDailyTotalUnits + "U"); + } } catch (Exception e) { e.printStackTrace(); } @@ -330,32 +350,40 @@ public class ExecutionService extends Service { public boolean tempBasal(int percent, int durationInHours) { connect("tempBasal"); if (!isConnected()) return false; + MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.PERFORMING, 0, MainApp.sResources.getString(R.string.settingtempbasal))); mSerialIOThread.sendMessage(new MsgSetTempBasalStart(percent, durationInHours)); mSerialIOThread.sendMessage(new MsgStatusTempBasal()); + MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.PERFORMING, 0, MainApp.sResources.getString(R.string.disconnecting))); return true; } public boolean tempBasalStop() { connect("tempBasalStop"); if (!isConnected()) return false; + MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.PERFORMING, 0, MainApp.sResources.getString(R.string.stoppingtempbasal))); mSerialIOThread.sendMessage(new MsgSetTempBasalStop()); mSerialIOThread.sendMessage(new MsgStatusTempBasal()); + MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.PERFORMING, 0, MainApp.sResources.getString(R.string.disconnecting))); return true; } public boolean extendedBolus(double insulin, int durationInHalfHours) { connect("extendedBolus"); if (!isConnected()) return false; + MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.PERFORMING, 0, MainApp.sResources.getString(R.string.settingextendedbolus))); mSerialIOThread.sendMessage(new MsgSetExtendedBolusStart(insulin, (byte) (durationInHalfHours & 0xFF))); mSerialIOThread.sendMessage(new MsgStatusBolusExtended()); + MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.PERFORMING, 0, MainApp.sResources.getString(R.string.disconnecting))); return true; } public boolean extendedBolusStop() { connect("extendedBolusStop"); if (!isConnected()) return false; + MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.PERFORMING, 0, MainApp.sResources.getString(R.string.stoppingextendedbolus))); mSerialIOThread.sendMessage(new MsgSetExtendedBolusStop()); mSerialIOThread.sendMessage(new MsgStatusBolusExtended()); + MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.PERFORMING, 0, MainApp.sResources.getString(R.string.disconnecting))); return true; } @@ -467,11 +495,13 @@ public class ExecutionService extends Service { public boolean updateBasalsInPump(final NSProfile profile) { connect("updateBasalsInPump"); if (!isConnected()) return false; + MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.PERFORMING, 0, MainApp.sResources.getString(R.string.updatingbasalrates))); double[] basal = buildDanaRProfileRecord(profile); MsgSetSingleBasalProfile msgSet = new MsgSetSingleBasalProfile(basal); mSerialIOThread.sendMessage(msgSet); danaRKoreanPump.lastSettingsRead = new Date(0); // force read full settings getPumpStatus(); + MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.PERFORMING, 0, MainApp.sResources.getString(R.string.disconnecting))); return true; } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/comm/MsgCheckValue.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/comm/MsgCheckValue.java index 0a9ea6f2aa..efcb32f2ba 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/comm/MsgCheckValue.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/comm/MsgCheckValue.java @@ -25,6 +25,9 @@ public class MsgCheckValue extends MessageBase { public void handleMessage(byte[] bytes) { DanaRKoreanPump pump = DanaRKoreanPlugin.getDanaRPump(); + DanaRKoreanPlugin.getDanaRPump().isNewPump = true; + log.debug("New firmware confirmed"); + pump.model = intFromBuff(bytes, 0, 1); pump.protocol = intFromBuff(bytes, 1, 1); pump.productCode = intFromBuff(bytes, 2, 1); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/comm/MsgSettingBasal.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/comm/MsgSettingBasal.java index e6ac4b9003..57f63efa5a 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/comm/MsgSettingBasal.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/comm/MsgSettingBasal.java @@ -24,7 +24,7 @@ public class MsgSettingBasal extends MessageBase { pump.pumpProfiles[pump.activeProfile] = new double[24]; for (int index = 0; index < 24; index++) { int basal = intFromBuff(bytes, 2 * index, 2); - if (basal < 10) basal = 0; + if (basal < DanaRKoreanPlugin.pumpDescription.basalMinimumRate) basal = 0; pump.pumpProfiles[pump.activeProfile][index] = basal / 100d; } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/comm/MsgSettingShippingInfo.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/comm/MsgSettingShippingInfo.java index 4d10aef389..f222d86cbf 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/comm/MsgSettingShippingInfo.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/comm/MsgSettingShippingInfo.java @@ -25,10 +25,6 @@ public class MsgSettingShippingInfo extends MessageBase { pump.serialNumber = stringFromBuff(bytes, 0, 10); pump.shippingDate = dateFromBuff(bytes, 10); pump.shippingCountry = asciiStringFromBuff(bytes, 13, 3); - if (pump.shippingDate.getTime() > new Date(116, 4, 1).getTime()) { - pump.isNewPump = true; - } else - pump.isNewPump = false; if (Config.logDanaMessageDetail) { log.debug("Serial number: " + pump.serialNumber); log.debug("Shipping date: " + pump.shippingDate); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/LocalProfile/LocalProfileFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/LocalProfile/LocalProfileFragment.java index cc891eb98a..552a05cc28 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/LocalProfile/LocalProfileFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/LocalProfile/LocalProfileFragment.java @@ -45,7 +45,6 @@ public class LocalProfileFragment extends Fragment implements FragmentBase { RadioButton mmolView; TimeListEdit icView; TimeListEdit isfView; - EditText carView; TimeListEdit basalView; TimeListEdit targetView; Button profileswitchButton; @@ -66,7 +65,6 @@ public class LocalProfileFragment extends Fragment implements FragmentBase { mmolView = (RadioButton) layout.findViewById(R.id.localprofile_mmol); icView = new TimeListEdit(getContext(), layout, R.id.localprofile_ic, MainApp.sResources.getString(R.string.nsprofileview_ic_label), getPlugin().ic, null, new DecimalFormat("0.0"), save); isfView = new TimeListEdit(getContext(), layout, R.id.localprofile_isf, MainApp.sResources.getString(R.string.nsprofileview_isf_label), getPlugin().isf, null, new DecimalFormat("0.0"), save); - carView = (EditText) layout.findViewById(R.id.localprofile_car); basalView = new TimeListEdit(getContext(), layout, R.id.localprofile_basal, MainApp.sResources.getString(R.string.nsprofileview_basal_label), getPlugin().basal, null, new DecimalFormat("0.00"), save); targetView = new TimeListEdit(getContext(), layout, R.id.localprofile_target, MainApp.sResources.getString(R.string.nsprofileview_target_label), getPlugin().targetLow, getPlugin().targetHigh, new DecimalFormat("0.0"), save); profileswitchButton = (Button) layout.findViewById(R.id.localprofile_profileswitch); @@ -81,7 +79,6 @@ public class LocalProfileFragment extends Fragment implements FragmentBase { mgdlView.setChecked(localProfilePlugin.mgdl); mmolView.setChecked(localProfilePlugin.mmol); diaView.setText(localProfilePlugin.dia.toString()); - carView.setText(localProfilePlugin.car.toString()); mgdlView.setOnClickListener(new View.OnClickListener() { @Override @@ -106,7 +103,7 @@ public class LocalProfileFragment extends Fragment implements FragmentBase { @Override public void onClick(View view) { NewNSTreatmentDialog newDialog = new NewNSTreatmentDialog(); - final OptionsToShow profileswitch = new OptionsToShow(R.id.careportal_profileswitch, R.string.careportal_profileswitch, true, false, false, false, false, false, false, true, false); + final OptionsToShow profileswitch = new OptionsToShow(R.id.careportal_profileswitch, R.string.careportal_profileswitch, true, false, false, false, false, false, false, true, false, false); profileswitch.executeProfileSwitch = true; newDialog.setOptions(profileswitch); newDialog.show(getFragmentManager(), "NewNSTreatmentDialog"); @@ -128,13 +125,11 @@ public class LocalProfileFragment extends Fragment implements FragmentBase { public void onTextChanged(CharSequence s, int start, int before, int count) { localProfilePlugin.dia = SafeParse.stringToDouble(diaView.getText().toString()); - localProfilePlugin.car = SafeParse.stringToDouble(carView.getText().toString()); localProfilePlugin.storeSettings(); } }; diaView.addTextChangedListener(textWatch); - carView.addTextChangedListener(textWatch); onStatusEvent(null); @@ -161,7 +156,7 @@ public class LocalProfileFragment extends Fragment implements FragmentBase { activity.runOnUiThread(new Runnable() { @Override public void run() { - if (!MainApp.getConfigBuilder().isInitialized() || !MainApp.getConfigBuilder().getPumpDescription().isSetBasalProfileCapable) { + if (!MainApp.getConfigBuilder().isInitialized() || MainApp.getConfigBuilder().isSuspended() || !MainApp.getConfigBuilder().getPumpDescription().isSetBasalProfileCapable) { profileswitchButton.setVisibility(View.GONE); } else { profileswitchButton.setVisibility(View.VISIBLE); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/LocalProfile/LocalProfilePlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/LocalProfile/LocalProfilePlugin.java index 0ead686e5e..91c994cdbb 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/LocalProfile/LocalProfilePlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/LocalProfile/LocalProfilePlugin.java @@ -37,7 +37,6 @@ public class LocalProfilePlugin implements PluginBase, ProfileInterface { Double dia; JSONArray ic; JSONArray isf; - Double car; JSONArray basal; JSONArray targetLow; JSONArray targetHigh; @@ -61,6 +60,17 @@ public class LocalProfilePlugin implements PluginBase, ProfileInterface { return MainApp.instance().getString(R.string.localprofile); } + @Override + public String getNameShort() { + String name = MainApp.sResources.getString(R.string.localprofile_shortname); + if (!name.trim().isEmpty()){ + //only if translation exists + return name; + } + // use long name as fallback + return getName(); + } + @Override public boolean isEnabled(int type) { return type == PROFILE && fragmentEnabled; @@ -96,7 +106,6 @@ public class LocalProfilePlugin implements PluginBase, ProfileInterface { editor.putString("LocalProfile" + "dia", dia.toString()); editor.putString("LocalProfile" + "ic", ic.toString()); editor.putString("LocalProfile" + "isf", isf.toString()); - editor.putString("LocalProfile" + "car", car.toString()); editor.putString("LocalProfile" + "basal", basal.toString()); editor.putString("LocalProfile" + "targetlow", targetLow.toString()); editor.putString("LocalProfile" + "targethigh", targetHigh.toString()); @@ -167,13 +176,6 @@ public class LocalProfilePlugin implements PluginBase, ProfileInterface { e.printStackTrace(); } } - if (settings.contains("LocalProfile" + "car")) - try { - car = SafeParse.stringToDouble(settings.getString("LocalProfile" + "car", "20")); - } catch (Exception e) { - log.debug(e.getMessage()); - } - else car = 20d; if (settings.contains("LocalProfile" + "basal")) try { basal = new JSONArray(settings.getString("LocalProfile" + "basal", DEFAULTARRAY)); @@ -279,7 +281,6 @@ public class LocalProfilePlugin implements PluginBase, ProfileInterface { json.put("store", store); profile.put("dia", dia); profile.put("carbratio", ic); - profile.put("carbs_hr", car); profile.put("sens", isf); profile.put("basal", basal); profile.put("target_low", targetLow); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Loop/APSResult.java b/app/src/main/java/info/nightscout/androidaps/plugins/Loop/APSResult.java index 58ab564f6e..69e161524f 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Loop/APSResult.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Loop/APSResult.java @@ -16,7 +16,7 @@ import info.nightscout.utils.DecimalFormatter; /** * Created by mike on 09.06.2016. */ -public class APSResult implements Parcelable { +public class APSResult { public String reason; public double rate; public int duration; @@ -51,36 +51,6 @@ public class APSResult implements Parcelable { return Html.fromHtml(MainApp.sResources.getString(R.string.nochangerequested)); } - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel dest, int flags) { - dest.writeString(reason); - dest.writeDouble(rate); - dest.writeInt(duration); - dest.writeInt(changeRequested ? 1 : 0); - } - - public final Parcelable.Creator CREATOR = new Parcelable.Creator() { - public APSResult createFromParcel(Parcel in) { - return new APSResult(in); - } - - public APSResult[] newArray(int size) { - return new APSResult[size]; - } - }; - - protected APSResult(Parcel in) { - reason = in.readString(); - rate = in.readDouble(); - duration = in.readInt(); - changeRequested = in.readInt() == 1; - } - public APSResult() { } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopFragment.java index 94676f8f3e..a183e28345 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopFragment.java @@ -76,7 +76,14 @@ public class LoopFragment extends Fragment implements View.OnClickListener, Frag public void onClick(View view) { switch (view.getId()) { case R.id.loop_run: - getPlugin().invoke(true); + lastRunView.setText(MainApp.sResources.getString(R.string.executing)); + Thread thread = new Thread(new Runnable() { + @Override + public void run() { + getPlugin().invoke("Loop button", true); + } + }); + thread.start(); break; } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java index 7c450e9c69..76eb14eb1a 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java @@ -81,6 +81,17 @@ public class LoopPlugin implements PluginBase { return MainApp.instance().getString(R.string.loop); } + @Override + public String getNameShort() { + String name = MainApp.sResources.getString(R.string.loop_shortname); + if (!name.trim().isEmpty()){ + //only if translation exists + return name; + } + // use long name as fallback + return getName(); + } + @Override public boolean isEnabled(int type) { return type == LOOP && fragmentEnabled && MainApp.getConfigBuilder().getPumpDescription().isTempBasalCapable; @@ -108,15 +119,15 @@ public class LoopPlugin implements PluginBase { @Subscribe public void onStatusEvent(final EventTreatmentChange ev) { - invoke(true); + invoke("EventTreatmentChange", true); } @Subscribe public void onStatusEvent(final EventNewBG ev) { - invoke(true); + invoke("EventNewBG", true); } - public void invoke(boolean allowNotification) { + public void invoke(String initiator, boolean allowNotification) { try { if (Config.logFunctionCalls) log.debug("invoke"); @@ -136,7 +147,7 @@ public class LoopPlugin implements PluginBase { APSInterface usedAPS = configBuilder.getActiveAPS(); if (usedAPS != null && ((PluginBase) usedAPS).isEnabled(PluginBase.APS)) { - usedAPS.invoke(); + usedAPS.invoke(initiator); result = usedAPS.getLastAPSResult(); } @@ -217,7 +228,7 @@ public class LoopPlugin implements PluginBase { } MainApp.bus().post(new EventLoopUpdateGui()); - MainApp.getConfigBuilder().uploadDeviceStatus(); + MainApp.getConfigBuilder().uploadDeviceStatus(120); } finally { if (Config.logFunctionCalls) log.debug("invoke end"); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/MDI/MDIPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/MDI/MDIPlugin.java index a9b95c25fe..ce48a966de 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/MDI/MDIPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/MDI/MDIPlugin.java @@ -74,6 +74,12 @@ public class MDIPlugin implements PluginBase, PumpInterface { return MainApp.instance().getString(R.string.mdi); } + @Override + public String getNameShort() { + // use long name as fallback (not visible in tabs) + return getName(); + } + @Override public boolean isEnabled(int type) { return type == PUMP && fragmentEnabled; @@ -109,6 +115,16 @@ public class MDIPlugin implements PluginBase, PumpInterface { return true; } + @Override + public boolean isSuspended() { + return false; + } + + @Override + public boolean isBusy() { + return false; + } + @Override public boolean isTempBasalInProgress() { return false; @@ -130,6 +146,16 @@ public class MDIPlugin implements PluginBase, PumpInterface { return false; } + @Override + public Date lastStatusTime() { + return new Date(); + } + + @Override + public void updateStatus(String reason) { + // do nothing + } + @Override public double getBaseBasalRate() { return 0d; @@ -256,4 +282,9 @@ public class MDIPlugin implements PluginBase, PumpInterface { return pumpDescription; } + @Override + public String shortStatus(boolean veryShort) { + return deviceID(); + } + } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSProfile/NSProfilePlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSProfile/NSProfilePlugin.java index 8e522c3cae..5f5ed9ca1d 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSProfile/NSProfilePlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSProfile/NSProfilePlugin.java @@ -49,6 +49,17 @@ public class NSProfilePlugin implements PluginBase, ProfileInterface { return MainApp.instance().getString(R.string.profileviewer); } + @Override + public String getNameShort() { + String name = MainApp.sResources.getString(R.string.profileviewer_shortname); + if (!name.trim().isEmpty()){ + //only if translation exists + return name; + } + // use long name as fallback + return getName(); + } + @Override public boolean isEnabled(int type) { return type == PROFILE && fragmentEnabled; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Objectives/ObjectivesPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/Objectives/ObjectivesPlugin.java index f865165437..030878b6e9 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Objectives/ObjectivesPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Objectives/ObjectivesPlugin.java @@ -49,6 +49,17 @@ public class ObjectivesPlugin implements PluginBase, ConstraintsInterface { return MainApp.instance().getString(R.string.objectives); } + @Override + public String getNameShort() { + String name = MainApp.sResources.getString(R.string.objectives_shortname); + if (!name.trim().isEmpty()){ + //only if translation exists + return name; + } + // use long name as fallback + return getName(); + } + @Override public boolean isEnabled(int type) { return type == CONSTRAINTS && MainApp.getConfigBuilder().getPumpDescription().isTempBasalCapable; @@ -177,7 +188,7 @@ public class ObjectivesPlugin implements PluginBase, ConstraintsInterface { MainApp.sResources.getString(R.string.objectives_6_objective), "", new Date(0), - 1, + 14, new Date(0))); } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/Autosens.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/Autosens.java new file mode 100644 index 0000000000..eb449b96c8 --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/Autosens.java @@ -0,0 +1,242 @@ +package info.nightscout.androidaps.plugins.OpenAPSAMA; + +import android.content.SharedPreferences; +import android.preference.PreferenceManager; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Date; +import java.util.List; + +import info.nightscout.androidaps.Constants; +import info.nightscout.androidaps.MainApp; +import info.nightscout.androidaps.data.IobTotal; +import info.nightscout.androidaps.db.BgReading; +import info.nightscout.client.data.NSProfile; +import info.nightscout.utils.Round; +import info.nightscout.utils.SafeParse; + + +public class Autosens { + private static Logger log = LoggerFactory.getLogger(Autosens.class); + + public static AutosensResult detectSensitivityandCarbAbsorption(List glucose_data, Long mealTime) { + SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); + NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile(); + + //console.error(mealTime); + + double deviationSum = 0; + double carbsAbsorbed = 0; + + List bucketed_data = new ArrayList<>(); + bucketed_data.add(glucose_data.get(0)); + int j = 0; + for (int i = 1; i < glucose_data.size(); ++i) { + long bgTime = glucose_data.get(i).getTimeIndex(); + long lastbgTime = glucose_data.get(i - 1).getTimeIndex(); + if (glucose_data.get(i).value < 39 || glucose_data.get(i - 1).value < 39) { + continue; + } + + long elapsed_minutes = (bgTime - lastbgTime) / (60 * 1000); + if (Math.abs(elapsed_minutes) > 8) { + // interpolate missing data points + double lastbg = glucose_data.get(i - 1).value; + elapsed_minutes = Math.abs(elapsed_minutes); + //console.error(elapsed_minutes); + long nextbgTime; + while (elapsed_minutes > 5) { + nextbgTime = lastbgTime + 5 * 60 * 1000; + j++; + BgReading newBgreading = new BgReading(); + newBgreading.timeIndex = nextbgTime; + double gapDelta = glucose_data.get(i).value - lastbg; + //console.error(gapDelta, lastbg, elapsed_minutes); + double nextbg = lastbg + (5 / elapsed_minutes * gapDelta); + newBgreading.value = Math.round(nextbg); + //console.error("Interpolated", bucketed_data[j]); + bucketed_data.add(newBgreading); + + elapsed_minutes = elapsed_minutes - 5; + lastbg = nextbg; + lastbgTime = nextbgTime; + } + } else if (Math.abs(elapsed_minutes) > 2) { + j++; + BgReading newBgreading = new BgReading(); + newBgreading.value = glucose_data.get(i).value; + newBgreading.timeIndex = bgTime; + bucketed_data.add(newBgreading); + } else { + bucketed_data.get(j).value = (bucketed_data.get(j).value + glucose_data.get(i).value) / 2; + } + } + //console.error(bucketed_data); + double[] avgDeltas = new double[bucketed_data.size() - 2]; + double[] bgis = new double[bucketed_data.size() - 2]; + double[] deviations = new double[bucketed_data.size() - 2]; + + String pastSensitivity = ""; + for (int i = 0; i < bucketed_data.size() - 3; ++i) { + long bgTime = bucketed_data.get(i).timeIndex; + int secondsFromMidnight = NSProfile.secondsFromMidnight(new Date(bgTime)); + + double sens = NSProfile.toMgdl(profile.getIsf(secondsFromMidnight), profile.getUnits()); + + //console.error(bgTime , bucketed_data[i].glucose); + double bg; + double avgDelta; + double delta; + bg = bucketed_data.get(i).value; + if (bg < 40 || bucketed_data.get(i + 3).value < 40) { + log.error("! value < 40"); + continue; + } + avgDelta = (bg - bucketed_data.get(i + 3).value) / 3; + delta = (bg - bucketed_data.get(i + 1).value); + +// avgDelta = avgDelta.toFixed(2); + IobTotal iob = IobTotal.calulateFromTreatmentsAndTemps(bgTime); + + double bgi = Math.round((-iob.activity * sens * 5) * 100) / 100d; +// bgi = bgi.toFixed(2); + //console.error(delta); + double deviation = delta - bgi; +// deviation = deviation.toFixed(2); + //if (deviation < 0 && deviation > -2) { console.error("BG: "+bg+", avgDelta: "+avgDelta+", BGI: "+bgi+", deviation: "+deviation); } + + // Exclude large positive deviations (carb absorption) from autosens + if (avgDelta - bgi < 6) { + if (deviation > 0) { + pastSensitivity += "+"; + } else if (deviation == 0) { + pastSensitivity += "="; + } else { + pastSensitivity += "-"; + } + avgDeltas[i] = avgDelta; + bgis[i] = bgi; + deviations[i] = deviation; + deviationSum += deviation; + } else { + pastSensitivity += ">"; + //console.error(bgTime); + } + //log.debug("TIME: " + new Date(bgTime).toString() + " BG: " + bg + " SENS: " + sens + " DELTA: " + delta + " AVGDELTA: " + avgDelta + " IOB: " + iob.iob + " ACTIVITY: " + iob.activity + " BGI: " + bgi + " DEVIATION: " + deviation); + + // if bgTime is more recent than mealTime + if (mealTime != null && bgTime > mealTime) { + // figure out how many carbs that represents + // but always assume at least 3mg/dL/5m (default) absorption + double ci = Math.max(deviation, SafeParse.stringToDouble(SP.getString("openapsama_min_5m_carbimpact", "3.0"))); + double absorbed = ci * profile.getIc(secondsFromMidnight) / sens; + // and add that to the running total carbsAbsorbed + carbsAbsorbed += absorbed; + } + } + + double ratio = 1; + String ratioLimit = ""; + String sensResult = ""; + + if (mealTime == null) { + //console.error(""); + log.debug(pastSensitivity); + //console.log(JSON.stringify(avgDeltas)); + //console.log(JSON.stringify(bgis)); + Arrays.sort(avgDeltas); + Arrays.sort(bgis); + Arrays.sort(deviations); + + for (double i = 0.9; i > 0.1; i = i - 0.02) { + //console.error("p="+i.toFixed(2)+": "+percentile(avgDeltas, i).toFixed(2)+", "+percentile(bgis, i).toFixed(2)+", "+percentile(deviations, i).toFixed(2)); + if (percentile(deviations, (i + 0.02)) >= 0 && percentile(deviations, i) < 0) { + //console.error("p="+i.toFixed(2)+": "+percentile(avgDeltas, i).toFixed(2)+", "+percentile(bgis, i).toFixed(2)+", "+percentile(deviations, i).toFixed(2)); + log.debug(Math.round(100 * i) + "% of non-meal deviations negative (target 45%-50%)"); + } + } + double pSensitive = percentile(deviations, 0.50); + double pResistant = percentile(deviations, 0.45); + //p30 = percentile(deviations, 0.3); + +// average = deviationSum / deviations.length; + + //console.error("Mean deviation: "+average.toFixed(2)); + double basalOff = 0; + + if (pSensitive < 0) { // sensitive + basalOff = pSensitive * (60 / 5) / NSProfile.toMgdl(profile.getIsf(NSProfile.secondsFromMidnight()), profile.getUnits()); + sensResult = "Excess insulin sensitivity detected"; + } else if (pResistant > 0) { // resistant + basalOff = pResistant * (60 / 5) / NSProfile.toMgdl(profile.getIsf(NSProfile.secondsFromMidnight()), profile.getUnits()); + sensResult = "Excess insulin resistance detected"; + } else { + sensResult = "Sensitivity normal"; + } + log.debug(sensResult); + ratio = 1 + (basalOff / profile.getMaxDailyBasal()); + + // don't adjust more than 1.5x + double rawRatio = ratio; + ratio = Math.max(ratio, SafeParse.stringToDouble(SP.getString("openapsama_autosens_min", "0.7"))); + ratio = Math.min(ratio, SafeParse.stringToDouble(SP.getString("openapsama_autosens_max", "1.2"))); + + if (ratio != rawRatio) { + ratioLimit = "Ratio limited from " + rawRatio + " to " + ratio; + log.debug(ratioLimit); + } + + double newisf = Math.round(NSProfile.toMgdl(profile.getIsf(NSProfile.secondsFromMidnight()), profile.getUnits()) / ratio); + if (ratio != 1) { + log.debug("ISF adjusted from " + NSProfile.toMgdl(profile.getIsf(NSProfile.secondsFromMidnight()), profile.getUnits()) + " to " + newisf); + } + //console.error("Basal adjustment "+basalOff.toFixed(2)+"U/hr"); + //console.error("Ratio: "+ratio*100+"%: new ISF: "+newisf.toFixed(1)+"mg/dL/U"); + } + + AutosensResult output = new AutosensResult(); + output.ratio = Round.roundTo(ratio, 0.01); + output.carbsAbsorbed = Round.roundTo(carbsAbsorbed, 0.01); + output.pastSensitivity = pastSensitivity; + output.ratioLimit = ratioLimit; + output.sensResult = sensResult; + return output; + } + + // From https://gist.github.com/IceCreamYou/6ffa1b18c4c8f6aeaad2 + // Returns the value at a given percentile in a sorted numeric array. + // "Linear interpolation between closest ranks" method + public static double percentile(double[] arr, double p) { + if (arr.length == 0) return 0; + if (p <= 0) return arr[0]; + if (p >= 1) return arr[arr.length - 1]; + + double index = arr.length * p, + lower = Math.floor(index), + upper = lower + 1, + weight = index % 1; + + if (upper >= arr.length) return arr[(int) lower]; + return arr[(int) lower] * (1 - weight) + arr[(int) upper] * weight; + } + + // Returns the percentile of the given value in a sorted numeric array. + public static double percentRank(double[] arr, double v) { + for (int i = 0, l = arr.length; i < l; i++) { + if (v <= arr[i]) { + while (i < l && v == arr[i]) i++; + if (i == 0) return 0; + if (v != arr[i - 1]) { + i += (v - arr[i - 1]) / (arr[i] - arr[i - 1]); + } + return i / l; + } + } + return 1; + } + +} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/AutosensResult.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/AutosensResult.java new file mode 100644 index 0000000000..811fee0f39 --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/AutosensResult.java @@ -0,0 +1,32 @@ +package info.nightscout.androidaps.plugins.OpenAPSAMA; + +import org.json.JSONException; +import org.json.JSONObject; + +/** + * Created by mike on 06.01.2017. + */ +public class AutosensResult { + + //default values to show when autosens algorithm is not called + public double ratio = 1d; + public double carbsAbsorbed = 0d; + public String sensResult = "autosens deactivated"; + public String pastSensitivity = ""; + public String ratioLimit = ""; + + public JSONObject json() { + JSONObject ret = new JSONObject(); + try { + ret.put("ratio", ratio); + ret.put("ratioLimit", ratioLimit); + ret.put("pastSensitivity", pastSensitivity); + ret.put("sensResult", sensResult); + ret.put("ratio", ratio); + } catch (JSONException e) { + e.printStackTrace(); + } + return ret; + } + +} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/DetermineBasalAdapterAMAJS.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/DetermineBasalAdapterAMAJS.java new file mode 100644 index 0000000000..aa6c0ae36d --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/DetermineBasalAdapterAMAJS.java @@ -0,0 +1,294 @@ +package info.nightscout.androidaps.plugins.OpenAPSAMA; + +import android.content.SharedPreferences; +import android.preference.PreferenceManager; + +import com.eclipsesource.v8.JavaVoidCallback; +import com.eclipsesource.v8.V8; +import com.eclipsesource.v8.V8Array; +import com.eclipsesource.v8.V8Object; + +import org.json.JSONException; +import org.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.IOException; + +import info.nightscout.androidaps.Config; +import info.nightscout.androidaps.Constants; +import info.nightscout.androidaps.MainApp; +import info.nightscout.androidaps.data.GlucoseStatus; +import info.nightscout.androidaps.data.MealData; +import info.nightscout.androidaps.db.TempBasal; +import info.nightscout.androidaps.interfaces.PumpInterface; +import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderFragment; +import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; +import info.nightscout.androidaps.plugins.Loop.ScriptReader; +import info.nightscout.androidaps.data.IobTotal; +import info.nightscout.client.data.NSProfile; +import info.nightscout.utils.SafeParse; + +public class DetermineBasalAdapterAMAJS { + private static Logger log = LoggerFactory.getLogger(DetermineBasalAdapterAMAJS.class); + + + private ScriptReader mScriptReader = null; + V8 mV8rt; + private V8Object mProfile; + private V8Object mGlucoseStatus; + private V8Array mIobData; + private V8Object mMealData; + private V8Object mCurrentTemp; + private V8Object mAutosensData = null; + + private final String PARAM_currentTemp = "currentTemp"; + private final String PARAM_iobData = "iobData"; + private final String PARAM_glucoseStatus = "glucose_status"; + private final String PARAM_profile = "profile"; + private final String PARAM_meal_data = "meal_data"; + private final String PARAM_autosens_data = "autosens_data"; + + private String storedCurrentTemp = null; + private String storedIobData = null; + private String storedGlucoseStatus = null; + private String storedProfile = null; + private String storedMeal_data = null; + private String storedAutosens_data = null; + + private String scriptDebug = ""; + + /** + * Main code + */ + + public DetermineBasalAdapterAMAJS(ScriptReader scriptReader) throws IOException { + mV8rt = V8.createV8Runtime(); + mScriptReader = scriptReader; + + initLogCallback(); + initProcessExitCallback(); + initModuleParent(); + loadScript(); + } + + public DetermineBasalResultAMA invoke() { + + log.debug(">>> Invoking detemine_basal <<<"); + log.debug("Glucose status: " + (storedGlucoseStatus = mV8rt.executeStringScript("JSON.stringify(" + PARAM_glucoseStatus + ");"))); + log.debug("IOB data: " + (storedIobData = mV8rt.executeStringScript("JSON.stringify(" + PARAM_iobData + ");"))); + log.debug("Current temp: " + (storedCurrentTemp = mV8rt.executeStringScript("JSON.stringify(" + PARAM_currentTemp + ");"))); + log.debug("Profile: " + (storedProfile = mV8rt.executeStringScript("JSON.stringify(" + PARAM_profile + ");"))); + log.debug("Meal data: " + (storedMeal_data = mV8rt.executeStringScript("JSON.stringify(" + PARAM_meal_data + ");"))); + if (mAutosensData != null) + log.debug("Autosens data: " + (storedAutosens_data = mV8rt.executeStringScript("JSON.stringify(" + PARAM_autosens_data + ");"))); + else + log.debug("Autosens data: " + (storedAutosens_data = "undefined")); + + mV8rt.executeVoidScript( + "var rT = determine_basal(" + + PARAM_glucoseStatus + ", " + + PARAM_currentTemp + ", " + + PARAM_iobData + ", " + + PARAM_profile + ", " + + PARAM_autosens_data + ", " + + PARAM_meal_data + ", " + + "tempBasalFunctions" + + ");"); + + + String ret = mV8rt.executeStringScript("JSON.stringify(rT);"); + log.debug("Result: " + ret); + + V8Object v8ObjectReuslt = mV8rt.getObject("rT"); + + DetermineBasalResultAMA result = null; + try { + result = new DetermineBasalResultAMA(v8ObjectReuslt, new JSONObject(ret)); + } catch (JSONException e) { + e.printStackTrace(); + } + + return result; + } + + String getGlucoseStatusParam() { + return storedGlucoseStatus; + } + + String getCurrentTempParam() { + return storedCurrentTemp; + } + + String getIobDataParam() { + return storedIobData; + } + + String getProfileParam() { + return storedProfile; + } + + String getMealDataParam() { + return storedMeal_data; + } + + String getAutosensDataParam() { + return storedAutosens_data; + } + + String getScriptDebug() { + return scriptDebug; + } + + private void loadScript() throws IOException { + mV8rt.executeVoidScript("var round_basal = function round_basal(basal, profile) { return basal; };"); + mV8rt.executeVoidScript("require = function() {return round_basal;};"); + + mV8rt.executeVoidScript(readFile("OpenAPSAMA/basal-set-temp.js"), "OpenAPSAMA/basal-set-temp.js ", 0); + mV8rt.executeVoidScript("var tempBasalFunctions = module.exports;"); + + mV8rt.executeVoidScript( + readFile("OpenAPSAMA/determine-basal.js"), + "OpenAPSAMA/determine-basal.js", + 0); + mV8rt.executeVoidScript("var determine_basal = module.exports;"); + } + + private void initModuleParent() { + mV8rt.executeVoidScript("var module = {\"parent\":Boolean(1)};"); + } + + private void initProcessExitCallback() { + JavaVoidCallback callbackProccessExit = new JavaVoidCallback() { + @Override + public void invoke(V8Object arg0, V8Array parameters) { + if (parameters.length() > 0) { + Object arg1 = parameters.get(0); + log.error("ProccessExit " + arg1); + } + } + }; + mV8rt.registerJavaMethod(callbackProccessExit, "proccessExit"); + mV8rt.executeVoidScript("var process = {\"exit\": function () { proccessExit(); } };"); + } + + private void initLogCallback() { + JavaVoidCallback callbackLog = new JavaVoidCallback() { + @Override + public void invoke(V8Object arg0, V8Array parameters) { + int i = 0; + String s = ""; + while (i < parameters.length()) { + Object arg = parameters.get(i); + s += arg + " "; + i++; + } + if (!s.equals("") && Config.logAPSResult) { + log.debug("Script debug: " + s); + scriptDebug += s + "\n"; + } + } + }; + mV8rt.registerJavaMethod(callbackLog, "log"); + mV8rt.executeVoidScript("var console = {\"log\":log, \"error\":log};"); + } + + + public void setData(NSProfile profile, + double maxIob, + double maxBasal, + double minBg, + double maxBg, + double targetBg, + PumpInterface pump, + IobTotal[] iobArray, + GlucoseStatus glucoseStatus, + MealData mealData, + double autosensDataRatio, + boolean tempTargetSet, + double min_5m_carbimpact) { + + String units = profile.getUnits(); + SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); + + mProfile = new V8Object(mV8rt); + mProfile.add("max_iob", maxIob); + mProfile.add("dia", profile.getDia()); + mProfile.add("type", "current"); + mProfile.add("max_daily_basal", profile.getMaxDailyBasal()); + mProfile.add("max_basal", maxBasal); + mProfile.add("min_bg", minBg); + mProfile.add("max_bg", maxBg); + mProfile.add("target_bg", targetBg); + mProfile.add("carb_ratio", profile.getIc(profile.secondsFromMidnight())); + mProfile.add("sens", NSProfile.toMgdl(profile.getIsf(NSProfile.secondsFromMidnight()).doubleValue(), units)); + mProfile.add("max_daily_safety_multiplier", SafeParse.stringToInt(preferences.getString("openapsama_max_daily_safety_multiplier", "3"))); + mProfile.add("current_basal_safety_multiplier", SafeParse.stringToInt(preferences.getString("openapsama_current_basal_safety_multiplier", "4"))); + mProfile.add("skip_neutral_temps", true); + mProfile.add("current_basal", pump.getBaseBasalRate()); + mProfile.add("temptargetSet", tempTargetSet); + mProfile.add("autosens_adjust_targets", preferences.getBoolean("openapsama_autosens_adjusttargets", true)); + mProfile.add("min_5m_carbimpact", SafeParse.stringToDouble(preferences.getString("openapsama_min_5m_carbimpact", "3.0"))); + mV8rt.add(PARAM_profile, mProfile); + + mCurrentTemp = new V8Object(mV8rt); + mCurrentTemp.add("temp", "absolute"); + mCurrentTemp.add("duration", pump.getTempBasalRemainingMinutes()); + mCurrentTemp.add("rate", pump.getTempBasalAbsoluteRate()); + + // as we have non default temps longer than 30 mintues + TempBasal tempBasal = pump.getTempBasal(); + if(tempBasal != null){ + mCurrentTemp.add("minutesrunning", tempBasal.getRealDuration()); + } + + mV8rt.add(PARAM_currentTemp, mCurrentTemp); + + mIobData = mV8rt.executeArrayScript(IobTotal.convertToJSONArray(iobArray).toString()); + mV8rt.add(PARAM_iobData, mIobData); + + mGlucoseStatus = new V8Object(mV8rt); + mGlucoseStatus.add("glucose", glucoseStatus.glucose); + mGlucoseStatus.add("delta", glucoseStatus.delta); + mGlucoseStatus.add("short_avgdelta", glucoseStatus.short_avgdelta); + mGlucoseStatus.add("long_avgdelta", glucoseStatus.long_avgdelta); + mV8rt.add(PARAM_glucoseStatus, mGlucoseStatus); + + mMealData = new V8Object(mV8rt); + mMealData.add("carbs", mealData.carbs); + mMealData.add("boluses", mealData.boluses); + mMealData.add("mealCOB", mealData.mealCOB); + mV8rt.add(PARAM_meal_data, mMealData); + + if (MainApp.getConfigBuilder().isAMAModeEnabled()) { + mAutosensData = new V8Object(mV8rt); + mAutosensData.add("ratio", autosensDataRatio); + mV8rt.add(PARAM_autosens_data, mAutosensData); + } else { + mV8rt.addUndefined(PARAM_autosens_data); + } + } + + + public void release() { + mProfile.release(); + mCurrentTemp.release(); + mIobData.release(); + mMealData.release(); + mGlucoseStatus.release(); + if (mAutosensData != null) { + mAutosensData.release(); + } + mV8rt.release(); + } + + public String readFile(String filename) throws IOException { + byte[] bytes = mScriptReader.readFile(filename); + String string = new String(bytes, "UTF-8"); + if (string.startsWith("#!/usr/bin/env node")) { + string = string.substring(20); + } + return string; + } + +} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/DetermineBasalResultAMA.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/DetermineBasalResultAMA.java new file mode 100644 index 0000000000..652ec856bd --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/DetermineBasalResultAMA.java @@ -0,0 +1,159 @@ +package info.nightscout.androidaps.plugins.OpenAPSAMA; + +import android.os.Parcel; +import android.os.Parcelable; + +import com.eclipsesource.v8.V8Object; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import info.nightscout.androidaps.db.BgReading; +import info.nightscout.androidaps.plugins.Loop.APSResult; +import info.nightscout.androidaps.data.IobTotal; + +public class DetermineBasalResultAMA extends APSResult { + public Date date; + public JSONObject json = new JSONObject(); + public double eventualBG; + public double snoozeBG; + public IobTotal iob; + + public DetermineBasalResultAMA(V8Object result, JSONObject j) { + date = new Date(); + json = j; + if (result.contains("error")) { + reason = result.getString("error"); + changeRequested = false; + rate = -1; + duration = -1; + } else { + reason = result.getString("reason"); + if (result.contains("eventualBG")) eventualBG = result.getDouble("eventualBG"); + if (result.contains("snoozeBG")) snoozeBG = result.getDouble("snoozeBG"); + if (result.contains("rate")) { + rate = result.getDouble("rate"); + if (rate < 0d) rate = 0d; + changeRequested = true; + } else { + rate = -1; + changeRequested = false; + } + if (result.contains("duration")) { + duration = result.getInteger("duration"); + changeRequested = changeRequested; + } else { + duration = -1; + changeRequested = false; + } + } + result.release(); + } + + public DetermineBasalResultAMA() { + } + + @Override + public DetermineBasalResultAMA clone() { + DetermineBasalResultAMA newResult = new DetermineBasalResultAMA(); + newResult.reason = new String(reason); + newResult.rate = rate; + newResult.duration = duration; + newResult.changeRequested = changeRequested; + newResult.rate = rate; + newResult.duration = duration; + newResult.changeRequested = changeRequested; + + try { + newResult.json = new JSONObject(json.toString()); + } catch (JSONException e) { + e.printStackTrace(); + } + newResult.eventualBG = eventualBG; + newResult.snoozeBG = snoozeBG; + newResult.date = date; + return newResult; + } + + @Override + public JSONObject json() { + try { + JSONObject ret = new JSONObject(this.json.toString()); + return ret; + } catch (JSONException e) { + e.printStackTrace(); + } + return null; + } + + public List getPredictions() { + List array = new ArrayList<>(); + try { + long startTime = date.getTime(); + if (json.has("predBGs")) { + JSONObject predBGs = json.getJSONObject("predBGs"); + if (predBGs.has("IOB")) { + JSONArray iob = predBGs.getJSONArray("IOB"); + for (int i = 1; i < iob.length(); i ++) { + BgReading bg = new BgReading(); + bg.value = iob.getInt(i); + bg.timeIndex = startTime + i * 5 * 60 * 1000L; + array.add(bg); + } + } + if (predBGs.has("aCOB")) { + JSONArray iob = predBGs.getJSONArray("aCOB"); + for (int i = 1; i < iob.length(); i ++) { + BgReading bg = new BgReading(); + bg.value = iob.getInt(i); + bg.timeIndex = startTime + i * 5 * 60 * 1000L; + array.add(bg); + } + } + if (predBGs.has("COB")) { + JSONArray iob = predBGs.getJSONArray("COB"); + for (int i = 1; i < iob.length(); i ++) { + BgReading bg = new BgReading(); + bg.value = iob.getInt(i); + bg.timeIndex = startTime + i * 5 * 60 * 1000L; + array.add(bg); + } + } + } + } catch (JSONException e) { + e.printStackTrace(); + } + return array; + } + + public long getLatestPredictionsTime() { + long latest = 0; + try { + long startTime = date.getTime(); + if (json.has("predBGs")) { + JSONObject predBGs = json.getJSONObject("predBGs"); + if (predBGs.has("IOB")) { + JSONArray iob = predBGs.getJSONArray("IOB"); + latest = Math.max(latest, startTime + (iob.length() - 1) * 5 * 60 * 1000L); + } + if (predBGs.has("aCOB")) { + JSONArray iob = predBGs.getJSONArray("aCOB"); + latest = Math.max(latest, startTime + (iob.length() - 1) * 5 * 60 * 1000L); + } + if (predBGs.has("COB")) { + JSONArray iob = predBGs.getJSONArray("COB"); + latest = Math.max(latest, startTime + (iob.length() - 1) * 5 * 60 * 1000L); + } + } + } catch (JSONException e) { + e.printStackTrace(); + } + + return latest; + } +} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAFragment.java new file mode 100644 index 0000000000..4a8ce51266 --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAFragment.java @@ -0,0 +1,159 @@ +package info.nightscout.androidaps.plugins.OpenAPSAMA; + +import android.app.Activity; +import android.os.Bundle; +import android.support.v4.app.Fragment; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Button; +import android.widget.TextView; + +import com.squareup.otto.Subscribe; + +import org.json.JSONArray; +import org.json.JSONException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import info.nightscout.androidaps.MainApp; +import info.nightscout.androidaps.R; +import info.nightscout.androidaps.interfaces.FragmentBase; +import info.nightscout.androidaps.plugins.OpenAPSMA.events.EventOpenAPSUpdateGui; +import info.nightscout.androidaps.plugins.OpenAPSMA.events.EventOpenAPSUpdateResultGui; +import info.nightscout.utils.JSONFormatter; + +public class OpenAPSAMAFragment extends Fragment implements View.OnClickListener, FragmentBase { + private static Logger log = LoggerFactory.getLogger(OpenAPSAMAFragment.class); + + private static OpenAPSAMAPlugin openAPSAMAPlugin; + + public static OpenAPSAMAPlugin getPlugin() { + if(openAPSAMAPlugin ==null){ + openAPSAMAPlugin = new OpenAPSAMAPlugin(); + } + return openAPSAMAPlugin; + } + + Button run; + TextView lastRunView; + TextView glucoseStatusView; + TextView currentTempView; + TextView iobDataView; + TextView profileView; + TextView mealDataView; + TextView autosensDataView; + TextView resultView; + TextView scriptdebugView; + TextView requestView; + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.openapsama_fragment, container, false); + + run = (Button) view.findViewById(R.id.openapsma_run); + run.setOnClickListener(this); + lastRunView = (TextView) view.findViewById(R.id.openapsma_lastrun); + glucoseStatusView = (TextView) view.findViewById(R.id.openapsma_glucosestatus); + currentTempView = (TextView) view.findViewById(R.id.openapsma_currenttemp); + iobDataView = (TextView) view.findViewById(R.id.openapsma_iobdata); + profileView = (TextView) view.findViewById(R.id.openapsma_profile); + mealDataView = (TextView) view.findViewById(R.id.openapsma_mealdata); + autosensDataView = (TextView) view.findViewById(R.id.openapsma_autosensdata); + scriptdebugView = (TextView) view.findViewById(R.id.openapsma_scriptdebugdata); + resultView = (TextView) view.findViewById(R.id.openapsma_result); + requestView = (TextView) view.findViewById(R.id.openapsma_request); + + updateGUI(); + return view; + } + + @Override + public void onClick(View view) { + switch (view.getId()) { + case R.id.openapsma_run: + getPlugin().invoke("OpenAPSAMA button"); + break; + } + + } + + @Override + public void onPause() { + super.onPause(); + MainApp.bus().unregister(this); + } + + @Override + public void onResume() { + super.onResume(); + MainApp.bus().register(this); + } + + @Subscribe + public void onStatusEvent(final EventOpenAPSUpdateGui ev) { + updateGUI(); + } + + @Subscribe + public void onStatusEvent(final EventOpenAPSUpdateResultGui ev) { + updateResultGUI(ev.text); + } + + void updateGUI() { + Activity activity = getActivity(); + if (activity != null) + activity.runOnUiThread(new Runnable() { + @Override + public void run() { + DetermineBasalResultAMA lastAPSResult = getPlugin().lastAPSResult; + if (lastAPSResult != null) { + resultView.setText(JSONFormatter.format(lastAPSResult.json)); + requestView.setText(lastAPSResult.toSpanned()); + } + DetermineBasalAdapterAMAJS determineBasalAdapterAMAJS = getPlugin().lastDetermineBasalAdapterAMAJS; + if (determineBasalAdapterAMAJS != null) { + glucoseStatusView.setText(JSONFormatter.format(determineBasalAdapterAMAJS.getGlucoseStatusParam())); + currentTempView.setText(JSONFormatter.format(determineBasalAdapterAMAJS.getCurrentTempParam())); + try { + JSONArray iobArray = new JSONArray(determineBasalAdapterAMAJS.getIobDataParam()); + iobDataView.setText(String.format(MainApp.sResources.getString(R.string.array_of_elements), iobArray.length()) + "\n" + JSONFormatter.format(iobArray.getString(0))); + } catch (JSONException e) { + e.printStackTrace(); + iobDataView.setText("JSONException"); + } + profileView.setText(JSONFormatter.format(determineBasalAdapterAMAJS.getProfileParam())); + mealDataView.setText(JSONFormatter.format(determineBasalAdapterAMAJS.getMealDataParam())); + scriptdebugView.setText(determineBasalAdapterAMAJS.getScriptDebug()); + } + if (getPlugin().lastAPSRun != null) { + lastRunView.setText(getPlugin().lastAPSRun.toLocaleString()); + } + if (getPlugin().lastAutosensResult != null) { + autosensDataView.setText(JSONFormatter.format(getPlugin().lastAutosensResult.json())); + } + } + }); + } + + void updateResultGUI(final String text) { + Activity activity = getActivity(); + if (activity != null) + activity.runOnUiThread(new Runnable() { + @Override + public void run() { + resultView.setText(text); + glucoseStatusView.setText(""); + currentTempView.setText(""); + iobDataView.setText(""); + profileView.setText(""); + mealDataView.setText(""); + autosensDataView.setText(""); + scriptdebugView.setText(""); + requestView.setText(""); + lastRunView.setText(""); + } + }); + } +} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAPlugin.java new file mode 100644 index 0000000000..49d5b760b9 --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAPlugin.java @@ -0,0 +1,293 @@ +package info.nightscout.androidaps.plugins.OpenAPSAMA; + +import android.content.SharedPreferences; +import android.preference.PreferenceManager; + +import org.json.JSONException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.IOException; +import java.util.Date; +import java.util.List; + +import info.nightscout.androidaps.Config; +import info.nightscout.androidaps.Constants; +import info.nightscout.androidaps.MainApp; +import info.nightscout.androidaps.R; +import info.nightscout.androidaps.data.GlucoseStatus; +import info.nightscout.androidaps.data.MealData; +import info.nightscout.androidaps.db.BgReading; +import info.nightscout.androidaps.db.TempTarget; +import info.nightscout.androidaps.interfaces.APSInterface; +import info.nightscout.androidaps.interfaces.PluginBase; +import info.nightscout.androidaps.interfaces.PumpInterface; +import info.nightscout.androidaps.interfaces.TempBasalsInterface; +import info.nightscout.androidaps.plugins.Loop.APSResult; +import info.nightscout.androidaps.plugins.Loop.ScriptReader; +import info.nightscout.androidaps.data.IobTotal; +import info.nightscout.androidaps.plugins.OpenAPSMA.events.EventOpenAPSUpdateGui; +import info.nightscout.androidaps.plugins.OpenAPSMA.events.EventOpenAPSUpdateResultGui; +import info.nightscout.androidaps.plugins.TempTargetRange.TempTargetRangePlugin; +import info.nightscout.client.data.NSProfile; +import info.nightscout.utils.DateUtil; +import info.nightscout.utils.Profiler; +import info.nightscout.utils.Round; +import info.nightscout.utils.SafeParse; +import info.nightscout.utils.ToastUtils; + +/** + * Created by mike on 05.08.2016. + */ +public class OpenAPSAMAPlugin implements PluginBase, APSInterface { + private static Logger log = LoggerFactory.getLogger(OpenAPSAMAPlugin.class); + + // last values + DetermineBasalAdapterAMAJS lastDetermineBasalAdapterAMAJS = null; + Date lastAPSRun = null; + DetermineBasalResultAMA lastAPSResult = null; + AutosensResult lastAutosensResult = null; + + boolean fragmentEnabled = false; + boolean fragmentVisible = true; + + @Override + public String getName() { + return MainApp.instance().getString(R.string.openapsama); + } + + @Override + public String getNameShort() { + String name = MainApp.sResources.getString(R.string.oaps_shortname); + if (!name.trim().isEmpty()){ + //only if translation exists + return name; + } + // use long name as fallback + return getName(); + } + + @Override + public boolean isEnabled(int type) { + return type == APS && fragmentEnabled && MainApp.getConfigBuilder().getPumpDescription().isTempBasalCapable; + } + + @Override + public boolean isVisibleInTabs(int type) { + return type == APS && fragmentVisible && MainApp.getConfigBuilder().getPumpDescription().isTempBasalCapable; + } + + @Override + public boolean canBeHidden(int type) { + return true; + } + + @Override + public void setFragmentVisible(int type, boolean fragmentVisible) { + if (type == APS) this.fragmentVisible = fragmentVisible; + } + + @Override + public void setFragmentEnabled(int type, boolean fragmentEnabled) { + if (type == APS) this.fragmentEnabled = fragmentEnabled; + } + + @Override + public int getType() { + return PluginBase.APS; + } + + @Override + public String getFragmentClass() { + return OpenAPSAMAFragment.class.getName(); + } + + @Override + public APSResult getLastAPSResult() { + return lastAPSResult; + } + + @Override + public Date getLastAPSRun() { + return lastAPSRun; + } + + @Override + public void invoke(String initiator) { + log.debug("invoke from " + initiator); + lastAPSResult = null; + DetermineBasalAdapterAMAJS determineBasalAdapterAMAJS = null; + try { + determineBasalAdapterAMAJS = new DetermineBasalAdapterAMAJS(new ScriptReader(MainApp.instance().getBaseContext())); + } catch (IOException e) { + log.error(e.getMessage(), e); + return; + } + + GlucoseStatus glucoseStatus = GlucoseStatus.getGlucoseStatusData(); + NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile(); + PumpInterface pump = MainApp.getConfigBuilder(); + + if (!isEnabled(PluginBase.APS)) { + MainApp.bus().post(new EventOpenAPSUpdateResultGui(MainApp.instance().getString(R.string.openapsma_disabled))); + if (Config.logAPSResult) + log.debug(MainApp.instance().getString(R.string.openapsma_disabled)); + return; + } + + if (glucoseStatus == null) { + MainApp.bus().post(new EventOpenAPSUpdateResultGui(MainApp.instance().getString(R.string.openapsma_noglucosedata))); + if (Config.logAPSResult) + log.debug(MainApp.instance().getString(R.string.openapsma_noglucosedata)); + return; + } + + if (profile == null) { + MainApp.bus().post(new EventOpenAPSUpdateResultGui(MainApp.instance().getString(R.string.openapsma_noprofile))); + if (Config.logAPSResult) + log.debug(MainApp.instance().getString(R.string.openapsma_noprofile)); + return; + } + + if (pump == null) { + MainApp.bus().post(new EventOpenAPSUpdateResultGui(MainApp.instance().getString(R.string.openapsma_nopump))); + if (Config.logAPSResult) + log.debug(MainApp.instance().getString(R.string.openapsma_nopump)); + return; + } + + SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); + String units = profile.getUnits(); + + String maxBgDefault = Constants.MAX_BG_DEFAULT_MGDL; + String minBgDefault = Constants.MIN_BG_DEFAULT_MGDL; + String targetBgDefault = Constants.TARGET_BG_DEFAULT_MGDL; + if (!units.equals(Constants.MGDL)) { + maxBgDefault = Constants.MAX_BG_DEFAULT_MMOL; + minBgDefault = Constants.MIN_BG_DEFAULT_MMOL; + targetBgDefault = Constants.TARGET_BG_DEFAULT_MMOL; + } + + Date now = new Date(); + + double maxIob = SafeParse.stringToDouble(SP.getString("openapsma_max_iob", "1.5")); + double maxBasal = SafeParse.stringToDouble(SP.getString("openapsma_max_basal", "1")); + double minBg = NSProfile.toMgdl(SafeParse.stringToDouble(SP.getString("openapsma_min_bg", minBgDefault)), units); + double maxBg = NSProfile.toMgdl(SafeParse.stringToDouble(SP.getString("openapsma_max_bg", maxBgDefault)), units); + double targetBg = NSProfile.toMgdl(SafeParse.stringToDouble(SP.getString("openapsma_target_bg", targetBgDefault)), units); + + minBg = Round.roundTo(minBg, 0.1d); + maxBg = Round.roundTo(maxBg, 0.1d); + + Date start = new Date(); + Date startPart = new Date(); + IobTotal[] iobArray = IobTotal.calculateIobArrayInDia(); + Profiler.log(log, "calculateIobArrayInDia()", startPart); + + startPart = new Date(); + MealData mealData = MainApp.getConfigBuilder().getActiveTreatments().getMealData(); + Profiler.log(log, "getMealData()", startPart); + + maxIob = MainApp.getConfigBuilder().applyMaxIOBConstraints(maxIob); + + minBg = verifyHardLimits(minBg, "minBg", Constants.VERY_HARD_LIMIT_MIN_BG[0], Constants.VERY_HARD_LIMIT_MIN_BG[1]); + maxBg = verifyHardLimits(maxBg, "maxBg", Constants.VERY_HARD_LIMIT_MAX_BG[0], Constants.VERY_HARD_LIMIT_MAX_BG[1]); + targetBg = verifyHardLimits(targetBg, "targetBg", Constants.VERY_HARD_LIMIT_TARGET_BG[0], Constants.VERY_HARD_LIMIT_TARGET_BG[1]); + + boolean isTempTarget = false; + TempTargetRangePlugin tempTargetRangePlugin = (TempTargetRangePlugin) MainApp.getSpecificPlugin(TempTargetRangePlugin.class); + if (tempTargetRangePlugin != null && tempTargetRangePlugin.isEnabled(PluginBase.GENERAL)) { + TempTarget tempTarget = tempTargetRangePlugin.getTempTargetInProgress(new Date().getTime()); + if (tempTarget != null) { + isTempTarget = true; + minBg = verifyHardLimits(tempTarget.low, "minBg", Constants.VERY_HARD_LIMIT_TEMP_MIN_BG[0], Constants.VERY_HARD_LIMIT_TEMP_MIN_BG[1]); + maxBg = verifyHardLimits(tempTarget.high, "maxBg", Constants.VERY_HARD_LIMIT_TEMP_MAX_BG[0], Constants.VERY_HARD_LIMIT_TEMP_MAX_BG[1]); + targetBg = verifyHardLimits((tempTarget.low + tempTarget.high) / 2, "targetBg", Constants.VERY_HARD_LIMIT_TEMP_TARGET_BG[0], Constants.VERY_HARD_LIMIT_TEMP_TARGET_BG[1]); + } + } + + + maxIob = verifyHardLimits(maxIob, "maxIob", 0, 7); + maxBasal = verifyHardLimits(maxBasal, "max_basal", 0.1, 10); + + if (!checkOnlyHardLimits(profile.getDia(), "dia", 2, 7)) return; + if (!checkOnlyHardLimits(profile.getIc(profile.secondsFromMidnight()), "carbratio", 2, 100)) return; + if (!checkOnlyHardLimits(NSProfile.toMgdl(profile.getIsf(NSProfile.secondsFromMidnight()).doubleValue(), units), "sens", 2, 900)) return; + if (!checkOnlyHardLimits(profile.getMaxDailyBasal(), "max_daily_basal", 0.1, 10)) return; + if (!checkOnlyHardLimits(pump.getBaseBasalRate(), "current_basal", 0.01, 5)) return; + + startPart = new Date(); + long oldestDataAvailable = MainApp.getConfigBuilder().getActiveTempBasals().oldestDataAvaialable(); + List bgReadings = MainApp.getDbHelper().getBgreadingsDataFromTime(Math.max(oldestDataAvailable, (long) (new Date().getTime() - 60 * 60 * 1000L * (24 + profile.getDia()))), false); + log.debug("Limiting data to oldest available temps: " + new Date(oldestDataAvailable).toString() + " (" + bgReadings.size() + " records)"); + Profiler.log(log, "getBgreadingsDataFromTime()", startPart); + + startPart = new Date(); + if(MainApp.getConfigBuilder().isAMAModeEnabled()){ + lastAutosensResult = Autosens.detectSensitivityandCarbAbsorption(bgReadings, null); + } else { + lastAutosensResult = new AutosensResult(); + } + Profiler.log(log, "detectSensitivityandCarbAbsorption()", startPart); + Profiler.log(log, "AMA data gathering", start); + + start = new Date(); + determineBasalAdapterAMAJS.setData(profile, maxIob, maxBasal, minBg, maxBg, targetBg, pump, iobArray, glucoseStatus, mealData, + lastAutosensResult.ratio, //autosensDataRatio + isTempTarget, + SafeParse.stringToDouble(SP.getString("openapsama_min_5m_carbimpact", "3.0"))//min_5m_carbimpact + ); + + + DetermineBasalResultAMA determineBasalResultAMA = determineBasalAdapterAMAJS.invoke(); + Profiler.log(log, "AMA calculation", start); + // Fix bug determine basal + if (determineBasalResultAMA.rate == 0d && determineBasalResultAMA.duration == 0 && !MainApp.getConfigBuilder().isTempBasalInProgress()) + determineBasalResultAMA.changeRequested = false; + // limit requests on openloop mode + if (!MainApp.getConfigBuilder().isClosedModeEnabled()) { + if (MainApp.getConfigBuilder().isTempBasalInProgress() && Math.abs(determineBasalResultAMA.rate - MainApp.getConfigBuilder().getTempBasalAbsoluteRate()) < 0.1) + determineBasalResultAMA.changeRequested = false; + if (!MainApp.getConfigBuilder().isTempBasalInProgress() && Math.abs(determineBasalResultAMA.rate - MainApp.getConfigBuilder().getBaseBasalRate()) < 0.1) + determineBasalResultAMA.changeRequested = false; + } + + determineBasalResultAMA.iob = iobArray[0]; + + determineBasalAdapterAMAJS.release(); + + try { + determineBasalResultAMA.json.put("timestamp", DateUtil.toISOString(now)); + } catch (JSONException e) { + e.printStackTrace(); + } + + lastDetermineBasalAdapterAMAJS = determineBasalAdapterAMAJS; + lastAPSResult = determineBasalResultAMA; + lastAPSRun = now; + MainApp.bus().post(new EventOpenAPSUpdateGui()); + + //deviceStatus.suggested = determineBasalResultAMA.json; + } + + // safety checks + public static boolean checkOnlyHardLimits(Double value, String valueName, double lowLimit, double highLimit) { + return value.equals(verifyHardLimits(value, valueName, lowLimit, highLimit)); + } + + public static Double verifyHardLimits(Double value, String valueName, double lowLimit, double highLimit) { + Double newvalue = value; + if (newvalue < lowLimit || newvalue > highLimit) { + newvalue = Math.max(newvalue, lowLimit); + newvalue = Math.min(newvalue, highLimit); + String msg = String.format(MainApp.sResources.getString(R.string.openapsma_valueoutofrange), valueName); + msg += ".\n"; + msg += String.format(MainApp.sResources.getString(R.string.openapsma_valuelimitedto), value, newvalue); + log.error(msg); + MainApp.getConfigBuilder().uploadError(msg); + ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), msg, R.raw.error); + } + return newvalue; + } + +} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/DetermineBasalAdapterJS.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/DetermineBasalAdapterMAJS.java similarity index 82% rename from app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/DetermineBasalAdapterJS.java rename to app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/DetermineBasalAdapterMAJS.java index a695e6a866..75c68cd5cc 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/DetermineBasalAdapterJS.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/DetermineBasalAdapterMAJS.java @@ -1,8 +1,5 @@ package info.nightscout.androidaps.plugins.OpenAPSMA; -import android.os.Parcel; -import android.os.Parcelable; - import com.eclipsesource.v8.JavaVoidCallback; import com.eclipsesource.v8.V8; import com.eclipsesource.v8.V8Array; @@ -16,15 +13,15 @@ import org.slf4j.LoggerFactory; import java.io.IOException; import info.nightscout.androidaps.Config; +import info.nightscout.androidaps.data.GlucoseStatus; +import info.nightscout.androidaps.data.IobTotal; +import info.nightscout.androidaps.data.MealData; import info.nightscout.androidaps.interfaces.PumpInterface; -import info.nightscout.androidaps.db.DatabaseHelper; import info.nightscout.androidaps.plugins.Loop.ScriptReader; -import info.nightscout.androidaps.plugins.Treatments.TreatmentsFragment; -import info.nightscout.androidaps.plugins.Treatments.TreatmentsPlugin; import info.nightscout.client.data.NSProfile; -public class DetermineBasalAdapterJS implements Parcelable { - private static Logger log = LoggerFactory.getLogger(DetermineBasalAdapterJS.class); +public class DetermineBasalAdapterMAJS { + private static Logger log = LoggerFactory.getLogger(DetermineBasalAdapterMAJS.class); private ScriptReader mScriptReader = null; @@ -47,49 +44,11 @@ public class DetermineBasalAdapterJS implements Parcelable { private String storedProfile = null; private String storedMeal_data = null; - /** - * Parcelable implementation - * result string for display only - **/ - protected DetermineBasalAdapterJS(Parcel in) { - storedCurrentTemp = in.readString(); - storedIobData = in.readString(); - storedGlucoseStatus = in.readString(); - storedProfile = in.readString(); - storedMeal_data = in.readString(); - } - - @Override - public void writeToParcel(Parcel dest, int flags) { - dest.writeString(storedCurrentTemp); - dest.writeString(storedIobData); - dest.writeString(storedGlucoseStatus); - dest.writeString(storedProfile); - dest.writeString(storedMeal_data); - } - - @Override - public int describeContents() { - return 0; - } - - public static final Creator CREATOR = new Creator() { - @Override - public DetermineBasalAdapterJS createFromParcel(Parcel in) { - return new DetermineBasalAdapterJS(in); - } - - @Override - public DetermineBasalAdapterJS[] newArray(int size) { - return new DetermineBasalAdapterJS[size]; - } - }; - - /** + /** * Main code */ - public DetermineBasalAdapterJS(ScriptReader scriptReader) throws IOException { + public DetermineBasalAdapterMAJS(ScriptReader scriptReader) throws IOException { mV8rt = V8.createV8Runtime(); mScriptReader = scriptReader; @@ -104,7 +63,6 @@ public class DetermineBasalAdapterJS implements Parcelable { // Profile mProfile = new V8Object(mV8rt); mProfile.add("max_iob", 0); - mProfile.add("carbs_hr", 0); mProfile.add("dia", 0); mProfile.add("type", "current"); mProfile.add("max_daily_basal", 0); @@ -143,7 +101,7 @@ public class DetermineBasalAdapterJS implements Parcelable { mV8rt.add(PARAM_meal_data, mMealData); } - public DetermineBasalResult invoke() { + public DetermineBasalResultMA invoke() { mV8rt.executeVoidScript( "console.error(\"determine_basal(\"+\n" + "JSON.stringify(" + PARAM_glucoseStatus + ")+ \", \" +\n" + @@ -170,14 +128,13 @@ public class DetermineBasalAdapterJS implements Parcelable { V8Object v8ObjectReuslt = mV8rt.getObject("rT"); - DetermineBasalResult result = null; + DetermineBasalResultMA result = null; try { - result = new DetermineBasalResult(v8ObjectReuslt, new JSONObject(ret)); + result = new DetermineBasalResultMA(v8ObjectReuslt, new JSONObject(ret)); } catch (JSONException e) { e.printStackTrace(); } - // Store input params for Parcelable storedGlucoseStatus = mV8rt.executeStringScript("JSON.stringify(" + PARAM_glucoseStatus + ");"); storedIobData = mV8rt.executeStringScript("JSON.stringify(" + PARAM_iobData + ");"); storedCurrentTemp = mV8rt.executeStringScript("JSON.stringify(" + PARAM_currentTemp + ");"); @@ -266,13 +223,12 @@ public class DetermineBasalAdapterJS implements Parcelable { double targetBg, PumpInterface pump, IobTotal iobData, - DatabaseHelper.GlucoseStatus glucoseStatus, - TreatmentsPlugin.MealData mealData) { + GlucoseStatus glucoseStatus, + MealData mealData) { String units = profile.getUnits(); mProfile.add("max_iob", maxIob); - mProfile.add("carbs_hr", profile.getCarbAbsorbtionRate()); mProfile.add("dia", profile.getDia()); mProfile.add("type", "current"); mProfile.add("max_daily_basal", profile.getMaxDailyBasal()); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/DetermineBasalResult.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/DetermineBasalResultMA.java similarity index 66% rename from app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/DetermineBasalResult.java rename to app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/DetermineBasalResultMA.java index 9ea8286c7e..cb0e67249f 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/DetermineBasalResult.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/DetermineBasalResultMA.java @@ -8,9 +8,10 @@ import com.eclipsesource.v8.V8Object; import org.json.JSONException; import org.json.JSONObject; +import info.nightscout.androidaps.data.IobTotal; import info.nightscout.androidaps.plugins.Loop.APSResult; -public class DetermineBasalResult extends APSResult { +public class DetermineBasalResultMA extends APSResult { public JSONObject json = new JSONObject(); public double eventualBG; @@ -18,7 +19,7 @@ public class DetermineBasalResult extends APSResult { public String mealAssist; public IobTotal iob; - public DetermineBasalResult(V8Object result, JSONObject j) { + public DetermineBasalResultMA(V8Object result, JSONObject j) { json = j; if (result.contains("error")) { reason = result.getString("error"); @@ -52,43 +53,12 @@ public class DetermineBasalResult extends APSResult { result.release(); } - @Override - public void writeToParcel(Parcel dest, int flags) { - super.writeToParcel(dest, flags); - dest.writeString(json.toString()); - dest.writeDouble(eventualBG); - dest.writeDouble(snoozeBG); - dest.writeString(mealAssist); - } - - public final Parcelable.Creator CREATOR = new Parcelable.Creator() { - public DetermineBasalResult createFromParcel(Parcel in) { - return new DetermineBasalResult(in); - } - - public DetermineBasalResult[] newArray(int size) { - return new DetermineBasalResult[size]; - } - }; - - private DetermineBasalResult(Parcel in) { - super(in); - try { - json = new JSONObject(in.readString()); - } catch (JSONException e) { - e.printStackTrace(); - } - eventualBG = in.readDouble(); - snoozeBG = in.readDouble(); - mealAssist = in.readString(); - } - - public DetermineBasalResult() { + public DetermineBasalResultMA() { } @Override - public DetermineBasalResult clone() { - DetermineBasalResult newResult = new DetermineBasalResult(); + public DetermineBasalResultMA clone() { + DetermineBasalResultMA newResult = new DetermineBasalResultMA(); newResult.reason = new String(reason); newResult.rate = rate; newResult.duration = duration; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/IobTotal.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/IobTotal.java deleted file mode 100644 index ecd4ca1e82..0000000000 --- a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/IobTotal.java +++ /dev/null @@ -1,76 +0,0 @@ -package info.nightscout.androidaps.plugins.OpenAPSMA; - -import org.json.JSONException; -import org.json.JSONObject; - -import java.util.Date; - -import info.nightscout.utils.DateUtil; -import info.nightscout.utils.Round; - -public class IobTotal { - public Double iob; - public Double activity; - public Double bolussnooze; - public Double basaliob; - public Double netbasalinsulin; - public Double hightempinsulin; - - public Double netInsulin = 0d; // for calculations from temp basals only - public Double netRatio = 0d; // for calculations from temp basals only - - public IobTotal() { - this.iob = 0d; - this.activity = 0d; - this.bolussnooze = 0d; - this.basaliob = 0d; - this.netbasalinsulin = 0d; - this.hightempinsulin = 0d; - } - - public IobTotal plus(IobTotal other) { - iob += other.iob; - activity += other.activity; - bolussnooze += other.bolussnooze; - basaliob += other.basaliob; - netbasalinsulin += other.netbasalinsulin; - hightempinsulin += other.hightempinsulin; - netInsulin += other.netInsulin; - netRatio += other.netRatio; - return this; - } - - public static IobTotal combine(IobTotal bolusIOB, IobTotal basalIob) { - IobTotal result = new IobTotal(); - result.iob = bolusIOB.iob + basalIob.basaliob; - result.activity = bolusIOB.activity + basalIob.activity; - result.bolussnooze = bolusIOB.bolussnooze; - result.basaliob = basalIob.basaliob; - result.netbasalinsulin = basalIob.netbasalinsulin; - result.hightempinsulin = basalIob.hightempinsulin; - return result; - } - - public IobTotal round() { - this.iob = Round.roundTo(this.iob, 0.001); - this.activity = Round.roundTo(this.activity, 0.0001); - this.bolussnooze = Round.roundTo(this.bolussnooze, 0.0001); - this.basaliob = Round.roundTo(this.basaliob, 0.001); - this.netbasalinsulin = Round.roundTo(this.netbasalinsulin, 0.001); - this.hightempinsulin = Round.roundTo(this.hightempinsulin, 0.001); - return this; - } - - public JSONObject json() { - JSONObject json = new JSONObject(); - try { - json.put("iob", iob); - json.put("basaliob", basaliob); - json.put("activity", activity); - json.put("time", DateUtil.toISOString(new Date())); - } catch (JSONException e) { - e.printStackTrace(); - } - return json; - } -} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/OpenAPSMAFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/OpenAPSMAFragment.java index 86cd729dcb..8805ba18b7 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/OpenAPSMAFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/OpenAPSMAFragment.java @@ -17,9 +17,8 @@ import org.slf4j.LoggerFactory; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; import info.nightscout.androidaps.interfaces.FragmentBase; -import info.nightscout.androidaps.plugins.Loop.APSResult; -import info.nightscout.androidaps.plugins.OpenAPSMA.events.EventOpenAPSMAUpdateGui; -import info.nightscout.androidaps.plugins.OpenAPSMA.events.EventOpenAPSMAUpdateResultGui; +import info.nightscout.androidaps.plugins.OpenAPSMA.events.EventOpenAPSUpdateGui; +import info.nightscout.androidaps.plugins.OpenAPSMA.events.EventOpenAPSUpdateResultGui; import info.nightscout.utils.JSONFormatter; public class OpenAPSMAFragment extends Fragment implements View.OnClickListener, FragmentBase { @@ -68,7 +67,7 @@ public class OpenAPSMAFragment extends Fragment implements View.OnClickListener, public void onClick(View view) { switch (view.getId()) { case R.id.openapsma_run: - getPlugin().invoke(); + getPlugin().invoke("OpenAPSMA button"); break; } @@ -87,12 +86,12 @@ public class OpenAPSMAFragment extends Fragment implements View.OnClickListener, } @Subscribe - public void onStatusEvent(final EventOpenAPSMAUpdateGui ev) { + public void onStatusEvent(final EventOpenAPSUpdateGui ev) { updateGUI(); } @Subscribe - public void onStatusEvent(final EventOpenAPSMAUpdateResultGui ev) { + public void onStatusEvent(final EventOpenAPSUpdateResultGui ev) { updateResultGUI(ev.text); } @@ -102,18 +101,18 @@ public class OpenAPSMAFragment extends Fragment implements View.OnClickListener, activity.runOnUiThread(new Runnable() { @Override public void run() { - DetermineBasalResult lastAPSResult = getPlugin().lastAPSResult; + DetermineBasalResultMA lastAPSResult = getPlugin().lastAPSResult; if (lastAPSResult != null) { resultView.setText(JSONFormatter.format(lastAPSResult.json)); requestView.setText(lastAPSResult.toSpanned()); } - DetermineBasalAdapterJS determineBasalAdapterJS = getPlugin().lastDetermineBasalAdapterJS; - if (determineBasalAdapterJS != null) { - glucoseStatusView.setText(JSONFormatter.format(determineBasalAdapterJS.getGlucoseStatusParam())); - currentTempView.setText(JSONFormatter.format(determineBasalAdapterJS.getCurrentTempParam())); - iobDataView.setText(JSONFormatter.format(determineBasalAdapterJS.getIobDataParam())); - profileView.setText(JSONFormatter.format(determineBasalAdapterJS.getProfileParam())); - mealDataView.setText(JSONFormatter.format(determineBasalAdapterJS.getMealDataParam())); + DetermineBasalAdapterMAJS determineBasalAdapterMAJS = getPlugin().lastDetermineBasalAdapterMAJS; + if (determineBasalAdapterMAJS != null) { + glucoseStatusView.setText(JSONFormatter.format(determineBasalAdapterMAJS.getGlucoseStatusParam())); + currentTempView.setText(JSONFormatter.format(determineBasalAdapterMAJS.getCurrentTempParam())); + iobDataView.setText(JSONFormatter.format(determineBasalAdapterMAJS.getIobDataParam())); + profileView.setText(JSONFormatter.format(determineBasalAdapterMAJS.getProfileParam())); + mealDataView.setText(JSONFormatter.format(determineBasalAdapterMAJS.getMealDataParam())); } if (getPlugin().lastAPSRun != null) { lastRunView.setText(getPlugin().lastAPSRun.toLocaleString()); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/OpenAPSMAPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/OpenAPSMAPlugin.java index 47ef05e08f..a3d5c3c508 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/OpenAPSMAPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/OpenAPSMAPlugin.java @@ -1,13 +1,9 @@ package info.nightscout.androidaps.plugins.OpenAPSMA; -import android.content.Context; -import android.content.Intent; import android.content.SharedPreferences; -import android.os.Bundle; import android.preference.PreferenceManager; import org.json.JSONException; -import org.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -18,8 +14,10 @@ import info.nightscout.androidaps.Config; import info.nightscout.androidaps.Constants; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; -import info.nightscout.androidaps.Services.Intents; -import info.nightscout.androidaps.db.DatabaseHelper; +import info.nightscout.androidaps.data.GlucoseStatus; +import info.nightscout.androidaps.data.IobTotal; +import info.nightscout.androidaps.data.MealData; +import info.nightscout.androidaps.db.TempTarget; import info.nightscout.androidaps.interfaces.APSInterface; import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.interfaces.PumpInterface; @@ -27,16 +25,19 @@ import info.nightscout.androidaps.interfaces.TempBasalsInterface; import info.nightscout.androidaps.interfaces.TreatmentsInterface; import info.nightscout.androidaps.plugins.Loop.APSResult; import info.nightscout.androidaps.plugins.Loop.ScriptReader; -import info.nightscout.androidaps.plugins.OpenAPSMA.events.EventOpenAPSMAUpdateGui; -import info.nightscout.androidaps.plugins.OpenAPSMA.events.EventOpenAPSMAUpdateResultGui; -import info.nightscout.androidaps.plugins.Treatments.TreatmentsPlugin; -import info.nightscout.client.data.DbLogger; +import info.nightscout.androidaps.plugins.OpenAPSMA.events.EventOpenAPSUpdateGui; +import info.nightscout.androidaps.plugins.OpenAPSMA.events.EventOpenAPSUpdateResultGui; +import info.nightscout.androidaps.plugins.TempTargetRange.TempTargetRangePlugin; import info.nightscout.client.data.NSProfile; import info.nightscout.utils.DateUtil; +import info.nightscout.utils.Profiler; import info.nightscout.utils.Round; import info.nightscout.utils.SafeParse; import info.nightscout.utils.ToastUtils; +import static info.nightscout.androidaps.plugins.OpenAPSAMA.OpenAPSAMAPlugin.checkOnlyHardLimits; +import static info.nightscout.androidaps.plugins.OpenAPSAMA.OpenAPSAMAPlugin.verifyHardLimits; + /** * Created by mike on 05.08.2016. */ @@ -44,9 +45,9 @@ public class OpenAPSMAPlugin implements PluginBase, APSInterface { private static Logger log = LoggerFactory.getLogger(OpenAPSMAPlugin.class); // last values - DetermineBasalAdapterJS lastDetermineBasalAdapterJS = null; + DetermineBasalAdapterMAJS lastDetermineBasalAdapterMAJS = null; Date lastAPSRun = null; - DetermineBasalResult lastAPSResult = null; + DetermineBasalResultMA lastAPSResult = null; boolean fragmentEnabled = false; boolean fragmentVisible = true; @@ -56,6 +57,17 @@ public class OpenAPSMAPlugin implements PluginBase, APSInterface { return MainApp.instance().getString(R.string.openapsma); } + @Override + public String getNameShort() { + String name = MainApp.sResources.getString(R.string.oaps_shortname); + if (!name.trim().isEmpty()){ + //only if translation exists + return name; + } + // use long name as fallback + return getName(); + } + @Override public boolean isEnabled(int type) { return type == APS && fragmentEnabled && MainApp.getConfigBuilder().getPumpDescription().isTempBasalCapable; @@ -102,43 +114,44 @@ public class OpenAPSMAPlugin implements PluginBase, APSInterface { } @Override - public void invoke() { + public void invoke(String initiator) { + log.debug("invoke from " + initiator); lastAPSResult = null; - DetermineBasalAdapterJS determineBasalAdapterJS = null; + DetermineBasalAdapterMAJS determineBasalAdapterMAJS = null; try { - determineBasalAdapterJS = new DetermineBasalAdapterJS(new ScriptReader(MainApp.instance().getBaseContext())); + determineBasalAdapterMAJS = new DetermineBasalAdapterMAJS(new ScriptReader(MainApp.instance().getBaseContext())); } catch (IOException e) { log.error(e.getMessage(), e); return; } - DatabaseHelper.GlucoseStatus glucoseStatus = MainApp.getDbHelper().getGlucoseStatusData(); + GlucoseStatus glucoseStatus = GlucoseStatus.getGlucoseStatusData(); NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile(); PumpInterface pump = MainApp.getConfigBuilder(); if (!isEnabled(PluginBase.APS)) { - MainApp.bus().post(new EventOpenAPSMAUpdateResultGui(MainApp.instance().getString(R.string.openapsma_disabled))); + MainApp.bus().post(new EventOpenAPSUpdateResultGui(MainApp.instance().getString(R.string.openapsma_disabled))); if (Config.logAPSResult) log.debug(MainApp.instance().getString(R.string.openapsma_disabled)); return; } if (glucoseStatus == null) { - MainApp.bus().post(new EventOpenAPSMAUpdateResultGui(MainApp.instance().getString(R.string.openapsma_noglucosedata))); + MainApp.bus().post(new EventOpenAPSUpdateResultGui(MainApp.instance().getString(R.string.openapsma_noglucosedata))); if (Config.logAPSResult) log.debug(MainApp.instance().getString(R.string.openapsma_noglucosedata)); return; } if (profile == null) { - MainApp.bus().post(new EventOpenAPSMAUpdateResultGui(MainApp.instance().getString(R.string.openapsma_noprofile))); + MainApp.bus().post(new EventOpenAPSUpdateResultGui(MainApp.instance().getString(R.string.openapsma_noprofile))); if (Config.logAPSResult) log.debug(MainApp.instance().getString(R.string.openapsma_noprofile)); return; } if (pump == null) { - MainApp.bus().post(new EventOpenAPSMAUpdateResultGui(MainApp.instance().getString(R.string.openapsma_nopump))); + MainApp.bus().post(new EventOpenAPSUpdateResultGui(MainApp.instance().getString(R.string.openapsma_nopump))); if (Config.logAPSResult) log.debug(MainApp.instance().getString(R.string.openapsma_nopump)); return; @@ -147,13 +160,13 @@ public class OpenAPSMAPlugin implements PluginBase, APSInterface { SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); String units = profile.getUnits(); - String maxBgDefault = "180"; - String minBgDefault = "100"; - String targetBgDefault = "150"; + String maxBgDefault = Constants.MAX_BG_DEFAULT_MGDL; + String minBgDefault = Constants.MIN_BG_DEFAULT_MGDL; + String targetBgDefault = Constants.TARGET_BG_DEFAULT_MGDL; if (!units.equals(Constants.MGDL)) { - maxBgDefault = "10"; - minBgDefault = "5"; - targetBgDefault = "7"; + maxBgDefault = Constants.MAX_BG_DEFAULT_MMOL; + minBgDefault = Constants.MIN_BG_DEFAULT_MMOL; + targetBgDefault = Constants.TARGET_BG_DEFAULT_MMOL; } Date now = new Date(); @@ -167,6 +180,7 @@ public class OpenAPSMAPlugin implements PluginBase, APSInterface { minBg = Round.roundTo(minBg, 0.1d); maxBg = Round.roundTo(maxBg, 0.1d); + Date start = new Date(); TreatmentsInterface treatments = MainApp.getConfigBuilder().getActiveTreatments(); TempBasalsInterface tempBasals = MainApp.getConfigBuilder().getActiveTempBasals(); treatments.updateTotalIOB(); @@ -176,71 +190,68 @@ public class OpenAPSMAPlugin implements PluginBase, APSInterface { IobTotal iobTotal = IobTotal.combine(bolusIob, basalIob).round(); - TreatmentsPlugin.MealData mealData = treatments.getMealData(); + MealData mealData = treatments.getMealData(); maxIob = MainApp.getConfigBuilder().applyMaxIOBConstraints(maxIob); + Profiler.log(log, "MA data gathering", start); + + minBg = verifyHardLimits(minBg, "minBg", Constants.VERY_HARD_LIMIT_MIN_BG[0], Constants.VERY_HARD_LIMIT_MIN_BG[1]); + maxBg = verifyHardLimits(maxBg, "maxBg", Constants.VERY_HARD_LIMIT_MAX_BG[0], Constants.VERY_HARD_LIMIT_MAX_BG[1]); + targetBg = verifyHardLimits(targetBg, "targetBg", Constants.VERY_HARD_LIMIT_TARGET_BG[0], Constants.VERY_HARD_LIMIT_TARGET_BG[1]); + + TempTargetRangePlugin tempTargetRangePlugin = (TempTargetRangePlugin) MainApp.getSpecificPlugin(TempTargetRangePlugin.class); + if (tempTargetRangePlugin != null && tempTargetRangePlugin.isEnabled(PluginBase.GENERAL)) { + TempTarget tempTarget = tempTargetRangePlugin.getTempTargetInProgress(new Date().getTime()); + if (tempTarget != null) { + minBg = verifyHardLimits(tempTarget.low, "minBg", Constants.VERY_HARD_LIMIT_TEMP_MIN_BG[0], Constants.VERY_HARD_LIMIT_TEMP_MIN_BG[1]); + maxBg = verifyHardLimits(tempTarget.high, "maxBg", Constants.VERY_HARD_LIMIT_TEMP_MAX_BG[0], Constants.VERY_HARD_LIMIT_TEMP_MAX_BG[1]); + targetBg = verifyHardLimits((tempTarget.low + tempTarget.high) / 2, "targetBg", Constants.VERY_HARD_LIMIT_TEMP_TARGET_BG[0], Constants.VERY_HARD_LIMIT_TEMP_TARGET_BG[1]); + } + } - minBg = verifyHardLimits(minBg, "minBg", 72, 180); - maxBg = verifyHardLimits(maxBg, "maxBg", 100, 270); - targetBg = verifyHardLimits(targetBg, "targetBg", 80, 200); maxIob = verifyHardLimits(maxIob, "maxIob", 0, 7); maxBasal = verifyHardLimits(maxBasal, "max_basal", 0.1, 10); - if (!checkOnlyHardLimits(profile.getCarbAbsorbtionRate(), "carbs_hr", 4, 100)) return; if (!checkOnlyHardLimits(profile.getDia(), "dia", 2, 7)) return; if (!checkOnlyHardLimits(profile.getIc(profile.secondsFromMidnight()), "carbratio", 2, 100)) return; if (!checkOnlyHardLimits(NSProfile.toMgdl(profile.getIsf(NSProfile.secondsFromMidnight()).doubleValue(), units), "sens", 2, 900)) return; if (!checkOnlyHardLimits(profile.getMaxDailyBasal(), "max_daily_basal", 0.1, 10)) return; if (!checkOnlyHardLimits(pump.getBaseBasalRate(), "current_basal", 0.01, 5)) return; - determineBasalAdapterJS.setData(profile, maxIob, maxBasal, minBg, maxBg, targetBg, pump, iobTotal, glucoseStatus, mealData); + start = new Date(); + determineBasalAdapterMAJS.setData(profile, maxIob, maxBasal, minBg, maxBg, targetBg, pump, iobTotal, glucoseStatus, mealData); + Profiler.log(log, "MA calculation", start); - DetermineBasalResult determineBasalResult = determineBasalAdapterJS.invoke(); + DetermineBasalResultMA determineBasalResultMA = determineBasalAdapterMAJS.invoke(); // Fix bug determine basal - if (determineBasalResult.rate == 0d && determineBasalResult.duration == 0 && !MainApp.getConfigBuilder().isTempBasalInProgress()) - determineBasalResult.changeRequested = false; + if (determineBasalResultMA.rate == 0d && determineBasalResultMA.duration == 0 && !MainApp.getConfigBuilder().isTempBasalInProgress()) + determineBasalResultMA.changeRequested = false; // limit requests on openloop mode if (!MainApp.getConfigBuilder().isClosedModeEnabled()) { - if (MainApp.getConfigBuilder().isTempBasalInProgress() && Math.abs(determineBasalResult.rate - MainApp.getConfigBuilder().getTempBasalAbsoluteRate()) < 0.1) - determineBasalResult.changeRequested = false; - if (!MainApp.getConfigBuilder().isTempBasalInProgress() && Math.abs(determineBasalResult.rate - MainApp.getConfigBuilder().getBaseBasalRate()) < 0.1) - determineBasalResult.changeRequested = false; + if (MainApp.getConfigBuilder().isTempBasalInProgress() && Math.abs(determineBasalResultMA.rate - MainApp.getConfigBuilder().getTempBasalAbsoluteRate()) < 0.1) + determineBasalResultMA.changeRequested = false; + if (!MainApp.getConfigBuilder().isTempBasalInProgress() && Math.abs(determineBasalResultMA.rate - MainApp.getConfigBuilder().getBaseBasalRate()) < 0.1) + determineBasalResultMA.changeRequested = false; } - determineBasalResult.iob = iobTotal; + determineBasalResultMA.iob = iobTotal; - determineBasalAdapterJS.release(); + determineBasalAdapterMAJS.release(); try { - determineBasalResult.json.put("timestamp", DateUtil.toISOString(now)); + determineBasalResultMA.json.put("timestamp", DateUtil.toISOString(now)); } catch (JSONException e) { e.printStackTrace(); } - lastDetermineBasalAdapterJS = determineBasalAdapterJS; - lastAPSResult = determineBasalResult; + lastDetermineBasalAdapterMAJS = determineBasalAdapterMAJS; + lastAPSResult = determineBasalResultMA; lastAPSRun = now; - MainApp.bus().post(new EventOpenAPSMAUpdateGui()); + MainApp.bus().post(new EventOpenAPSUpdateGui()); - //deviceStatus.suggested = determineBasalResult.json; + //deviceStatus.suggested = determineBasalResultMA.json; } - // safety checks - public static boolean checkOnlyHardLimits(Double value, String valueName, double lowLimit, double highLimit) { - return value.equals(verifyHardLimits(value, valueName, lowLimit, highLimit)); - } - - public static Double verifyHardLimits(Double value, String valueName, double lowLimit, double highLimit) { - if (value < lowLimit || value > highLimit) { - String msg = String.format(MainApp.sResources.getString(R.string.openapsma_valueoutofrange), valueName); - log.error(msg); - MainApp.getConfigBuilder().uploadError(msg); - ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), msg, R.raw.error); - value = Math.max(value, lowLimit); - value = Math.min(value, highLimit); - } - return value; - } } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/events/EventOpenAPSMAUpdateGui.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/events/EventOpenAPSUpdateGui.java similarity index 73% rename from app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/events/EventOpenAPSMAUpdateGui.java rename to app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/events/EventOpenAPSUpdateGui.java index 528473183e..65b3b49d53 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/events/EventOpenAPSMAUpdateGui.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/events/EventOpenAPSUpdateGui.java @@ -3,5 +3,5 @@ package info.nightscout.androidaps.plugins.OpenAPSMA.events; /** * Created by mike on 05.08.2016. */ -public class EventOpenAPSMAUpdateGui { +public class EventOpenAPSUpdateGui { } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/events/EventOpenAPSMAUpdateResultGui.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/events/EventOpenAPSUpdateResultGui.java similarity index 62% rename from app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/events/EventOpenAPSMAUpdateResultGui.java rename to app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/events/EventOpenAPSUpdateResultGui.java index 653dbbd583..2aa2365eff 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/events/EventOpenAPSMAUpdateResultGui.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/events/EventOpenAPSUpdateResultGui.java @@ -3,10 +3,10 @@ package info.nightscout.androidaps.plugins.OpenAPSMA.events; /** * Created by mike on 05.08.2016. */ -public class EventOpenAPSMAUpdateResultGui { +public class EventOpenAPSUpdateResultGui { public String text = null; - public EventOpenAPSMAUpdateResultGui(String text) { + public EventOpenAPSUpdateResultGui(String text) { this.text = text; } } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/BolusProgressDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/BolusProgressDialog.java index 537613b9e2..dfedda106e 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/BolusProgressDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/BolusProgressDialog.java @@ -29,6 +29,7 @@ public class BolusProgressDialog extends DialogFragment implements View.OnClickL TextView statusView; TextView stopPressedView; ProgressBar progressBar; + BolusProgressHelperActivity helperActivity; static double amount; public static boolean bolusEnded = false; @@ -45,6 +46,10 @@ public class BolusProgressDialog extends DialogFragment implements View.OnClickL bolusEnded = false; } + public void setHelperActivity(BolusProgressHelperActivity activity){ + this.helperActivity = activity; + } + @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { @@ -71,6 +76,14 @@ public class BolusProgressDialog extends DialogFragment implements View.OnClickL if (bolusEnded) dismiss(); } + @Override + public void dismiss(){ + super.dismiss(); + if (helperActivity!= null){ + helperActivity.finish(); + } + } + @Override public void onPause() { super.onPause(); @@ -124,7 +137,7 @@ public class BolusProgressDialog extends DialogFragment implements View.OnClickL @Override public void run() { if (c.sStatus == c.CONNECTING) { - statusView.setText(String.format(getString(R.string.danar_history_connectingfor), c.sSecondsElapsed)); + statusView.setText(String.format(MainApp.sResources.getString(R.string.danar_history_connectingfor), c.sSecondsElapsed)); } else if (c.sStatus == c.CONNECTED) { statusView.setText(MainApp.sResources.getString(R.string.connected)); } else { diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/BolusProgressHelperActivity.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/BolusProgressHelperActivity.java new file mode 100644 index 0000000000..6fddc218ac --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/BolusProgressHelperActivity.java @@ -0,0 +1,24 @@ +package info.nightscout.androidaps.plugins.Overview.Dialogs; + +import android.os.Bundle; +import android.support.v7.app.AppCompatActivity; + +/** + * Created by adrian on 09/02/17. + */ + +public class BolusProgressHelperActivity extends AppCompatActivity { + public BolusProgressHelperActivity() { + super(); + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + this.getIntent().getDoubleExtra("insulin", 0d); + BolusProgressDialog bolusProgressDialog = new BolusProgressDialog(); + bolusProgressDialog.setHelperActivity(this); + bolusProgressDialog.setInsulin(this.getIntent().getDoubleExtra("insulin", 0d)); + bolusProgressDialog.show(this.getSupportFragmentManager(), "BolusProgress"); + } +} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/CalibrationDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/CalibrationDialog.java new file mode 100644 index 0000000000..9e06bbb600 --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/CalibrationDialog.java @@ -0,0 +1,79 @@ +package info.nightscout.androidaps.plugins.Overview.Dialogs; + + +import android.content.Context; +import android.os.Bundle; +import android.support.v4.app.DialogFragment; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.widget.Button; +import android.widget.TextView; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.text.DecimalFormat; + +import info.nightscout.androidaps.Constants; +import info.nightscout.androidaps.MainApp; +import info.nightscout.androidaps.R; +import info.nightscout.androidaps.data.GlucoseStatus; +import info.nightscout.client.data.NSProfile; +import info.nightscout.utils.PlusMinusEditText; +import info.nightscout.utils.XdripCalibrations; + +public class CalibrationDialog extends DialogFragment implements View.OnClickListener { + private static Logger log = LoggerFactory.getLogger(CalibrationDialog.class); + + Button okButton; + PlusMinusEditText bgText; + TextView unitsView; + + Context parentContext; + + public CalibrationDialog() { + // Required empty public constructor + } + + public void setContext(Context context) { + parentContext = context; + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.overview_calibration_dialog, container, false); + + getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE); + getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); + + okButton = (Button) view.findViewById(R.id.overview_calibration_okbutton); + okButton.setOnClickListener(this); + + NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile(); + Double bg = NSProfile.fromMgdlToUnits(GlucoseStatus.getGlucoseStatusData() != null ? GlucoseStatus.getGlucoseStatusData().glucose : 0d, profile.getUnits()); + if (profile.getUnits().equals(Constants.MMOL)) + bgText = new PlusMinusEditText(view, R.id.overview_calibration_bg, R.id.overview_calibration_bg_plus, R.id.overview_calibration_bg_minus, bg, 0d, 30d, 0.1d, new DecimalFormat("0.0"), false); + else + bgText = new PlusMinusEditText(view, R.id.overview_calibration_bg, R.id.overview_calibration_bg_plus, R.id.overview_calibration_bg_minus, bg, 0d, 500d, 1d, new DecimalFormat("0"), false); + + unitsView = (TextView) view.findViewById(R.id.overview_calibration_units); + unitsView.setText(profile.getUnits()); + + return view; + } + + @Override + public void onClick(View view) { + switch (view.getId()) { + case R.id.overview_calibration_okbutton: + final Double bg = bgText.getValue(); + XdripCalibrations.confirmAndSendCalibration(bg, parentContext); + dismiss(); + break; + } + } +} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/WizardDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/WizardDialog.java index 60f7c48696..890c393edc 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/WizardDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/WizardDialog.java @@ -36,20 +36,18 @@ import java.util.Date; import info.nightscout.androidaps.Constants; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; +import info.nightscout.androidaps.data.GlucoseStatus; import info.nightscout.androidaps.data.PumpEnactResult; import info.nightscout.androidaps.db.BgReading; -import info.nightscout.androidaps.interfaces.PumpInterface; import info.nightscout.androidaps.interfaces.TempBasalsInterface; import info.nightscout.androidaps.interfaces.TreatmentsInterface; -import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderFragment; import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; -import info.nightscout.androidaps.plugins.OpenAPSMA.IobTotal; +import info.nightscout.androidaps.data.IobTotal; import info.nightscout.client.data.NSProfile; import info.nightscout.utils.BolusWizard; import info.nightscout.utils.DateUtil; import info.nightscout.utils.DecimalFormatter; import info.nightscout.utils.PlusMinusEditText; -import info.nightscout.utils.Round; import info.nightscout.utils.SafeParse; import info.nightscout.utils.ToastUtils; @@ -281,7 +279,7 @@ public class WizardDialog extends DialogFragment implements OnClickListener { else editBg.setStep(0.1d); // Set BG if not old - BgReading lastBg = MainApp.getDbHelper().actualBg(); + BgReading lastBg = GlucoseStatus.actualBg(); if (lastBg != null) { Double lastBgValue = lastBg.valueToUnits(units); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Notification.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Notification.java index 38e954571b..5d83a76cc7 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Notification.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Notification.java @@ -20,6 +20,9 @@ public class Notification { public static final int PROFILE_NOT_SET_NOT_INITIALIZED = 5; public static final int FAILED_UDPATE_PROFILE = 6; public static final int BASAL_VALUE_BELOW_MINIMUM = 7; + public static final int OLD_NSCLIENT = 8; + public static final int INVALID_PHONE_NUMBER = 9; + public static final int APPROACHING_DAILY_LIMIT = 10; public int id; public Date date; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java index 1cb7ae9b59..61f4279a51 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java @@ -13,6 +13,7 @@ import android.os.HandlerThread; import android.preference.PreferenceManager; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; +import android.support.v4.content.ContextCompat; import android.support.v7.app.AlertDialog; import android.support.v7.widget.CardView; import android.support.v7.widget.LinearLayoutManager; @@ -22,6 +23,8 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; +import android.widget.CheckBox; +import android.widget.CompoundButton; import android.widget.LinearLayout; import android.widget.TextView; @@ -49,10 +52,12 @@ import info.nightscout.androidaps.Config; import info.nightscout.androidaps.Constants; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; +import info.nightscout.androidaps.data.GlucoseStatus; +import info.nightscout.androidaps.data.IobTotal; import info.nightscout.androidaps.data.PumpEnactResult; import info.nightscout.androidaps.db.BgReading; -import info.nightscout.androidaps.db.DatabaseHelper; import info.nightscout.androidaps.db.TempBasal; +import info.nightscout.androidaps.db.TempTarget; import info.nightscout.androidaps.db.Treatment; import info.nightscout.androidaps.events.EventInitializationChanged; import info.nightscout.androidaps.events.EventNewBG; @@ -66,16 +71,22 @@ import info.nightscout.androidaps.interfaces.PumpInterface; import info.nightscout.androidaps.plugins.Careportal.Dialogs.NewNSTreatmentDialog; import info.nightscout.androidaps.plugins.Careportal.OptionsToShow; import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; +import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRConnectionStatus; import info.nightscout.androidaps.plugins.Loop.LoopPlugin; import info.nightscout.androidaps.plugins.Loop.events.EventNewOpenLoopNotification; import info.nightscout.androidaps.plugins.Objectives.ObjectivesPlugin; -import info.nightscout.androidaps.plugins.OpenAPSMA.IobTotal; +import info.nightscout.androidaps.plugins.OpenAPSAMA.DetermineBasalResultAMA; +import info.nightscout.androidaps.plugins.OpenAPSAMA.OpenAPSAMAPlugin; +import info.nightscout.androidaps.plugins.Overview.Dialogs.CalibrationDialog; import info.nightscout.androidaps.plugins.Overview.Dialogs.NewTreatmentDialog; import info.nightscout.androidaps.plugins.Overview.Dialogs.WizardDialog; -import info.nightscout.androidaps.plugins.Overview.graphExtensions.PointsWithLabelGraphSeries; import info.nightscout.androidaps.plugins.Overview.events.EventDismissNotification; import info.nightscout.androidaps.plugins.Overview.events.EventNewNotification; +import info.nightscout.androidaps.plugins.Overview.graphExtensions.PointsWithLabelGraphSeries; import info.nightscout.androidaps.plugins.Overview.graphExtensions.TimeAsXAxisLabelFormatter; +import info.nightscout.androidaps.plugins.SourceXdrip.SourceXdripPlugin; +import info.nightscout.androidaps.plugins.TempTargetRange.TempTargetRangePlugin; +import info.nightscout.androidaps.plugins.TempTargetRange.events.EventTempTargetRangeChange; import info.nightscout.client.data.NSProfile; import info.nightscout.utils.BolusWizard; import info.nightscout.utils.DateUtil; @@ -105,17 +116,20 @@ public class OverviewFragment extends Fragment { TextView activeProfileView; TextView iobView; TextView apsModeView; + TextView tempTargetView; + TextView pumpStatusView; GraphView bgGraph; + CheckBox showPredictionView; RecyclerView notificationsView; LinearLayoutManager llm; LinearLayout cancelTempLayout; LinearLayout acceptTempLayout; - LinearLayout quickWizardLayout; Button cancelTempButton; Button treatmentButton; Button wizardButton; + Button calibrationButton; Button acceptTempButton; Button quickWizardButton; @@ -149,9 +163,11 @@ public class OverviewFragment extends Fragment { baseBasalView = (TextView) view.findViewById(R.id.overview_basebasal); basalLayout = (LinearLayout) view.findViewById(R.id.overview_basallayout); activeProfileView = (TextView) view.findViewById(R.id.overview_activeprofile); + pumpStatusView = (TextView) view.findViewById(R.id.overview_initializing); iobView = (TextView) view.findViewById(R.id.overview_iob); apsModeView = (TextView) view.findViewById(R.id.overview_apsmode); + tempTargetView = (TextView) view.findViewById(R.id.overview_temptarget); bgGraph = (GraphView) view.findViewById(R.id.overview_bggraph); cancelTempButton = (Button) view.findViewById(R.id.overview_canceltemp); treatmentButton = (Button) view.findViewById(R.id.overview_treatment); @@ -161,13 +177,26 @@ public class OverviewFragment extends Fragment { acceptTempButton = (Button) view.findViewById(R.id.overview_accepttempbutton); acceptTempLayout = (LinearLayout) view.findViewById(R.id.overview_accepttemplayout); quickWizardButton = (Button) view.findViewById(R.id.overview_quickwizard); - quickWizardLayout = (LinearLayout) view.findViewById(R.id.overview_quickwizardlayout); + calibrationButton = (Button) view.findViewById(R.id.overview_calibration); + showPredictionView = (CheckBox) view.findViewById(R.id.overview_showprediction); notificationsView = (RecyclerView) view.findViewById(R.id.overview_notifications); notificationsView.setHasFixedSize(true); llm = new LinearLayoutManager(view.getContext()); notificationsView.setLayoutManager(llm); + showPredictionView.setChecked(prefs.getBoolean("showprediction", false)); + + showPredictionView.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + SharedPreferences.Editor editor = prefs.edit(); + editor.putBoolean("showprediction", showPredictionView.isChecked()); + editor.apply(); + updateGUI(); + } + }); + treatmentButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -210,11 +239,20 @@ public class OverviewFragment extends Fragment { } }); + calibrationButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + FragmentManager manager = getFragmentManager(); + CalibrationDialog calibrationDialog = new CalibrationDialog(); + calibrationDialog.setContext(getContext()); + calibrationDialog.show(manager, "CalibrationDialog"); + } + }); acceptTempButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - MainApp.getConfigBuilder().getActiveLoop().invoke(false); + ConfigBuilderPlugin.getActiveLoop().invoke("Accept temp button", false); final LoopPlugin.LastRun finalLastRun = LoopPlugin.lastRun; if (finalLastRun != null && finalLastRun.lastAPSRun != null && finalLastRun.constraintsProcessed.changeRequested) { AlertDialog.Builder builder = new AlertDialog.Builder(getContext()); @@ -231,7 +269,7 @@ public class OverviewFragment extends Fragment { finalLastRun.setByPump = applyResult; finalLastRun.lastEnact = new Date(); finalLastRun.lastOpenModeAccept = new Date(); - MainApp.getConfigBuilder().uploadDeviceStatus(); + MainApp.getConfigBuilder().uploadDeviceStatus(15); ObjectivesPlugin objectivesPlugin = (ObjectivesPlugin) MainApp.getSpecificPlugin(ObjectivesPlugin.class); if (objectivesPlugin != null) { objectivesPlugin.manualEnacts++; @@ -250,26 +288,39 @@ public class OverviewFragment extends Fragment { } }); + pumpStatusView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + if (MainApp.getConfigBuilder().isSuspended() || !MainApp.getConfigBuilder().isInitialized()) + sHandler.post(new Runnable() { + @Override + public void run() { + MainApp.getConfigBuilder().updateStatus("RefreshClicked"); + } + }); + } + }); + updateGUI(); return view; } void processQuickWizard() { - final BgReading lastBG = MainApp.getDbHelper().lastBg(); + final BgReading actualBg = GlucoseStatus.actualBg(); if (MainApp.getConfigBuilder() == null || ConfigBuilderPlugin.getActiveProfile() == null) // app not initialized yet return; final NSProfile profile = ConfigBuilderPlugin.getActiveProfile().getProfile(); QuickWizard.QuickWizardEntry quickWizardEntry = getPlugin().quickWizard.getActive(); - if (quickWizardEntry != null && lastBG != null) { - quickWizardLayout.setVisibility(View.VISIBLE); + if (quickWizardEntry != null && actualBg != null) { + quickWizardButton.setVisibility(View.VISIBLE); String text = MainApp.sResources.getString(R.string.bolus) + ": " + quickWizardEntry.buttonText(); BolusWizard wizard = new BolusWizard(); - wizard.doCalc(profile.getDefaultProfile(), quickWizardEntry.carbs(), lastBG.valueToUnits(profile.getUnits()), 0d, true, true); + wizard.doCalc(profile.getDefaultProfile(), quickWizardEntry.carbs(), actualBg.valueToUnits(profile.getUnits()), 0d, true, true); final JSONObject boluscalcJSON = new JSONObject(); try { - boluscalcJSON.put("eventTime", DateUtil.toISOString(new Date())); + boluscalcJSON.put("eventTime", DateUtil.toISOString(new Date())); boluscalcJSON.put("targetBGLow", wizard.targetBGLow); boluscalcJSON.put("targetBGHigh", wizard.targetBGHigh); boluscalcJSON.put("isf", wizard.sens); @@ -277,7 +328,7 @@ public class OverviewFragment extends Fragment { boluscalcJSON.put("iob", -(wizard.insulingFromBolusIOB + wizard.insulingFromBasalsIOB)); boluscalcJSON.put("bolusiobused", true); boluscalcJSON.put("basaliobused", true); - boluscalcJSON.put("bg", lastBG.valueToUnits(profile.getUnits())); + boluscalcJSON.put("bg", actualBg.valueToUnits(profile.getUnits())); boluscalcJSON.put("insulinbg", wizard.insulinFromBG); boluscalcJSON.put("insulinbgused", true); boluscalcJSON.put("bgdiff", wizard.bgDiff); @@ -324,7 +375,7 @@ public class OverviewFragment extends Fragment { getContext(), finalInsulinAfterConstraints, finalCarbsAfterConstraints, - lastBG.valueToUnits(profile.getUnits()), + actualBg.valueToUnits(profile.getUnits()), "Manual", 0, boluscalcJSON @@ -406,13 +457,41 @@ public class OverviewFragment extends Fragment { } @Subscribe - public void onStatusEvent(final EventNewBasalProfile ev) { updateGUIIfVisible(); } + public void onStatusEvent(final EventNewBasalProfile ev) { + updateGUIIfVisible(); + } @Subscribe - public void onStatusEvent(final EventNewNotification n) { updateNotifications(); } + public void onStatusEvent(final EventTempTargetRangeChange ev) { + updateGUIIfVisible(); + } @Subscribe - public void onStatusEvent(final EventDismissNotification n) { updateNotifications(); } + public void onStatusEvent(final EventNewNotification n) { + updateNotifications(); + } + + @Subscribe + public void onStatusEvent(final EventDismissNotification n) { + updateNotifications(); + } + + @Subscribe + public void onStatusEvent(final EventDanaRConnectionStatus s) { + Activity activity = getActivity(); + if (activity != null) + activity.runOnUiThread(new Runnable() { + @Override + public void run() { + if (s.sStatus == EventDanaRConnectionStatus.CONNECTING) + updatePumpStatus(String.format(getString(R.string.danar_history_connectingfor), s.sSecondsElapsed)); + else if (s.sStatus == EventDanaRConnectionStatus.PERFORMING) + updatePumpStatus(s.sAction); + else if (s.sStatus == EventDanaRConnectionStatus.DISCONNECTED) + updatePumpStatus(null); + } + }); + } private void hideTempRecommendation() { Activity activity = getActivity(); @@ -436,13 +515,48 @@ public class OverviewFragment extends Fragment { }); } + private void updatePumpStatus(String status) { + PumpInterface pump = MainApp.getConfigBuilder(); + if (status != null) { + pumpStatusView.setText(status); + pumpStatusView.setVisibility(View.VISIBLE); + } else if (pump.isBusy()) { + pumpStatusView.setText(R.string.pumpbusy); + pumpStatusView.setVisibility(View.VISIBLE); + } else if (pump.isSuspended()) { + // disable all treatment buttons because we are not able to check constraints without profile + wizardButton.setVisibility(View.INVISIBLE); + treatmentButton.setVisibility(View.INVISIBLE); + quickWizardButton.setVisibility(View.INVISIBLE); + pumpStatusView.setText(R.string.pumpsuspendedclicktorefresh); + pumpStatusView.setVisibility(View.VISIBLE); + } else if (!pump.isInitialized()) { + // disable all treatment buttons because we are not able to check constraints without profile + wizardButton.setVisibility(View.INVISIBLE); + treatmentButton.setVisibility(View.INVISIBLE); + quickWizardButton.setVisibility(View.INVISIBLE); + pumpStatusView.setText(R.string.waitingforpumpclicktorefresh); + pumpStatusView.setVisibility(View.VISIBLE); + } else { + wizardButton.setVisibility(View.VISIBLE); + treatmentButton.setVisibility(View.VISIBLE); + pumpStatusView.setVisibility(View.GONE); + } + } + @SuppressLint("SetTextI18n") public void updateGUI() { updateNotifications(); - BgReading actualBG = MainApp.getDbHelper().actualBg(); - BgReading lastBG = MainApp.getDbHelper().lastBg(); - if (MainApp.getConfigBuilder() == null || MainApp.getConfigBuilder().getActiveProfile() == null) // app not initialized yet + BgReading actualBG = GlucoseStatus.actualBg(); + BgReading lastBG = GlucoseStatus.lastBg(); + + if (MainApp.getConfigBuilder() == null || MainApp.getConfigBuilder().getActiveProfile() == null || MainApp.getConfigBuilder().getActiveProfile().getProfile() == null) {// app not initialized yet + pumpStatusView.setText(R.string.noprofileset); + pumpStatusView.setVisibility(View.VISIBLE); return; + } else { + pumpStatusView.setVisibility(View.GONE); + } // Skip if not initialized yet if (bgGraph == null) @@ -458,7 +572,7 @@ public class OverviewFragment extends Fragment { apsModeView.setBackgroundResource(R.drawable.loopmodeborder); apsModeView.setTextColor(Color.BLACK); final LoopPlugin activeloop = MainApp.getConfigBuilder().getActiveLoop(); - if(activeloop != null && activeloop.isEnabled(activeloop.getType())) { + if (activeloop != null && activeloop.isEnabled(activeloop.getType())) { if (MainApp.getConfigBuilder().isClosedModeEnabled()) { apsModeView.setText(MainApp.sResources.getString(R.string.closedloop)); } else { @@ -476,10 +590,10 @@ public class OverviewFragment extends Fragment { @Override public boolean onLongClick(View view) { view.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS); - if (activeloop == null){ + if (activeloop == null) { log.error("no active loop?"); return true; - } else if (activeloop.isEnabled(PluginBase.LOOP)){ + } else if (activeloop.isEnabled(PluginBase.LOOP)) { activeloop.setFragmentEnabled(PluginBase.LOOP, false); activeloop.setFragmentVisible(PluginBase.LOOP, false); } else { @@ -497,8 +611,34 @@ public class OverviewFragment extends Fragment { apsModeView.setVisibility(View.GONE); } - // **** Temp button **** + // temp target NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile(); + TempTargetRangePlugin tempTargetRangePlugin = (TempTargetRangePlugin) MainApp.getSpecificPlugin(TempTargetRangePlugin.class); + if (Config.APS && tempTargetRangePlugin != null && tempTargetRangePlugin.isEnabled(PluginBase.GENERAL)) { + TempTarget tempTarget = tempTargetRangePlugin.getTempTargetInProgress(new Date().getTime()); + if (tempTarget != null) { + tempTargetView.setTextColor(Color.BLACK); + tempTargetView.setBackgroundResource(R.drawable.temptargetborder); + tempTargetView.setVisibility(View.VISIBLE); + tempTargetView.setText(NSProfile.toUnitsString(tempTarget.low, NSProfile.fromMgdlToUnits(tempTarget.low, profile.getUnits()), profile.getUnits()) + " - " + NSProfile.toUnitsString(tempTarget.high, NSProfile.fromMgdlToUnits(tempTarget.high, profile.getUnits()), profile.getUnits())); + } else { + + String maxBgDefault = Constants.MAX_BG_DEFAULT_MGDL; + String minBgDefault = Constants.MIN_BG_DEFAULT_MGDL; + if (!profile.getUnits().equals(Constants.MGDL)) { + maxBgDefault = Constants.MAX_BG_DEFAULT_MMOL; + minBgDefault = Constants.MIN_BG_DEFAULT_MMOL; + } + tempTargetView.setTextColor(Color.WHITE); + tempTargetView.setBackgroundResource(R.drawable.temptargetborderdisabled); + tempTargetView.setText(prefs.getString("openapsma_min_bg", minBgDefault) + " - " + prefs.getString("openapsma_max_bg", maxBgDefault)); + tempTargetView.setVisibility(View.VISIBLE); + } + } else { + tempTargetView.setVisibility(View.GONE); + } + + // **** Temp button **** PumpInterface pump = MainApp.getConfigBuilder(); boolean showAcceptButton = !MainApp.getConfigBuilder().isClosedModeEnabled(); // Open mode needed @@ -506,15 +646,22 @@ public class OverviewFragment extends Fragment { showAcceptButton = showAcceptButton && (finalLastRun.lastOpenModeAccept == null || finalLastRun.lastOpenModeAccept.getTime() < finalLastRun.lastAPSRun.getTime()); // never accepted or before last result showAcceptButton = showAcceptButton && finalLastRun.constraintsProcessed.changeRequested; // change is requested - if (showAcceptButton && pump.isInitialized()) { + if (showAcceptButton && pump.isInitialized() && !pump.isSuspended() && ConfigBuilderPlugin.getActiveLoop() != null) { acceptTempLayout.setVisibility(View.VISIBLE); acceptTempButton.setText(getContext().getString(R.string.setbasalquestion) + "\n" + finalLastRun.constraintsProcessed); } else { acceptTempLayout.setVisibility(View.GONE); } + // **** Calibration button **** + if (MainApp.getSpecificPlugin(SourceXdripPlugin.class).isEnabled(PluginBase.BGSOURCE) && profile != null && GlucoseStatus.actualBg() != null) { + calibrationButton.setVisibility(View.VISIBLE); + } else { + calibrationButton.setVisibility(View.GONE); + } + + TempBasal activeTemp = pump.getTempBasal(); if (pump.isTempBasalInProgress()) { - TempBasal activeTemp = pump.getTempBasal(); cancelTempLayout.setVisibility(View.VISIBLE); cancelTempButton.setText(MainApp.instance().getString(R.string.cancel) + ": " + activeTemp.toString()); runningTempView.setVisibility(View.VISIBLE); @@ -539,7 +686,7 @@ public class OverviewFragment extends Fragment { public boolean onLongClick(View view) { view.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS); NewNSTreatmentDialog newDialog = new NewNSTreatmentDialog(); - final OptionsToShow profileswitch = new OptionsToShow(R.id.careportal_profileswitch, R.string.careportal_profileswitch, true, false, false, false, false, false, false, true, false); + final OptionsToShow profileswitch = new OptionsToShow(R.id.careportal_profileswitch, R.string.careportal_profileswitch, true, false, false, false, false, false, false, true, false, false); profileswitch.executeProfileSwitch = true; newDialog.setOptions(profileswitch); newDialog.show(getFragmentManager(), "NewNSTreatmentDialog"); @@ -548,40 +695,46 @@ public class OverviewFragment extends Fragment { }); activeProfileView.setLongClickable(true); - if (profile == null || !pump.isInitialized()) { - // disable all treatment buttons because we are not able to check constraints without profile - wizardButton.setVisibility(View.INVISIBLE); - treatmentButton.setVisibility(View.INVISIBLE); - return; - } else { - wizardButton.setVisibility(View.VISIBLE); - treatmentButton.setVisibility(View.VISIBLE); - } - String units = profile.getUnits(); + tempTargetView.setOnLongClickListener(new View.OnLongClickListener() { + @Override + public boolean onLongClick(View view) { + view.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS); + NewNSTreatmentDialog newTTDialog = new NewNSTreatmentDialog(); + final OptionsToShow temptarget = new OptionsToShow(R.id.careportal_temporarytarget, R.string.careportal_temporarytarget, false, false, false, false, true, false, false, false, false, true); + temptarget.executeTempTarget = true; + newTTDialog.setOptions(temptarget); + newTTDialog.show(getFragmentManager(), "NewNSTreatmentDialog"); + return true; + } + }); + tempTargetView.setLongClickable(true); // QuickWizard button QuickWizard.QuickWizardEntry quickWizardEntry = getPlugin().quickWizard.getActive(); - if (quickWizardEntry != null && lastBG != null && pump.isInitialized()) { - quickWizardLayout.setVisibility(View.VISIBLE); + if (quickWizardEntry != null && lastBG != null && pump.isInitialized() && !pump.isSuspended()) { + quickWizardButton.setVisibility(View.VISIBLE); String text = MainApp.sResources.getString(R.string.bolus) + ": " + quickWizardEntry.buttonText() + " " + DecimalFormatter.to0Decimal(quickWizardEntry.carbs()) + "g"; BolusWizard wizard = new BolusWizard(); wizard.doCalc(profile.getDefaultProfile(), quickWizardEntry.carbs(), lastBG.valueToUnits(profile.getUnits()), 0d, true, true); text += " " + DecimalFormatter.to2Decimal(wizard.calculatedTotalInsulin) + "U"; quickWizardButton.setText(text); if (wizard.calculatedTotalInsulin <= 0) - quickWizardLayout.setVisibility(View.GONE); + quickWizardButton.setVisibility(View.GONE); } else - quickWizardLayout.setVisibility(View.GONE); + quickWizardButton.setVisibility(View.GONE); + + String units = profile.getUnits(); // **** BG value **** - if (lastBG != null && bgView != null) { + if (lastBG != null) { bgView.setText(lastBG.valueToUnitsToString(profile.getUnits())); arrowView.setText(lastBG.directionToSymbol()); - DatabaseHelper.GlucoseStatus glucoseStatus = MainApp.getDbHelper().getGlucoseStatusData(); - if (glucoseStatus != null){ + GlucoseStatus glucoseStatus = GlucoseStatus.getGlucoseStatusData(); + if (glucoseStatus != null) { deltaView.setText("Δ " + NSProfile.toUnitsString(glucoseStatus.delta, glucoseStatus.delta * Constants.MGDL_TO_MMOLL, units) + " " + units); - avgdeltaView.setText("øΔ " + NSProfile.toUnitsString(glucoseStatus.avgdelta, glucoseStatus.avgdelta * Constants.MGDL_TO_MMOLL, units) + " " + units); + avgdeltaView.setText("øΔ15m: " + NSProfile.toUnitsString(glucoseStatus.short_avgdelta, glucoseStatus.short_avgdelta * Constants.MGDL_TO_MMOLL, units) + + " øΔ40m: " + NSProfile.toUnitsString(glucoseStatus.long_avgdelta, glucoseStatus.long_avgdelta * Constants.MGDL_TO_MMOLL, units)); } BgReading.units = profile.getUnits(); @@ -602,16 +755,21 @@ public class OverviewFragment extends Fragment { // iob MainApp.getConfigBuilder().getActiveTreatments().updateTotalIOB(); IobTotal bolusIob = MainApp.getConfigBuilder().getActiveTreatments().getLastCalculation().round(); - if (bolusIob == null) bolusIob = new IobTotal(); MainApp.getConfigBuilder().getActiveTempBasals().updateTotalIOB(); IobTotal basalIob = MainApp.getConfigBuilder().getActiveTempBasals().getLastCalculation().round(); - if (basalIob == null) basalIob = new IobTotal(); String iobtext = getString(R.string.treatments_iob_label_string) + " " + DecimalFormatter.to2Decimal(bolusIob.iob + basalIob.basaliob) + "U (" + getString(R.string.bolus) + ": " + DecimalFormatter.to2Decimal(bolusIob.iob) + "U " + getString(R.string.basal) + ": " + DecimalFormatter.to2Decimal(basalIob.basaliob) + "U)"; iobView.setText(iobtext); + boolean showPrediction = showPredictionView.isChecked() && finalLastRun != null && finalLastRun.constraintsProcessed.getClass().equals(DetermineBasalResultAMA.class); + if (MainApp.getSpecificPlugin(OpenAPSAMAPlugin.class) != null && MainApp.getSpecificPlugin(OpenAPSAMAPlugin.class).isEnabled(PluginBase.APS)) { + showPredictionView.setVisibility(View.VISIBLE); + } else { + showPredictionView.setVisibility(View.GONE); + } + // ****** GRAPH ******* // allign to hours @@ -622,27 +780,44 @@ public class OverviewFragment extends Fragment { calendar.set(Calendar.MINUTE, 0); calendar.add(Calendar.HOUR, 1); - int hoursToFetch = 6; - long toTime = calendar.getTimeInMillis() + 100000; // little bit more to avoid wrong rounding - long fromTime = toTime - hoursToFetch * 60 * 60 * 1000L; + int hoursToFetch; + long toTime; + long fromTime; + long endTime; + if (showPrediction) { + int predHours = (int) (Math.ceil(((DetermineBasalResultAMA) finalLastRun.constraintsProcessed).getLatestPredictionsTime() - new Date().getTime()) / (60 * 60 * 1000)); + predHours = Math.min(2, predHours); + predHours = Math.max(0, predHours); + hoursToFetch = (int) (6 - predHours); + toTime = calendar.getTimeInMillis() + 100000; // little bit more to avoid wrong rounding + fromTime = toTime - hoursToFetch * 60 * 60 * 1000L; + endTime = toTime + predHours * 60 * 60 * 1000L; + } else { + hoursToFetch = 6; + toTime = calendar.getTimeInMillis() + 100000; // little bit more to avoid wrong rounding + fromTime = toTime - hoursToFetch * 60 * 60 * 1000L; + endTime = toTime; + } Double lowLine = SafeParse.stringToDouble(prefs.getString("low_mark", "0")); Double highLine = SafeParse.stringToDouble(prefs.getString("high_mark", "0")); - if (lowLine < 1){ + if (lowLine < 1) { lowLine = NSProfile.fromMgdlToUnits(OverviewPlugin.bgTargetLow, units); } - if(highLine < 1){ + if (highLine < 1) { highLine = NSProfile.fromMgdlToUnits(OverviewPlugin.bgTargetHigh, units); } + LineGraphSeries basalsLineSeries = null; BarGraphSeries basalsSeries = null; LineGraphSeries seriesLow = null; LineGraphSeries seriesHigh = null; LineGraphSeries seriesNow = null; PointsGraphSeries seriesInRage = null; PointsGraphSeries seriesOutOfRange = null; + PointsGraphSeries predSeries = null; PointsWithLabelGraphSeries seriesTreatments = null; // remove old data from graph @@ -651,11 +826,11 @@ public class OverviewFragment extends Fragment { // **** HIGH and LOW targets graph **** DataPoint[] lowDataPoints = new DataPoint[]{ new DataPoint(fromTime, lowLine), - new DataPoint(toTime, lowLine) + new DataPoint(endTime, lowLine) }; DataPoint[] highDataPoints = new DataPoint[]{ new DataPoint(fromTime, highLine), - new DataPoint(toTime, highLine) + new DataPoint(endTime, highLine) }; bgGraph.addSeries(seriesLow = new LineGraphSeries(lowDataPoints)); seriesLow.setColor(Color.RED); @@ -672,19 +847,26 @@ public class OverviewFragment extends Fragment { public boolean isTempBasal = false; } - Double maxAllowedBasal = MainApp.getConfigBuilder().applyBasalConstraints(Constants.basalAbsoluteOnlyForCheckLimit); Double maxBasalValueFound = 0d; long now = new Date().getTime(); if (pump.getPumpDescription().isTempBasalCapable) { List basalArray = new ArrayList(); + List basalLineArray = new ArrayList(); + double lastBaseBasal = 0; for (long time = fromTime; time < now; time += 5 * 60 * 1000L) { TempBasal tb = MainApp.getConfigBuilder().getTempBasal(new Date(time)); + double basebasal = profile.getBasal(NSProfile.secondsFromMidnight(new Date(time))); Double basal = 0d; if (tb != null) basalArray.add(new BarDataPoint(time, basal = tb.tempBasalConvertedToAbsolute(new Date(time)), true)); - else - basalArray.add(new BarDataPoint(time, basal = profile.getBasal(NSProfile.secondsFromMidnight(new Date(time))), false)); + else { + basalArray.add(new BarDataPoint(time, basal = basebasal, false)); + } + if (basebasal != lastBaseBasal) + basalLineArray.add(new DataPoint(time, lastBaseBasal)); + basalLineArray.add(new DataPoint(time, basebasal)); + lastBaseBasal = basebasal; maxBasalValueFound = Math.max(maxBasalValueFound, basal); } BarDataPoint[] basal = new BarDataPoint[basalArray.size()]; @@ -698,17 +880,23 @@ public class OverviewFragment extends Fragment { else return Color.CYAN; } }); + DataPoint[] basalLine = new DataPoint[basalLineArray.size()]; + basalLine = basalLineArray.toArray(basalLine); + bgGraph.addSeries(basalsLineSeries = new LineGraphSeries(basalLine)); + basalsLineSeries.setColor(Color.CYAN); + basalsLineSeries.setDrawDataPoints(false); + basalsLineSeries.setThickness(2); } // set manual x bounds to have nice steps - bgGraph.getViewport().setMaxX(toTime); + bgGraph.getViewport().setMaxX(endTime); bgGraph.getViewport().setMinX(fromTime); bgGraph.getViewport().setXAxisBoundsManual(true); bgGraph.getGridLabelRenderer().setLabelFormatter(new TimeAsXAxisLabelFormatter(getActivity(), "HH")); bgGraph.getGridLabelRenderer().setNumHorizontalLabels(7); // only 7 because of the space // **** BG graph **** - List bgReadingsArray = MainApp.getDbHelper().getDataFromTime(fromTime); + List bgReadingsArray = MainApp.getDbHelper().getBgreadingsDataFromTime(fromTime, true); List inRangeArray = new ArrayList(); List outOfRangeArray = new ArrayList(); @@ -727,7 +915,7 @@ public class OverviewFragment extends Fragment { } maxBgValue = NSProfile.fromMgdlToUnits(maxBgValue, units); maxBgValue = units.equals(Constants.MGDL) ? Round.roundTo(maxBgValue, 40d) + 80 : Round.roundTo(maxBgValue, 2d) + 4; - if(highLine > maxBgValue) maxBgValue = highLine; + if (highLine > maxBgValue) maxBgValue = highLine; Integer numOfHorizLines = units.equals(Constants.MGDL) ? (int) (maxBgValue / 40 + 1) : (int) (maxBgValue / 2 + 1); BgReading[] inRange = new BgReading[inRangeArray.size()]; @@ -750,6 +938,19 @@ public class OverviewFragment extends Fragment { seriesOutOfRange.setColor(Color.RED); } + if (showPrediction) { + DetermineBasalResultAMA amaResult = (DetermineBasalResultAMA) finalLastRun.constraintsProcessed; + List predArray = amaResult.getPredictions(); + BgReading[] pred = new BgReading[predArray.size()]; + pred = predArray.toArray(pred); + if (pred.length > 0) { + bgGraph.addSeries(predSeries = new PointsGraphSeries(pred)); + predSeries.setShape(PointsGraphSeries.Shape.POINT); + predSeries.setSize(4); + predSeries.setColor(Color.MAGENTA); + } + } + // **** NOW line **** DataPoint[] nowPoints = new DataPoint[]{ new DataPoint(now, 0), @@ -762,8 +963,8 @@ public class OverviewFragment extends Fragment { // custom paint to make a dotted line Paint paint = new Paint(); paint.setStyle(Paint.Style.STROKE); - paint.setStrokeWidth(1); - paint.setPathEffect(new DashPathEffect(new float[]{4, 20}, 0)); + paint.setStrokeWidth(2); + paint.setPathEffect(new DashPathEffect(new float[]{10, 20}, 0)); paint.setColor(Color.WHITE); seriesNow.setCustomPaint(paint); @@ -796,12 +997,13 @@ public class OverviewFragment extends Fragment { // set second scale if (pump.getPumpDescription().isTempBasalCapable) { bgGraph.getSecondScale().addSeries(basalsSeries); + bgGraph.getSecondScale().addSeries(basalsLineSeries); bgGraph.getSecondScale().setMinY(0); bgGraph.getSecondScale().setMaxY(maxBgValue / lowLine * maxBasalValueFound * 1.2d); - bgGraph.getGridLabelRenderer().setVerticalLabelsSecondScaleColor(MainApp.instance().getResources().getColor(R.color.background_material_dark)); // same color as backround = hide + bgGraph.getGridLabelRenderer().setVerticalLabelsSecondScaleColor(ContextCompat.getColor(MainApp.instance(), R.color.background_material_dark)); // same color as backround = hide } - + updatePumpStatus(null); } //Notifications @@ -827,13 +1029,13 @@ public class OverviewFragment extends Fragment { holder.text.setText(notification.text); holder.time.setText(DateUtil.timeString(notification.date)); if (notification.level == Notification.URGENT) - holder.cv.setBackgroundColor(MainApp.instance().getResources().getColor(R.color.notificationUrgent)); + holder.cv.setBackgroundColor(ContextCompat.getColor(MainApp.instance(), R.color.notificationUrgent)); else if (notification.level == Notification.NORMAL) - holder.cv.setBackgroundColor(MainApp.instance().getResources().getColor(R.color.notificationNormal)); + holder.cv.setBackgroundColor(ContextCompat.getColor(MainApp.instance(), R.color.notificationNormal)); else if (notification.level == Notification.LOW) - holder.cv.setBackgroundColor(MainApp.instance().getResources().getColor(R.color.notificationLow)); + holder.cv.setBackgroundColor(ContextCompat.getColor(MainApp.instance(), R.color.notificationLow)); else if (notification.level == Notification.INFO) - holder.cv.setBackgroundColor(MainApp.instance().getResources().getColor(R.color.notificationInfo)); + holder.cv.setBackgroundColor(ContextCompat.getColor(MainApp.instance(), R.color.notificationInfo)); } @Override @@ -893,5 +1095,4 @@ public class OverviewFragment extends Fragment { } - } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewPlugin.java index 2dbc3332d0..9caa2fde10 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewPlugin.java @@ -47,6 +47,17 @@ public class OverviewPlugin implements PluginBase { return MainApp.instance().getString(R.string.overview); } + @Override + public String getNameShort() { + String name = MainApp.sResources.getString(R.string.overview_shortname); + if (!name.trim().isEmpty()){ + //only if translation exists + return name; + } + // use long name as fallback + return getName(); + } + @Override public boolean isEnabled(int type) { return type == GENERAL; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/SafetyFragment/SafetyPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/SafetyFragment/SafetyPlugin.java index f501ae5a0e..d9bff5a4cd 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/SafetyFragment/SafetyPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/SafetyFragment/SafetyPlugin.java @@ -38,6 +38,12 @@ public class SafetyPlugin implements PluginBase, ConstraintsInterface { return MainApp.instance().getString(R.string.safety); } + @Override + public String getNameShort() { + // use long name as fallback (no tabs) + return getName(); + } + @Override public boolean isEnabled(int type) { return type == CONSTRAINTS; @@ -97,8 +103,8 @@ public class SafetyPlugin implements PluginBase, ConstraintsInterface { if (profile == null) return absoluteRate; if (absoluteRate < 0) absoluteRate = 0d; - Integer maxBasalMult = 4; - Integer maxBasalFromDaily = 3; + Integer maxBasalMult = SafeParse.stringToInt(SP.getString("openapsama_current_basal_safety_multiplier", "4")); + Integer maxBasalFromDaily = SafeParse.stringToInt(SP.getString("openapsama_max_daily_safety_multiplier", "3")); // Check percentRate but absolute rate too, because we know real current basal in pump Double origRate = absoluteRate; if (absoluteRate > maxBasal) { @@ -136,8 +142,8 @@ public class SafetyPlugin implements PluginBase, ConstraintsInterface { if (absoluteRate < 0) absoluteRate = 0d; - Integer maxBasalMult = 4; - Integer maxBasalFromDaily = 3; + Integer maxBasalMult = SafeParse.stringToInt(SP.getString("openapsama_current_basal_safety_multiplier", "4")); + Integer maxBasalFromDaily = SafeParse.stringToInt(SP.getString("openapsama_max_daily_safety_multiplier", "3")); // Check percentRate but absolute rate too, because we know real current basal in pump Double origRate = absoluteRate; if (absoluteRate > maxBasal) { @@ -185,7 +191,7 @@ public class SafetyPlugin implements PluginBase, ConstraintsInterface { public Integer applyCarbsConstraints(Integer carbs) { SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); try { - Integer maxCarbs = Integer.parseInt(SP.getString("treatmentssafety_maxcarbs", "48")); + Integer maxCarbs = SafeParse.stringToInt(SP.getString("treatmentssafety_maxcarbs", "48")); if (carbs < 0) carbs = 0; if (carbs > maxCarbs) carbs = maxCarbs; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/SimpleProfile/SimpleProfileFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/SimpleProfile/SimpleProfileFragment.java index 22e293a023..4a31333ad9 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/SimpleProfile/SimpleProfileFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/SimpleProfile/SimpleProfileFragment.java @@ -48,7 +48,6 @@ public class SimpleProfileFragment extends Fragment implements FragmentBase { RadioButton mmolView; EditText icView; EditText isfView; - EditText carView; EditText basalView; EditText targetlowView; EditText targethighView; @@ -63,7 +62,6 @@ public class SimpleProfileFragment extends Fragment implements FragmentBase { mmolView = (RadioButton) layout.findViewById(R.id.simpleprofile_mmol); icView = (EditText) layout.findViewById(R.id.simpleprofile_ic); isfView = (EditText) layout.findViewById(R.id.simpleprofile_isf); - carView = (EditText) layout.findViewById(R.id.simpleprofile_car); basalView = (EditText) layout.findViewById(R.id.simpleprofile_basalrate); targetlowView = (EditText) layout.findViewById(R.id.simpleprofile_targetlow); targethighView = (EditText) layout.findViewById(R.id.simpleprofile_targethigh); @@ -82,7 +80,6 @@ public class SimpleProfileFragment extends Fragment implements FragmentBase { diaView.setText(simpleProfilePlugin.dia.toString()); icView.setText(simpleProfilePlugin.ic.toString()); isfView.setText(simpleProfilePlugin.isf.toString()); - carView.setText(simpleProfilePlugin.car.toString()); basalView.setText(simpleProfilePlugin.basal.toString()); targetlowView.setText(simpleProfilePlugin.targetLow.toString()); targethighView.setText(simpleProfilePlugin.targetHigh.toString()); @@ -110,7 +107,7 @@ public class SimpleProfileFragment extends Fragment implements FragmentBase { @Override public void onClick(View view) { NewNSTreatmentDialog newDialog = new NewNSTreatmentDialog(); - final OptionsToShow profileswitch = new OptionsToShow(R.id.careportal_profileswitch, R.string.careportal_profileswitch, true, false, false, false, false, false, false, true, false); + final OptionsToShow profileswitch = new OptionsToShow(R.id.careportal_profileswitch, R.string.careportal_profileswitch, true, false, false, false, false, false, false, true, false, false); profileswitch.executeProfileSwitch = true; newDialog.setOptions(profileswitch); newDialog.show(getFragmentManager(), "NewNSTreatmentDialog"); @@ -134,7 +131,6 @@ public class SimpleProfileFragment extends Fragment implements FragmentBase { simpleProfilePlugin.dia = SafeParse.stringToDouble(diaView.getText().toString()); simpleProfilePlugin.ic = SafeParse.stringToDouble(icView.getText().toString()); simpleProfilePlugin.isf = SafeParse.stringToDouble(isfView.getText().toString()); - simpleProfilePlugin.car = SafeParse.stringToDouble(carView.getText().toString()); simpleProfilePlugin.basal = SafeParse.stringToDouble(basalView.getText().toString()); simpleProfilePlugin.targetLow = SafeParse.stringToDouble(targetlowView.getText().toString()); simpleProfilePlugin.targetHigh = SafeParse.stringToDouble(targethighView.getText().toString()); @@ -145,7 +141,6 @@ public class SimpleProfileFragment extends Fragment implements FragmentBase { diaView.addTextChangedListener(textWatch); icView.addTextChangedListener(textWatch); isfView.addTextChangedListener(textWatch); - carView.addTextChangedListener(textWatch); basalView.addTextChangedListener(textWatch); targetlowView.addTextChangedListener(textWatch); targethighView.addTextChangedListener(textWatch); @@ -175,7 +170,7 @@ public class SimpleProfileFragment extends Fragment implements FragmentBase { activity.runOnUiThread(new Runnable() { @Override public void run() { - if (!MainApp.getConfigBuilder().isInitialized() || !MainApp.getConfigBuilder().getPumpDescription().isSetBasalProfileCapable) { + if (!MainApp.getConfigBuilder().isInitialized() || MainApp.getConfigBuilder().isSuspended() || !MainApp.getConfigBuilder().getPumpDescription().isSetBasalProfileCapable) { profileswitchButton.setVisibility(View.GONE); } else { profileswitchButton.setVisibility(View.VISIBLE); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/SimpleProfile/SimpleProfilePlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/SimpleProfile/SimpleProfilePlugin.java index dbe6345927..3264696feb 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/SimpleProfile/SimpleProfilePlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/SimpleProfile/SimpleProfilePlugin.java @@ -34,7 +34,6 @@ public class SimpleProfilePlugin implements PluginBase, ProfileInterface { Double dia; Double ic; Double isf; - Double car; Double basal; Double targetLow; Double targetHigh; @@ -58,6 +57,17 @@ public class SimpleProfilePlugin implements PluginBase, ProfileInterface { return MainApp.instance().getString(R.string.simpleprofile); } + @Override + public String getNameShort() { + String name = MainApp.sResources.getString(R.string.simpleprofile_shortname); + if (!name.trim().isEmpty()){ + //only if translation exists + return name; + } + // use long name as fallback + return getName(); + } + @Override public boolean isEnabled(int type) { return type == PROFILE && fragmentEnabled; @@ -93,7 +103,6 @@ public class SimpleProfilePlugin implements PluginBase, ProfileInterface { editor.putString("SimpleProfile" + "dia", dia.toString()); editor.putString("SimpleProfile" + "ic", ic.toString()); editor.putString("SimpleProfile" + "isf", isf.toString()); - editor.putString("SimpleProfile" + "car", car.toString()); editor.putString("SimpleProfile" + "basal", basal.toString()); editor.putString("SimpleProfile" + "targetlow", targetLow.toString()); editor.putString("SimpleProfile" + "targethigh", targetHigh.toString()); @@ -142,13 +151,6 @@ public class SimpleProfilePlugin implements PluginBase, ProfileInterface { log.debug(e.getMessage()); } else isf = 200d; - if (settings.contains("SimpleProfile" + "car")) - try { - car = SafeParse.stringToDouble(settings.getString("SimpleProfile" + "car", "20")); - } catch (Exception e) { - log.debug(e.getMessage()); - } - else car = 20d; if (settings.contains("SimpleProfile" + "basal")) try { basal = SafeParse.stringToDouble(settings.getString("SimpleProfile" + "basal", "1")); @@ -221,7 +223,6 @@ public class SimpleProfilePlugin implements PluginBase, ProfileInterface { json.put("store", store); profile.put("dia", dia); profile.put("carbratio", new JSONArray().put(new JSONObject().put("timeAsSeconds", 0).put("value", ic))); - profile.put("carbs_hr", car); profile.put("sens", new JSONArray().put(new JSONObject().put("timeAsSeconds", 0).put("value", isf))); profile.put("basal", new JSONArray().put(new JSONObject().put("timeAsSeconds", 0).put("value", basal))); profile.put("target_low", new JSONArray().put(new JSONObject().put("timeAsSeconds", 0).put("value", targetLow))); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/SmsCommunicator/SmsCommunicatorPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/SmsCommunicator/SmsCommunicatorPlugin.java index 4f65995948..4097efcdf9 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/SmsCommunicator/SmsCommunicatorPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/SmsCommunicator/SmsCommunicatorPlugin.java @@ -21,21 +21,24 @@ import info.nightscout.androidaps.Constants; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; import info.nightscout.androidaps.Services.Intents; +import info.nightscout.androidaps.data.GlucoseStatus; import info.nightscout.androidaps.data.PumpEnactResult; import info.nightscout.androidaps.db.BgReading; -import info.nightscout.androidaps.db.DatabaseHelper; import info.nightscout.androidaps.events.EventPreferenceChange; import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.interfaces.PumpInterface; import info.nightscout.androidaps.plugins.DanaR.DanaRPlugin; import info.nightscout.androidaps.plugins.DanaRKorean.DanaRKoreanPlugin; import info.nightscout.androidaps.plugins.Loop.LoopPlugin; -import info.nightscout.androidaps.plugins.OpenAPSMA.IobTotal; +import info.nightscout.androidaps.data.IobTotal; +import info.nightscout.androidaps.plugins.Overview.Notification; +import info.nightscout.androidaps.plugins.Overview.events.EventNewNotification; import info.nightscout.androidaps.plugins.SmsCommunicator.events.EventNewSMS; import info.nightscout.androidaps.plugins.SmsCommunicator.events.EventSmsCommunicatorUpdateGui; import info.nightscout.client.data.NSProfile; import info.nightscout.utils.DecimalFormatter; import info.nightscout.utils.SafeParse; +import info.nightscout.utils.XdripCalibrations; /** * Created by mike on 05.08.2016. @@ -61,6 +64,7 @@ public class SmsCommunicatorPlugin implements PluginBase { String confirmCode; double bolusRequested = 0d; double tempBasal = 0d; + double calibrationRequested = 0d; public Sms(SmsMessage message) { phoneNumber = message.getOriginatingAddress(); @@ -92,6 +96,7 @@ public class SmsCommunicatorPlugin implements PluginBase { Sms cancelTempBasalWaitingForConfirmation = null; Sms tempBasalWaitingForConfirmation = null; Sms bolusWaitingForConfirmation = null; + Sms calibrationWaitingForConfirmation = null; Date lastRemoteBolusTime = new Date(0); ArrayList messages = new ArrayList<>(); @@ -116,6 +121,17 @@ public class SmsCommunicatorPlugin implements PluginBase { return MainApp.sResources.getString(R.string.smscommunicator); } + @Override + public String getNameShort() { + String name = MainApp.sResources.getString(R.string.smscommunicator_shortname); + if (!name.trim().isEmpty()) { + //only if translation exists + return name; + } + // use long name as fallback + return getName(); + } + @Override public boolean isEnabled(int type) { return type == GENERAL && fragmentEnabled; @@ -199,8 +215,8 @@ public class SmsCommunicatorPlugin implements PluginBase { if (splited.length > 0) { switch (splited[0].toUpperCase()) { case "BG": - BgReading actualBG = MainApp.getDbHelper().actualBg(); - BgReading lastBG = MainApp.getDbHelper().lastBg(); + BgReading actualBG = GlucoseStatus.actualBg(); + BgReading lastBG = GlucoseStatus.lastBg(); NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile(); String units = profile.getUnits(); @@ -213,16 +229,14 @@ public class SmsCommunicatorPlugin implements PluginBase { } else if (lastBG != null) { reply = MainApp.sResources.getString(R.string.sms_lastbg) + " " + lastBG.valueToUnitsToString(units) + " " + String.format(MainApp.sResources.getString(R.string.sms_minago), agoMin) + ", "; } - DatabaseHelper.GlucoseStatus glucoseStatus = MainApp.getDbHelper().getGlucoseStatusData(); + GlucoseStatus glucoseStatus = GlucoseStatus.getGlucoseStatusData(); if (glucoseStatus != null) reply += MainApp.sResources.getString(R.string.sms_delta) + " " + NSProfile.toUnitsString(glucoseStatus.delta, glucoseStatus.delta * Constants.MGDL_TO_MMOLL, units) + " " + units + ", "; MainApp.getConfigBuilder().getActiveTreatments().updateTotalIOB(); IobTotal bolusIob = MainApp.getConfigBuilder().getActiveTreatments().getLastCalculation().round(); - if (bolusIob == null) bolusIob = new IobTotal(); MainApp.getConfigBuilder().getActiveTempBasals().updateTotalIOB(); IobTotal basalIob = MainApp.getConfigBuilder().getActiveTempBasals().getLastCalculation().round(); - if (basalIob == null) basalIob = new IobTotal(); reply += MainApp.sResources.getString(R.string.sms_iob) + " " + DecimalFormatter.to2Decimal(bolusIob.iob + basalIob.basaliob) + "U (" + MainApp.sResources.getString(R.string.sms_bolus) + " " + DecimalFormatter.to2Decimal(bolusIob.iob) + "U " @@ -293,12 +307,12 @@ public class SmsCommunicatorPlugin implements PluginBase { case "DANAR": DanaRPlugin danaRPlugin = (DanaRPlugin) MainApp.getSpecificPlugin(DanaRPlugin.class); if (danaRPlugin != null && danaRPlugin.isEnabled(PluginBase.PUMP)) { - reply = danaRPlugin.shortStatus(); + reply = danaRPlugin.shortStatus(true); sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date())); } DanaRKoreanPlugin danaRKoreanPlugin = (DanaRKoreanPlugin) MainApp.getSpecificPlugin(DanaRKoreanPlugin.class); if (danaRKoreanPlugin != null && danaRKoreanPlugin.isEnabled(PluginBase.PUMP)) { - reply = danaRKoreanPlugin.shortStatus(); + reply = danaRKoreanPlugin.shortStatus(true); sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date())); } receivedSms.processed = true; @@ -355,6 +369,23 @@ public class SmsCommunicatorPlugin implements PluginBase { } } break; + case "CAL": + if (splited.length > 1) { + amount = SafeParse.stringToDouble(splited[1]); + boolean remoteCommandsAllowed = sharedPreferences.getBoolean("smscommunicator_remotecommandsallowed", false); + if (amount > 0d && remoteCommandsAllowed) { + passCode = generatePasscode(); + reply = String.format(MainApp.sResources.getString(R.string.smscommunicator_calibrationreplywithcode), amount, passCode); + receivedSms.processed = true; + resetWaitingMessages(); + sendSMS(calibrationWaitingForConfirmation = new Sms(receivedSms.phoneNumber, reply, new Date(), passCode)); + calibrationWaitingForConfirmation.calibrationRequested = amount; + } else { + reply = MainApp.sResources.getString(R.string.smscommunicator_remotecalibrationnotallowed); + sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date())); + } + } + break; default: // expect passCode here if (bolusWaitingForConfirmation != null && !bolusWaitingForConfirmation.processed && bolusWaitingForConfirmation.confirmCode.equals(splited[0]) && new Date().getTime() - bolusWaitingForConfirmation.date.getTime() < CONFIRM_TIMEOUT) { @@ -365,12 +396,12 @@ public class SmsCommunicatorPlugin implements PluginBase { PumpEnactResult result = pumpInterface.deliverTreatment(bolusWaitingForConfirmation.bolusRequested, 0, null); if (result.success) { reply = String.format(MainApp.sResources.getString(R.string.smscommunicator_bolusdelivered), result.bolusDelivered); - if (danaRPlugin != null) reply += "\n" + danaRPlugin.shortStatus(); + if (danaRPlugin != null) reply += "\n" + danaRPlugin.shortStatus(true); lastRemoteBolusTime = new Date(); sendSMSToAllNumbers(new Sms(receivedSms.phoneNumber, reply, new Date())); } else { reply = MainApp.sResources.getString(R.string.smscommunicator_bolusfailed); - if (danaRPlugin != null) reply += "\n" + danaRPlugin.shortStatus(); + if (danaRPlugin != null) reply += "\n" + danaRPlugin.shortStatus(true); sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date())); } } @@ -383,11 +414,11 @@ public class SmsCommunicatorPlugin implements PluginBase { PumpEnactResult result = pumpInterface.setTempBasalAbsolute(tempBasalWaitingForConfirmation.tempBasal, 30); if (result.success) { reply = String.format(MainApp.sResources.getString(R.string.smscommunicator_tempbasalset), result.absolute, result.duration); - if (danaRPlugin != null) reply += "\n" + danaRPlugin.shortStatus(); + if (danaRPlugin != null) reply += "\n" + danaRPlugin.shortStatus(true); sendSMSToAllNumbers(new Sms(receivedSms.phoneNumber, reply, new Date())); } else { reply = MainApp.sResources.getString(R.string.smscommunicator_tempbasalfailed); - if (danaRPlugin != null) reply += "\n" + danaRPlugin.shortStatus(); + if (danaRPlugin != null) reply += "\n" + danaRPlugin.shortStatus(true); sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date())); } } @@ -400,14 +431,25 @@ public class SmsCommunicatorPlugin implements PluginBase { PumpEnactResult result = pumpInterface.cancelTempBasal(); if (result.success) { reply = String.format(MainApp.sResources.getString(R.string.smscommunicator_tempbasalcanceled)); - if (danaRPlugin != null) reply += "\n" + danaRPlugin.shortStatus(); + if (danaRPlugin != null) reply += "\n" + danaRPlugin.shortStatus(true); sendSMSToAllNumbers(new Sms(receivedSms.phoneNumber, reply, new Date())); } else { reply = MainApp.sResources.getString(R.string.smscommunicator_tempbasalcancelfailed); - if (danaRPlugin != null) reply += "\n" + danaRPlugin.shortStatus(); + if (danaRPlugin != null) reply += "\n" + danaRPlugin.shortStatus(true); sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date())); } } + } else if (calibrationWaitingForConfirmation != null && !calibrationWaitingForConfirmation.processed && + calibrationWaitingForConfirmation.confirmCode.equals(splited[0]) && new Date().getTime() - calibrationWaitingForConfirmation.date.getTime() < CONFIRM_TIMEOUT) { + calibrationWaitingForConfirmation.processed = true; + boolean result = XdripCalibrations.sendIntent(calibrationWaitingForConfirmation.calibrationRequested); + if (result) { + reply = String.format(MainApp.sResources.getString(R.string.smscommunicator_calibrationsent)); + sendSMSToAllNumbers(new Sms(receivedSms.phoneNumber, reply, new Date())); + } else { + reply = MainApp.sResources.getString(R.string.smscommunicator_calibrationfailed); + sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date())); + } } else { sendSMS(new Sms(receivedSms.phoneNumber, MainApp.sResources.getString(R.string.smscommunicator_unknowncommand), new Date())); } @@ -437,8 +479,13 @@ public class SmsCommunicatorPlugin implements PluginBase { SmsManager smsManager = SmsManager.getDefault(); sms.text = stripAccents(sms.text); if (sms.text.length() > 140) sms.text = sms.text.substring(0, 139); - smsManager.sendTextMessage(sms.phoneNumber, null, sms.text, null, null); - messages.add(sms); + try { + smsManager.sendTextMessage(sms.phoneNumber, null, sms.text, null, null); + messages.add(sms); + } catch (IllegalArgumentException e) { + Notification notification = new Notification(Notification.INVALID_PHONE_NUMBER, MainApp.sResources.getString(R.string.smscommunicator_invalidphonennumber), Notification.NORMAL); + MainApp.bus().post(new EventNewNotification(notification)); + } } private String generatePasscode() { @@ -455,6 +502,7 @@ public class SmsCommunicatorPlugin implements PluginBase { tempBasalWaitingForConfirmation = null; cancelTempBasalWaitingForConfirmation = null; bolusWaitingForConfirmation = null; + calibrationWaitingForConfirmation = null; } public static String stripAccents(String s) { diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/SourceMM640g/SourceMM640gPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/SourceMM640g/SourceMM640gPlugin.java index f7f0de23fb..b1d7a52cd0 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/SourceMM640g/SourceMM640gPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/SourceMM640g/SourceMM640gPlugin.java @@ -27,6 +27,12 @@ public class SourceMM640gPlugin implements PluginBase, BgSourceInterface { return MainApp.instance().getString(R.string.MM640g); } + @Override + public String getNameShort() { + // use long name as fallback (no tabs) + return getName(); + } + @Override public boolean isEnabled(int type) { return type == BGSOURCE && fragmentEnabled; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/SourceNSClient/SourceNSClientPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/SourceNSClient/SourceNSClientPlugin.java index f29acb293d..7e38e6dc47 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/SourceNSClient/SourceNSClientPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/SourceNSClient/SourceNSClientPlugin.java @@ -26,6 +26,13 @@ public class SourceNSClientPlugin implements PluginBase, BgSourceInterface { return MainApp.instance().getString(R.string.nsclient); } + @Override + public String getNameShort() { + // use long name as fallback (not visible in tabs) + return getName(); + } + + @Override public boolean isEnabled(int type) { return type == BGSOURCE && fragmentEnabled; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/SourceXdrip/SourceXdripPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/SourceXdrip/SourceXdripPlugin.java index f2318580ea..a1a4f01b86 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/SourceXdrip/SourceXdripPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/SourceXdrip/SourceXdripPlugin.java @@ -28,6 +28,12 @@ public class SourceXdripPlugin implements PluginBase, BgSourceInterface { return MainApp.instance().getString(R.string.xdrip); } + @Override + public String getNameShort() { + // use long name as fallback (no tabs) + return getName(); + } + @Override public boolean isEnabled(int type) { return type == BGSOURCE && fragmentEnabled; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/TempBasals/TempBasalsFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/TempBasals/TempBasalsFragment.java index f661cc4a5b..8317623fd2 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/TempBasals/TempBasalsFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/TempBasals/TempBasalsFragment.java @@ -3,6 +3,7 @@ package info.nightscout.androidaps.plugins.TempBasals; import android.app.Activity; import android.os.Bundle; import android.support.v4.app.Fragment; +import android.support.v4.content.ContextCompat; import android.support.v7.widget.CardView; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; @@ -22,10 +23,10 @@ import java.util.List; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; +import info.nightscout.androidaps.data.IobTotal; import info.nightscout.androidaps.db.TempBasal; import info.nightscout.androidaps.events.EventTempBasalChange; import info.nightscout.androidaps.interfaces.FragmentBase; -import info.nightscout.androidaps.plugins.OpenAPSMA.IobTotal; import info.nightscout.utils.DateUtil; import info.nightscout.utils.DecimalFormatter; @@ -82,13 +83,13 @@ public class TempBasalsFragment extends Fragment implements FragmentBase { holder.netRatio.setText(DecimalFormatter.to2Decimal(iob.netRatio) + " U/h"); holder.extendedFlag.setVisibility(tempBasal.isExtended ? View.VISIBLE : View.GONE); if (tempBasal.isInProgress()) - holder.dateLinearLayout.setBackgroundColor(MainApp.instance().getResources().getColor(R.color.colorInProgress)); + holder.dateLinearLayout.setBackgroundColor(ContextCompat.getColor(MainApp.instance(), R.color.colorInProgress)); else if (tempBasal.timeEnd == null) - holder.dateLinearLayout.setBackgroundColor(MainApp.instance().getResources().getColor(R.color.colorNotEnded)); + holder.dateLinearLayout.setBackgroundColor(ContextCompat.getColor(MainApp.instance(), R.color.colorNotEnded)); else if (tempBasal.iobCalc(new Date()).basaliob != 0) - holder.dateLinearLayout.setBackgroundColor(MainApp.instance().getResources().getColor(R.color.colorAffectingIOB)); + holder.dateLinearLayout.setBackgroundColor(ContextCompat.getColor(MainApp.instance(), R.color.colorAffectingIOB)); else - holder.dateLinearLayout.setBackgroundColor(MainApp.instance().getResources().getColor(R.color.cardColorBackground)); + holder.dateLinearLayout.setBackgroundColor(ContextCompat.getColor(MainApp.instance(), R.color.cardColorBackground)); } @Override diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/TempBasals/TempBasalsPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/TempBasals/TempBasalsPlugin.java index 87a73cb1df..058d5a7e0b 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/TempBasals/TempBasalsPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/TempBasals/TempBasalsPlugin.java @@ -5,9 +5,6 @@ import android.preference.PreferenceManager; import android.support.annotation.Nullable; import com.j256.ormlite.dao.Dao; -import com.j256.ormlite.stmt.PreparedQuery; -import com.j256.ormlite.stmt.QueryBuilder; -import com.j256.ormlite.stmt.Where; import com.squareup.otto.Subscribe; import org.slf4j.Logger; @@ -28,7 +25,7 @@ import info.nightscout.androidaps.events.EventPreferenceChange; import info.nightscout.androidaps.events.EventTempBasalChange; import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.interfaces.TempBasalsInterface; -import info.nightscout.androidaps.plugins.OpenAPSMA.IobTotal; +import info.nightscout.androidaps.data.IobTotal; /** * Created by mike on 05.08.2016. @@ -64,6 +61,17 @@ public class TempBasalsPlugin implements PluginBase, TempBasalsInterface { return MainApp.instance().getString(R.string.tempbasals); } + @Override + public String getNameShort() { + String name = MainApp.sResources.getString(R.string.tempbasals_shortname); + if (!name.trim().isEmpty()){ + //only if translation exists + return name; + } + // use long name as fallback + return getName(); + } + @Override public boolean isEnabled(int type) { return type == TEMPBASAL && fragmentEnabled && MainApp.getConfigBuilder().getPumpDescription().isTempBasalCapable; @@ -95,44 +103,16 @@ public class TempBasalsPlugin implements PluginBase, TempBasalsInterface { } private void initializeData() { - try { - Dao dao = MainApp.getDbHelper().getDaoTempBasals(); -/* - // **************** TESTING CREATE FAKE RECORD ***************** - TempBasal fake = new TempBasal(); - fake.timeStart = new Date(new Date().getTime() - 45 * 40 * 1000); - fake.timeEnd = new Date(new Date().getTime() - new Double(Math.random() * 45d * 40 * 1000).longValue()); - fake.duration = 30; - fake.percent = 150; - fake.isAbsolute = false; - fake.isExtended = false; - dao.createOrUpdate(fake); - // **************** TESTING CREATE FAKE RECORD ***************** -*/ - QueryBuilder queryBuilder = dao.queryBuilder(); - queryBuilder.orderBy("timeIndex", false); - Where where = queryBuilder.where(); - where.eq("isExtended", false); - queryBuilder.limit(30L); - PreparedQuery preparedQuery = queryBuilder.prepare(); - tempBasals = dao.query(preparedQuery); + double dia = 3; + if (MainApp.getConfigBuilder().getActiveProfile() != null && MainApp.getConfigBuilder().getActiveProfile().getProfile() != null) + dia = MainApp.getConfigBuilder().getActiveProfile().getProfile().getDia(); + long fromMills = (long) (new Date().getTime() - 60 * 60 * 1000L * (24 + dia)); + tempBasals = MainApp.getDbHelper().getTempbasalsDataFromTime(fromMills, false, false); + extendedBoluses = MainApp.getDbHelper().getTempbasalsDataFromTime(fromMills, false, true); - QueryBuilder queryBuilderExt = dao.queryBuilder(); - queryBuilderExt.orderBy("timeIndex", false); - Where whereExt = queryBuilderExt.where(); - whereExt.eq("isExtended", true); - queryBuilderExt.limit(30L); - PreparedQuery preparedQueryExt = queryBuilderExt.prepare(); - extendedBoluses = dao.query(preparedQueryExt); - - // Update ended - checkForExpiredExtended(); - checkForExpiredTemps(); - } catch (SQLException e) { - log.debug(e.getMessage(), e); - tempBasals = new ArrayList(); - extendedBoluses = new ArrayList(); - } + // Update ended + checkForExpiredExtended(); + checkForExpiredTemps(); } public void checkForExpiredTemps() { @@ -197,23 +177,32 @@ public class TempBasalsPlugin implements PluginBase, TempBasalsInterface { } @Override - public void updateTotalIOB() { + public IobTotal getCalculationToTime(long time) { checkForExpired(tempBasals); checkForExpired(extendedBoluses); - Date now = new Date(); - IobTotal total = new IobTotal(); + Date now = new Date(time); + IobTotal total = new IobTotal(time); for (Integer pos = 0; pos < tempBasals.size(); pos++) { TempBasal t = tempBasals.get(pos); + if (t.timeStart.getTime() > time) continue; IobTotal calc = t.iobCalc(now); total.plus(calc); } if (useExtendedBoluses) { for (Integer pos = 0; pos < extendedBoluses.size(); pos++) { TempBasal t = extendedBoluses.get(pos); + if (t.timeStart.getTime() > time) continue; IobTotal calc = t.iobCalc(now); total.plus(calc); } } + return total; + } + + @Override + public void updateTotalIOB() { + IobTotal total = getCalculationToTime(new Date().getTime()); + lastCalculationTimestamp = new Date().getTime(); lastCalculation = total; } @@ -237,6 +226,17 @@ public class TempBasalsPlugin implements PluginBase, TempBasalsInterface { return null; } + @Override + public long oldestDataAvaialable() { + long oldestTemp = new Date().getTime(); + if (tempBasals.size() > 0) + oldestTemp = Math.min(oldestTemp, tempBasals.get(tempBasals.size() - 1).timeStart.getTime()); + if (extendedBoluses.size() > 0) + oldestTemp = Math.min(oldestTemp, extendedBoluses.get(extendedBoluses.size() - 1).timeStart.getTime()); + oldestTemp -= 15 * 60 * 1000L; // allow 15 min before + return oldestTemp; + } + List getMergedList() { if (useExtendedBoluses) { List merged = new ArrayList(); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/TempTargetRange/TempTargetRangeFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/TempTargetRange/TempTargetRangeFragment.java new file mode 100644 index 0000000000..4bfe4ca74e --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/plugins/TempTargetRange/TempTargetRangeFragment.java @@ -0,0 +1,249 @@ +package info.nightscout.androidaps.plugins.TempTargetRange; + +import android.app.Activity; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.SharedPreferences; +import android.graphics.Paint; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.support.v4.app.Fragment; +import android.support.v4.content.ContextCompat; +import android.support.v7.app.AlertDialog; +import android.support.v7.widget.CardView; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Button; +import android.widget.LinearLayout; +import android.widget.TextView; + +import com.j256.ormlite.dao.Dao; +import com.squareup.otto.Subscribe; + +import java.sql.SQLException; +import java.util.List; + +import info.nightscout.androidaps.MainApp; +import info.nightscout.androidaps.R; +import info.nightscout.androidaps.Services.Intents; +import info.nightscout.androidaps.db.TempTarget; +import info.nightscout.androidaps.interfaces.FragmentBase; +import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; +import info.nightscout.androidaps.plugins.TempTargetRange.events.EventTempTargetRangeChange; +import info.nightscout.client.data.NSProfile; +import info.nightscout.utils.DateUtil; +import info.nightscout.utils.DecimalFormatter; +import info.nightscout.utils.ToastUtils; + +/** + * Created by mike on 13/01/17. + */ + +public class TempTargetRangeFragment extends Fragment implements View.OnClickListener, FragmentBase { + + private static TempTargetRangePlugin tempTargetRangePlugin = new TempTargetRangePlugin(); + + public static TempTargetRangePlugin getPlugin() { + return tempTargetRangePlugin; + } + + RecyclerView recyclerView; + LinearLayoutManager llm; + Button refreshFromNS; + + Context context; + + public class RecyclerViewAdapter extends RecyclerView.Adapter { + + List tempTargetList; + + RecyclerViewAdapter(List TempTargetList) { + this.tempTargetList = TempTargetList; + } + + @Override + public TempTargetsViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) { + View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.temptargetrange_item, viewGroup, false); + TempTargetsViewHolder TempTargetsViewHolder = new TempTargetsViewHolder(v); + return TempTargetsViewHolder; + } + + @Override + public void onBindViewHolder(TempTargetsViewHolder holder, int position) { + NSProfile profile = ConfigBuilderPlugin.getActiveProfile().getProfile(); + if (profile == null) return; + TempTarget tempTarget = tempTargetList.get(position); + if (tempTarget.duration != 0) { + holder.date.setText(DateUtil.dateAndTimeString(tempTarget.timeStart) + " - " + DateUtil.timeString(tempTargetList.get(position).getPlannedTimeEnd())); + holder.duration.setText(DecimalFormatter.to0Decimal(tempTarget.duration) + " min"); + holder.low.setText(tempTarget.lowValueToUnitsToString(profile.getUnits())); + holder.high.setText(tempTarget.highValueToUnitsToString(profile.getUnits())); + holder.reason.setText(tempTarget.reason); + } else { + holder.date.setText(DateUtil.dateAndTimeString(tempTarget.timeStart)); + holder.duration.setText(R.string.cancel); + holder.low.setText(""); + holder.high.setText(""); + holder.reason.setText(""); + holder.reasonLabel.setText(""); + holder.reasonColon.setText(""); + } + if (tempTarget.isInProgress()) + holder.dateLinearLayout.setBackgroundColor(ContextCompat.getColor(MainApp.instance(), R.color.colorInProgress)); + else + holder.dateLinearLayout.setBackgroundColor(ContextCompat.getColor(MainApp.instance(), R.color.cardColorBackground)); + holder.remove.setTag(tempTarget); + } + + @Override + public int getItemCount() { + return tempTargetList.size(); + } + + @Override + public void onAttachedToRecyclerView(RecyclerView recyclerView) { + super.onAttachedToRecyclerView(recyclerView); + } + + public class TempTargetsViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener { + CardView cv; + TextView date; + TextView duration; + TextView low; + TextView high; + TextView reason; + TextView reasonLabel; + TextView reasonColon; + TextView remove; + LinearLayout dateLinearLayout; + + TempTargetsViewHolder(View itemView) { + super(itemView); + cv = (CardView) itemView.findViewById(R.id.temptargetrange_cardview); + date = (TextView) itemView.findViewById(R.id.temptargetrange_date); + duration = (TextView) itemView.findViewById(R.id.temptargetrange_duration); + low = (TextView) itemView.findViewById(R.id.temptargetrange_low); + high = (TextView) itemView.findViewById(R.id.temptargetrange_high); + reason = (TextView) itemView.findViewById(R.id.temptargetrange_reason); + reasonLabel = (TextView) itemView.findViewById(R.id.temptargetrange_reason_label); + reasonColon = (TextView) itemView.findViewById(R.id.temptargetrange_reason_colon); + remove = (TextView) itemView.findViewById(R.id.temptargetrange_remove); + remove.setOnClickListener(this); + remove.setPaintFlags(remove.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG); + dateLinearLayout = (LinearLayout) itemView.findViewById(R.id.temptargetrange_datelinearlayout); + } + + @Override + public void onClick(View v) { + final TempTarget tempTarget = (TempTarget) v.getTag(); + final Context finalContext = context; + switch (v.getId()) { + case R.id.temptargetrange_remove: + AlertDialog.Builder builder = new AlertDialog.Builder(context); + builder.setTitle(MainApp.sResources.getString(R.string.confirmation)); + builder.setMessage(MainApp.sResources.getString(R.string.removerecord) + "\n" + DateUtil.dateAndTimeString(tempTarget.timeStart)); + builder.setPositiveButton(MainApp.sResources.getString(R.string.ok), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + final String _id = tempTarget._id; + if (_id != null && !_id.equals("")) { + MainApp.getConfigBuilder().removeCareportalEntryFromNS(_id); + } + try { + Dao daoTempTargets = MainApp.getDbHelper().getDaoTempTargets(); + daoTempTargets.delete(tempTarget); + MainApp.bus().post(new EventTempTargetRangeChange()); + } catch (SQLException e) { + e.printStackTrace(); + } + } + }); + builder.setNegativeButton(MainApp.sResources.getString(R.string.cancel), null); + builder.show(); + break; + } + } + } + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.temptargetrange_fragment, container, false); + + recyclerView = (RecyclerView) view.findViewById(R.id.temptargetrange_recyclerview); + recyclerView.setHasFixedSize(true); + llm = new LinearLayoutManager(view.getContext()); + recyclerView.setLayoutManager(llm); + + RecyclerViewAdapter adapter = new RecyclerViewAdapter(tempTargetRangePlugin.getList()); + recyclerView.setAdapter(adapter); + + refreshFromNS = (Button) view.findViewById(R.id.temptargetrange_refreshfromnightscout); + refreshFromNS.setOnClickListener(this); + + context = getContext(); + + updateGUI(); + return view; + } + + @Override + public void onClick(View view) { + switch (view.getId()) { + case R.id.temptargetrange_refreshfromnightscout: + SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(getContext()); + boolean nsUploadOnly = SP.getBoolean("ns_upload_only", false); + if (nsUploadOnly) { + ToastUtils.showToastInUiThread(getContext(), this.getContext().getString(R.string.ns_upload_only_enabled)); + } else { + AlertDialog.Builder builder = new AlertDialog.Builder(this.getContext()); + builder.setTitle(this.getContext().getString(R.string.confirmation)); + builder.setMessage(this.getContext().getString(R.string.refreshtemptargetsfromnightscout)); + builder.setPositiveButton(this.getContext().getString(R.string.ok), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + MainApp.getDbHelper().resetTempTargets(); + tempTargetRangePlugin.initializeData(); + updateGUI(); + Intent restartNSClient = new Intent(Intents.ACTION_RESTART); + MainApp.instance().getApplicationContext().sendBroadcast(restartNSClient); + } + }); + builder.setNegativeButton(this.getContext().getString(R.string.cancel), null); + builder.show(); + } + break; + } + } + + @Override + public void onPause() { + super.onPause(); + MainApp.bus().unregister(this); + } + + @Override + public void onResume() { + super.onResume(); + MainApp.bus().register(this); + } + + @Subscribe + public void onStatusEvent(final EventTempTargetRangeChange ev) { + updateGUI(); + } + + void updateGUI() { + Activity activity = getActivity(); + if (activity != null) + activity.runOnUiThread(new Runnable() { + @Override + public void run() { + recyclerView.swapAdapter(new RecyclerViewAdapter(tempTargetRangePlugin.getList()), false); + } + }); + } +} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/TempTargetRange/TempTargetRangePlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/TempTargetRange/TempTargetRangePlugin.java new file mode 100644 index 0000000000..08a09aa644 --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/plugins/TempTargetRange/TempTargetRangePlugin.java @@ -0,0 +1,114 @@ +package info.nightscout.androidaps.plugins.TempTargetRange; + +import android.support.annotation.Nullable; + +import com.squareup.otto.Subscribe; + +import java.util.Date; +import java.util.List; + +import info.nightscout.androidaps.MainApp; +import info.nightscout.androidaps.R; +import info.nightscout.androidaps.db.TempTarget; +import info.nightscout.androidaps.interfaces.PluginBase; +import info.nightscout.androidaps.plugins.TempTargetRange.events.EventTempTargetRangeChange; + +/** + * Created by mike on 13/01/17. + */ + +public class TempTargetRangePlugin implements PluginBase { + + static boolean fragmentEnabled = true; + static boolean fragmentVisible = true; + + private static List tempTargets; + + TempTargetRangePlugin() { + initializeData(); + MainApp.bus().register(this); + } + + @Override + public int getType() { + return PluginBase.GENERAL; + } + + @Override + public String getFragmentClass() { + return TempTargetRangeFragment.class.getName(); + } + + @Override + public String getName() { + return MainApp.sResources.getString(R.string.temptargetrange); + } + + @Override + public String getNameShort() { + String name = MainApp.sResources.getString(R.string.temptargetrange_shortname); + if (!name.trim().isEmpty()){ + //only if translation exists + return name; + } + // use long name as fallback + return getName(); + } + + @Override + public boolean isEnabled(int type) { + return type == GENERAL && fragmentEnabled; + } + + @Override + public boolean isVisibleInTabs(int type) { + return type == GENERAL && fragmentVisible; + } + + @Override + public boolean canBeHidden(int type) { + return true; + } + + @Override + public void setFragmentEnabled(int type, boolean fragmentEnabled) { + if (type == GENERAL) { + this.fragmentEnabled = fragmentEnabled; + } + } + + @Override + public void setFragmentVisible(int type, boolean fragmentVisible) { + if (type == GENERAL) this.fragmentVisible = fragmentVisible; + } + + public static boolean isEnabled() { + return fragmentEnabled; + } + + @Subscribe + public void onStatusEvent(final EventTempTargetRangeChange ev) { + initializeData(); + } + + public void initializeData() { + long fromMills = (long) (new Date().getTime() - 60 * 60 * 1000L * 24); + tempTargets = MainApp.getDbHelper().getTemptargetsDataFromTime(fromMills, false); + } + + public List getList() { + return tempTargets; + } + + @Nullable + public TempTarget getTempTargetInProgress(long time) { + for (int i = 0; i < tempTargets.size(); i++) { + // a zero-duration temp target will cancel all prior targets + if (tempTargets.get(i).duration == 0) return null; + + if (tempTargets.get(i).timeStart.getTime() > time) continue; + if (tempTargets.get(i).getPlannedTimeEnd().getTime() >= time) return tempTargets.get(i); + } + return null; + } +} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/TempTargetRange/events/EventTempTargetRangeChange.java b/app/src/main/java/info/nightscout/androidaps/plugins/TempTargetRange/events/EventTempTargetRangeChange.java new file mode 100644 index 0000000000..8d5f537fec --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/plugins/TempTargetRange/events/EventTempTargetRangeChange.java @@ -0,0 +1,8 @@ +package info.nightscout.androidaps.plugins.TempTargetRange.events; + +/** + * Created by mike on 13.01.2017. + */ + +public class EventTempTargetRangeChange { +} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsFragment.java index 818d33f245..38a4904b56 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsFragment.java @@ -1,12 +1,15 @@ package info.nightscout.androidaps.plugins.Treatments; import android.app.Activity; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; +import android.graphics.Paint; import android.os.Bundle; import android.preference.PreferenceManager; import android.support.v4.app.Fragment; +import android.support.v4.content.ContextCompat; import android.support.v7.app.AlertDialog; import android.support.v7.widget.CardView; import android.support.v7.widget.LinearLayoutManager; @@ -54,7 +57,9 @@ public class TreatmentsFragment extends Fragment implements View.OnClickListener TextView activityTotal; Button refreshFromNS; - public static class RecyclerViewAdapter extends RecyclerView.Adapter { + Context context; + + public class RecyclerViewAdapter extends RecyclerView.Adapter { List treatments; @@ -84,9 +89,10 @@ public class TreatmentsFragment extends Fragment implements View.OnClickListener holder.activity.setText(DecimalFormatter.to3Decimal(iob.activityContrib) + " U"); holder.mealOrCorrection.setText(treatments.get(position).mealBolus ? MainApp.sResources.getString(R.string.mealbolus) : MainApp.sResources.getString(R.string.correctionbous)); if (iob.iobContrib != 0) - holder.dateLinearLayout.setBackgroundColor(MainApp.instance().getResources().getColor(R.color.colorAffectingIOB)); + holder.dateLinearLayout.setBackgroundColor(ContextCompat.getColor(MainApp.instance(), R.color.colorAffectingIOB)); else - holder.dateLinearLayout.setBackgroundColor(MainApp.instance().getResources().getColor(R.color.cardColorBackground)); + holder.dateLinearLayout.setBackgroundColor(ContextCompat.getColor(MainApp.instance(), R.color.cardColorBackground)); + holder.remove.setTag(treatments.get(position)); } @Override @@ -99,7 +105,7 @@ public class TreatmentsFragment extends Fragment implements View.OnClickListener super.onAttachedToRecyclerView(recyclerView); } - public static class TreatmentsViewHolder extends RecyclerView.ViewHolder { + public class TreatmentsViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener { CardView cv; TextView date; TextView insulin; @@ -108,6 +114,7 @@ public class TreatmentsFragment extends Fragment implements View.OnClickListener TextView activity; TextView mealOrCorrection; LinearLayout dateLinearLayout; + TextView remove; TreatmentsViewHolder(View itemView) { super(itemView); @@ -119,6 +126,35 @@ public class TreatmentsFragment extends Fragment implements View.OnClickListener activity = (TextView) itemView.findViewById(R.id.treatments_activity); mealOrCorrection = (TextView) itemView.findViewById(R.id.treatments_mealorcorrection); dateLinearLayout = (LinearLayout) itemView.findViewById(R.id.treatments_datelinearlayout); + remove = (TextView) itemView.findViewById(R.id.treatments_remove); + remove.setOnClickListener(this); + remove.setPaintFlags(remove.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG); + } + + @Override + public void onClick(View v) { + final Treatment treatment = (Treatment) v.getTag(); + final Context finalContext = context; + switch (v.getId()) { + case R.id.treatments_remove: + AlertDialog.Builder builder = new AlertDialog.Builder(context); + builder.setTitle(MainApp.sResources.getString(R.string.confirmation)); + builder.setMessage(MainApp.sResources.getString(R.string.removerecord) + "\n" + DateUtil.dateAndTimeString(treatment.created_at)); + builder.setPositiveButton(MainApp.sResources.getString(R.string.ok), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + final String _id = treatment._id; + if (_id != null && !_id.equals("")) { + MainApp.getConfigBuilder().removeCareportalEntryFromNS(_id); + } + MainApp.getDbHelper().delete(treatment); + treatmentsPlugin.initializeData(); + updateGUI(); + } + }); + builder.setNegativeButton(MainApp.sResources.getString(R.string.cancel), null); + builder.show(); + break; + } } } } @@ -142,6 +178,8 @@ public class TreatmentsFragment extends Fragment implements View.OnClickListener refreshFromNS = (Button) view.findViewById(R.id.treatments_reshreshfromnightscout); refreshFromNS.setOnClickListener(this); + context = getContext(); + updateGUI(); return view; } @@ -152,12 +190,12 @@ public class TreatmentsFragment extends Fragment implements View.OnClickListener case R.id.treatments_reshreshfromnightscout: SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(getContext()); boolean nsUploadOnly = SP.getBoolean("ns_upload_only", false); - if(nsUploadOnly){ - ToastUtils.showToastInUiThread(getContext(),this.getContext().getString(R.string.ns_upload_only_enabled)); + if (nsUploadOnly) { + ToastUtils.showToastInUiThread(getContext(), this.getContext().getString(R.string.ns_upload_only_enabled)); } else { AlertDialog.Builder builder = new AlertDialog.Builder(this.getContext()); builder.setTitle(this.getContext().getString(R.string.confirmation)); - builder.setMessage(this.getContext().getString(R.string.refreshfromnightscout)); + builder.setMessage(this.getContext().getString(R.string.refreshtreatmentsfromnightscout)); builder.setPositiveButton(this.getContext().getString(R.string.ok), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { MainApp.getDbHelper().resetTreatments(); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsPlugin.java index d26b6d0b8c..966a5e7578 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsPlugin.java @@ -1,8 +1,12 @@ package info.nightscout.androidaps.plugins.Treatments; +import android.content.SharedPreferences; +import android.preference.PreferenceManager; + import com.j256.ormlite.dao.Dao; import com.j256.ormlite.stmt.PreparedQuery; import com.j256.ormlite.stmt.QueryBuilder; +import com.j256.ormlite.stmt.Where; import com.squareup.otto.Subscribe; import org.slf4j.Logger; @@ -13,15 +17,19 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; +import info.nightscout.androidaps.Constants; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; import info.nightscout.androidaps.data.Iob; +import info.nightscout.androidaps.data.MealData; import info.nightscout.androidaps.db.Treatment; import info.nightscout.androidaps.events.EventTreatmentChange; import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.interfaces.TreatmentsInterface; -import info.nightscout.androidaps.plugins.OpenAPSMA.IobTotal; +import info.nightscout.androidaps.data.IobTotal; +import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; import info.nightscout.client.data.NSProfile; +import info.nightscout.utils.SafeParse; /** * Created by mike on 05.08.2016. @@ -47,6 +55,17 @@ public class TreatmentsPlugin implements PluginBase, TreatmentsInterface { return MainApp.instance().getString(R.string.treatments); } + @Override + public String getNameShort() { + String name = MainApp.sResources.getString(R.string.treatments_shortname); + if (!name.trim().isEmpty()){ + //only if translation exists + return name; + } + // use long name as fallback + return getName(); + } + @Override public boolean isEnabled(int type) { return type == TREATMENT && fragmentEnabled; @@ -83,17 +102,11 @@ public class TreatmentsPlugin implements PluginBase, TreatmentsInterface { } public void initializeData() { - try { - Dao dao = MainApp.getDbHelper().getDaoTreatments(); - QueryBuilder queryBuilder = dao.queryBuilder(); - queryBuilder.orderBy("timeIndex", false); - queryBuilder.limit(30l); - PreparedQuery preparedQuery = queryBuilder.prepare(); - treatments = dao.query(preparedQuery); - } catch (SQLException e) { - log.debug(e.getMessage(), e); - treatments = new ArrayList(); - } + double dia = 3; + if (MainApp.getConfigBuilder().getActiveProfile() != null && MainApp.getConfigBuilder().getActiveProfile().getProfile() != null) + dia = MainApp.getConfigBuilder().getActiveProfile().getProfile().getDia(); + long fromMills = (long) (new Date().getTime() - 60 * 60 * 1000L * (24 + dia)); + treatments = MainApp.getDbHelper().getTreatmentDataFromTime(fromMills, false); } /* @@ -111,57 +124,45 @@ public class TreatmentsPlugin implements PluginBase, TreatmentsInterface { } @Override - public void updateTotalIOB() { - IobTotal total = new IobTotal(); + public IobTotal getCalculationToTime(long time) { + SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); + IobTotal total = new IobTotal(time); - if (MainApp.getConfigBuilder() == null || MainApp.getConfigBuilder().getActiveProfile() == null) // app not initialized yet - return; - NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile(); - if (profile == null) { - lastCalculation = total; - return; - } + if (MainApp.getConfigBuilder() == null || ConfigBuilderPlugin.getActiveProfile() == null) // app not initialized yet + return total; + NSProfile profile = ConfigBuilderPlugin.getActiveProfile().getProfile(); + if (profile == null) + return total; Double dia = profile.getDia(); - Date now = new Date(); + Date now = new Date(time); for (Integer pos = 0; pos < treatments.size(); pos++) { Treatment t = treatments.get(pos); + if (t.created_at.getTime() > time) continue; Iob tIOB = t.iobCalc(now, dia); total.iob += tIOB.iobContrib; total.activity += tIOB.activityContrib; - Iob bIOB = t.iobCalc(now, dia / 2); + Iob bIOB = t.iobCalc(now, dia / SafeParse.stringToInt(SP.getString("openapsama_bolussnooze_dia_divisor", "2"))); total.bolussnooze += bIOB.iobContrib; } + return total; + } + + @Override + public void updateTotalIOB() { + IobTotal total = getCalculationToTime(new Date().getTime()); lastCalculationTimestamp = new Date().getTime(); lastCalculation = total; } - public class MealData { - public double boluses = 0d; - public double carbs = 0d; - } - @Override public MealData getMealData() { MealData result = new MealData(); - NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile(); - if (profile == null) - return result; for (Treatment treatment : treatments) { - long now = new Date().getTime(); - long dia_ago = now - (new Double(profile.getDia() * 60 * 60 * 1000l)).longValue(); - long t = treatment.created_at.getTime(); - if (t > dia_ago && t <= now) { - if (treatment.carbs >= 1) { - result.carbs += treatment.carbs; - } - if (treatment.insulin >= 0.1 && treatment.mealBolus) { - result.boluses += treatment.insulin; - } - } + result.addTreatment(treatment); } return result; } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/VirtualPump/VirtualPumpPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/VirtualPump/VirtualPumpPlugin.java index 37e8c30b4c..e90916122f 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/VirtualPump/VirtualPumpPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/VirtualPump/VirtualPumpPlugin.java @@ -1,6 +1,8 @@ package info.nightscout.androidaps.plugins.VirtualPump; import android.content.Context; +import android.content.SharedPreferences; +import android.preference.PreferenceManager; import org.json.JSONException; import org.json.JSONObject; @@ -78,6 +80,17 @@ public class VirtualPumpPlugin implements PluginBase, PumpInterface { return MainApp.instance().getString(R.string.virtualpump); } + @Override + public String getNameShort() { + String name = MainApp.sResources.getString(R.string.virtualpump_shortname); + if (!name.trim().isEmpty()){ + //only if translation exists + return name; + } + // use long name as fallback + return getName(); + } + @Override public boolean isEnabled(int type) { return type == PUMP && fragmentEnabled; @@ -113,6 +126,16 @@ public class VirtualPumpPlugin implements PluginBase, PumpInterface { return true; } + @Override + public boolean isSuspended() { + return false; + } + + @Override + public boolean isBusy() { + return false; + } + @Override public boolean isTempBasalInProgress() { return getTempBasal() != null; @@ -134,6 +157,16 @@ public class VirtualPumpPlugin implements PluginBase, PumpInterface { return false; } + @Override + public Date lastStatusTime() { + return new Date(); + } + + @Override + public void updateStatus(String reason) { + // do nothing + } + @Override public double getBaseBasalRate() { NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile(); @@ -370,6 +403,10 @@ public class VirtualPumpPlugin implements PluginBase, PumpInterface { @Override public JSONObject getJSONStatus() { + SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); + if (!preferences.getBoolean("virtualpump_uploadstatus", false)) { + return null; + } JSONObject pump = new JSONObject(); JSONObject battery = new JSONObject(); JSONObject status = new JSONObject(); @@ -409,4 +446,9 @@ public class VirtualPumpPlugin implements PluginBase, PumpInterface { return pumpDescription; } + @Override + public String shortStatus(boolean veryShort) { + return "Virtual Pump"; + } + } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java new file mode 100644 index 0000000000..8b24be7979 --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java @@ -0,0 +1,433 @@ +package info.nightscout.androidaps.plugins.Wear; + +import android.content.DialogInterface; +import android.content.SharedPreferences; +import android.graphics.Color; +import android.os.Handler; +import android.os.HandlerThread; +import android.preference.PreferenceManager; +import android.support.annotation.BoolRes; +import android.support.annotation.NonNull; +import android.support.v7.app.AlertDialog; +import android.view.View; + +import com.j256.ormlite.dao.Dao; + +import org.json.JSONException; +import org.json.JSONObject; + +import java.sql.SQLException; +import java.text.DecimalFormat; +import java.util.Date; + +import info.nightscout.androidaps.BuildConfig; +import info.nightscout.androidaps.Config; +import info.nightscout.androidaps.Constants; +import info.nightscout.androidaps.MainApp; +import info.nightscout.androidaps.R; +import info.nightscout.androidaps.data.GlucoseStatus; +import info.nightscout.androidaps.data.PumpEnactResult; +import info.nightscout.androidaps.db.BgReading; +import info.nightscout.androidaps.db.TempTarget; +import info.nightscout.androidaps.interfaces.APSInterface; +import info.nightscout.androidaps.interfaces.PluginBase; +import info.nightscout.androidaps.plugins.Actions.dialogs.FillDialog; +import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; +import info.nightscout.androidaps.plugins.Loop.LoopPlugin; +import info.nightscout.androidaps.plugins.Overview.QuickWizard; +import info.nightscout.androidaps.plugins.TempTargetRange.TempTargetRangePlugin; +import info.nightscout.androidaps.plugins.TempTargetRange.events.EventTempTargetRangeChange; +import info.nightscout.client.data.NSProfile; +import info.nightscout.utils.BolusWizard; +import info.nightscout.utils.DateUtil; +import info.nightscout.utils.DecimalFormatter; +import info.nightscout.utils.SafeParse; +import info.nightscout.utils.ToastUtils; + +/** + * Created by adrian on 09/02/17. + */ + +public class ActionStringHandler { + + public static final int TIMEOUT = 65 * 1000; + + private static long lastSentTimestamp = 0; + private static String lastConfirmActionString = null; + private static BolusWizard lastBolusWizard = null; + + private static SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); + + + private static HandlerThread handlerThread = new HandlerThread(FillDialog.class.getSimpleName()); + static { + handlerThread.start(); + } + + public synchronized static void handleInitiate(String actionstring){ + + if(!BuildConfig.WEAR_CONTROL) return; + + + lastBolusWizard = null; + + String rTitle = "CONFIRM"; //TODO: i18n + String rMessage = ""; + String rAction = ""; + + + // do the parsing and check constraints + String[] act = actionstring.split("\\s+"); + + if ("fillpreset".equals(act[0])) { + ///////////////////////////////////// PRIME/FILL + double amount = 0d; + if ("1".equals(act[1])) { + amount = SafeParse.stringToDouble(DecimalFormatter.to2Decimal(SafeParse.stringToDouble(sp.getString("fill_button1", "0.3")))); + } else if ("2".equals(act[1])) { + amount = SafeParse.stringToDouble(DecimalFormatter.to2Decimal(SafeParse.stringToDouble(sp.getString("fill_button2", "0")))); + } else if ("3".equals(act[1])) { + amount = SafeParse.stringToDouble(DecimalFormatter.to2Decimal(SafeParse.stringToDouble(sp.getString("fill_button3", "0")))); + } else { + return; + } + Double insulinAfterConstraints = MainApp.getConfigBuilder().applyBolusConstraints(amount); + rMessage += MainApp.instance().getString(R.string.primefill) + ": " + insulinAfterConstraints + "U"; + if (insulinAfterConstraints - amount != 0) + rMessage += "\n" + MainApp.instance().getString(R.string.constraintapllied); + + rAction += "fill " + insulinAfterConstraints; + + } else if ("fill".equals(act[0])) { + ////////////////////////////////////////////// PRIME/FILL + double amount = SafeParse.stringToDouble(act[1]); + + Double insulinAfterConstraints = MainApp.getConfigBuilder().applyBolusConstraints(amount); + rMessage += MainApp.instance().getString(R.string.primefill) + ": " + insulinAfterConstraints + "U"; + if (insulinAfterConstraints - amount != 0) + rMessage += "\n" + MainApp.instance().getString(R.string.constraintapllied); + + rAction += "fill " + insulinAfterConstraints; + + } else if ("bolus".equals(act[0])) { + ////////////////////////////////////////////// BOLUS + double insulin = SafeParse.stringToDouble(act[1]); + int carbs = SafeParse.stringToInt(act[2]); + Double insulinAfterConstraints = MainApp.getConfigBuilder().applyBolusConstraints(insulin); + Integer carbsAfterConstraints = MainApp.getConfigBuilder().applyCarbsConstraints(carbs); + rMessage += MainApp.instance().getString(R.string.bolus) + ": " + insulinAfterConstraints + "U\n"; + rMessage += MainApp.instance().getString(R.string.carbs) + ": " + carbsAfterConstraints + "g"; + + if ((insulinAfterConstraints - insulin != 0) || (carbsAfterConstraints - carbs != 0)) { + rMessage += "\n" + MainApp.instance().getString(R.string.constraintapllied); + } + rAction += "bolus " + insulinAfterConstraints + " " + carbsAfterConstraints; + + } else if ("temptarget".equals(act[0])) { + ///////////////////////////////////////////////////////// TEMPTARGET + boolean isMGDL = Boolean.parseBoolean(act[1]); + + NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile(); + TempTargetRangePlugin tempTargetRangePlugin = (TempTargetRangePlugin) MainApp.getSpecificPlugin(TempTargetRangePlugin.class); + if (!(Config.APS && tempTargetRangePlugin != null && tempTargetRangePlugin.isEnabled(PluginBase.GENERAL))) { + sendError("TempTargets not possible! Please check your configuration."); + return; + } + if (profile == null) { + sendError("No profile found!"); + return; + } + if(profile.getUnits().equals(Constants.MGDL) != isMGDL){ + sendError("Different units used on watch and phone!"); + return; + } + + int duration = SafeParse.stringToInt(act[2]); + if (duration == 0){ + rMessage += "Zero-Temp-Target - cancelling running Temp-Targets?"; + rAction = "temptarget true 0 0 0"; + } else { + double low = SafeParse.stringToDouble(act[3]); + double high = SafeParse.stringToDouble(act[4]); + if(!isMGDL){ + low *= Constants.MMOLL_TO_MGDL; + high *= Constants.MMOLL_TO_MGDL; + } + if (low < Constants.VERY_HARD_LIMIT_TEMP_MIN_BG[0] || low > Constants.VERY_HARD_LIMIT_TEMP_MIN_BG[1]) { + sendError("Min-BG out of range!"); + return; + } + if (high < Constants.VERY_HARD_LIMIT_TEMP_MAX_BG[0] || high > Constants.VERY_HARD_LIMIT_TEMP_MAX_BG[1]) { + sendError("Max-BG out of range!"); + return; + } + rMessage += "Temptarget:\nMin: " + act[3] + "\nMax: " + act[4] + "\nDuration: " + act[2]; + rAction = actionstring; + + } + + } else if ("status".equals(act[0])) { + ////////////////////////////////////////////// STATUS + rTitle = "STATUS"; + rAction = "statusmessage"; + if("pump".equals(act[1])){ + rTitle += " PUMP"; + rMessage = getPumpStatus(); + } else if("loop".equals(act[1])){ + rTitle += " LOOP"; + rMessage = getLoopStatus(); + + } else if("targets".equals(act[1])){ + rTitle += " TARGETS"; + rMessage = getTargetsStatus(); + } + + } else if ("wizard".equals(act[0])) { + ////////////////////////////////////////////// WIZARD + Integer carbsBeforeConstraints = SafeParse.stringToInt(act[1]); + Integer carbsAfterConstraints = MainApp.getConfigBuilder().applyCarbsConstraints(carbsBeforeConstraints); + + if(carbsAfterConstraints - carbsBeforeConstraints !=0){ + sendError("Carb constraint violation!"); return; + } + + boolean useBG = Boolean.parseBoolean(act[2]); + boolean useBolusIOB = Boolean.parseBoolean(act[3]); + boolean useBasalIOB = Boolean.parseBoolean(act[4]); + + NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile(); + if (profile == null) { + sendError("No profile found!"); return; + } + + BgReading bgReading = GlucoseStatus.actualBg(); + if(bgReading==null && useBG){ + sendError("No recent BG to base calculation on!"); return; + } + DecimalFormat format = new DecimalFormat("0.00"); + BolusWizard bolusWizard = new BolusWizard(); + bolusWizard.doCalc(profile.getDefaultProfile(), carbsAfterConstraints, useBG?bgReading.valueToUnits(profile.getUnits()):0d, 0d, useBolusIOB, useBasalIOB); + + Double insulinAfterConstraints = MainApp.getConfigBuilder().applyBolusConstraints(bolusWizard.calculatedTotalInsulin); + if(insulinAfterConstraints - bolusWizard.calculatedTotalInsulin !=0){ + sendError("Insulin contraint violation!" + + "\nCannot deliver " + format.format(bolusWizard.calculatedTotalInsulin) +"!"); + return; + } + + + double insulin = bolusWizard.calculatedTotalInsulin; + if(bolusWizard.calculatedTotalInsulin < 0) { + bolusWizard.calculatedTotalInsulin = 0d; + } + + if(bolusWizard.calculatedTotalInsulin <=0 && bolusWizard.carbs <=0){ + rAction = "info"; + rTitle = "INFO"; + } else { + rAction = actionstring; + } + rMessage += "Carbs: " + bolusWizard.carbs + "g"; + rMessage += "\nBolus: " + format.format(bolusWizard.calculatedTotalInsulin) + "U"; + rMessage += "\n_____________"; + rMessage += "\nCalc (IC:" + DecimalFormatter.to1Decimal(bolusWizard.ic) + ", " + "ISF:" + DecimalFormatter.to1Decimal(bolusWizard.sens) + "): "; + rMessage += "\nFrom Carbs: " + format.format(bolusWizard.insulinFromCarbs) + "U"; + if(useBG)rMessage += "\nFrom BG: " + format.format(bolusWizard.insulinFromBG) + "U"; + if(useBolusIOB)rMessage += "\nBolus IOB: " + format.format(bolusWizard.insulingFromBolusIOB) + "U"; + if(useBasalIOB)rMessage += "\nBasal IOB: " + format.format(bolusWizard.insulingFromBasalsIOB) + "U"; + + lastBolusWizard = bolusWizard; + + } else return; + + // send result + WearFragment.getPlugin(MainApp.instance()).requestActionConfirmation(rTitle, rMessage, rAction); + lastSentTimestamp = System.currentTimeMillis(); + lastConfirmActionString = rAction; + } + + @NonNull + private static String getPumpStatus() { + return MainApp.getConfigBuilder().shortStatus(false); + } + + @NonNull + private static String getLoopStatus() { + String ret = ""; + // decide if enabled/disabled closed/open; what Plugin as APS? + final LoopPlugin activeloop = MainApp.getConfigBuilder().getActiveLoop(); + if(activeloop != null && activeloop.isEnabled(activeloop.getType())) { + if (MainApp.getConfigBuilder().isClosedModeEnabled()) { + ret += "CLOSED LOOP\n"; + } else { + ret += "OPEN LOOP\n"; + } + final APSInterface aps = MainApp.getConfigBuilder().getActiveAPS(); + ret += "APS: " + ((aps==null)?"NO APS SELECTED!":((PluginBase) aps).getName()); + if(activeloop.lastRun != null){ + if(activeloop.lastRun.lastAPSRun != null) + ret += "\nLast Run: " + DateUtil.timeString(activeloop.lastRun.lastAPSRun); + + if(activeloop.lastRun.lastEnact != null) + ret += "\nLast Enact: " + DateUtil.timeString(activeloop.lastRun.lastEnact); + + } + + + + } else { + ret += "LOOP DISABLED\n"; + } + return ret; + + } + + @NonNull + private static String getTargetsStatus() { + String ret = ""; + if (!Config.APS){ + return "Targets only apply in APS mode!"; + } + NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile(); + if (profile == null){ + return "No profile set :("; + } + + //Check for Temp-Target: + TempTargetRangePlugin tempTargetRangePlugin = (TempTargetRangePlugin) MainApp.getSpecificPlugin(TempTargetRangePlugin.class); + if (Config.APS && tempTargetRangePlugin != null && tempTargetRangePlugin.isEnabled(PluginBase.GENERAL)) { + TempTarget tempTarget = tempTargetRangePlugin.getTempTargetInProgress(new Date().getTime()); + if (tempTarget != null) { + ret += "Temp Target: " + NSProfile.toUnitsString(tempTarget.low, NSProfile.fromMgdlToUnits(tempTarget.low, profile.getUnits()), profile.getUnits()) + " - " + NSProfile.toUnitsString(tempTarget.high, NSProfile.fromMgdlToUnits(tempTarget.high, profile.getUnits()), profile.getUnits()); + ret += "\nuntil: " + DateUtil.timeString(tempTarget.getPlannedTimeEnd()); + ret += "\n\n"; + } + } + + //Default Range/Target + String maxBgDefault = Constants.MAX_BG_DEFAULT_MGDL; + String minBgDefault = Constants.MIN_BG_DEFAULT_MGDL; + String targetBgDefault = Constants.TARGET_BG_DEFAULT_MGDL; + if (!profile.getUnits().equals(Constants.MGDL)) { + maxBgDefault = Constants.MAX_BG_DEFAULT_MMOL; + minBgDefault = Constants.MIN_BG_DEFAULT_MMOL; + targetBgDefault = Constants.TARGET_BG_DEFAULT_MMOL; + } + ret += "DEFAULT RANGE: "; + ret += sp.getString("openapsma_min_bg", minBgDefault) + " - " + sp.getString("openapsma_max_bg", maxBgDefault); + ret += " target: " + sp.getString("openapsma_target_bg", targetBgDefault); + return ret; + } + + + public synchronized static void handleConfirmation(String actionString){ + + if(!BuildConfig.WEAR_CONTROL) return; + + + //Guard from old or duplicate confirmations + if (lastConfirmActionString == null) return; + if (!lastConfirmActionString.equals(actionString)) return; + if (System.currentTimeMillis() - lastSentTimestamp > TIMEOUT) return; + lastConfirmActionString = null; + + // do the parsing, check constraints and enact! + String[] act = actionString.split("\\s+"); + + if ("fill".equals(act[0])){ + Double amount = SafeParse.stringToDouble(act[1]); + Double insulinAfterConstraints = MainApp.getConfigBuilder().applyBolusConstraints(amount); + if(amount - insulinAfterConstraints != 0){ + ToastUtils.showToastInUiThread(MainApp.instance(), "aborting: previously applied constraint changed"); + sendError("aborting: previously applied constraint changed"); + return; + } + doFillBolus(amount); + } else if ("temptarget".equals(act[0])) { + int duration = SafeParse.stringToInt(act[2]); + double low = SafeParse.stringToDouble(act[3]); + double high = SafeParse.stringToDouble(act[4]); + boolean isMGDL = Boolean.parseBoolean(act[1]); + if(!isMGDL){ + low *= Constants.MMOLL_TO_MGDL; + high *= Constants.MMOLL_TO_MGDL; + } + generateTempTarget(duration, low, high); + } else if ("wizard".equals(act[0])){ + //use last calculation as confirmed string matches + + doBolus(lastBolusWizard.calculatedTotalInsulin, lastBolusWizard.carbs); + lastBolusWizard = null; + } else if ("bolus".equals(act[0])) { + double insulin = SafeParse.stringToDouble(act[1]); + int carbs = SafeParse.stringToInt(act[2]); + doBolus(insulin, carbs); + } + lastBolusWizard = null; + } + + private static void generateTempTarget(int duration, double low, double high) { + TempTarget tempTarget = new TempTarget(); + tempTarget.timeStart = new Date(); + tempTarget.duration = duration; + tempTarget.reason = "WearPlugin"; + if(tempTarget.duration != 0) { + tempTarget.low = low; + tempTarget.high = high; + } else { + tempTarget.low = 0; + tempTarget.high = 0; + } + tempTarget.setTimeIndex(tempTarget.getTimeIndex()); + Dao dao = null; + try { + dao = MainApp.getDbHelper().getDaoTempTargets(); + dao.createIfNotExists(tempTarget); + MainApp.bus().post(new EventTempTargetRangeChange()); + + //TODO: Nightscout-Treatment for Temp-Target! + //ConfigBuilderPlugin.uploadCareportalEntryToNS(data); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + private static void doFillBolus(final Double amount) { + //if(1==1)return; + Handler handler = new Handler(handlerThread.getLooper()); + handler.post(new Runnable() { + @Override + public void run() { + PumpEnactResult result = MainApp.getConfigBuilder().deliverTreatment(amount, 0, null, false); + if (!result.success) { + sendError(MainApp.sResources.getString(R.string.treatmentdeliveryerror) + + "\n" + + result.comment); + } + } + }); + } + + private static void doBolus(final Double amount, final Integer carbs) { + //if(1==1)return; + Handler handler = new Handler(handlerThread.getLooper()); + handler.post(new Runnable() { + @Override + public void run() { + PumpEnactResult result = MainApp.getConfigBuilder().deliverTreatment(amount, carbs, null, true); + if (!result.success) { + sendError(MainApp.sResources.getString(R.string.treatmentdeliveryerror) + + "\n" + + result.comment); + } + } + }); + } + + private synchronized static void sendError(String errormessage){ + WearFragment.getPlugin(MainApp.instance()).requestActionConfirmation("ERROR", errormessage, "error"); + lastSentTimestamp = System.currentTimeMillis(); + lastConfirmActionString = null; + lastBolusWizard = null; + } +} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/WearPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/WearPlugin.java index 33ad54ee81..96f2b75062 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/WearPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/WearPlugin.java @@ -7,6 +7,7 @@ import com.squareup.otto.Subscribe; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; +import info.nightscout.androidaps.events.EventBolusRequested; import info.nightscout.androidaps.events.EventNewBG; import info.nightscout.androidaps.events.EventNewBasalProfile; import info.nightscout.androidaps.events.EventPreferenceChange; @@ -15,7 +16,9 @@ import info.nightscout.androidaps.events.EventTempBasalChange; import info.nightscout.androidaps.events.EventTreatmentChange; import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.plugins.Loop.events.EventNewOpenLoopNotification; +import info.nightscout.androidaps.plugins.Overview.events.EventOverviewBolusProgress; import info.nightscout.androidaps.plugins.Wear.wearintegration.WatchUpdaterService; +import info.nightscout.utils.ToastUtils; /** * Created by adrian on 17/11/16. @@ -48,6 +51,17 @@ public class WearPlugin implements PluginBase { return ctx.getString(R.string.wear); } + @Override + public String getNameShort() { + String name = MainApp.sResources.getString(R.string.wear_shortname); + if (!name.trim().isEmpty()){ + //only if translation exists + return name; + } + // use long name as fallback + return getName(); + } + @Override public boolean isEnabled(int type) { return type == GENERAL && fragmentEnabled; @@ -130,6 +144,34 @@ public class WearPlugin implements PluginBase { sendDataToWatch(false, true, false); } + + @Subscribe + public void onStatusEvent(final EventOverviewBolusProgress ev) { + Intent intent = new Intent(ctx, WatchUpdaterService.class).setAction(WatchUpdaterService.ACTION_SEND_BOLUSPROGRESS); + intent.putExtra("progresspercent", ev.percent); + intent.putExtra("progressstatus", ev.status); + ctx.startService(intent); + } + + @Subscribe + public void onStatusEvent(final EventBolusRequested ev) { + String status = String.format(MainApp.sResources.getString(R.string.bolusrequested), ev.getAmount()); + Intent intent = new Intent(ctx, WatchUpdaterService.class).setAction(WatchUpdaterService.ACTION_SEND_BOLUSPROGRESS); + intent.putExtra("progresspercent", 0); + intent.putExtra("progressstatus", status); + ctx.startService(intent); + + } + + public void requestActionConfirmation(String title, String message, String actionstring){ + + Intent intent = new Intent(ctx, WatchUpdaterService.class).setAction(WatchUpdaterService.ACTION_SEND_ACTIONCONFIRMATIONREQUEST); + intent.putExtra("title", title); + intent.putExtra("message", message); + intent.putExtra("actionstring", actionstring); + ctx.startService(intent); + } + public static boolean isEnabled() { return fragmentEnabled; } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/wearintegration/WatchUpdaterService.java b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/wearintegration/WatchUpdaterService.java index fe6f4455c0..fc08941cd3 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/wearintegration/WatchUpdaterService.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/wearintegration/WatchUpdaterService.java @@ -25,12 +25,13 @@ import java.util.List; import info.nightscout.androidaps.Constants; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; +import info.nightscout.androidaps.data.GlucoseStatus; import info.nightscout.androidaps.db.BgReading; -import info.nightscout.androidaps.db.DatabaseHelper; import info.nightscout.androidaps.db.TempBasal; import info.nightscout.androidaps.interfaces.PumpInterface; -import info.nightscout.androidaps.plugins.OpenAPSMA.IobTotal; +import info.nightscout.androidaps.data.IobTotal; import info.nightscout.androidaps.plugins.Overview.OverviewPlugin; +import info.nightscout.androidaps.plugins.Wear.ActionStringHandler; import info.nightscout.androidaps.plugins.Wear.WearPlugin; import info.nightscout.client.data.NSProfile; import info.nightscout.utils.DecimalFormatter; @@ -44,14 +45,23 @@ public class WatchUpdaterService extends WearableListenerService implements public static final String ACTION_OPEN_SETTINGS = WatchUpdaterService.class.getName().concat(".OpenSettings"); public static final String ACTION_SEND_STATUS = WatchUpdaterService.class.getName().concat(".SendStatus"); public static final String ACTION_SEND_BASALS = WatchUpdaterService.class.getName().concat(".SendBasals"); + public static final String ACTION_SEND_BOLUSPROGRESS = WatchUpdaterService.class.getName().concat(".BolusProgress"); + public static final String ACTION_SEND_ACTIONCONFIRMATIONREQUEST = WatchUpdaterService.class.getName().concat(".ActionConfirmationRequest"); private GoogleApiClient googleApiClient; public static final String WEARABLE_DATA_PATH = "/nightscout_watch_data"; public static final String WEARABLE_RESEND_PATH = "/nightscout_watch_data_resend"; + private static final String WEARABLE_CANCELBOLUS_PATH = "/nightscout_watch_cancel_bolus"; + public static final String WEARABLE_CONFIRM_ACTIONSTRING_PATH = "/nightscout_watch_confirmactionstring"; + public static final String WEARABLE_INITIATE_ACTIONSTRING_PATH = "/nightscout_watch_initiateactionstring"; + private static final String OPEN_SETTINGS_PATH = "/openwearsettings"; private static final String NEW_STATUS_PATH = "/sendstatustowear"; public static final String BASAL_DATA_PATH = "/nightscout_watch_basal"; + public static final String BOLUS_PROGRESS_PATH = "/nightscout_watch_bolusprogress"; + public static final String ACTION_CONFIRMATION_REQUEST_PATH = "/nightscout_watch_actionconfirmationrequest"; + boolean wear_integration = false; @@ -115,7 +125,15 @@ public class WatchUpdaterService extends WearableListenerService implements sendStatus(); } else if (ACTION_SEND_BASALS.equals(action)) { sendBasals(); - } else { + } else if (ACTION_SEND_BOLUSPROGRESS.equals(action)){ + sendBolusProgress(intent.getIntExtra("progresspercent", 0), intent.hasExtra("progressstatus")?intent.getStringExtra("progressstatus"):""); + } else if (ACTION_SEND_ACTIONCONFIRMATIONREQUEST.equals(action)){ + String title = intent.getStringExtra("title"); + String message = intent.getStringExtra("message"); + String actionstring = intent.getStringExtra("actionstring"); + sendActionConfirmationRequest(title, message, actionstring); + } + else { sendData(); } } else { @@ -135,16 +153,38 @@ public class WatchUpdaterService extends WearableListenerService implements @Override public void onMessageReceived(MessageEvent event) { if (wear_integration) { - if (event != null && event.getPath().equals(WEARABLE_RESEND_PATH)) + if (event != null && event.getPath().equals(WEARABLE_RESEND_PATH)) { resendData(); + } + + if (event != null && event.getPath().equals(WEARABLE_CANCELBOLUS_PATH)) { + cancelBolus(); + } + + if (event != null && event.getPath().equals(WEARABLE_INITIATE_ACTIONSTRING_PATH)) { + String actionstring = new String(event.getData()); + ToastUtils.showToastInUiThread(this, "Wear: " + actionstring); + ActionStringHandler.handleInitiate(actionstring); + } + + if (event != null && event.getPath().equals(WEARABLE_CONFIRM_ACTIONSTRING_PATH)) { + String actionstring = new String(event.getData()); + ToastUtils.showToastInUiThread(this, "Wear Confirm: " + actionstring); + ActionStringHandler.handleConfirmation(actionstring); + } } } + private void cancelBolus() { + PumpInterface pump = MainApp.getConfigBuilder(); + pump.stopBolusDelivering(); + } + private void sendData() { - BgReading lastBG = MainApp.getDbHelper().lastBg(); + BgReading lastBG = GlucoseStatus.lastBg(); if (lastBG != null) { - DatabaseHelper.GlucoseStatus glucoseStatus = MainApp.getDbHelper().getGlucoseStatusData(); + GlucoseStatus glucoseStatus = GlucoseStatus.getGlucoseStatusData(); if(googleApiClient != null && !googleApiClient.isConnected() && !googleApiClient.isConnecting()) { googleApiConnect(); } if (wear_integration) { @@ -160,7 +200,7 @@ public class WatchUpdaterService extends WearableListenerService implements } } - private DataMap dataMapSingleBG(BgReading lastBG, DatabaseHelper.GlucoseStatus glucoseStatus) { + private DataMap dataMapSingleBG(BgReading lastBG, GlucoseStatus glucoseStatus) { NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile(); if(profile == null) return null; @@ -250,12 +290,12 @@ public class WatchUpdaterService extends WearableListenerService implements private void resendData() { if(googleApiClient != null && !googleApiClient.isConnected() && !googleApiClient.isConnecting()) { googleApiConnect(); } long startTime = System.currentTimeMillis() - (long)(60000 * 60 * 5.5); - BgReading last_bg = MainApp.getDbHelper().lastBg(); + BgReading last_bg = GlucoseStatus.lastBg(); if (last_bg == null) return; - List graph_bgs = MainApp.getDbHelper().getDataFromTime(startTime); - DatabaseHelper.GlucoseStatus glucoseStatus = MainApp.getDbHelper().getGlucoseStatusData(); + List graph_bgs = MainApp.getDbHelper().getBgreadingsDataFromTime(startTime, true); + GlucoseStatus glucoseStatus = GlucoseStatus.getGlucoseStatusData(); if (!graph_bgs.isEmpty()) { DataMap entries = dataMapSingleBG(last_bg, glucoseStatus); @@ -423,6 +463,40 @@ public class WatchUpdaterService extends WearableListenerService implements } } + private void sendBolusProgress(int progresspercent, String status) { + if (googleApiClient.isConnected()) { + PutDataMapRequest dataMapRequest = PutDataMapRequest.create(BOLUS_PROGRESS_PATH); + //unique content + dataMapRequest.getDataMap().putDouble("timestamp", System.currentTimeMillis()); + dataMapRequest.getDataMap().putString("bolusProgress", "bolusProgress"); + dataMapRequest.getDataMap().putString("progressstatus", status); + dataMapRequest.getDataMap().putInt("progresspercent", progresspercent); + PutDataRequest putDataRequest = dataMapRequest.asPutDataRequest(); + Wearable.DataApi.putDataItem(googleApiClient, putDataRequest); + } else { + Log.e("BolusProgress", "No connection to wearable available!"); + } + } + + private void sendActionConfirmationRequest(String title, String message, String actionstring) { + if (googleApiClient.isConnected()) { + PutDataMapRequest dataMapRequest = PutDataMapRequest.create(ACTION_CONFIRMATION_REQUEST_PATH); + //unique content + dataMapRequest.getDataMap().putDouble("timestamp", System.currentTimeMillis()); + dataMapRequest.getDataMap().putString("actionConfirmationRequest", "actionConfirmationRequest"); + dataMapRequest.getDataMap().putString("title", title); + dataMapRequest.getDataMap().putString("message", message); + dataMapRequest.getDataMap().putString("actionstring", actionstring); + + ToastUtils.showToastInUiThread(this, "Requesting confirmation from wear: " + actionstring); + + PutDataRequest putDataRequest = dataMapRequest.asPutDataRequest(); + Wearable.DataApi.putDataItem(googleApiClient, putDataRequest); + } else { + Log.e("confirmationRequest", "No connection to wearable available!"); + } + } + private void sendStatus() { if (googleApiClient.isConnected()) { @@ -444,10 +518,8 @@ public class WatchUpdaterService extends WearableListenerService implements //IOB MainApp.getConfigBuilder().getActiveTreatments().updateTotalIOB(); IobTotal bolusIob = MainApp.getConfigBuilder().getActiveTreatments().getLastCalculation().round(); - if (bolusIob == null) bolusIob = new IobTotal(); MainApp.getConfigBuilder().getActiveTempBasals().updateTotalIOB(); IobTotal basalIob = MainApp.getConfigBuilder().getActiveTempBasals().getLastCalculation().round(); - if (basalIob == null) basalIob = new IobTotal(); status += (shortString?"":(getString(R.string.treatments_iob_label_string) + " ")) + DecimalFormatter.to2Decimal(bolusIob.iob + basalIob.basaliob) + "(" + DecimalFormatter.to2Decimal(bolusIob.iob) + "|" + DecimalFormatter.to2Decimal(basalIob.basaliob) + ")"; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/persistentnotification/PersistentNotificationPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/persistentnotification/PersistentNotificationPlugin.java index 653bc6e7b6..532959d926 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/persistentnotification/PersistentNotificationPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/persistentnotification/PersistentNotificationPlugin.java @@ -15,8 +15,8 @@ import info.nightscout.androidaps.Constants; import info.nightscout.androidaps.MainActivity; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; +import info.nightscout.androidaps.data.GlucoseStatus; import info.nightscout.androidaps.db.BgReading; -import info.nightscout.androidaps.db.DatabaseHelper; import info.nightscout.androidaps.db.TempBasal; import info.nightscout.androidaps.events.EventInitializationChanged; import info.nightscout.androidaps.events.EventNewBG; @@ -27,8 +27,7 @@ import info.nightscout.androidaps.events.EventTempBasalChange; import info.nightscout.androidaps.events.EventTreatmentChange; import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.interfaces.PumpInterface; -import info.nightscout.androidaps.plugins.OpenAPSMA.IobTotal; -import info.nightscout.androidaps.plugins.Overview.Notification; +import info.nightscout.androidaps.data.IobTotal; import info.nightscout.client.data.NSProfile; import info.nightscout.utils.DecimalFormatter; @@ -62,6 +61,12 @@ public class PersistentNotificationPlugin implements PluginBase{ return ctx.getString(R.string.ongoingnotificaction); } + @Override + public String getNameShort() { + // use long name as fallback (not visible in tabs) + return getName(); + } + @Override public boolean isEnabled(int type) { return fragmentEnabled; @@ -99,22 +104,23 @@ public class PersistentNotificationPlugin implements PluginBase{ String line1 = ctx.getString(R.string.noprofile); + if (MainApp.getConfigBuilder().getActiveProfile() == null) return; NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile(); - BgReading lastBG = MainApp.getDbHelper().lastBg(); - DatabaseHelper.GlucoseStatus glucoseStatus = MainApp.getDbHelper().getGlucoseStatusData(); + BgReading lastBG = GlucoseStatus.lastBg(); + GlucoseStatus glucoseStatus = GlucoseStatus.getGlucoseStatusData(); if(profile != null && lastBG != null) { line1 = lastBG.valueToUnitsToString(profile.getUnits()); - } - if (glucoseStatus != null) { - line1 += " Δ" + deltastring(glucoseStatus.delta, glucoseStatus.delta * Constants.MGDL_TO_MMOLL, profile.getUnits()) - + " avgΔ" + deltastring(glucoseStatus.avgdelta, glucoseStatus.avgdelta * Constants.MGDL_TO_MMOLL, profile.getUnits()); - } else { - line1 += " " + - ctx.getString(R.string.old_data) + - " "; + if (glucoseStatus != null) { + line1 += " Δ" + deltastring(glucoseStatus.delta, glucoseStatus.delta * Constants.MGDL_TO_MMOLL, profile.getUnits()) + + " avgΔ" + deltastring(glucoseStatus.avgdelta, glucoseStatus.avgdelta * Constants.MGDL_TO_MMOLL, profile.getUnits()); + } else { + line1 += " " + + ctx.getString(R.string.old_data) + + " "; + } } PumpInterface pump = MainApp.getConfigBuilder(); @@ -127,10 +133,8 @@ public class PersistentNotificationPlugin implements PluginBase{ //IOB MainApp.getConfigBuilder().getActiveTreatments().updateTotalIOB(); IobTotal bolusIob = MainApp.getConfigBuilder().getActiveTreatments().getLastCalculation().round(); - if (bolusIob == null) bolusIob = new IobTotal(); MainApp.getConfigBuilder().getActiveTempBasals().updateTotalIOB(); IobTotal basalIob = MainApp.getConfigBuilder().getActiveTempBasals().getLastCalculation().round(); - if (basalIob == null) basalIob = new IobTotal(); String line2 = ctx.getString(R.string.treatments_iob_label_string) + " " + DecimalFormatter.to2Decimal(bolusIob.iob + basalIob.basaliob) + "U (" + ctx.getString(R.string.bolus) + ": " + DecimalFormatter.to2Decimal(bolusIob.iob) + "U " + ctx.getString(R.string.basal) + ": " + DecimalFormatter.to2Decimal(basalIob.basaliob) + "U)"; diff --git a/app/src/main/java/info/nightscout/androidaps/receivers/KeepAliveReceiver.java b/app/src/main/java/info/nightscout/androidaps/receivers/KeepAliveReceiver.java index 0431c0e5d6..a7f3f02f36 100644 --- a/app/src/main/java/info/nightscout/androidaps/receivers/KeepAliveReceiver.java +++ b/app/src/main/java/info/nightscout/androidaps/receivers/KeepAliveReceiver.java @@ -7,12 +7,11 @@ package info.nightscout.androidaps.receivers; import android.app.AlarmManager; import android.app.PendingIntent; import android.content.BroadcastReceiver; -import android.content.ComponentName; import android.content.Context; import android.content.Intent; -import android.content.ServiceConnection; -import android.os.IBinder; +import android.content.SharedPreferences; import android.os.PowerManager; +import android.preference.PreferenceManager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -21,14 +20,12 @@ import java.util.Date; import info.nightscout.androidaps.Config; import info.nightscout.androidaps.Constants; -import info.nightscout.androidaps.MainActivity; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.interfaces.PluginBase; -import info.nightscout.androidaps.plugins.DanaR.DanaRFragment; +import info.nightscout.androidaps.interfaces.PumpInterface; import info.nightscout.androidaps.plugins.DanaR.DanaRPlugin; -import info.nightscout.androidaps.plugins.DanaR.Services.ExecutionService; import info.nightscout.androidaps.plugins.DanaRKorean.DanaRKoreanPlugin; -import info.nightscout.utils.ToastUtils; +import info.nightscout.client.data.NSProfile; public class KeepAliveReceiver extends BroadcastReceiver { private static Logger log = LoggerFactory.getLogger(KeepAliveReceiver.class); @@ -39,32 +36,48 @@ public class KeepAliveReceiver extends BroadcastReceiver { PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, ""); wl.acquire(); - log.debug("KeepAlive received"); - final DanaRPlugin danaRPlugin = (DanaRPlugin) MainApp.getSpecificPlugin(DanaRPlugin.class); - if (danaRPlugin != null && Config.DANAR && danaRPlugin.isEnabled(PluginBase.PUMP)) { - if (danaRPlugin.getDanaRPump().lastConnection.getTime() + 30 * 60 * 1000L < new Date().getTime() && !danaRPlugin.isConnected() && !danaRPlugin.isConnecting()) { + + final PumpInterface pump = MainApp.getConfigBuilder(); + final NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile(); + if (pump != null && profile != null) { + boolean isBasalOutdated = false; + boolean isStatusOutdated = false; + + Date lastConnection = pump.lastStatusTime(); + if (lastConnection.getTime() + 30 * 60 * 1000L < new Date().getTime()) + isStatusOutdated = true; + if (Math.abs(profile.getBasal(NSProfile.secondsFromMidnight()) - pump.getBaseBasalRate()) > pump.getPumpDescription().basalStep) + isBasalOutdated = true; + + SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); + if (SP.getBoolean("syncprofiletopump", false) && !pump.isThisProfileSet(profile)) { Thread t = new Thread(new Runnable() { @Override public void run() { - danaRPlugin.doConnect("KeepAlive"); + pump.setNewBasalProfile(profile); } }); t.start(); - } - } - final DanaRKoreanPlugin danaRKoreanPlugin = (DanaRKoreanPlugin) MainApp.getSpecificPlugin(DanaRKoreanPlugin.class); - if (danaRKoreanPlugin != null && Config.DANAR && danaRKoreanPlugin.isEnabled(PluginBase.PUMP)) { - if (danaRKoreanPlugin.getDanaRPump().lastConnection.getTime() + 30 * 60 * 1000L < new Date().getTime() && !danaRKoreanPlugin.isConnected() && !danaRKoreanPlugin.isConnecting()) { + } else if (isStatusOutdated && !pump.isBusy()) { Thread t = new Thread(new Runnable() { @Override public void run() { - danaRKoreanPlugin.doConnect("KeepAlive"); + pump.updateStatus("KeepAlive. Status outdated."); + } + }); + t.start(); + } else if (isBasalOutdated && !pump.isBusy()) { + Thread t = new Thread(new Runnable() { + @Override + public void run() { + pump.updateStatus("KeepAlive. Basal outdated."); } }); t.start(); } } + log.debug("KeepAlive received"); wl.release(); } diff --git a/app/src/main/java/info/nightscout/androidaps/tabs/TabPageAdapter.java b/app/src/main/java/info/nightscout/androidaps/tabs/TabPageAdapter.java index 7117ddd9af..cedae6e9d7 100644 --- a/app/src/main/java/info/nightscout/androidaps/tabs/TabPageAdapter.java +++ b/app/src/main/java/info/nightscout/androidaps/tabs/TabPageAdapter.java @@ -1,6 +1,8 @@ package info.nightscout.androidaps.tabs; import android.content.Context; +import android.content.SharedPreferences; +import android.preference.PreferenceManager; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; @@ -36,7 +38,12 @@ public class TabPageAdapter extends FragmentStatePagerAdapter { @Override public CharSequence getPageTitle(int position) { + SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); + if(preferences.getBoolean("short_tabtitles", false)){ + return visibleFragmentList.get(position).getNameShort(); + } return visibleFragmentList.get(position).getName(); + } @Override diff --git a/app/src/main/java/info/nightscout/client/data/DbLogger.java b/app/src/main/java/info/nightscout/client/data/DbLogger.java index af2345a5b0..3695d5e735 100644 --- a/app/src/main/java/info/nightscout/client/data/DbLogger.java +++ b/app/src/main/java/info/nightscout/client/data/DbLogger.java @@ -26,4 +26,14 @@ public class DbLogger { } else if (Config.logNSUpload) log.debug("DBADD dbAdd " + q.size() + " receivers " + data); } + + public static void dbRemove(Intent intent, String data, Class sender) { + Logger log = LoggerFactory.getLogger(sender); + List q = MainApp.instance().getApplicationContext().getPackageManager().queryBroadcastReceivers(intent, 0); + if (q.size() < 1) { + ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(),MainApp.sResources.getString(R.string.nsclientnotinstalled)); + log.error("DBREMOVE No receivers"); + } else if (Config.logNSUpload) + log.debug("DBREMOVE dbRemove " + q.size() + " receivers " + data); + } } diff --git a/app/src/main/java/info/nightscout/client/data/NSProfile.java b/app/src/main/java/info/nightscout/client/data/NSProfile.java index ec431e69a8..2e732c8c9f 100644 --- a/app/src/main/java/info/nightscout/client/data/NSProfile.java +++ b/app/src/main/java/info/nightscout/client/data/NSProfile.java @@ -120,7 +120,7 @@ public class NSProfile { } return 3D; } - +/* public Double getCarbAbsorbtionRate() { return getCarbAbsorbtionRate(getDefaultProfile()); } @@ -137,7 +137,7 @@ public class NSProfile { } return 0D; } - +*/ // mmol or mg/dl public String getUnits() { return getUnits(getDefaultProfile()); diff --git a/app/src/main/java/info/nightscout/sampleData/cgm/glucose.json b/app/src/main/java/info/nightscout/sampleData/cgm/glucose.json new file mode 100644 index 0000000000..c4c0130106 --- /dev/null +++ b/app/src/main/java/info/nightscout/sampleData/cgm/glucose.json @@ -0,0 +1,15002 @@ +[ + { + "filtered": 217664, + "direction": "DoubleDown", + "noise": 1, + "dateString": "2017-01-04T16:36:41.224000+01:00", + "sgv": 148, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 191424, + "delta": -20.713, + "date": 1483544201224, + "rssi": 100, + "_id": "586d168bdbab07be5f2e153b", + "type": "sgv", + "glucose": 148 + }, + { + "filtered": 226528, + "direction": "SingleDown", + "noise": 1, + "dateString": "2017-01-04T16:31:41.395000+01:00", + "sgv": 169, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 210592, + "delta": -13.679, + "date": 1483543901395, + "rssi": 100, + "_id": "586d155fdbab07be5f2e151c", + "type": "sgv", + "glucose": 169 + }, + { + "filtered": 226528, + "direction": "SingleDown", + "noise": 1, + "dateString": "2017-01-04T16:31:41.395000+01:00", + "sgv": 169, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 210592, + "delta": -20.713, + "date": 1483543901395, + "rssi": 100, + "_id": "586d168bdbab07be5f2e153c", + "type": "sgv", + "glucose": 169 + }, + { + "filtered": 230624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:26:41.244000+01:00", + "sgv": 183, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 223264, + "delta": -4.631, + "date": 1483543601244, + "rssi": 100, + "_id": "586d1433dbab07be5f2e14fc", + "type": "sgv", + "glucose": 183 + }, + { + "filtered": 230624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:26:41.244000+01:00", + "sgv": 183, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 223264, + "delta": -13.679, + "date": 1483543601244, + "rssi": 100, + "_id": "586d155fdbab07be5f2e151d", + "type": "sgv", + "glucose": 183 + }, + { + "filtered": 230624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:26:41.244000+01:00", + "sgv": 183, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 223264, + "delta": -20.713, + "date": 1483543601244, + "rssi": 100, + "_id": "586d168bdbab07be5f2e153d", + "type": "sgv", + "glucose": 183 + }, + { + "filtered": 231808, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:16:41.221000+01:00", + "sgv": 192, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 231840, + "delta": 0.173, + "date": 1483543001221, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14db", + "type": "sgv", + "glucose": 192 + }, + { + "filtered": 231808, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:16:41.221000+01:00", + "sgv": 192, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 231840, + "delta": -4.631, + "date": 1483543001221, + "rssi": 100, + "_id": "586d1433dbab07be5f2e14fd", + "type": "sgv", + "glucose": 192 + }, + { + "filtered": 231808, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:16:41.221000+01:00", + "sgv": 192, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 231840, + "delta": -13.679, + "date": 1483543001221, + "rssi": 100, + "_id": "586d155fdbab07be5f2e151e", + "type": "sgv", + "glucose": 192 + }, + { + "filtered": 231808, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:16:41.221000+01:00", + "sgv": 192, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 231840, + "delta": -20.713, + "date": 1483543001221, + "rssi": 100, + "_id": "586d168bdbab07be5f2e153e", + "type": "sgv", + "glucose": 192 + }, + { + "filtered": 230944, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:11:41.253000+01:00", + "sgv": 192, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 231680, + "delta": -0.207, + "date": 1483542701253, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14bb", + "type": "sgv", + "glucose": 192 + }, + { + "filtered": 230944, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:11:41.253000+01:00", + "sgv": 192, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 231680, + "delta": 0.173, + "date": 1483542701253, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14dc", + "type": "sgv", + "glucose": 192 + }, + { + "filtered": 230944, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:11:41.253000+01:00", + "sgv": 192, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 231680, + "delta": -4.631, + "date": 1483542701253, + "rssi": 100, + "_id": "586d1433dbab07be5f2e14fe", + "type": "sgv", + "glucose": 192 + }, + { + "filtered": 230944, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:11:41.253000+01:00", + "sgv": 192, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 231680, + "delta": -13.679, + "date": 1483542701253, + "rssi": 100, + "_id": "586d155fdbab07be5f2e151f", + "type": "sgv", + "glucose": 192 + }, + { + "filtered": 230944, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:11:41.253000+01:00", + "sgv": 192, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 231680, + "delta": -20.713, + "date": 1483542701253, + "rssi": 100, + "_id": "586d168bdbab07be5f2e153f", + "type": "sgv", + "glucose": 192 + }, + { + "filtered": 229536, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:06:41.161000+01:00", + "sgv": 192, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 231872, + "delta": 1.348, + "date": 1483542401161, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e149a", + "type": "sgv", + "glucose": 192 + }, + { + "filtered": 229536, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:06:41.161000+01:00", + "sgv": 192, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 231872, + "delta": -0.207, + "date": 1483542401161, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14bc", + "type": "sgv", + "glucose": 192 + }, + { + "filtered": 229536, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:06:41.161000+01:00", + "sgv": 192, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 231872, + "delta": 0.173, + "date": 1483542401161, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14dd", + "type": "sgv", + "glucose": 192 + }, + { + "filtered": 229536, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:06:41.161000+01:00", + "sgv": 192, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 231872, + "delta": -4.631, + "date": 1483542401161, + "rssi": 100, + "_id": "586d1433dbab07be5f2e14ff", + "type": "sgv", + "glucose": 192 + }, + { + "filtered": 229536, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:06:41.161000+01:00", + "sgv": 192, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 231872, + "delta": -13.679, + "date": 1483542401161, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1520", + "type": "sgv", + "glucose": 192 + }, + { + "filtered": 229536, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:06:41.161000+01:00", + "sgv": 192, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 231872, + "delta": -20.713, + "date": 1483542401161, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1540", + "type": "sgv", + "glucose": 192 + }, + { + "filtered": 227968, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:01:41.177000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230624, + "delta": 1.936, + "date": 1483542101177, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1478", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 227968, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:01:41.177000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230624, + "delta": 1.348, + "date": 1483542101177, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e149b", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 227968, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:01:41.177000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230624, + "delta": -0.207, + "date": 1483542101177, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14bd", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 227968, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:01:41.177000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230624, + "delta": 0.173, + "date": 1483542101177, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14de", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 227968, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:01:41.177000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230624, + "delta": -4.631, + "date": 1483542101177, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1500", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 227968, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:01:41.177000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230624, + "delta": -13.679, + "date": 1483542101177, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1521", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 227968, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:01:41.177000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230624, + "delta": -20.713, + "date": 1483542101177, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1541", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 226656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:56:41.241000+01:00", + "sgv": 189, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 228832, + "delta": 1.262, + "date": 1483541801241, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1459", + "type": "sgv", + "glucose": 189 + }, + { + "filtered": 226656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:56:41.241000+01:00", + "sgv": 189, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 228832, + "delta": 1.936, + "date": 1483541801241, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1479", + "type": "sgv", + "glucose": 189 + }, + { + "filtered": 226656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:56:41.241000+01:00", + "sgv": 189, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 228832, + "delta": 1.348, + "date": 1483541801241, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e149c", + "type": "sgv", + "glucose": 189 + }, + { + "filtered": 226656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:56:41.241000+01:00", + "sgv": 189, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 228832, + "delta": -0.207, + "date": 1483541801241, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14be", + "type": "sgv", + "glucose": 189 + }, + { + "filtered": 226656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:56:41.241000+01:00", + "sgv": 189, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 228832, + "delta": 0.173, + "date": 1483541801241, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14df", + "type": "sgv", + "glucose": 189 + }, + { + "filtered": 226656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:56:41.241000+01:00", + "sgv": 189, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 228832, + "delta": -4.631, + "date": 1483541801241, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1501", + "type": "sgv", + "glucose": 189 + }, + { + "filtered": 226656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:56:41.241000+01:00", + "sgv": 189, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 228832, + "delta": -13.679, + "date": 1483541801241, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1522", + "type": "sgv", + "glucose": 189 + }, + { + "filtered": 226656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:56:41.241000+01:00", + "sgv": 189, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 228832, + "delta": -20.713, + "date": 1483541801241, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1542", + "type": "sgv", + "glucose": 189 + }, + { + "filtered": 226464, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:46:41.285000+01:00", + "sgv": 186, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 226496, + "delta": -0.658, + "date": 1483541201285, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1435", + "type": "sgv", + "glucose": 186 + }, + { + "filtered": 226464, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:46:41.285000+01:00", + "sgv": 186, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 226496, + "delta": 1.262, + "date": 1483541201285, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e145a", + "type": "sgv", + "glucose": 186 + }, + { + "filtered": 226464, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:46:41.285000+01:00", + "sgv": 186, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 226496, + "delta": 1.936, + "date": 1483541201285, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e147b", + "type": "sgv", + "glucose": 186 + }, + { + "filtered": 226464, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:46:41.285000+01:00", + "sgv": 186, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 226496, + "delta": 1.348, + "date": 1483541201285, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e149d", + "type": "sgv", + "glucose": 186 + }, + { + "filtered": 226464, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:46:41.285000+01:00", + "sgv": 186, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 226496, + "delta": -0.207, + "date": 1483541201285, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14bf", + "type": "sgv", + "glucose": 186 + }, + { + "filtered": 226464, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:46:41.285000+01:00", + "sgv": 186, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 226496, + "delta": 0.173, + "date": 1483541201285, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14e0", + "type": "sgv", + "glucose": 186 + }, + { + "filtered": 226464, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:46:41.285000+01:00", + "sgv": 186, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 226496, + "delta": -4.631, + "date": 1483541201285, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1502", + "type": "sgv", + "glucose": 186 + }, + { + "filtered": 226464, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:46:41.285000+01:00", + "sgv": 186, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 226496, + "delta": -13.679, + "date": 1483541201285, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1524", + "type": "sgv", + "glucose": 186 + }, + { + "filtered": 226464, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:46:41.285000+01:00", + "sgv": 186, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 226496, + "delta": -20.713, + "date": 1483541201285, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1543", + "type": "sgv", + "glucose": 186 + }, + { + "filtered": 227840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:41:41.755000+01:00", + "sgv": 187, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227104, + "delta": 2.933, + "date": 1483540901755, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1415", + "type": "sgv", + "glucose": 187 + }, + { + "filtered": 227840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:41:41.755000+01:00", + "sgv": 187, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227104, + "delta": -0.658, + "date": 1483540901755, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1436", + "type": "sgv", + "glucose": 187 + }, + { + "filtered": 227840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:41:41.755000+01:00", + "sgv": 187, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227104, + "delta": 1.262, + "date": 1483540901755, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e145b", + "type": "sgv", + "glucose": 187 + }, + { + "filtered": 227840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:41:41.755000+01:00", + "sgv": 187, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227104, + "delta": 1.936, + "date": 1483540901755, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e147a", + "type": "sgv", + "glucose": 187 + }, + { + "filtered": 227840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:41:41.755000+01:00", + "sgv": 187, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227104, + "delta": 1.348, + "date": 1483540901755, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e149e", + "type": "sgv", + "glucose": 187 + }, + { + "filtered": 227840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:41:41.755000+01:00", + "sgv": 187, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227104, + "delta": -0.207, + "date": 1483540901755, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14c0", + "type": "sgv", + "glucose": 187 + }, + { + "filtered": 227840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:41:41.755000+01:00", + "sgv": 187, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227104, + "delta": 0.173, + "date": 1483540901755, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14e1", + "type": "sgv", + "glucose": 187 + }, + { + "filtered": 227840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:41:41.755000+01:00", + "sgv": 187, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227104, + "delta": -4.631, + "date": 1483540901755, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1503", + "type": "sgv", + "glucose": 187 + }, + { + "filtered": 227840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:41:41.755000+01:00", + "sgv": 187, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227104, + "delta": -13.679, + "date": 1483540901755, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1523", + "type": "sgv", + "glucose": 187 + }, + { + "filtered": 227840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:41:41.755000+01:00", + "sgv": 187, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227104, + "delta": -20.713, + "date": 1483540901755, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1544", + "type": "sgv", + "glucose": 187 + }, + { + "filtered": 230208, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:36:41.273000+01:00", + "sgv": 184, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 224384, + "delta": -6.913, + "date": 1483540601273, + "rssi": 100, + "_id": "586d087bdbab07be5f2e13f6", + "type": "sgv", + "glucose": 184 + }, + { + "filtered": 230208, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:36:41.273000+01:00", + "sgv": 184, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 224384, + "delta": 2.933, + "date": 1483540601273, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1416", + "type": "sgv", + "glucose": 184 + }, + { + "filtered": 230208, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:36:41.273000+01:00", + "sgv": 184, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 224384, + "delta": -0.658, + "date": 1483540601273, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1437", + "type": "sgv", + "glucose": 184 + }, + { + "filtered": 230208, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:36:41.273000+01:00", + "sgv": 184, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 224384, + "delta": 1.262, + "date": 1483540601273, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e145c", + "type": "sgv", + "glucose": 184 + }, + { + "filtered": 230208, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:36:41.273000+01:00", + "sgv": 184, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 224384, + "delta": 1.936, + "date": 1483540601273, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e147c", + "type": "sgv", + "glucose": 184 + }, + { + "filtered": 230208, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:36:41.273000+01:00", + "sgv": 184, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 224384, + "delta": 1.348, + "date": 1483540601273, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e149f", + "type": "sgv", + "glucose": 184 + }, + { + "filtered": 230208, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:36:41.273000+01:00", + "sgv": 184, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 224384, + "delta": -0.207, + "date": 1483540601273, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14c1", + "type": "sgv", + "glucose": 184 + }, + { + "filtered": 230208, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:36:41.273000+01:00", + "sgv": 184, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 224384, + "delta": 0.173, + "date": 1483540601273, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14e2", + "type": "sgv", + "glucose": 184 + }, + { + "filtered": 230208, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:36:41.273000+01:00", + "sgv": 184, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 224384, + "delta": -4.631, + "date": 1483540601273, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1504", + "type": "sgv", + "glucose": 184 + }, + { + "filtered": 230208, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:36:41.273000+01:00", + "sgv": 184, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 224384, + "delta": -13.679, + "date": 1483540601273, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1525", + "type": "sgv", + "glucose": 184 + }, + { + "filtered": 230208, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:36:41.273000+01:00", + "sgv": 184, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 224384, + "delta": -20.713, + "date": 1483540601273, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1545", + "type": "sgv", + "glucose": 184 + }, + { + "filtered": 234784, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:31:41.318000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230784, + "delta": -3.87, + "date": 1483540301318, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13d7", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 234784, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:31:41.318000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230784, + "delta": -6.913, + "date": 1483540301318, + "rssi": 100, + "_id": "586d087bdbab07be5f2e13f7", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 234784, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:31:41.318000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230784, + "delta": 2.933, + "date": 1483540301318, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1417", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 234784, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:31:41.318000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230784, + "delta": -0.658, + "date": 1483540301318, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1438", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 234784, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:31:41.318000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230784, + "delta": 1.262, + "date": 1483540301318, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e145d", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 234784, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:31:41.318000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230784, + "delta": 1.936, + "date": 1483540301318, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e147d", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 234784, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:31:41.318000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230784, + "delta": 1.348, + "date": 1483540301318, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14a0", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 234784, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:31:41.318000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230784, + "delta": -0.207, + "date": 1483540301318, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14c2", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 234784, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:31:41.318000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230784, + "delta": 0.173, + "date": 1483540301318, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14e3", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 234784, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:31:41.318000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230784, + "delta": -4.631, + "date": 1483540301318, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1505", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 234784, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:31:41.318000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230784, + "delta": -13.679, + "date": 1483540301318, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1526", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 234784, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:31:41.318000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230784, + "delta": -20.713, + "date": 1483540301318, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1546", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 242592, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:26:41.288000+01:00", + "sgv": 195, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 234368, + "delta": -2.869, + "date": 1483540001288, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13b6", + "type": "sgv", + "glucose": 195 + }, + { + "filtered": 242592, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:26:41.288000+01:00", + "sgv": 195, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 234368, + "delta": -3.87, + "date": 1483540001288, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13d8", + "type": "sgv", + "glucose": 195 + }, + { + "filtered": 242592, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:26:41.288000+01:00", + "sgv": 195, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 234368, + "delta": -6.913, + "date": 1483540001288, + "rssi": 100, + "_id": "586d087bdbab07be5f2e13f9", + "type": "sgv", + "glucose": 195 + }, + { + "filtered": 242592, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:26:41.288000+01:00", + "sgv": 195, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 234368, + "delta": 2.933, + "date": 1483540001288, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1418", + "type": "sgv", + "glucose": 195 + }, + { + "filtered": 242592, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:26:41.288000+01:00", + "sgv": 195, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 234368, + "delta": -0.658, + "date": 1483540001288, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1439", + "type": "sgv", + "glucose": 195 + }, + { + "filtered": 242592, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:26:41.288000+01:00", + "sgv": 195, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 234368, + "delta": 1.262, + "date": 1483540001288, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e145e", + "type": "sgv", + "glucose": 195 + }, + { + "filtered": 242592, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:26:41.288000+01:00", + "sgv": 195, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 234368, + "delta": 1.936, + "date": 1483540001288, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e147e", + "type": "sgv", + "glucose": 195 + }, + { + "filtered": 242592, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:26:41.288000+01:00", + "sgv": 195, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 234368, + "delta": 1.348, + "date": 1483540001288, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14a1", + "type": "sgv", + "glucose": 195 + }, + { + "filtered": 242592, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:26:41.288000+01:00", + "sgv": 195, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 234368, + "delta": -0.207, + "date": 1483540001288, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14c3", + "type": "sgv", + "glucose": 195 + }, + { + "filtered": 242592, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:26:41.288000+01:00", + "sgv": 195, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 234368, + "delta": 0.173, + "date": 1483540001288, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14e4", + "type": "sgv", + "glucose": 195 + }, + { + "filtered": 242592, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:26:41.288000+01:00", + "sgv": 195, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 234368, + "delta": -4.631, + "date": 1483540001288, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1506", + "type": "sgv", + "glucose": 195 + }, + { + "filtered": 242592, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:26:41.288000+01:00", + "sgv": 195, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 234368, + "delta": -13.679, + "date": 1483540001288, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1527", + "type": "sgv", + "glucose": 195 + }, + { + "filtered": 242592, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:26:41.288000+01:00", + "sgv": 195, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 234368, + "delta": -20.713, + "date": 1483540001288, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1547", + "type": "sgv", + "glucose": 195 + }, + { + "filtered": 253376, + "direction": "SingleDown", + "noise": 1, + "dateString": "2017-01-04T15:21:41.330000+01:00", + "sgv": 198, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 237024, + "delta": -10.022, + "date": 1483539701330, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e1396", + "type": "sgv", + "glucose": 198 + }, + { + "filtered": 253376, + "direction": "SingleDown", + "noise": 1, + "dateString": "2017-01-04T15:21:41.330000+01:00", + "sgv": 198, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 237024, + "delta": -2.869, + "date": 1483539701330, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13ba", + "type": "sgv", + "glucose": 198 + }, + { + "filtered": 253376, + "direction": "SingleDown", + "noise": 1, + "dateString": "2017-01-04T15:21:41.330000+01:00", + "sgv": 198, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 237024, + "delta": -3.87, + "date": 1483539701330, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13d9", + "type": "sgv", + "glucose": 198 + }, + { + "filtered": 253376, + "direction": "SingleDown", + "noise": 1, + "dateString": "2017-01-04T15:21:41.330000+01:00", + "sgv": 198, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 237024, + "delta": -6.913, + "date": 1483539701330, + "rssi": 100, + "_id": "586d087bdbab07be5f2e13f8", + "type": "sgv", + "glucose": 198 + }, + { + "filtered": 253376, + "direction": "SingleDown", + "noise": 1, + "dateString": "2017-01-04T15:21:41.330000+01:00", + "sgv": 198, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 237024, + "delta": 2.933, + "date": 1483539701330, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1419", + "type": "sgv", + "glucose": 198 + }, + { + "filtered": 253376, + "direction": "SingleDown", + "noise": 1, + "dateString": "2017-01-04T15:21:41.330000+01:00", + "sgv": 198, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 237024, + "delta": -0.658, + "date": 1483539701330, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e143a", + "type": "sgv", + "glucose": 198 + }, + { + "filtered": 253376, + "direction": "SingleDown", + "noise": 1, + "dateString": "2017-01-04T15:21:41.330000+01:00", + "sgv": 198, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 237024, + "delta": 1.262, + "date": 1483539701330, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e145f", + "type": "sgv", + "glucose": 198 + }, + { + "filtered": 253376, + "direction": "SingleDown", + "noise": 1, + "dateString": "2017-01-04T15:21:41.330000+01:00", + "sgv": 198, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 237024, + "delta": 1.936, + "date": 1483539701330, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e147f", + "type": "sgv", + "glucose": 198 + }, + { + "filtered": 253376, + "direction": "SingleDown", + "noise": 1, + "dateString": "2017-01-04T15:21:41.330000+01:00", + "sgv": 198, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 237024, + "delta": 1.348, + "date": 1483539701330, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14a2", + "type": "sgv", + "glucose": 198 + }, + { + "filtered": 253376, + "direction": "SingleDown", + "noise": 1, + "dateString": "2017-01-04T15:21:41.330000+01:00", + "sgv": 198, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 237024, + "delta": -0.207, + "date": 1483539701330, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14c4", + "type": "sgv", + "glucose": 198 + }, + { + "filtered": 253376, + "direction": "SingleDown", + "noise": 1, + "dateString": "2017-01-04T15:21:41.330000+01:00", + "sgv": 198, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 237024, + "delta": 0.173, + "date": 1483539701330, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14e5", + "type": "sgv", + "glucose": 198 + }, + { + "filtered": 253376, + "direction": "SingleDown", + "noise": 1, + "dateString": "2017-01-04T15:21:41.330000+01:00", + "sgv": 198, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 237024, + "delta": -4.631, + "date": 1483539701330, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1507", + "type": "sgv", + "glucose": 198 + }, + { + "filtered": 253376, + "direction": "SingleDown", + "noise": 1, + "dateString": "2017-01-04T15:21:41.330000+01:00", + "sgv": 198, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 237024, + "delta": -13.679, + "date": 1483539701330, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1528", + "type": "sgv", + "glucose": 198 + }, + { + "filtered": 253376, + "direction": "SingleDown", + "noise": 1, + "dateString": "2017-01-04T15:21:41.330000+01:00", + "sgv": 198, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 237024, + "delta": -20.713, + "date": 1483539701330, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1548", + "type": "sgv", + "glucose": 198 + }, + { + "filtered": 269184, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:11:41.287000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255584, + "delta": -9.038, + "date": 1483539101287, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1375", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 269184, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:11:41.287000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255584, + "delta": -10.022, + "date": 1483539101287, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e1397", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 269184, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:11:41.287000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255584, + "delta": -2.869, + "date": 1483539101287, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13b7", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 269184, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:11:41.287000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255584, + "delta": -3.87, + "date": 1483539101287, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13da", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 269184, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:11:41.287000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255584, + "delta": -6.913, + "date": 1483539101287, + "rssi": 100, + "_id": "586d087bdbab07be5f2e13fa", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 269184, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:11:41.287000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255584, + "delta": 2.933, + "date": 1483539101287, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e141a", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 269184, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:11:41.287000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255584, + "delta": -0.658, + "date": 1483539101287, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e143b", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 269184, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:11:41.287000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255584, + "delta": 1.262, + "date": 1483539101287, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1460", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 269184, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:11:41.287000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255584, + "delta": 1.936, + "date": 1483539101287, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1480", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 269184, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:11:41.287000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255584, + "delta": 1.348, + "date": 1483539101287, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14a3", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 269184, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:11:41.287000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255584, + "delta": -0.207, + "date": 1483539101287, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14c5", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 269184, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:11:41.287000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255584, + "delta": 0.173, + "date": 1483539101287, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14e6", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 269184, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:11:41.287000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255584, + "delta": -4.631, + "date": 1483539101287, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1508", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 269184, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:11:41.287000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255584, + "delta": -13.679, + "date": 1483539101287, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1529", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 269184, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:11:41.287000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255584, + "delta": -20.713, + "date": 1483539101287, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1549", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 261440, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T15:01:41.333000+01:00", + "sgv": 236, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 272320, + "delta": 6.496, + "date": 1483538501333, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1355", + "type": "sgv", + "glucose": 236 + }, + { + "filtered": 261440, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T15:01:41.333000+01:00", + "sgv": 236, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 272320, + "delta": -9.038, + "date": 1483538501333, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1376", + "type": "sgv", + "glucose": 236 + }, + { + "filtered": 261440, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T15:01:41.333000+01:00", + "sgv": 236, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 272320, + "delta": -10.022, + "date": 1483538501333, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e1398", + "type": "sgv", + "glucose": 236 + }, + { + "filtered": 261440, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T15:01:41.333000+01:00", + "sgv": 236, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 272320, + "delta": -2.869, + "date": 1483538501333, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13b8", + "type": "sgv", + "glucose": 236 + }, + { + "filtered": 261440, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T15:01:41.333000+01:00", + "sgv": 236, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 272320, + "delta": -3.87, + "date": 1483538501333, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13db", + "type": "sgv", + "glucose": 236 + }, + { + "filtered": 261440, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T15:01:41.333000+01:00", + "sgv": 236, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 272320, + "delta": -6.913, + "date": 1483538501333, + "rssi": 100, + "_id": "586d087bdbab07be5f2e13fb", + "type": "sgv", + "glucose": 236 + }, + { + "filtered": 261440, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T15:01:41.333000+01:00", + "sgv": 236, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 272320, + "delta": 2.933, + "date": 1483538501333, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e141b", + "type": "sgv", + "glucose": 236 + }, + { + "filtered": 261440, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T15:01:41.333000+01:00", + "sgv": 236, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 272320, + "delta": -0.658, + "date": 1483538501333, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e143c", + "type": "sgv", + "glucose": 236 + }, + { + "filtered": 261440, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T15:01:41.333000+01:00", + "sgv": 236, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 272320, + "delta": 1.262, + "date": 1483538501333, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1461", + "type": "sgv", + "glucose": 236 + }, + { + "filtered": 261440, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T15:01:41.333000+01:00", + "sgv": 236, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 272320, + "delta": 1.936, + "date": 1483538501333, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1481", + "type": "sgv", + "glucose": 236 + }, + { + "filtered": 261440, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T15:01:41.333000+01:00", + "sgv": 236, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 272320, + "delta": 1.348, + "date": 1483538501333, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14a4", + "type": "sgv", + "glucose": 236 + }, + { + "filtered": 261440, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T15:01:41.333000+01:00", + "sgv": 236, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 272320, + "delta": -0.207, + "date": 1483538501333, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14c6", + "type": "sgv", + "glucose": 236 + }, + { + "filtered": 261440, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T15:01:41.333000+01:00", + "sgv": 236, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 272320, + "delta": 0.173, + "date": 1483538501333, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14e7", + "type": "sgv", + "glucose": 236 + }, + { + "filtered": 261440, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T15:01:41.333000+01:00", + "sgv": 236, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 272320, + "delta": -4.631, + "date": 1483538501333, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1509", + "type": "sgv", + "glucose": 236 + }, + { + "filtered": 261440, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T15:01:41.333000+01:00", + "sgv": 236, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 272320, + "delta": -13.679, + "date": 1483538501333, + "rssi": 100, + "_id": "586d155fdbab07be5f2e152a", + "type": "sgv", + "glucose": 236 + }, + { + "filtered": 261440, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T15:01:41.333000+01:00", + "sgv": 236, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 272320, + "delta": -20.713, + "date": 1483538501333, + "rssi": 100, + "_id": "586d168bdbab07be5f2e154a", + "type": "sgv", + "glucose": 236 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": 11.613, + "date": 1483538201284, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1336", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": 6.496, + "date": 1483538201284, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1356", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": -9.038, + "date": 1483538201284, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1377", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": -10.022, + "date": 1483538201284, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e1399", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": -2.869, + "date": 1483538201284, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13b9", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": -3.87, + "date": 1483538201284, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13dc", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": -6.913, + "date": 1483538201284, + "rssi": 100, + "_id": "586d087bdbab07be5f2e13fc", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": 2.933, + "date": 1483538201284, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e141c", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": -0.658, + "date": 1483538201284, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e143d", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": 1.262, + "date": 1483538201284, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1462", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": 1.936, + "date": 1483538201284, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1482", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": 1.348, + "date": 1483538201284, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14a5", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": -0.207, + "date": 1483538201284, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14c7", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": 0.173, + "date": 1483538201284, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14e8", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": -4.631, + "date": 1483538201284, + "rssi": 100, + "_id": "586d1433dbab07be5f2e150a", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": -13.679, + "date": 1483538201284, + "rssi": 100, + "_id": "586d155fdbab07be5f2e152b", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": -20.713, + "date": 1483538201284, + "rssi": 100, + "_id": "586d168bdbab07be5f2e154b", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": 11.911, + "date": 1483537901316, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1317", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": 11.613, + "date": 1483537901316, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1337", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": 6.496, + "date": 1483537901316, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1357", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": -9.038, + "date": 1483537901316, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1378", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": -10.022, + "date": 1483537901316, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e139a", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": -2.869, + "date": 1483537901316, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13bb", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": -3.87, + "date": 1483537901316, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13de", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": -6.913, + "date": 1483537901316, + "rssi": 100, + "_id": "586d087bdbab07be5f2e13fd", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": 2.933, + "date": 1483537901316, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e141d", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": -0.658, + "date": 1483537901316, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e143e", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": 1.262, + "date": 1483537901316, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1463", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": 1.936, + "date": 1483537901316, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1483", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": 1.348, + "date": 1483537901316, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14a6", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": -0.207, + "date": 1483537901316, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14c8", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": 0.173, + "date": 1483537901316, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14e9", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": -4.631, + "date": 1483537901316, + "rssi": 100, + "_id": "586d1433dbab07be5f2e150b", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": -13.679, + "date": 1483537901316, + "rssi": 100, + "_id": "586d155fdbab07be5f2e152c", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": -20.713, + "date": 1483537901316, + "rssi": 100, + "_id": "586d168bdbab07be5f2e154c", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": 17.921, + "date": 1483537601014, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e12f7", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": 11.911, + "date": 1483537601014, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1318", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": 11.613, + "date": 1483537601014, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1338", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": 6.496, + "date": 1483537601014, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1358", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": -9.038, + "date": 1483537601014, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1379", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": -10.022, + "date": 1483537601014, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e139b", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": -2.869, + "date": 1483537601014, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13bd", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": -3.87, + "date": 1483537601014, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13dd", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": -6.913, + "date": 1483537601014, + "rssi": 100, + "_id": "586d087bdbab07be5f2e13fe", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": 2.933, + "date": 1483537601014, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e141e", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": -0.658, + "date": 1483537601014, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e143f", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": 1.262, + "date": 1483537601014, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1464", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": 1.936, + "date": 1483537601014, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1484", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": 1.348, + "date": 1483537601014, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14a7", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": -0.207, + "date": 1483537601014, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14c9", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": 0.173, + "date": 1483537601014, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14ea", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": -4.631, + "date": 1483537601014, + "rssi": 100, + "_id": "586d1433dbab07be5f2e150c", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": -13.679, + "date": 1483537601014, + "rssi": 100, + "_id": "586d155fdbab07be5f2e152d", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": -20.713, + "date": 1483537601014, + "rssi": 100, + "_id": "586d168bdbab07be5f2e154d", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": 14.55, + "date": 1483537301326, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12d8", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": 17.921, + "date": 1483537301326, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e12f8", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": 11.911, + "date": 1483537301326, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1319", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": 11.613, + "date": 1483537301326, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1339", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": 6.496, + "date": 1483537301326, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1359", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": -9.038, + "date": 1483537301326, + "rssi": 100, + "_id": "586d029fdbab07be5f2e137a", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": -10.022, + "date": 1483537301326, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e139c", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": -2.869, + "date": 1483537301326, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13bc", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": -3.87, + "date": 1483537301326, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13df", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": -6.913, + "date": 1483537301326, + "rssi": 100, + "_id": "586d087bdbab07be5f2e13ff", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": 2.933, + "date": 1483537301326, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1420", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": -0.658, + "date": 1483537301326, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1440", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": 1.262, + "date": 1483537301326, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1465", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": 1.936, + "date": 1483537301326, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1485", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": 1.348, + "date": 1483537301326, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14a8", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": -0.207, + "date": 1483537301326, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14ca", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": 0.173, + "date": 1483537301326, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14eb", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": -4.631, + "date": 1483537301326, + "rssi": 100, + "_id": "586d1433dbab07be5f2e150d", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": -13.679, + "date": 1483537301326, + "rssi": 100, + "_id": "586d155fdbab07be5f2e152e", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": -20.713, + "date": 1483537301326, + "rssi": 100, + "_id": "586d168bdbab07be5f2e154e", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": 21.457, + "date": 1483537001325, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12b9", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": 14.55, + "date": 1483537001325, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12d9", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": 17.921, + "date": 1483537001325, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e12f9", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": 11.911, + "date": 1483537001325, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e131a", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": 11.613, + "date": 1483537001325, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e133a", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": 6.496, + "date": 1483537001325, + "rssi": 100, + "_id": "586d0047dbab07be5f2e135a", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": -9.038, + "date": 1483537001325, + "rssi": 100, + "_id": "586d029fdbab07be5f2e137b", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": -10.022, + "date": 1483537001325, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e139d", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": -2.869, + "date": 1483537001325, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13be", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": -3.87, + "date": 1483537001325, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13e0", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": -6.913, + "date": 1483537001325, + "rssi": 100, + "_id": "586d087bdbab07be5f2e1400", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": 2.933, + "date": 1483537001325, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e141f", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": -0.658, + "date": 1483537001325, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1441", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": 1.262, + "date": 1483537001325, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1466", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": 1.936, + "date": 1483537001325, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1486", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": 1.348, + "date": 1483537001325, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14aa", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": -0.207, + "date": 1483537001325, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14cb", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": 0.173, + "date": 1483537001325, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14ec", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": -4.631, + "date": 1483537001325, + "rssi": 100, + "_id": "586d1433dbab07be5f2e150e", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": -13.679, + "date": 1483537001325, + "rssi": 100, + "_id": "586d155fdbab07be5f2e152f", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": -20.713, + "date": 1483537001325, + "rssi": 100, + "_id": "586d168bdbab07be5f2e154f", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": 16.247, + "date": 1483536701263, + "rssi": 100, + "_id": "586cf940dbab07be5f2e1297", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": 21.457, + "date": 1483536701263, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12ba", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": 14.55, + "date": 1483536701263, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12da", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": 17.921, + "date": 1483536701263, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e12fa", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": 11.911, + "date": 1483536701263, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e131b", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": 11.613, + "date": 1483536701263, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e133b", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": 6.496, + "date": 1483536701263, + "rssi": 100, + "_id": "586d0047dbab07be5f2e135b", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": -9.038, + "date": 1483536701263, + "rssi": 100, + "_id": "586d029fdbab07be5f2e137c", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": -10.022, + "date": 1483536701263, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e139e", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": -2.869, + "date": 1483536701263, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13bf", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": -3.87, + "date": 1483536701263, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13e1", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": -6.913, + "date": 1483536701263, + "rssi": 100, + "_id": "586d087bdbab07be5f2e1401", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": 2.933, + "date": 1483536701263, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1421", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": -0.658, + "date": 1483536701263, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1443", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": 1.262, + "date": 1483536701263, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1467", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": 1.936, + "date": 1483536701263, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1490", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": 1.348, + "date": 1483536701263, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14a9", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": -0.207, + "date": 1483536701263, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14cc", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": 0.173, + "date": 1483536701263, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14ed", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": -4.631, + "date": 1483536701263, + "rssi": 100, + "_id": "586d1433dbab07be5f2e150f", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": -13.679, + "date": 1483536701263, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1530", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": -20.713, + "date": 1483536701263, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1551", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": 3.904, + "date": 1483536401340, + "rssi": 100, + "_id": "586cf814dbab07be5f2e1275", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": 16.247, + "date": 1483536401340, + "rssi": 100, + "_id": "586cf940dbab07be5f2e1298", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": 21.457, + "date": 1483536401340, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12b8", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": 14.55, + "date": 1483536401340, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12db", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": 17.921, + "date": 1483536401340, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e12fb", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": 11.911, + "date": 1483536401340, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e131c", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": 11.613, + "date": 1483536401340, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e133c", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": 6.496, + "date": 1483536401340, + "rssi": 100, + "_id": "586d0047dbab07be5f2e135c", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": -9.038, + "date": 1483536401340, + "rssi": 100, + "_id": "586d029fdbab07be5f2e137d", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": -10.022, + "date": 1483536401340, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e139f", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": -2.869, + "date": 1483536401340, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13c0", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": -3.87, + "date": 1483536401340, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13e3", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": -6.913, + "date": 1483536401340, + "rssi": 100, + "_id": "586d087bdbab07be5f2e1402", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": 2.933, + "date": 1483536401340, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1422", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": -0.658, + "date": 1483536401340, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1442", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": 1.262, + "date": 1483536401340, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1468", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": 1.936, + "date": 1483536401340, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e148a", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": 1.348, + "date": 1483536401340, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14ab", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": -0.207, + "date": 1483536401340, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14cd", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": 0.173, + "date": 1483536401340, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14ee", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": -4.631, + "date": 1483536401340, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1510", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": -13.679, + "date": 1483536401340, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1531", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": -20.713, + "date": 1483536401340, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1550", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": 5.385, + "date": 1483536101258, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1252", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": 3.904, + "date": 1483536101258, + "rssi": 100, + "_id": "586cf814dbab07be5f2e1276", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": 16.247, + "date": 1483536101258, + "rssi": 100, + "_id": "586cf940dbab07be5f2e1299", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": 21.457, + "date": 1483536101258, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12b7", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": 14.55, + "date": 1483536101258, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12dc", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": 17.921, + "date": 1483536101258, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e12fc", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": 11.911, + "date": 1483536101258, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e131d", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": 11.613, + "date": 1483536101258, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e133d", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": 6.496, + "date": 1483536101258, + "rssi": 100, + "_id": "586d0047dbab07be5f2e135d", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": -9.038, + "date": 1483536101258, + "rssi": 100, + "_id": "586d029fdbab07be5f2e137e", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": -10.022, + "date": 1483536101258, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13a6", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": -2.869, + "date": 1483536101258, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13c1", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": -3.87, + "date": 1483536101258, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13e2", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": -6.913, + "date": 1483536101258, + "rssi": 100, + "_id": "586d087bdbab07be5f2e1403", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": 2.933, + "date": 1483536101258, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1423", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": -0.658, + "date": 1483536101258, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1444", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": 1.262, + "date": 1483536101258, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e146b", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": 1.936, + "date": 1483536101258, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1487", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": 1.348, + "date": 1483536101258, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14ad", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": -0.207, + "date": 1483536101258, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14ce", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": 0.173, + "date": 1483536101258, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14ef", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": -4.631, + "date": 1483536101258, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1512", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": -13.679, + "date": 1483536101258, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1532", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": -20.713, + "date": 1483536101258, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1552", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": 1.686, + "date": 1483535802855, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1233", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": 5.385, + "date": 1483535802855, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1253", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": 3.904, + "date": 1483535802855, + "rssi": 100, + "_id": "586cf814dbab07be5f2e1277", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": 16.247, + "date": 1483535802855, + "rssi": 100, + "_id": "586cf940dbab07be5f2e129a", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": 21.457, + "date": 1483535802855, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12bb", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": 14.55, + "date": 1483535802855, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12dd", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": 17.921, + "date": 1483535802855, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e12fd", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": 11.911, + "date": 1483535802855, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e131e", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": 11.613, + "date": 1483535802855, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e133e", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": 6.496, + "date": 1483535802855, + "rssi": 100, + "_id": "586d0047dbab07be5f2e135e", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": -9.038, + "date": 1483535802855, + "rssi": 100, + "_id": "586d029fdbab07be5f2e137f", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": -10.022, + "date": 1483535802855, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13a3", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": -2.869, + "date": 1483535802855, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13c2", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": -3.87, + "date": 1483535802855, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13e4", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": -6.913, + "date": 1483535802855, + "rssi": 100, + "_id": "586d087bdbab07be5f2e1404", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": 2.933, + "date": 1483535802855, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1424", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": -0.658, + "date": 1483535802855, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1445", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": 1.262, + "date": 1483535802855, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1469", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": 1.936, + "date": 1483535802855, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1488", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": 1.348, + "date": 1483535802855, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14ac", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": -0.207, + "date": 1483535802855, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14cf", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": 0.173, + "date": 1483535802855, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14f0", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": -4.631, + "date": 1483535802855, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1511", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": -13.679, + "date": 1483535802855, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1533", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": -20.713, + "date": 1483535802855, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1553", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": 1.314, + "date": 1483535501468, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1213", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": 1.686, + "date": 1483535501468, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1234", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": 5.385, + "date": 1483535501468, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1254", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": 3.904, + "date": 1483535501468, + "rssi": 100, + "_id": "586cf814dbab07be5f2e1278", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": 16.247, + "date": 1483535501468, + "rssi": 100, + "_id": "586cf940dbab07be5f2e129b", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": 21.457, + "date": 1483535501468, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12bc", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": 14.55, + "date": 1483535501468, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12de", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": 17.921, + "date": 1483535501468, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e12fe", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": 11.911, + "date": 1483535501468, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e131f", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": 11.613, + "date": 1483535501468, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e133f", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": 6.496, + "date": 1483535501468, + "rssi": 100, + "_id": "586d0047dbab07be5f2e135f", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": -9.038, + "date": 1483535501468, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1380", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": -10.022, + "date": 1483535501468, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13a0", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": -2.869, + "date": 1483535501468, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13c4", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": -3.87, + "date": 1483535501468, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13e5", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": -6.913, + "date": 1483535501468, + "rssi": 100, + "_id": "586d087bdbab07be5f2e1405", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": 2.933, + "date": 1483535501468, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1426", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": -0.658, + "date": 1483535501468, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1446", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": 1.262, + "date": 1483535501468, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e146a", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": 1.936, + "date": 1483535501468, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1489", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": 1.348, + "date": 1483535501468, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14af", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": -0.207, + "date": 1483535501468, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14d0", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": 0.173, + "date": 1483535501468, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14f1", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": -4.631, + "date": 1483535501468, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1513", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": -13.679, + "date": 1483535501468, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1534", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": -20.713, + "date": 1483535501468, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1554", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 2.554, + "date": 1483535201718, + "rssi": 100, + "_id": "586cf364dbab07be5f2e11f1", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 1.314, + "date": 1483535201718, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1214", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 1.686, + "date": 1483535201718, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1235", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 5.385, + "date": 1483535201718, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1255", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 3.904, + "date": 1483535201718, + "rssi": 100, + "_id": "586cf814dbab07be5f2e1279", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 16.247, + "date": 1483535201718, + "rssi": 100, + "_id": "586cf940dbab07be5f2e129c", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 21.457, + "date": 1483535201718, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12bd", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 14.55, + "date": 1483535201718, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12df", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 17.921, + "date": 1483535201718, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e12ff", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 11.911, + "date": 1483535201718, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1320", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 11.613, + "date": 1483535201718, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1340", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 6.496, + "date": 1483535201718, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1360", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -9.038, + "date": 1483535201718, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1381", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -10.022, + "date": 1483535201718, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13a1", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -2.869, + "date": 1483535201718, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13c3", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -3.87, + "date": 1483535201718, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13e6", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -6.913, + "date": 1483535201718, + "rssi": 100, + "_id": "586d087bdbab07be5f2e1406", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 2.933, + "date": 1483535201718, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1425", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -0.658, + "date": 1483535201718, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1447", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 1.262, + "date": 1483535201718, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e146c", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 1.936, + "date": 1483535201718, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e148b", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 1.348, + "date": 1483535201718, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14ae", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -0.207, + "date": 1483535201718, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14d1", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 0.173, + "date": 1483535201718, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14f2", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -4.631, + "date": 1483535201718, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1514", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -13.679, + "date": 1483535201718, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1535", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -20.713, + "date": 1483535201718, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1555", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 1.87, + "date": 1483534901296, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11d2", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 2.554, + "date": 1483534901296, + "rssi": 100, + "_id": "586cf364dbab07be5f2e11f2", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 1.314, + "date": 1483534901296, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1215", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 1.686, + "date": 1483534901296, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1236", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 5.385, + "date": 1483534901296, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1256", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 3.904, + "date": 1483534901296, + "rssi": 100, + "_id": "586cf814dbab07be5f2e127a", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 16.247, + "date": 1483534901296, + "rssi": 100, + "_id": "586cf940dbab07be5f2e129d", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 21.457, + "date": 1483534901296, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12be", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 14.55, + "date": 1483534901296, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12e0", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 17.921, + "date": 1483534901296, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e1300", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 11.911, + "date": 1483534901296, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1321", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 11.613, + "date": 1483534901296, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1341", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 6.496, + "date": 1483534901296, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1361", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": -9.038, + "date": 1483534901296, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1382", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": -10.022, + "date": 1483534901296, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13a2", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": -2.869, + "date": 1483534901296, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13c5", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": -3.87, + "date": 1483534901296, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13e8", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": -6.913, + "date": 1483534901296, + "rssi": 100, + "_id": "586d087bdbab07be5f2e1407", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 2.933, + "date": 1483534901296, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1427", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": -0.658, + "date": 1483534901296, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1448", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 1.262, + "date": 1483534901296, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e146d", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 1.936, + "date": 1483534901296, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e148c", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 1.348, + "date": 1483534901296, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14b0", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": -0.207, + "date": 1483534901296, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14d2", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 0.173, + "date": 1483534901296, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14f3", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": -4.631, + "date": 1483534901296, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1515", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": -13.679, + "date": 1483534901296, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1536", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": -20.713, + "date": 1483534901296, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1556", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 0.069, + "date": 1483534601873, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11b0", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 1.87, + "date": 1483534601873, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11d3", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 2.554, + "date": 1483534601873, + "rssi": 100, + "_id": "586cf364dbab07be5f2e11f3", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 1.314, + "date": 1483534601873, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1216", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 1.686, + "date": 1483534601873, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1237", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 5.385, + "date": 1483534601873, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1257", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 3.904, + "date": 1483534601873, + "rssi": 100, + "_id": "586cf814dbab07be5f2e127b", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 16.247, + "date": 1483534601873, + "rssi": 100, + "_id": "586cf940dbab07be5f2e129e", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 21.457, + "date": 1483534601873, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12bf", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 14.55, + "date": 1483534601873, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12e1", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 17.921, + "date": 1483534601873, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e1301", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 11.911, + "date": 1483534601873, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1322", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 11.613, + "date": 1483534601873, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1343", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 6.496, + "date": 1483534601873, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1362", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": -9.038, + "date": 1483534601873, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1383", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": -10.022, + "date": 1483534601873, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13a4", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": -2.869, + "date": 1483534601873, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13c6", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": -3.87, + "date": 1483534601873, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13e7", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": -6.913, + "date": 1483534601873, + "rssi": 100, + "_id": "586d087bdbab07be5f2e1408", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 2.933, + "date": 1483534601873, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1428", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": -0.658, + "date": 1483534601873, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1449", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 1.262, + "date": 1483534601873, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e146e", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 1.936, + "date": 1483534601873, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e148d", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 1.348, + "date": 1483534601873, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14b1", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": -0.207, + "date": 1483534601873, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14d3", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 0.173, + "date": 1483534601873, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14f4", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": -4.631, + "date": 1483534601873, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1517", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": -13.679, + "date": 1483534601873, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1537", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": -20.713, + "date": 1483534601873, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1558", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 0.207, + "date": 1483534301597, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e1192", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 0.069, + "date": 1483534301597, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11b1", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 1.87, + "date": 1483534301597, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11d4", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 2.554, + "date": 1483534301597, + "rssi": 100, + "_id": "586cf364dbab07be5f2e11f4", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 1.314, + "date": 1483534301597, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1217", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 1.686, + "date": 1483534301597, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1238", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 5.385, + "date": 1483534301597, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1258", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 3.904, + "date": 1483534301597, + "rssi": 100, + "_id": "586cf814dbab07be5f2e127c", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 16.247, + "date": 1483534301597, + "rssi": 100, + "_id": "586cf940dbab07be5f2e129f", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 21.457, + "date": 1483534301597, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12c0", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 14.55, + "date": 1483534301597, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12e2", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 17.921, + "date": 1483534301597, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e1302", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 11.911, + "date": 1483534301597, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1323", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 11.613, + "date": 1483534301597, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1342", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 6.496, + "date": 1483534301597, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1363", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": -9.038, + "date": 1483534301597, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1384", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": -10.022, + "date": 1483534301597, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13a5", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": -2.869, + "date": 1483534301597, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13c7", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": -3.87, + "date": 1483534301597, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13e9", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": -6.913, + "date": 1483534301597, + "rssi": 100, + "_id": "586d087bdbab07be5f2e1409", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 2.933, + "date": 1483534301597, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1429", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": -0.658, + "date": 1483534301597, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e144b", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 1.262, + "date": 1483534301597, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1470", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 1.936, + "date": 1483534301597, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e148f", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 1.348, + "date": 1483534301597, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14b2", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": -0.207, + "date": 1483534301597, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14d4", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 0.173, + "date": 1483534301597, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14f5", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": -4.631, + "date": 1483534301597, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1516", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": -13.679, + "date": 1483534301597, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1538", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": -20.713, + "date": 1483534301597, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1557", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 2.177, + "date": 1483534001427, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e1173", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 0.207, + "date": 1483534001427, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e1193", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 0.069, + "date": 1483534001427, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11b2", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 1.87, + "date": 1483534001427, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11d5", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 2.554, + "date": 1483534001427, + "rssi": 100, + "_id": "586cf364dbab07be5f2e11f5", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 1.314, + "date": 1483534001427, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1218", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 1.686, + "date": 1483534001427, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1239", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 5.385, + "date": 1483534001427, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1259", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 3.904, + "date": 1483534001427, + "rssi": 100, + "_id": "586cf814dbab07be5f2e127d", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 16.247, + "date": 1483534001427, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12a0", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 21.457, + "date": 1483534001427, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12c1", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 14.55, + "date": 1483534001427, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12e4", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 17.921, + "date": 1483534001427, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e1303", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 11.911, + "date": 1483534001427, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1324", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 11.613, + "date": 1483534001427, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1344", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 6.496, + "date": 1483534001427, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1364", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": -9.038, + "date": 1483534001427, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1385", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": -10.022, + "date": 1483534001427, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13a7", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": -2.869, + "date": 1483534001427, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13c8", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": -3.87, + "date": 1483534001427, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13ea", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": -6.913, + "date": 1483534001427, + "rssi": 100, + "_id": "586d087bdbab07be5f2e140a", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 2.933, + "date": 1483534001427, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e142a", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": -0.658, + "date": 1483534001427, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e144a", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 1.262, + "date": 1483534001427, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e146f", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 1.936, + "date": 1483534001427, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e148e", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 1.348, + "date": 1483534001427, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14b3", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": -0.207, + "date": 1483534001427, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14d5", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 0.173, + "date": 1483534001427, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14f6", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": -4.631, + "date": 1483534001427, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1519", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": -13.679, + "date": 1483534001427, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1539", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 2.523, + "date": 1483533701407, + "rssi": 100, + "_id": "586ced88dbab07be5f2e1153", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 2.177, + "date": 1483533701407, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e1174", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 0.207, + "date": 1483533701407, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e1194", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 0.069, + "date": 1483533701407, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11b3", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 1.87, + "date": 1483533701407, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11d6", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 2.554, + "date": 1483533701407, + "rssi": 100, + "_id": "586cf364dbab07be5f2e11f6", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 1.314, + "date": 1483533701407, + "rssi": 100, + "_id": "586cf490dbab07be5f2e121c", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 1.686, + "date": 1483533701407, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e123a", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 5.385, + "date": 1483533701407, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e125a", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 3.904, + "date": 1483533701407, + "rssi": 100, + "_id": "586cf814dbab07be5f2e127e", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 16.247, + "date": 1483533701407, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12a1", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 21.457, + "date": 1483533701407, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12c2", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 14.55, + "date": 1483533701407, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12e3", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 17.921, + "date": 1483533701407, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e1304", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 11.911, + "date": 1483533701407, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1325", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 11.613, + "date": 1483533701407, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1345", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 6.496, + "date": 1483533701407, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1367", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": -9.038, + "date": 1483533701407, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1386", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": -10.022, + "date": 1483533701407, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13a8", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": -2.869, + "date": 1483533701407, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13ca", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": -3.87, + "date": 1483533701407, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13eb", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": -6.913, + "date": 1483533701407, + "rssi": 100, + "_id": "586d087bdbab07be5f2e140b", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 2.933, + "date": 1483533701407, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e142b", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": -0.658, + "date": 1483533701407, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e144c", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 1.262, + "date": 1483533701407, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1471", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 1.936, + "date": 1483533701407, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1491", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 1.348, + "date": 1483533701407, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14b6", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": -0.207, + "date": 1483533701407, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14d6", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 0.173, + "date": 1483533701407, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14f7", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": -4.631, + "date": 1483533701407, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1518", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": -3.597, + "date": 1483533401451, + "rssi": 100, + "_id": "586cec5bdbab07be5f2e1133", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 2.523, + "date": 1483533401451, + "rssi": 100, + "_id": "586ced88dbab07be5f2e1154", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 2.177, + "date": 1483533401451, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e1175", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 0.207, + "date": 1483533401451, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e1195", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 0.069, + "date": 1483533401451, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11b4", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 1.87, + "date": 1483533401451, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11d7", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 2.554, + "date": 1483533401451, + "rssi": 100, + "_id": "586cf364dbab07be5f2e11f7", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 1.314, + "date": 1483533401451, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1219", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 1.686, + "date": 1483533401451, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e123b", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 5.385, + "date": 1483533401451, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e125b", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 3.904, + "date": 1483533401451, + "rssi": 100, + "_id": "586cf814dbab07be5f2e127f", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 16.247, + "date": 1483533401451, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12a2", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 21.457, + "date": 1483533401451, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12c3", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 14.55, + "date": 1483533401451, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12e5", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 17.921, + "date": 1483533401451, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e1305", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 11.911, + "date": 1483533401451, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1326", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 11.613, + "date": 1483533401451, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1346", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 6.496, + "date": 1483533401451, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1365", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": -9.038, + "date": 1483533401451, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1387", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": -10.022, + "date": 1483533401451, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13ac", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": -2.869, + "date": 1483533401451, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13c9", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": -3.87, + "date": 1483533401451, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13ec", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": -6.913, + "date": 1483533401451, + "rssi": 100, + "_id": "586d087bdbab07be5f2e140c", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 2.933, + "date": 1483533401451, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e142c", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": -0.658, + "date": 1483533401451, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e144d", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 1.262, + "date": 1483533401451, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1472", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 1.936, + "date": 1483533401451, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1492", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 1.348, + "date": 1483533401451, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14b7", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": -0.207, + "date": 1483533401451, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14d7", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 0.173, + "date": 1483533401451, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14f8", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 1.658, + "date": 1483533101684, + "rssi": 100, + "_id": "586ceb30dbab07be5f2e1114", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": -3.597, + "date": 1483533101684, + "rssi": 100, + "_id": "586cec5bdbab07be5f2e1134", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 2.523, + "date": 1483533101684, + "rssi": 100, + "_id": "586ced88dbab07be5f2e1155", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 2.177, + "date": 1483533101684, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e1176", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 0.207, + "date": 1483533101684, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e1196", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 0.069, + "date": 1483533101684, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11b5", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 1.87, + "date": 1483533101684, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11d8", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 2.554, + "date": 1483533101684, + "rssi": 100, + "_id": "586cf364dbab07be5f2e11f8", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 1.314, + "date": 1483533101684, + "rssi": 100, + "_id": "586cf490dbab07be5f2e121b", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 1.686, + "date": 1483533101684, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e123c", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 5.385, + "date": 1483533101684, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e125e", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 3.904, + "date": 1483533101684, + "rssi": 100, + "_id": "586cf814dbab07be5f2e1280", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 16.247, + "date": 1483533101684, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12a3", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 21.457, + "date": 1483533101684, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12c4", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 14.55, + "date": 1483533101684, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12e6", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 17.921, + "date": 1483533101684, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e1306", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 11.911, + "date": 1483533101684, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1328", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 11.613, + "date": 1483533101684, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1347", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 6.496, + "date": 1483533101684, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1368", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": -9.038, + "date": 1483533101684, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1388", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": -10.022, + "date": 1483533101684, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13a9", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": -2.869, + "date": 1483533101684, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13cc", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": -3.87, + "date": 1483533101684, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13ed", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": -6.913, + "date": 1483533101684, + "rssi": 100, + "_id": "586d087bdbab07be5f2e140d", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 2.933, + "date": 1483533101684, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e142d", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": -0.658, + "date": 1483533101684, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e144e", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 1.262, + "date": 1483533101684, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1473", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 1.936, + "date": 1483533101684, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1493", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 1.348, + "date": 1483533101684, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14b4", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": -0.207, + "date": 1483533101684, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14d8", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 1.935, + "date": 1483532801480, + "rssi": 100, + "_id": "586cea04dbab07be5f2e10f3", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 1.658, + "date": 1483532801480, + "rssi": 100, + "_id": "586ceb30dbab07be5f2e1115", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": -3.597, + "date": 1483532801480, + "rssi": 100, + "_id": "586cec5bdbab07be5f2e1135", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 2.523, + "date": 1483532801480, + "rssi": 100, + "_id": "586ced88dbab07be5f2e1156", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 2.177, + "date": 1483532801480, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e1177", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 0.207, + "date": 1483532801480, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e1197", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 0.069, + "date": 1483532801480, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11b6", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 1.87, + "date": 1483532801480, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11d9", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 2.554, + "date": 1483532801480, + "rssi": 100, + "_id": "586cf364dbab07be5f2e11f9", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 1.314, + "date": 1483532801480, + "rssi": 100, + "_id": "586cf490dbab07be5f2e121a", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 1.686, + "date": 1483532801480, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e123d", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 5.385, + "date": 1483532801480, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e125c", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 3.904, + "date": 1483532801480, + "rssi": 100, + "_id": "586cf814dbab07be5f2e1282", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 16.247, + "date": 1483532801480, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12a4", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 21.457, + "date": 1483532801480, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12c5", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 14.55, + "date": 1483532801480, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12e7", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 17.921, + "date": 1483532801480, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e1307", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 11.911, + "date": 1483532801480, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1327", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 11.613, + "date": 1483532801480, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1348", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 6.496, + "date": 1483532801480, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1366", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": -9.038, + "date": 1483532801480, + "rssi": 100, + "_id": "586d029fdbab07be5f2e138a", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": -10.022, + "date": 1483532801480, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13ad", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": -2.869, + "date": 1483532801480, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13cb", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": -3.87, + "date": 1483532801480, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13ee", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": -6.913, + "date": 1483532801480, + "rssi": 100, + "_id": "586d087bdbab07be5f2e140e", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 2.933, + "date": 1483532801480, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e142e", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": -0.658, + "date": 1483532801480, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e144f", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 1.262, + "date": 1483532801480, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1474", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 1.936, + "date": 1483532801480, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1494", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 1.348, + "date": 1483532801480, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14b5", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": -3.417, + "date": 1483532501420, + "rssi": 100, + "_id": "586ce8d8dbab07be5f2e10d4", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 1.935, + "date": 1483532501420, + "rssi": 100, + "_id": "586cea04dbab07be5f2e10f4", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 1.658, + "date": 1483532501420, + "rssi": 100, + "_id": "586ceb30dbab07be5f2e1116", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": -3.597, + "date": 1483532501420, + "rssi": 100, + "_id": "586cec5bdbab07be5f2e1136", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 2.523, + "date": 1483532501420, + "rssi": 100, + "_id": "586ced88dbab07be5f2e1157", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 2.177, + "date": 1483532501420, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e1178", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 0.207, + "date": 1483532501420, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e1198", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 0.069, + "date": 1483532501420, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11b7", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 1.87, + "date": 1483532501420, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11da", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 2.554, + "date": 1483532501420, + "rssi": 100, + "_id": "586cf364dbab07be5f2e11fa", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 1.314, + "date": 1483532501420, + "rssi": 100, + "_id": "586cf490dbab07be5f2e121d", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 1.686, + "date": 1483532501420, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1241", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 5.385, + "date": 1483532501420, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e125d", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 3.904, + "date": 1483532501420, + "rssi": 100, + "_id": "586cf814dbab07be5f2e1281", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 16.247, + "date": 1483532501420, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12a5", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 21.457, + "date": 1483532501420, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12c6", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 14.55, + "date": 1483532501420, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12e8", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 17.921, + "date": 1483532501420, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e1308", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 11.911, + "date": 1483532501420, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1329", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 11.613, + "date": 1483532501420, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1349", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 6.496, + "date": 1483532501420, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1369", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": -9.038, + "date": 1483532501420, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1389", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": -10.022, + "date": 1483532501420, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13aa", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": -2.869, + "date": 1483532501420, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13cd", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": -3.87, + "date": 1483532501420, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13ef", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": -6.913, + "date": 1483532501420, + "rssi": 100, + "_id": "586d087bdbab07be5f2e140f", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 2.933, + "date": 1483532501420, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e142f", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": -0.658, + "date": 1483532501420, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1450", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 1.262, + "date": 1483532501420, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1475", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 1.936, + "date": 1483532501420, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1495", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": -1.417, + "date": 1483532201043, + "rssi": 100, + "_id": "586ce7acdbab07be5f2e10cb", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": -3.417, + "date": 1483532201043, + "rssi": 100, + "_id": "586ce8d8dbab07be5f2e10d7", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 1.935, + "date": 1483532201043, + "rssi": 100, + "_id": "586cea04dbab07be5f2e10f7", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 1.658, + "date": 1483532201043, + "rssi": 100, + "_id": "586ceb30dbab07be5f2e1118", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": -3.597, + "date": 1483532201043, + "rssi": 100, + "_id": "586cec5bdbab07be5f2e1137", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 2.523, + "date": 1483532201043, + "rssi": 100, + "_id": "586ced88dbab07be5f2e1158", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 2.177, + "date": 1483532201043, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e117b", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 0.207, + "date": 1483532201043, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e1199", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 0.069, + "date": 1483532201043, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11b8", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 1.87, + "date": 1483532201043, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11db", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 2.554, + "date": 1483532201043, + "rssi": 100, + "_id": "586cf364dbab07be5f2e11fb", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 1.314, + "date": 1483532201043, + "rssi": 100, + "_id": "586cf490dbab07be5f2e121e", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 1.686, + "date": 1483532201043, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e123e", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 5.385, + "date": 1483532201043, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e125f", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 3.904, + "date": 1483532201043, + "rssi": 100, + "_id": "586cf814dbab07be5f2e1283", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 16.247, + "date": 1483532201043, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12a6", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 21.457, + "date": 1483532201043, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12c7", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 14.55, + "date": 1483532201043, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12e9", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 17.921, + "date": 1483532201043, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e1309", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 11.911, + "date": 1483532201043, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e132b", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 11.613, + "date": 1483532201043, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e134a", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 6.496, + "date": 1483532201043, + "rssi": 100, + "_id": "586d0047dbab07be5f2e136a", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": -9.038, + "date": 1483532201043, + "rssi": 100, + "_id": "586d029fdbab07be5f2e138b", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": -10.022, + "date": 1483532201043, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13ab", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": -2.869, + "date": 1483532201043, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13ce", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": -3.87, + "date": 1483532201043, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13f2", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": -6.913, + "date": 1483532201043, + "rssi": 100, + "_id": "586d087bdbab07be5f2e1410", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 2.933, + "date": 1483532201043, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1430", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": -0.658, + "date": 1483532201043, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1451", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 1.262, + "date": 1483532201043, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1476", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 6.609, + "date": 1483531901044, + "rssi": 100, + "_id": "586ce67fdbab07be5f2e10ac", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": -1.417, + "date": 1483531901044, + "rssi": 100, + "_id": "586ce7acdbab07be5f2e10cc", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": -3.417, + "date": 1483531901044, + "rssi": 100, + "_id": "586ce8d8dbab07be5f2e10d5", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 1.935, + "date": 1483531901044, + "rssi": 100, + "_id": "586cea04dbab07be5f2e10f5", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 1.658, + "date": 1483531901044, + "rssi": 100, + "_id": "586ceb30dbab07be5f2e1117", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": -3.597, + "date": 1483531901044, + "rssi": 100, + "_id": "586cec5bdbab07be5f2e1138", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 2.523, + "date": 1483531901044, + "rssi": 100, + "_id": "586ced88dbab07be5f2e1159", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 2.177, + "date": 1483531901044, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e1179", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 0.207, + "date": 1483531901044, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e119a", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 0.069, + "date": 1483531901044, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11b9", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 1.87, + "date": 1483531901044, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11dc", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 2.554, + "date": 1483531901044, + "rssi": 100, + "_id": "586cf364dbab07be5f2e11fc", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 1.314, + "date": 1483531901044, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1221", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 1.686, + "date": 1483531901044, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e123f", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 5.385, + "date": 1483531901044, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1260", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 3.904, + "date": 1483531901044, + "rssi": 100, + "_id": "586cf814dbab07be5f2e1284", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 16.247, + "date": 1483531901044, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12a7", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 21.457, + "date": 1483531901044, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12c8", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 14.55, + "date": 1483531901044, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12ea", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 17.921, + "date": 1483531901044, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e130a", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 11.911, + "date": 1483531901044, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e132a", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 11.613, + "date": 1483531901044, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e134b", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 6.496, + "date": 1483531901044, + "rssi": 100, + "_id": "586d0047dbab07be5f2e136b", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": -9.038, + "date": 1483531901044, + "rssi": 100, + "_id": "586d029fdbab07be5f2e138c", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": -10.022, + "date": 1483531901044, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13ae", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": -2.869, + "date": 1483531901044, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13cf", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": -3.87, + "date": 1483531901044, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13f0", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": -6.913, + "date": 1483531901044, + "rssi": 100, + "_id": "586d087bdbab07be5f2e1411", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 2.933, + "date": 1483531901044, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1431", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": -0.658, + "date": 1483531901044, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1452", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 1.069, + "date": 1483531601420, + "rssi": 100, + "_id": "586ce553dbab07be5f2e108d", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 6.609, + "date": 1483531601420, + "rssi": 100, + "_id": "586ce67fdbab07be5f2e10ad", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": -1.417, + "date": 1483531601420, + "rssi": 100, + "_id": "586ce7acdbab07be5f2e10cd", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": -3.417, + "date": 1483531601420, + "rssi": 100, + "_id": "586ce8d8dbab07be5f2e10d6", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 1.935, + "date": 1483531601420, + "rssi": 100, + "_id": "586cea04dbab07be5f2e10f6", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 1.658, + "date": 1483531601420, + "rssi": 100, + "_id": "586ceb30dbab07be5f2e1119", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": -3.597, + "date": 1483531601420, + "rssi": 100, + "_id": "586cec5bdbab07be5f2e1139", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 2.523, + "date": 1483531601420, + "rssi": 100, + "_id": "586ced88dbab07be5f2e115a", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 2.177, + "date": 1483531601420, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e117a", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 0.207, + "date": 1483531601420, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e119b", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 0.069, + "date": 1483531601420, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11ba", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 1.87, + "date": 1483531601420, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11dd", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 2.554, + "date": 1483531601420, + "rssi": 100, + "_id": "586cf364dbab07be5f2e11fd", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 1.314, + "date": 1483531601420, + "rssi": 100, + "_id": "586cf490dbab07be5f2e121f", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 1.686, + "date": 1483531601420, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1240", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 5.385, + "date": 1483531601420, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1261", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 3.904, + "date": 1483531601420, + "rssi": 100, + "_id": "586cf814dbab07be5f2e1285", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 16.247, + "date": 1483531601420, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12a8", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 21.457, + "date": 1483531601420, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12c9", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 14.55, + "date": 1483531601420, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12eb", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 17.921, + "date": 1483531601420, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e130b", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 11.911, + "date": 1483531601420, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e132c", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 11.613, + "date": 1483531601420, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e134c", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 6.496, + "date": 1483531601420, + "rssi": 100, + "_id": "586d0047dbab07be5f2e136c", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": -9.038, + "date": 1483531601420, + "rssi": 100, + "_id": "586d029fdbab07be5f2e138d", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": -10.022, + "date": 1483531601420, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13af", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": -2.869, + "date": 1483531601420, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13d0", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": -3.87, + "date": 1483531601420, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13f1", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": -6.913, + "date": 1483531601420, + "rssi": 100, + "_id": "586d087bdbab07be5f2e1412", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 2.933, + "date": 1483531601420, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1432", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": -3.331, + "date": 1483531300848, + "rssi": 100, + "_id": "586ce42ddbab07be5f2e106d", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 1.069, + "date": 1483531300848, + "rssi": 100, + "_id": "586ce553dbab07be5f2e108e", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 6.609, + "date": 1483531300848, + "rssi": 100, + "_id": "586ce67fdbab07be5f2e10ae", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": -1.417, + "date": 1483531300848, + "rssi": 100, + "_id": "586ce7acdbab07be5f2e10ce", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": -3.417, + "date": 1483531300848, + "rssi": 100, + "_id": "586ce8d8dbab07be5f2e10d8", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 1.935, + "date": 1483531300848, + "rssi": 100, + "_id": "586cea04dbab07be5f2e10f8", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 1.658, + "date": 1483531300848, + "rssi": 100, + "_id": "586ceb30dbab07be5f2e111a", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": -3.597, + "date": 1483531300848, + "rssi": 100, + "_id": "586cec5bdbab07be5f2e113a", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 2.523, + "date": 1483531300848, + "rssi": 100, + "_id": "586ced88dbab07be5f2e115b", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 2.177, + "date": 1483531300848, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e117c", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 0.207, + "date": 1483531300848, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e119c", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 0.069, + "date": 1483531300848, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11bb", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 1.87, + "date": 1483531300848, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11de", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 2.554, + "date": 1483531300848, + "rssi": 100, + "_id": "586cf364dbab07be5f2e11fe", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 1.314, + "date": 1483531300848, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1220", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 1.686, + "date": 1483531300848, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1242", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 5.385, + "date": 1483531300848, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1262", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 3.904, + "date": 1483531300848, + "rssi": 100, + "_id": "586cf814dbab07be5f2e1286", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 16.247, + "date": 1483531300848, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12a9", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 21.457, + "date": 1483531300848, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12ca", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 14.55, + "date": 1483531300848, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12ec", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 17.921, + "date": 1483531300848, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e130c", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 11.911, + "date": 1483531300848, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e132d", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 11.613, + "date": 1483531300848, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e134e", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 6.496, + "date": 1483531300848, + "rssi": 100, + "_id": "586d0047dbab07be5f2e136d", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": -9.038, + "date": 1483531300848, + "rssi": 100, + "_id": "586d029fdbab07be5f2e138f", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": -10.022, + "date": 1483531300848, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13b0", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": -2.869, + "date": 1483531300848, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13d1", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": -3.87, + "date": 1483531300848, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13f3", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": -6.913, + "date": 1483531300848, + "rssi": 100, + "_id": "586d087bdbab07be5f2e1413", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 1.516, + "date": 1483531002068, + "rssi": 100, + "_id": "586ce2fddbab07be5f2e104d", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": -3.331, + "date": 1483531002068, + "rssi": 100, + "_id": "586ce42ddbab07be5f2e106e", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 1.069, + "date": 1483531002068, + "rssi": 100, + "_id": "586ce553dbab07be5f2e108f", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 6.609, + "date": 1483531002068, + "rssi": 100, + "_id": "586ce67fdbab07be5f2e10af", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": -1.417, + "date": 1483531002068, + "rssi": 100, + "_id": "586ce7acdbab07be5f2e10cf", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": -3.417, + "date": 1483531002068, + "rssi": 100, + "_id": "586ce8d8dbab07be5f2e10d9", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 1.935, + "date": 1483531002068, + "rssi": 100, + "_id": "586cea04dbab07be5f2e10f9", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 1.658, + "date": 1483531002068, + "rssi": 100, + "_id": "586ceb30dbab07be5f2e111b", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": -3.597, + "date": 1483531002068, + "rssi": 100, + "_id": "586cec5bdbab07be5f2e113b", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 2.523, + "date": 1483531002068, + "rssi": 100, + "_id": "586ced88dbab07be5f2e115c", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 2.177, + "date": 1483531002068, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e117d", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 0.207, + "date": 1483531002068, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e119d", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 0.069, + "date": 1483531002068, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11bc", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 1.87, + "date": 1483531002068, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11df", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 2.554, + "date": 1483531002068, + "rssi": 100, + "_id": "586cf364dbab07be5f2e11ff", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 1.314, + "date": 1483531002068, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1222", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 1.686, + "date": 1483531002068, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1243", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 5.385, + "date": 1483531002068, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1263", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 3.904, + "date": 1483531002068, + "rssi": 100, + "_id": "586cf814dbab07be5f2e1287", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 16.247, + "date": 1483531002068, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12aa", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 21.457, + "date": 1483531002068, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12cb", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 14.55, + "date": 1483531002068, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12ed", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 17.921, + "date": 1483531002068, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e130d", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 11.911, + "date": 1483531002068, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e132e", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 11.613, + "date": 1483531002068, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e134d", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 6.496, + "date": 1483531002068, + "rssi": 100, + "_id": "586d0047dbab07be5f2e136e", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": -9.038, + "date": 1483531002068, + "rssi": 100, + "_id": "586d029fdbab07be5f2e138e", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": -10.022, + "date": 1483531002068, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13b1", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": -2.869, + "date": 1483531002068, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13d2", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": -3.87, + "date": 1483531002068, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13f4", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": -1.417, + "date": 1483530701141, + "rssi": 100, + "_id": "586ce1d1dbab07be5f2e102e", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 1.516, + "date": 1483530701141, + "rssi": 100, + "_id": "586ce2fddbab07be5f2e104e", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": -3.331, + "date": 1483530701141, + "rssi": 100, + "_id": "586ce42ddbab07be5f2e106f", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 1.069, + "date": 1483530701141, + "rssi": 100, + "_id": "586ce553dbab07be5f2e1090", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 6.609, + "date": 1483530701141, + "rssi": 100, + "_id": "586ce67fdbab07be5f2e10b0", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": -3.417, + "date": 1483530701141, + "rssi": 100, + "_id": "586ce8d8dbab07be5f2e10da", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 1.935, + "date": 1483530701141, + "rssi": 100, + "_id": "586cea04dbab07be5f2e10fa", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 1.658, + "date": 1483530701141, + "rssi": 100, + "_id": "586ceb30dbab07be5f2e111d", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": -3.597, + "date": 1483530701141, + "rssi": 100, + "_id": "586cec5bdbab07be5f2e113c", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 2.523, + "date": 1483530701141, + "rssi": 100, + "_id": "586ced88dbab07be5f2e115d", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 2.177, + "date": 1483530701141, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e117e", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 0.207, + "date": 1483530701141, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e119e", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 0.069, + "date": 1483530701141, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11be", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 1.87, + "date": 1483530701141, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11e0", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 2.554, + "date": 1483530701141, + "rssi": 100, + "_id": "586cf364dbab07be5f2e1200", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 1.314, + "date": 1483530701141, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1223", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 1.686, + "date": 1483530701141, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1245", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 5.385, + "date": 1483530701141, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1264", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 3.904, + "date": 1483530701141, + "rssi": 100, + "_id": "586cf814dbab07be5f2e1288", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 16.247, + "date": 1483530701141, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12ab", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 21.457, + "date": 1483530701141, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12cc", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 14.55, + "date": 1483530701141, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12ee", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 17.921, + "date": 1483530701141, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e130e", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 11.911, + "date": 1483530701141, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e132f", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 11.613, + "date": 1483530701141, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1350", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 6.496, + "date": 1483530701141, + "rssi": 100, + "_id": "586d0047dbab07be5f2e136f", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": -9.038, + "date": 1483530701141, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1390", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": -10.022, + "date": 1483530701141, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13b3", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": -2.869, + "date": 1483530701141, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13d3", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": -2.218, + "date": 1483530401170, + "rssi": 100, + "_id": "586ce0a4dbab07be5f2e100e", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": -1.417, + "date": 1483530401170, + "rssi": 100, + "_id": "586ce1d1dbab07be5f2e102f", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 1.516, + "date": 1483530401170, + "rssi": 100, + "_id": "586ce2fddbab07be5f2e104f", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": -3.331, + "date": 1483530401170, + "rssi": 100, + "_id": "586ce42ddbab07be5f2e1070", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 1.069, + "date": 1483530401170, + "rssi": 100, + "_id": "586ce553dbab07be5f2e1091", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 6.609, + "date": 1483530401170, + "rssi": 100, + "_id": "586ce680dbab07be5f2e10b1", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": -3.417, + "date": 1483530401170, + "rssi": 100, + "_id": "586ce8d8dbab07be5f2e10db", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 1.935, + "date": 1483530401170, + "rssi": 100, + "_id": "586cea04dbab07be5f2e10fb", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 1.658, + "date": 1483530401170, + "rssi": 100, + "_id": "586ceb30dbab07be5f2e111c", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": -3.597, + "date": 1483530401170, + "rssi": 100, + "_id": "586cec5bdbab07be5f2e113d", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 2.523, + "date": 1483530401170, + "rssi": 100, + "_id": "586ced88dbab07be5f2e115e", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 2.177, + "date": 1483530401170, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e117f", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 0.207, + "date": 1483530401170, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e119f", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 0.069, + "date": 1483530401170, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11bd", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 1.87, + "date": 1483530401170, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11e1", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 2.554, + "date": 1483530401170, + "rssi": 100, + "_id": "586cf364dbab07be5f2e1201", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 1.314, + "date": 1483530401170, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1224", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 1.686, + "date": 1483530401170, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1244", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 5.385, + "date": 1483530401170, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1265", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 3.904, + "date": 1483530401170, + "rssi": 100, + "_id": "586cf814dbab07be5f2e1289", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 16.247, + "date": 1483530401170, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12ac", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 21.457, + "date": 1483530401170, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12cd", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 14.55, + "date": 1483530401170, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12ef", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 17.921, + "date": 1483530401170, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e130f", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 11.911, + "date": 1483530401170, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1330", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 11.613, + "date": 1483530401170, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e134f", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 6.496, + "date": 1483530401170, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1370", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": -9.038, + "date": 1483530401170, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1391", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": -10.022, + "date": 1483530401170, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13b2", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": -0.207, + "date": 1483530102052, + "rssi": 100, + "_id": "586cdf78dbab07be5f2e0fef", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": -2.218, + "date": 1483530102052, + "rssi": 100, + "_id": "586ce0a4dbab07be5f2e100f", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": -1.417, + "date": 1483530102052, + "rssi": 100, + "_id": "586ce1d1dbab07be5f2e1030", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 1.516, + "date": 1483530102052, + "rssi": 100, + "_id": "586ce2fddbab07be5f2e1051", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": -3.331, + "date": 1483530102052, + "rssi": 100, + "_id": "586ce42ddbab07be5f2e1071", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 1.069, + "date": 1483530102052, + "rssi": 100, + "_id": "586ce553dbab07be5f2e1092", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 6.609, + "date": 1483530102052, + "rssi": 100, + "_id": "586ce680dbab07be5f2e10b2", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": -3.417, + "date": 1483530102052, + "rssi": 100, + "_id": "586ce8d8dbab07be5f2e10dc", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 1.935, + "date": 1483530102052, + "rssi": 100, + "_id": "586cea04dbab07be5f2e10fc", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 1.658, + "date": 1483530102052, + "rssi": 100, + "_id": "586ceb30dbab07be5f2e111f", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": -3.597, + "date": 1483530102052, + "rssi": 100, + "_id": "586cec5bdbab07be5f2e113e", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 2.523, + "date": 1483530102052, + "rssi": 100, + "_id": "586ced88dbab07be5f2e115f", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 2.177, + "date": 1483530102052, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e1180", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 0.207, + "date": 1483530102052, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e11a0", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 0.069, + "date": 1483530102052, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11bf", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 1.87, + "date": 1483530102052, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11e2", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 2.554, + "date": 1483530102052, + "rssi": 100, + "_id": "586cf364dbab07be5f2e1202", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 1.314, + "date": 1483530102052, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1225", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 1.686, + "date": 1483530102052, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1246", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 5.385, + "date": 1483530102052, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1266", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 3.904, + "date": 1483530102052, + "rssi": 100, + "_id": "586cf814dbab07be5f2e128a", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 16.247, + "date": 1483530102052, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12ad", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 21.457, + "date": 1483530102052, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12ce", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 14.55, + "date": 1483530102052, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12f0", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 17.921, + "date": 1483530102052, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e1310", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 11.911, + "date": 1483530102052, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1331", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 11.613, + "date": 1483530102052, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1351", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 6.496, + "date": 1483530102052, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1371", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": -9.038, + "date": 1483530102052, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1392", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": -2.237, + "date": 1483529802048, + "rssi": 100, + "_id": "586cde4cdbab07be5f2e0fd1", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": -0.207, + "date": 1483529802048, + "rssi": 100, + "_id": "586cdf78dbab07be5f2e0ff0", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": -2.218, + "date": 1483529802048, + "rssi": 100, + "_id": "586ce0a4dbab07be5f2e1010", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": -1.417, + "date": 1483529802048, + "rssi": 100, + "_id": "586ce1d1dbab07be5f2e1031", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 1.516, + "date": 1483529802048, + "rssi": 100, + "_id": "586ce2fddbab07be5f2e1050", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": -3.331, + "date": 1483529802048, + "rssi": 100, + "_id": "586ce42ddbab07be5f2e1072", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 1.069, + "date": 1483529802048, + "rssi": 100, + "_id": "586ce553dbab07be5f2e1093", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 6.609, + "date": 1483529802048, + "rssi": 100, + "_id": "586ce680dbab07be5f2e10b3", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": -3.417, + "date": 1483529802048, + "rssi": 100, + "_id": "586ce8d8dbab07be5f2e10dd", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 1.935, + "date": 1483529802048, + "rssi": 100, + "_id": "586cea04dbab07be5f2e10fd", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 1.658, + "date": 1483529802048, + "rssi": 100, + "_id": "586ceb30dbab07be5f2e111e", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": -3.597, + "date": 1483529802048, + "rssi": 100, + "_id": "586cec5bdbab07be5f2e113f", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 2.523, + "date": 1483529802048, + "rssi": 100, + "_id": "586ced88dbab07be5f2e1160", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 2.177, + "date": 1483529802048, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e1182", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 0.207, + "date": 1483529802048, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e11a1", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 0.069, + "date": 1483529802048, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11c0", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 1.87, + "date": 1483529802048, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11e3", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 2.554, + "date": 1483529802048, + "rssi": 100, + "_id": "586cf364dbab07be5f2e1203", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 1.314, + "date": 1483529802048, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1226", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 1.686, + "date": 1483529802048, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1247", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 5.385, + "date": 1483529802048, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1267", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 3.904, + "date": 1483529802048, + "rssi": 100, + "_id": "586cf814dbab07be5f2e128b", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 16.247, + "date": 1483529802048, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12ae", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 21.457, + "date": 1483529802048, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12cf", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 14.55, + "date": 1483529802048, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12f1", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 17.921, + "date": 1483529802048, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e1311", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 11.911, + "date": 1483529802048, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1332", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 11.613, + "date": 1483529802048, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1353", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 6.496, + "date": 1483529802048, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1372", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": -4.355, + "date": 1483529500848, + "rssi": 100, + "_id": "586cdd20dbab07be5f2e0fb2", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": -2.237, + "date": 1483529500848, + "rssi": 100, + "_id": "586cde4cdbab07be5f2e0fd2", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": -0.207, + "date": 1483529500848, + "rssi": 100, + "_id": "586cdf78dbab07be5f2e0ff1", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": -2.218, + "date": 1483529500848, + "rssi": 100, + "_id": "586ce0a4dbab07be5f2e1011", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": -1.417, + "date": 1483529500848, + "rssi": 100, + "_id": "586ce1d1dbab07be5f2e1032", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 1.516, + "date": 1483529500848, + "rssi": 100, + "_id": "586ce2fddbab07be5f2e1052", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": -3.331, + "date": 1483529500848, + "rssi": 100, + "_id": "586ce42ddbab07be5f2e1073", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 1.069, + "date": 1483529500848, + "rssi": 100, + "_id": "586ce553dbab07be5f2e1094", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 6.609, + "date": 1483529500848, + "rssi": 100, + "_id": "586ce680dbab07be5f2e10b4", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": -3.417, + "date": 1483529500848, + "rssi": 100, + "_id": "586ce8d8dbab07be5f2e10df", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 1.935, + "date": 1483529500848, + "rssi": 100, + "_id": "586cea04dbab07be5f2e10fe", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 1.658, + "date": 1483529500848, + "rssi": 100, + "_id": "586ceb30dbab07be5f2e1120", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": -3.597, + "date": 1483529500848, + "rssi": 100, + "_id": "586cec5bdbab07be5f2e1140", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 2.523, + "date": 1483529500848, + "rssi": 100, + "_id": "586ced88dbab07be5f2e1161", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 2.177, + "date": 1483529500848, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e1181", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 0.207, + "date": 1483529500848, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e11a2", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 0.069, + "date": 1483529500848, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11c1", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 1.87, + "date": 1483529500848, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11e4", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 2.554, + "date": 1483529500848, + "rssi": 100, + "_id": "586cf364dbab07be5f2e1204", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 1.314, + "date": 1483529500848, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1229", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 1.686, + "date": 1483529500848, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1248", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 5.385, + "date": 1483529500848, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1268", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 3.904, + "date": 1483529500848, + "rssi": 100, + "_id": "586cf814dbab07be5f2e128c", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 16.247, + "date": 1483529500848, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12af", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 21.457, + "date": 1483529500848, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12d0", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 14.55, + "date": 1483529500848, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12f2", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 17.921, + "date": 1483529500848, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e1312", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 11.911, + "date": 1483529500848, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1333", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 11.613, + "date": 1483529500848, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1352", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 1.002, + "date": 1483529200876, + "rssi": 100, + "_id": "586cdbf3dbab07be5f2e0f93", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -4.355, + "date": 1483529200876, + "rssi": 100, + "_id": "586cdd20dbab07be5f2e0fb3", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -2.237, + "date": 1483529200876, + "rssi": 100, + "_id": "586cde4cdbab07be5f2e0fd3", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -0.207, + "date": 1483529200876, + "rssi": 100, + "_id": "586cdf78dbab07be5f2e0ff2", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -2.218, + "date": 1483529200876, + "rssi": 100, + "_id": "586ce0a4dbab07be5f2e1012", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -1.417, + "date": 1483529200876, + "rssi": 100, + "_id": "586ce1d1dbab07be5f2e1033", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 1.516, + "date": 1483529200876, + "rssi": 100, + "_id": "586ce2fddbab07be5f2e1053", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -3.331, + "date": 1483529200876, + "rssi": 100, + "_id": "586ce42ddbab07be5f2e1074", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 1.069, + "date": 1483529200876, + "rssi": 100, + "_id": "586ce553dbab07be5f2e1095", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 6.609, + "date": 1483529200876, + "rssi": 100, + "_id": "586ce680dbab07be5f2e10b5", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -3.417, + "date": 1483529200876, + "rssi": 100, + "_id": "586ce8d8dbab07be5f2e10de", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 1.935, + "date": 1483529200876, + "rssi": 100, + "_id": "586cea04dbab07be5f2e10ff", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 1.658, + "date": 1483529200876, + "rssi": 100, + "_id": "586ceb30dbab07be5f2e1121", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -3.597, + "date": 1483529200876, + "rssi": 100, + "_id": "586cec5bdbab07be5f2e1141", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 2.523, + "date": 1483529200876, + "rssi": 100, + "_id": "586ced88dbab07be5f2e1162", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 2.177, + "date": 1483529200876, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e1183", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 0.207, + "date": 1483529200876, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e11a3", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 0.069, + "date": 1483529200876, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11c2", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 1.87, + "date": 1483529200876, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11e5", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 2.554, + "date": 1483529200876, + "rssi": 100, + "_id": "586cf364dbab07be5f2e1205", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 1.314, + "date": 1483529200876, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1228", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 1.686, + "date": 1483529200876, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1249", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 5.385, + "date": 1483529200876, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1269", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 3.904, + "date": 1483529200876, + "rssi": 100, + "_id": "586cf814dbab07be5f2e128d", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 16.247, + "date": 1483529200876, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12b0", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 21.457, + "date": 1483529200876, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12d1", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 14.55, + "date": 1483529200876, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12f3", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 17.921, + "date": 1483529200876, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e1313", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 11.911, + "date": 1483529200876, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1334", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 4.079, + "date": 1483528900865, + "rssi": 100, + "_id": "586cdac7dbab07be5f2e0f6e", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 1.002, + "date": 1483528900865, + "rssi": 100, + "_id": "586cdbf3dbab07be5f2e0f94", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": -4.355, + "date": 1483528900865, + "rssi": 100, + "_id": "586cdd20dbab07be5f2e0fb4", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": -2.237, + "date": 1483528900865, + "rssi": 100, + "_id": "586cde4cdbab07be5f2e0fd4", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": -0.207, + "date": 1483528900865, + "rssi": 100, + "_id": "586cdf78dbab07be5f2e0ff3", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": -2.218, + "date": 1483528900865, + "rssi": 100, + "_id": "586ce0a4dbab07be5f2e1013", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": -1.417, + "date": 1483528900865, + "rssi": 100, + "_id": "586ce1d1dbab07be5f2e1034", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 1.516, + "date": 1483528900865, + "rssi": 100, + "_id": "586ce2fddbab07be5f2e1054", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": -3.331, + "date": 1483528900865, + "rssi": 100, + "_id": "586ce42ddbab07be5f2e1075", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 1.069, + "date": 1483528900865, + "rssi": 100, + "_id": "586ce553dbab07be5f2e10a1", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 6.609, + "date": 1483528900865, + "rssi": 100, + "_id": "586ce680dbab07be5f2e10b6", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": -3.417, + "date": 1483528900865, + "rssi": 100, + "_id": "586ce8d8dbab07be5f2e10e0", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 1.935, + "date": 1483528900865, + "rssi": 100, + "_id": "586cea04dbab07be5f2e1100", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 1.658, + "date": 1483528900865, + "rssi": 100, + "_id": "586ceb30dbab07be5f2e1122", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": -3.597, + "date": 1483528900865, + "rssi": 100, + "_id": "586cec5bdbab07be5f2e1142", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 2.523, + "date": 1483528900865, + "rssi": 100, + "_id": "586ced88dbab07be5f2e1163", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 2.177, + "date": 1483528900865, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e1184", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 0.207, + "date": 1483528900865, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e11a4", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 0.069, + "date": 1483528900865, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11c3", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 1.87, + "date": 1483528900865, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11e7", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 2.554, + "date": 1483528900865, + "rssi": 100, + "_id": "586cf364dbab07be5f2e1206", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 1.314, + "date": 1483528900865, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1227", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 1.686, + "date": 1483528900865, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e124a", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 5.385, + "date": 1483528900865, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e126a", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 3.904, + "date": 1483528900865, + "rssi": 100, + "_id": "586cf814dbab07be5f2e128e", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 16.247, + "date": 1483528900865, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12b1", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 21.457, + "date": 1483528900865, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12d2", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 14.55, + "date": 1483528900865, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12f4", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 17.921, + "date": 1483528900865, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e1314", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 161184, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:16:40.916000+01:00", + "sgv": 118, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163488, + "delta": 1.071, + "date": 1483528600916, + "rssi": 100, + "_id": "586cd99cdbab07be5f2e0f4f", + "type": "sgv", + "glucose": 118 + }, + { + "filtered": 161184, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:16:40.916000+01:00", + "sgv": 118, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163488, + "delta": 4.079, + "date": 1483528600916, + "rssi": 100, + "_id": "586cdac7dbab07be5f2e0f6f", + "type": "sgv", + "glucose": 118 + } +] \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/cgm/ns-glucose.json b/app/src/main/java/info/nightscout/sampleData/cgm/ns-glucose.json new file mode 100644 index 0000000000..c4c0130106 --- /dev/null +++ b/app/src/main/java/info/nightscout/sampleData/cgm/ns-glucose.json @@ -0,0 +1,15002 @@ +[ + { + "filtered": 217664, + "direction": "DoubleDown", + "noise": 1, + "dateString": "2017-01-04T16:36:41.224000+01:00", + "sgv": 148, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 191424, + "delta": -20.713, + "date": 1483544201224, + "rssi": 100, + "_id": "586d168bdbab07be5f2e153b", + "type": "sgv", + "glucose": 148 + }, + { + "filtered": 226528, + "direction": "SingleDown", + "noise": 1, + "dateString": "2017-01-04T16:31:41.395000+01:00", + "sgv": 169, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 210592, + "delta": -13.679, + "date": 1483543901395, + "rssi": 100, + "_id": "586d155fdbab07be5f2e151c", + "type": "sgv", + "glucose": 169 + }, + { + "filtered": 226528, + "direction": "SingleDown", + "noise": 1, + "dateString": "2017-01-04T16:31:41.395000+01:00", + "sgv": 169, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 210592, + "delta": -20.713, + "date": 1483543901395, + "rssi": 100, + "_id": "586d168bdbab07be5f2e153c", + "type": "sgv", + "glucose": 169 + }, + { + "filtered": 230624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:26:41.244000+01:00", + "sgv": 183, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 223264, + "delta": -4.631, + "date": 1483543601244, + "rssi": 100, + "_id": "586d1433dbab07be5f2e14fc", + "type": "sgv", + "glucose": 183 + }, + { + "filtered": 230624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:26:41.244000+01:00", + "sgv": 183, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 223264, + "delta": -13.679, + "date": 1483543601244, + "rssi": 100, + "_id": "586d155fdbab07be5f2e151d", + "type": "sgv", + "glucose": 183 + }, + { + "filtered": 230624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:26:41.244000+01:00", + "sgv": 183, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 223264, + "delta": -20.713, + "date": 1483543601244, + "rssi": 100, + "_id": "586d168bdbab07be5f2e153d", + "type": "sgv", + "glucose": 183 + }, + { + "filtered": 231808, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:16:41.221000+01:00", + "sgv": 192, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 231840, + "delta": 0.173, + "date": 1483543001221, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14db", + "type": "sgv", + "glucose": 192 + }, + { + "filtered": 231808, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:16:41.221000+01:00", + "sgv": 192, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 231840, + "delta": -4.631, + "date": 1483543001221, + "rssi": 100, + "_id": "586d1433dbab07be5f2e14fd", + "type": "sgv", + "glucose": 192 + }, + { + "filtered": 231808, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:16:41.221000+01:00", + "sgv": 192, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 231840, + "delta": -13.679, + "date": 1483543001221, + "rssi": 100, + "_id": "586d155fdbab07be5f2e151e", + "type": "sgv", + "glucose": 192 + }, + { + "filtered": 231808, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:16:41.221000+01:00", + "sgv": 192, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 231840, + "delta": -20.713, + "date": 1483543001221, + "rssi": 100, + "_id": "586d168bdbab07be5f2e153e", + "type": "sgv", + "glucose": 192 + }, + { + "filtered": 230944, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:11:41.253000+01:00", + "sgv": 192, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 231680, + "delta": -0.207, + "date": 1483542701253, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14bb", + "type": "sgv", + "glucose": 192 + }, + { + "filtered": 230944, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:11:41.253000+01:00", + "sgv": 192, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 231680, + "delta": 0.173, + "date": 1483542701253, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14dc", + "type": "sgv", + "glucose": 192 + }, + { + "filtered": 230944, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:11:41.253000+01:00", + "sgv": 192, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 231680, + "delta": -4.631, + "date": 1483542701253, + "rssi": 100, + "_id": "586d1433dbab07be5f2e14fe", + "type": "sgv", + "glucose": 192 + }, + { + "filtered": 230944, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:11:41.253000+01:00", + "sgv": 192, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 231680, + "delta": -13.679, + "date": 1483542701253, + "rssi": 100, + "_id": "586d155fdbab07be5f2e151f", + "type": "sgv", + "glucose": 192 + }, + { + "filtered": 230944, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:11:41.253000+01:00", + "sgv": 192, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 231680, + "delta": -20.713, + "date": 1483542701253, + "rssi": 100, + "_id": "586d168bdbab07be5f2e153f", + "type": "sgv", + "glucose": 192 + }, + { + "filtered": 229536, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:06:41.161000+01:00", + "sgv": 192, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 231872, + "delta": 1.348, + "date": 1483542401161, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e149a", + "type": "sgv", + "glucose": 192 + }, + { + "filtered": 229536, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:06:41.161000+01:00", + "sgv": 192, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 231872, + "delta": -0.207, + "date": 1483542401161, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14bc", + "type": "sgv", + "glucose": 192 + }, + { + "filtered": 229536, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:06:41.161000+01:00", + "sgv": 192, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 231872, + "delta": 0.173, + "date": 1483542401161, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14dd", + "type": "sgv", + "glucose": 192 + }, + { + "filtered": 229536, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:06:41.161000+01:00", + "sgv": 192, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 231872, + "delta": -4.631, + "date": 1483542401161, + "rssi": 100, + "_id": "586d1433dbab07be5f2e14ff", + "type": "sgv", + "glucose": 192 + }, + { + "filtered": 229536, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:06:41.161000+01:00", + "sgv": 192, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 231872, + "delta": -13.679, + "date": 1483542401161, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1520", + "type": "sgv", + "glucose": 192 + }, + { + "filtered": 229536, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:06:41.161000+01:00", + "sgv": 192, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 231872, + "delta": -20.713, + "date": 1483542401161, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1540", + "type": "sgv", + "glucose": 192 + }, + { + "filtered": 227968, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:01:41.177000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230624, + "delta": 1.936, + "date": 1483542101177, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1478", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 227968, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:01:41.177000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230624, + "delta": 1.348, + "date": 1483542101177, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e149b", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 227968, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:01:41.177000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230624, + "delta": -0.207, + "date": 1483542101177, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14bd", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 227968, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:01:41.177000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230624, + "delta": 0.173, + "date": 1483542101177, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14de", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 227968, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:01:41.177000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230624, + "delta": -4.631, + "date": 1483542101177, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1500", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 227968, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:01:41.177000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230624, + "delta": -13.679, + "date": 1483542101177, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1521", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 227968, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:01:41.177000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230624, + "delta": -20.713, + "date": 1483542101177, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1541", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 226656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:56:41.241000+01:00", + "sgv": 189, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 228832, + "delta": 1.262, + "date": 1483541801241, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1459", + "type": "sgv", + "glucose": 189 + }, + { + "filtered": 226656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:56:41.241000+01:00", + "sgv": 189, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 228832, + "delta": 1.936, + "date": 1483541801241, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1479", + "type": "sgv", + "glucose": 189 + }, + { + "filtered": 226656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:56:41.241000+01:00", + "sgv": 189, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 228832, + "delta": 1.348, + "date": 1483541801241, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e149c", + "type": "sgv", + "glucose": 189 + }, + { + "filtered": 226656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:56:41.241000+01:00", + "sgv": 189, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 228832, + "delta": -0.207, + "date": 1483541801241, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14be", + "type": "sgv", + "glucose": 189 + }, + { + "filtered": 226656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:56:41.241000+01:00", + "sgv": 189, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 228832, + "delta": 0.173, + "date": 1483541801241, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14df", + "type": "sgv", + "glucose": 189 + }, + { + "filtered": 226656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:56:41.241000+01:00", + "sgv": 189, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 228832, + "delta": -4.631, + "date": 1483541801241, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1501", + "type": "sgv", + "glucose": 189 + }, + { + "filtered": 226656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:56:41.241000+01:00", + "sgv": 189, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 228832, + "delta": -13.679, + "date": 1483541801241, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1522", + "type": "sgv", + "glucose": 189 + }, + { + "filtered": 226656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:56:41.241000+01:00", + "sgv": 189, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 228832, + "delta": -20.713, + "date": 1483541801241, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1542", + "type": "sgv", + "glucose": 189 + }, + { + "filtered": 226464, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:46:41.285000+01:00", + "sgv": 186, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 226496, + "delta": -0.658, + "date": 1483541201285, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1435", + "type": "sgv", + "glucose": 186 + }, + { + "filtered": 226464, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:46:41.285000+01:00", + "sgv": 186, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 226496, + "delta": 1.262, + "date": 1483541201285, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e145a", + "type": "sgv", + "glucose": 186 + }, + { + "filtered": 226464, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:46:41.285000+01:00", + "sgv": 186, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 226496, + "delta": 1.936, + "date": 1483541201285, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e147b", + "type": "sgv", + "glucose": 186 + }, + { + "filtered": 226464, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:46:41.285000+01:00", + "sgv": 186, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 226496, + "delta": 1.348, + "date": 1483541201285, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e149d", + "type": "sgv", + "glucose": 186 + }, + { + "filtered": 226464, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:46:41.285000+01:00", + "sgv": 186, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 226496, + "delta": -0.207, + "date": 1483541201285, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14bf", + "type": "sgv", + "glucose": 186 + }, + { + "filtered": 226464, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:46:41.285000+01:00", + "sgv": 186, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 226496, + "delta": 0.173, + "date": 1483541201285, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14e0", + "type": "sgv", + "glucose": 186 + }, + { + "filtered": 226464, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:46:41.285000+01:00", + "sgv": 186, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 226496, + "delta": -4.631, + "date": 1483541201285, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1502", + "type": "sgv", + "glucose": 186 + }, + { + "filtered": 226464, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:46:41.285000+01:00", + "sgv": 186, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 226496, + "delta": -13.679, + "date": 1483541201285, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1524", + "type": "sgv", + "glucose": 186 + }, + { + "filtered": 226464, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:46:41.285000+01:00", + "sgv": 186, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 226496, + "delta": -20.713, + "date": 1483541201285, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1543", + "type": "sgv", + "glucose": 186 + }, + { + "filtered": 227840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:41:41.755000+01:00", + "sgv": 187, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227104, + "delta": 2.933, + "date": 1483540901755, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1415", + "type": "sgv", + "glucose": 187 + }, + { + "filtered": 227840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:41:41.755000+01:00", + "sgv": 187, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227104, + "delta": -0.658, + "date": 1483540901755, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1436", + "type": "sgv", + "glucose": 187 + }, + { + "filtered": 227840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:41:41.755000+01:00", + "sgv": 187, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227104, + "delta": 1.262, + "date": 1483540901755, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e145b", + "type": "sgv", + "glucose": 187 + }, + { + "filtered": 227840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:41:41.755000+01:00", + "sgv": 187, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227104, + "delta": 1.936, + "date": 1483540901755, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e147a", + "type": "sgv", + "glucose": 187 + }, + { + "filtered": 227840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:41:41.755000+01:00", + "sgv": 187, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227104, + "delta": 1.348, + "date": 1483540901755, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e149e", + "type": "sgv", + "glucose": 187 + }, + { + "filtered": 227840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:41:41.755000+01:00", + "sgv": 187, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227104, + "delta": -0.207, + "date": 1483540901755, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14c0", + "type": "sgv", + "glucose": 187 + }, + { + "filtered": 227840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:41:41.755000+01:00", + "sgv": 187, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227104, + "delta": 0.173, + "date": 1483540901755, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14e1", + "type": "sgv", + "glucose": 187 + }, + { + "filtered": 227840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:41:41.755000+01:00", + "sgv": 187, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227104, + "delta": -4.631, + "date": 1483540901755, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1503", + "type": "sgv", + "glucose": 187 + }, + { + "filtered": 227840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:41:41.755000+01:00", + "sgv": 187, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227104, + "delta": -13.679, + "date": 1483540901755, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1523", + "type": "sgv", + "glucose": 187 + }, + { + "filtered": 227840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:41:41.755000+01:00", + "sgv": 187, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227104, + "delta": -20.713, + "date": 1483540901755, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1544", + "type": "sgv", + "glucose": 187 + }, + { + "filtered": 230208, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:36:41.273000+01:00", + "sgv": 184, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 224384, + "delta": -6.913, + "date": 1483540601273, + "rssi": 100, + "_id": "586d087bdbab07be5f2e13f6", + "type": "sgv", + "glucose": 184 + }, + { + "filtered": 230208, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:36:41.273000+01:00", + "sgv": 184, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 224384, + "delta": 2.933, + "date": 1483540601273, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1416", + "type": "sgv", + "glucose": 184 + }, + { + "filtered": 230208, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:36:41.273000+01:00", + "sgv": 184, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 224384, + "delta": -0.658, + "date": 1483540601273, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1437", + "type": "sgv", + "glucose": 184 + }, + { + "filtered": 230208, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:36:41.273000+01:00", + "sgv": 184, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 224384, + "delta": 1.262, + "date": 1483540601273, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e145c", + "type": "sgv", + "glucose": 184 + }, + { + "filtered": 230208, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:36:41.273000+01:00", + "sgv": 184, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 224384, + "delta": 1.936, + "date": 1483540601273, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e147c", + "type": "sgv", + "glucose": 184 + }, + { + "filtered": 230208, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:36:41.273000+01:00", + "sgv": 184, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 224384, + "delta": 1.348, + "date": 1483540601273, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e149f", + "type": "sgv", + "glucose": 184 + }, + { + "filtered": 230208, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:36:41.273000+01:00", + "sgv": 184, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 224384, + "delta": -0.207, + "date": 1483540601273, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14c1", + "type": "sgv", + "glucose": 184 + }, + { + "filtered": 230208, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:36:41.273000+01:00", + "sgv": 184, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 224384, + "delta": 0.173, + "date": 1483540601273, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14e2", + "type": "sgv", + "glucose": 184 + }, + { + "filtered": 230208, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:36:41.273000+01:00", + "sgv": 184, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 224384, + "delta": -4.631, + "date": 1483540601273, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1504", + "type": "sgv", + "glucose": 184 + }, + { + "filtered": 230208, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:36:41.273000+01:00", + "sgv": 184, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 224384, + "delta": -13.679, + "date": 1483540601273, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1525", + "type": "sgv", + "glucose": 184 + }, + { + "filtered": 230208, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:36:41.273000+01:00", + "sgv": 184, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 224384, + "delta": -20.713, + "date": 1483540601273, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1545", + "type": "sgv", + "glucose": 184 + }, + { + "filtered": 234784, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:31:41.318000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230784, + "delta": -3.87, + "date": 1483540301318, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13d7", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 234784, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:31:41.318000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230784, + "delta": -6.913, + "date": 1483540301318, + "rssi": 100, + "_id": "586d087bdbab07be5f2e13f7", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 234784, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:31:41.318000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230784, + "delta": 2.933, + "date": 1483540301318, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1417", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 234784, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:31:41.318000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230784, + "delta": -0.658, + "date": 1483540301318, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1438", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 234784, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:31:41.318000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230784, + "delta": 1.262, + "date": 1483540301318, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e145d", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 234784, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:31:41.318000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230784, + "delta": 1.936, + "date": 1483540301318, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e147d", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 234784, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:31:41.318000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230784, + "delta": 1.348, + "date": 1483540301318, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14a0", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 234784, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:31:41.318000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230784, + "delta": -0.207, + "date": 1483540301318, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14c2", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 234784, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:31:41.318000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230784, + "delta": 0.173, + "date": 1483540301318, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14e3", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 234784, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:31:41.318000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230784, + "delta": -4.631, + "date": 1483540301318, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1505", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 234784, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:31:41.318000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230784, + "delta": -13.679, + "date": 1483540301318, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1526", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 234784, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:31:41.318000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230784, + "delta": -20.713, + "date": 1483540301318, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1546", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 242592, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:26:41.288000+01:00", + "sgv": 195, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 234368, + "delta": -2.869, + "date": 1483540001288, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13b6", + "type": "sgv", + "glucose": 195 + }, + { + "filtered": 242592, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:26:41.288000+01:00", + "sgv": 195, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 234368, + "delta": -3.87, + "date": 1483540001288, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13d8", + "type": "sgv", + "glucose": 195 + }, + { + "filtered": 242592, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:26:41.288000+01:00", + "sgv": 195, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 234368, + "delta": -6.913, + "date": 1483540001288, + "rssi": 100, + "_id": "586d087bdbab07be5f2e13f9", + "type": "sgv", + "glucose": 195 + }, + { + "filtered": 242592, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:26:41.288000+01:00", + "sgv": 195, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 234368, + "delta": 2.933, + "date": 1483540001288, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1418", + "type": "sgv", + "glucose": 195 + }, + { + "filtered": 242592, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:26:41.288000+01:00", + "sgv": 195, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 234368, + "delta": -0.658, + "date": 1483540001288, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1439", + "type": "sgv", + "glucose": 195 + }, + { + "filtered": 242592, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:26:41.288000+01:00", + "sgv": 195, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 234368, + "delta": 1.262, + "date": 1483540001288, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e145e", + "type": "sgv", + "glucose": 195 + }, + { + "filtered": 242592, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:26:41.288000+01:00", + "sgv": 195, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 234368, + "delta": 1.936, + "date": 1483540001288, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e147e", + "type": "sgv", + "glucose": 195 + }, + { + "filtered": 242592, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:26:41.288000+01:00", + "sgv": 195, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 234368, + "delta": 1.348, + "date": 1483540001288, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14a1", + "type": "sgv", + "glucose": 195 + }, + { + "filtered": 242592, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:26:41.288000+01:00", + "sgv": 195, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 234368, + "delta": -0.207, + "date": 1483540001288, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14c3", + "type": "sgv", + "glucose": 195 + }, + { + "filtered": 242592, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:26:41.288000+01:00", + "sgv": 195, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 234368, + "delta": 0.173, + "date": 1483540001288, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14e4", + "type": "sgv", + "glucose": 195 + }, + { + "filtered": 242592, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:26:41.288000+01:00", + "sgv": 195, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 234368, + "delta": -4.631, + "date": 1483540001288, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1506", + "type": "sgv", + "glucose": 195 + }, + { + "filtered": 242592, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:26:41.288000+01:00", + "sgv": 195, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 234368, + "delta": -13.679, + "date": 1483540001288, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1527", + "type": "sgv", + "glucose": 195 + }, + { + "filtered": 242592, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:26:41.288000+01:00", + "sgv": 195, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 234368, + "delta": -20.713, + "date": 1483540001288, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1547", + "type": "sgv", + "glucose": 195 + }, + { + "filtered": 253376, + "direction": "SingleDown", + "noise": 1, + "dateString": "2017-01-04T15:21:41.330000+01:00", + "sgv": 198, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 237024, + "delta": -10.022, + "date": 1483539701330, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e1396", + "type": "sgv", + "glucose": 198 + }, + { + "filtered": 253376, + "direction": "SingleDown", + "noise": 1, + "dateString": "2017-01-04T15:21:41.330000+01:00", + "sgv": 198, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 237024, + "delta": -2.869, + "date": 1483539701330, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13ba", + "type": "sgv", + "glucose": 198 + }, + { + "filtered": 253376, + "direction": "SingleDown", + "noise": 1, + "dateString": "2017-01-04T15:21:41.330000+01:00", + "sgv": 198, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 237024, + "delta": -3.87, + "date": 1483539701330, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13d9", + "type": "sgv", + "glucose": 198 + }, + { + "filtered": 253376, + "direction": "SingleDown", + "noise": 1, + "dateString": "2017-01-04T15:21:41.330000+01:00", + "sgv": 198, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 237024, + "delta": -6.913, + "date": 1483539701330, + "rssi": 100, + "_id": "586d087bdbab07be5f2e13f8", + "type": "sgv", + "glucose": 198 + }, + { + "filtered": 253376, + "direction": "SingleDown", + "noise": 1, + "dateString": "2017-01-04T15:21:41.330000+01:00", + "sgv": 198, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 237024, + "delta": 2.933, + "date": 1483539701330, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1419", + "type": "sgv", + "glucose": 198 + }, + { + "filtered": 253376, + "direction": "SingleDown", + "noise": 1, + "dateString": "2017-01-04T15:21:41.330000+01:00", + "sgv": 198, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 237024, + "delta": -0.658, + "date": 1483539701330, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e143a", + "type": "sgv", + "glucose": 198 + }, + { + "filtered": 253376, + "direction": "SingleDown", + "noise": 1, + "dateString": "2017-01-04T15:21:41.330000+01:00", + "sgv": 198, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 237024, + "delta": 1.262, + "date": 1483539701330, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e145f", + "type": "sgv", + "glucose": 198 + }, + { + "filtered": 253376, + "direction": "SingleDown", + "noise": 1, + "dateString": "2017-01-04T15:21:41.330000+01:00", + "sgv": 198, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 237024, + "delta": 1.936, + "date": 1483539701330, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e147f", + "type": "sgv", + "glucose": 198 + }, + { + "filtered": 253376, + "direction": "SingleDown", + "noise": 1, + "dateString": "2017-01-04T15:21:41.330000+01:00", + "sgv": 198, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 237024, + "delta": 1.348, + "date": 1483539701330, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14a2", + "type": "sgv", + "glucose": 198 + }, + { + "filtered": 253376, + "direction": "SingleDown", + "noise": 1, + "dateString": "2017-01-04T15:21:41.330000+01:00", + "sgv": 198, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 237024, + "delta": -0.207, + "date": 1483539701330, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14c4", + "type": "sgv", + "glucose": 198 + }, + { + "filtered": 253376, + "direction": "SingleDown", + "noise": 1, + "dateString": "2017-01-04T15:21:41.330000+01:00", + "sgv": 198, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 237024, + "delta": 0.173, + "date": 1483539701330, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14e5", + "type": "sgv", + "glucose": 198 + }, + { + "filtered": 253376, + "direction": "SingleDown", + "noise": 1, + "dateString": "2017-01-04T15:21:41.330000+01:00", + "sgv": 198, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 237024, + "delta": -4.631, + "date": 1483539701330, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1507", + "type": "sgv", + "glucose": 198 + }, + { + "filtered": 253376, + "direction": "SingleDown", + "noise": 1, + "dateString": "2017-01-04T15:21:41.330000+01:00", + "sgv": 198, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 237024, + "delta": -13.679, + "date": 1483539701330, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1528", + "type": "sgv", + "glucose": 198 + }, + { + "filtered": 253376, + "direction": "SingleDown", + "noise": 1, + "dateString": "2017-01-04T15:21:41.330000+01:00", + "sgv": 198, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 237024, + "delta": -20.713, + "date": 1483539701330, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1548", + "type": "sgv", + "glucose": 198 + }, + { + "filtered": 269184, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:11:41.287000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255584, + "delta": -9.038, + "date": 1483539101287, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1375", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 269184, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:11:41.287000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255584, + "delta": -10.022, + "date": 1483539101287, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e1397", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 269184, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:11:41.287000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255584, + "delta": -2.869, + "date": 1483539101287, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13b7", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 269184, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:11:41.287000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255584, + "delta": -3.87, + "date": 1483539101287, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13da", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 269184, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:11:41.287000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255584, + "delta": -6.913, + "date": 1483539101287, + "rssi": 100, + "_id": "586d087bdbab07be5f2e13fa", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 269184, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:11:41.287000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255584, + "delta": 2.933, + "date": 1483539101287, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e141a", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 269184, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:11:41.287000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255584, + "delta": -0.658, + "date": 1483539101287, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e143b", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 269184, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:11:41.287000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255584, + "delta": 1.262, + "date": 1483539101287, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1460", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 269184, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:11:41.287000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255584, + "delta": 1.936, + "date": 1483539101287, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1480", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 269184, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:11:41.287000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255584, + "delta": 1.348, + "date": 1483539101287, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14a3", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 269184, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:11:41.287000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255584, + "delta": -0.207, + "date": 1483539101287, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14c5", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 269184, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:11:41.287000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255584, + "delta": 0.173, + "date": 1483539101287, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14e6", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 269184, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:11:41.287000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255584, + "delta": -4.631, + "date": 1483539101287, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1508", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 269184, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:11:41.287000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255584, + "delta": -13.679, + "date": 1483539101287, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1529", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 269184, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:11:41.287000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255584, + "delta": -20.713, + "date": 1483539101287, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1549", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 261440, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T15:01:41.333000+01:00", + "sgv": 236, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 272320, + "delta": 6.496, + "date": 1483538501333, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1355", + "type": "sgv", + "glucose": 236 + }, + { + "filtered": 261440, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T15:01:41.333000+01:00", + "sgv": 236, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 272320, + "delta": -9.038, + "date": 1483538501333, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1376", + "type": "sgv", + "glucose": 236 + }, + { + "filtered": 261440, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T15:01:41.333000+01:00", + "sgv": 236, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 272320, + "delta": -10.022, + "date": 1483538501333, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e1398", + "type": "sgv", + "glucose": 236 + }, + { + "filtered": 261440, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T15:01:41.333000+01:00", + "sgv": 236, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 272320, + "delta": -2.869, + "date": 1483538501333, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13b8", + "type": "sgv", + "glucose": 236 + }, + { + "filtered": 261440, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T15:01:41.333000+01:00", + "sgv": 236, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 272320, + "delta": -3.87, + "date": 1483538501333, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13db", + "type": "sgv", + "glucose": 236 + }, + { + "filtered": 261440, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T15:01:41.333000+01:00", + "sgv": 236, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 272320, + "delta": -6.913, + "date": 1483538501333, + "rssi": 100, + "_id": "586d087bdbab07be5f2e13fb", + "type": "sgv", + "glucose": 236 + }, + { + "filtered": 261440, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T15:01:41.333000+01:00", + "sgv": 236, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 272320, + "delta": 2.933, + "date": 1483538501333, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e141b", + "type": "sgv", + "glucose": 236 + }, + { + "filtered": 261440, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T15:01:41.333000+01:00", + "sgv": 236, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 272320, + "delta": -0.658, + "date": 1483538501333, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e143c", + "type": "sgv", + "glucose": 236 + }, + { + "filtered": 261440, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T15:01:41.333000+01:00", + "sgv": 236, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 272320, + "delta": 1.262, + "date": 1483538501333, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1461", + "type": "sgv", + "glucose": 236 + }, + { + "filtered": 261440, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T15:01:41.333000+01:00", + "sgv": 236, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 272320, + "delta": 1.936, + "date": 1483538501333, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1481", + "type": "sgv", + "glucose": 236 + }, + { + "filtered": 261440, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T15:01:41.333000+01:00", + "sgv": 236, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 272320, + "delta": 1.348, + "date": 1483538501333, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14a4", + "type": "sgv", + "glucose": 236 + }, + { + "filtered": 261440, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T15:01:41.333000+01:00", + "sgv": 236, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 272320, + "delta": -0.207, + "date": 1483538501333, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14c6", + "type": "sgv", + "glucose": 236 + }, + { + "filtered": 261440, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T15:01:41.333000+01:00", + "sgv": 236, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 272320, + "delta": 0.173, + "date": 1483538501333, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14e7", + "type": "sgv", + "glucose": 236 + }, + { + "filtered": 261440, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T15:01:41.333000+01:00", + "sgv": 236, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 272320, + "delta": -4.631, + "date": 1483538501333, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1509", + "type": "sgv", + "glucose": 236 + }, + { + "filtered": 261440, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T15:01:41.333000+01:00", + "sgv": 236, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 272320, + "delta": -13.679, + "date": 1483538501333, + "rssi": 100, + "_id": "586d155fdbab07be5f2e152a", + "type": "sgv", + "glucose": 236 + }, + { + "filtered": 261440, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T15:01:41.333000+01:00", + "sgv": 236, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 272320, + "delta": -20.713, + "date": 1483538501333, + "rssi": 100, + "_id": "586d168bdbab07be5f2e154a", + "type": "sgv", + "glucose": 236 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": 11.613, + "date": 1483538201284, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1336", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": 6.496, + "date": 1483538201284, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1356", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": -9.038, + "date": 1483538201284, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1377", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": -10.022, + "date": 1483538201284, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e1399", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": -2.869, + "date": 1483538201284, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13b9", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": -3.87, + "date": 1483538201284, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13dc", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": -6.913, + "date": 1483538201284, + "rssi": 100, + "_id": "586d087bdbab07be5f2e13fc", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": 2.933, + "date": 1483538201284, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e141c", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": -0.658, + "date": 1483538201284, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e143d", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": 1.262, + "date": 1483538201284, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1462", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": 1.936, + "date": 1483538201284, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1482", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": 1.348, + "date": 1483538201284, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14a5", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": -0.207, + "date": 1483538201284, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14c7", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": 0.173, + "date": 1483538201284, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14e8", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": -4.631, + "date": 1483538201284, + "rssi": 100, + "_id": "586d1433dbab07be5f2e150a", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": -13.679, + "date": 1483538201284, + "rssi": 100, + "_id": "586d155fdbab07be5f2e152b", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": -20.713, + "date": 1483538201284, + "rssi": 100, + "_id": "586d168bdbab07be5f2e154b", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": 11.911, + "date": 1483537901316, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1317", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": 11.613, + "date": 1483537901316, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1337", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": 6.496, + "date": 1483537901316, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1357", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": -9.038, + "date": 1483537901316, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1378", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": -10.022, + "date": 1483537901316, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e139a", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": -2.869, + "date": 1483537901316, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13bb", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": -3.87, + "date": 1483537901316, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13de", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": -6.913, + "date": 1483537901316, + "rssi": 100, + "_id": "586d087bdbab07be5f2e13fd", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": 2.933, + "date": 1483537901316, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e141d", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": -0.658, + "date": 1483537901316, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e143e", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": 1.262, + "date": 1483537901316, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1463", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": 1.936, + "date": 1483537901316, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1483", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": 1.348, + "date": 1483537901316, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14a6", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": -0.207, + "date": 1483537901316, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14c8", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": 0.173, + "date": 1483537901316, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14e9", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": -4.631, + "date": 1483537901316, + "rssi": 100, + "_id": "586d1433dbab07be5f2e150b", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": -13.679, + "date": 1483537901316, + "rssi": 100, + "_id": "586d155fdbab07be5f2e152c", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": -20.713, + "date": 1483537901316, + "rssi": 100, + "_id": "586d168bdbab07be5f2e154c", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": 17.921, + "date": 1483537601014, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e12f7", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": 11.911, + "date": 1483537601014, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1318", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": 11.613, + "date": 1483537601014, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1338", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": 6.496, + "date": 1483537601014, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1358", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": -9.038, + "date": 1483537601014, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1379", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": -10.022, + "date": 1483537601014, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e139b", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": -2.869, + "date": 1483537601014, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13bd", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": -3.87, + "date": 1483537601014, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13dd", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": -6.913, + "date": 1483537601014, + "rssi": 100, + "_id": "586d087bdbab07be5f2e13fe", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": 2.933, + "date": 1483537601014, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e141e", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": -0.658, + "date": 1483537601014, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e143f", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": 1.262, + "date": 1483537601014, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1464", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": 1.936, + "date": 1483537601014, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1484", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": 1.348, + "date": 1483537601014, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14a7", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": -0.207, + "date": 1483537601014, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14c9", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": 0.173, + "date": 1483537601014, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14ea", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": -4.631, + "date": 1483537601014, + "rssi": 100, + "_id": "586d1433dbab07be5f2e150c", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": -13.679, + "date": 1483537601014, + "rssi": 100, + "_id": "586d155fdbab07be5f2e152d", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": -20.713, + "date": 1483537601014, + "rssi": 100, + "_id": "586d168bdbab07be5f2e154d", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": 14.55, + "date": 1483537301326, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12d8", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": 17.921, + "date": 1483537301326, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e12f8", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": 11.911, + "date": 1483537301326, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1319", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": 11.613, + "date": 1483537301326, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1339", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": 6.496, + "date": 1483537301326, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1359", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": -9.038, + "date": 1483537301326, + "rssi": 100, + "_id": "586d029fdbab07be5f2e137a", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": -10.022, + "date": 1483537301326, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e139c", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": -2.869, + "date": 1483537301326, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13bc", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": -3.87, + "date": 1483537301326, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13df", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": -6.913, + "date": 1483537301326, + "rssi": 100, + "_id": "586d087bdbab07be5f2e13ff", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": 2.933, + "date": 1483537301326, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1420", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": -0.658, + "date": 1483537301326, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1440", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": 1.262, + "date": 1483537301326, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1465", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": 1.936, + "date": 1483537301326, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1485", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": 1.348, + "date": 1483537301326, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14a8", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": -0.207, + "date": 1483537301326, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14ca", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": 0.173, + "date": 1483537301326, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14eb", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": -4.631, + "date": 1483537301326, + "rssi": 100, + "_id": "586d1433dbab07be5f2e150d", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": -13.679, + "date": 1483537301326, + "rssi": 100, + "_id": "586d155fdbab07be5f2e152e", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": -20.713, + "date": 1483537301326, + "rssi": 100, + "_id": "586d168bdbab07be5f2e154e", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": 21.457, + "date": 1483537001325, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12b9", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": 14.55, + "date": 1483537001325, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12d9", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": 17.921, + "date": 1483537001325, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e12f9", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": 11.911, + "date": 1483537001325, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e131a", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": 11.613, + "date": 1483537001325, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e133a", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": 6.496, + "date": 1483537001325, + "rssi": 100, + "_id": "586d0047dbab07be5f2e135a", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": -9.038, + "date": 1483537001325, + "rssi": 100, + "_id": "586d029fdbab07be5f2e137b", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": -10.022, + "date": 1483537001325, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e139d", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": -2.869, + "date": 1483537001325, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13be", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": -3.87, + "date": 1483537001325, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13e0", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": -6.913, + "date": 1483537001325, + "rssi": 100, + "_id": "586d087bdbab07be5f2e1400", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": 2.933, + "date": 1483537001325, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e141f", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": -0.658, + "date": 1483537001325, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1441", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": 1.262, + "date": 1483537001325, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1466", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": 1.936, + "date": 1483537001325, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1486", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": 1.348, + "date": 1483537001325, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14aa", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": -0.207, + "date": 1483537001325, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14cb", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": 0.173, + "date": 1483537001325, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14ec", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": -4.631, + "date": 1483537001325, + "rssi": 100, + "_id": "586d1433dbab07be5f2e150e", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": -13.679, + "date": 1483537001325, + "rssi": 100, + "_id": "586d155fdbab07be5f2e152f", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": -20.713, + "date": 1483537001325, + "rssi": 100, + "_id": "586d168bdbab07be5f2e154f", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": 16.247, + "date": 1483536701263, + "rssi": 100, + "_id": "586cf940dbab07be5f2e1297", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": 21.457, + "date": 1483536701263, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12ba", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": 14.55, + "date": 1483536701263, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12da", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": 17.921, + "date": 1483536701263, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e12fa", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": 11.911, + "date": 1483536701263, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e131b", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": 11.613, + "date": 1483536701263, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e133b", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": 6.496, + "date": 1483536701263, + "rssi": 100, + "_id": "586d0047dbab07be5f2e135b", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": -9.038, + "date": 1483536701263, + "rssi": 100, + "_id": "586d029fdbab07be5f2e137c", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": -10.022, + "date": 1483536701263, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e139e", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": -2.869, + "date": 1483536701263, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13bf", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": -3.87, + "date": 1483536701263, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13e1", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": -6.913, + "date": 1483536701263, + "rssi": 100, + "_id": "586d087bdbab07be5f2e1401", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": 2.933, + "date": 1483536701263, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1421", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": -0.658, + "date": 1483536701263, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1443", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": 1.262, + "date": 1483536701263, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1467", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": 1.936, + "date": 1483536701263, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1490", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": 1.348, + "date": 1483536701263, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14a9", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": -0.207, + "date": 1483536701263, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14cc", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": 0.173, + "date": 1483536701263, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14ed", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": -4.631, + "date": 1483536701263, + "rssi": 100, + "_id": "586d1433dbab07be5f2e150f", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": -13.679, + "date": 1483536701263, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1530", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": -20.713, + "date": 1483536701263, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1551", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": 3.904, + "date": 1483536401340, + "rssi": 100, + "_id": "586cf814dbab07be5f2e1275", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": 16.247, + "date": 1483536401340, + "rssi": 100, + "_id": "586cf940dbab07be5f2e1298", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": 21.457, + "date": 1483536401340, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12b8", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": 14.55, + "date": 1483536401340, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12db", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": 17.921, + "date": 1483536401340, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e12fb", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": 11.911, + "date": 1483536401340, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e131c", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": 11.613, + "date": 1483536401340, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e133c", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": 6.496, + "date": 1483536401340, + "rssi": 100, + "_id": "586d0047dbab07be5f2e135c", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": -9.038, + "date": 1483536401340, + "rssi": 100, + "_id": "586d029fdbab07be5f2e137d", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": -10.022, + "date": 1483536401340, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e139f", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": -2.869, + "date": 1483536401340, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13c0", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": -3.87, + "date": 1483536401340, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13e3", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": -6.913, + "date": 1483536401340, + "rssi": 100, + "_id": "586d087bdbab07be5f2e1402", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": 2.933, + "date": 1483536401340, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1422", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": -0.658, + "date": 1483536401340, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1442", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": 1.262, + "date": 1483536401340, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1468", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": 1.936, + "date": 1483536401340, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e148a", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": 1.348, + "date": 1483536401340, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14ab", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": -0.207, + "date": 1483536401340, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14cd", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": 0.173, + "date": 1483536401340, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14ee", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": -4.631, + "date": 1483536401340, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1510", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": -13.679, + "date": 1483536401340, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1531", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": -20.713, + "date": 1483536401340, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1550", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": 5.385, + "date": 1483536101258, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1252", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": 3.904, + "date": 1483536101258, + "rssi": 100, + "_id": "586cf814dbab07be5f2e1276", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": 16.247, + "date": 1483536101258, + "rssi": 100, + "_id": "586cf940dbab07be5f2e1299", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": 21.457, + "date": 1483536101258, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12b7", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": 14.55, + "date": 1483536101258, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12dc", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": 17.921, + "date": 1483536101258, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e12fc", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": 11.911, + "date": 1483536101258, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e131d", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": 11.613, + "date": 1483536101258, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e133d", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": 6.496, + "date": 1483536101258, + "rssi": 100, + "_id": "586d0047dbab07be5f2e135d", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": -9.038, + "date": 1483536101258, + "rssi": 100, + "_id": "586d029fdbab07be5f2e137e", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": -10.022, + "date": 1483536101258, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13a6", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": -2.869, + "date": 1483536101258, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13c1", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": -3.87, + "date": 1483536101258, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13e2", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": -6.913, + "date": 1483536101258, + "rssi": 100, + "_id": "586d087bdbab07be5f2e1403", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": 2.933, + "date": 1483536101258, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1423", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": -0.658, + "date": 1483536101258, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1444", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": 1.262, + "date": 1483536101258, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e146b", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": 1.936, + "date": 1483536101258, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1487", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": 1.348, + "date": 1483536101258, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14ad", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": -0.207, + "date": 1483536101258, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14ce", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": 0.173, + "date": 1483536101258, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14ef", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": -4.631, + "date": 1483536101258, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1512", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": -13.679, + "date": 1483536101258, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1532", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": -20.713, + "date": 1483536101258, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1552", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": 1.686, + "date": 1483535802855, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1233", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": 5.385, + "date": 1483535802855, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1253", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": 3.904, + "date": 1483535802855, + "rssi": 100, + "_id": "586cf814dbab07be5f2e1277", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": 16.247, + "date": 1483535802855, + "rssi": 100, + "_id": "586cf940dbab07be5f2e129a", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": 21.457, + "date": 1483535802855, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12bb", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": 14.55, + "date": 1483535802855, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12dd", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": 17.921, + "date": 1483535802855, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e12fd", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": 11.911, + "date": 1483535802855, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e131e", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": 11.613, + "date": 1483535802855, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e133e", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": 6.496, + "date": 1483535802855, + "rssi": 100, + "_id": "586d0047dbab07be5f2e135e", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": -9.038, + "date": 1483535802855, + "rssi": 100, + "_id": "586d029fdbab07be5f2e137f", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": -10.022, + "date": 1483535802855, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13a3", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": -2.869, + "date": 1483535802855, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13c2", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": -3.87, + "date": 1483535802855, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13e4", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": -6.913, + "date": 1483535802855, + "rssi": 100, + "_id": "586d087bdbab07be5f2e1404", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": 2.933, + "date": 1483535802855, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1424", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": -0.658, + "date": 1483535802855, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1445", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": 1.262, + "date": 1483535802855, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1469", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": 1.936, + "date": 1483535802855, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1488", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": 1.348, + "date": 1483535802855, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14ac", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": -0.207, + "date": 1483535802855, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14cf", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": 0.173, + "date": 1483535802855, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14f0", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": -4.631, + "date": 1483535802855, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1511", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": -13.679, + "date": 1483535802855, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1533", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": -20.713, + "date": 1483535802855, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1553", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": 1.314, + "date": 1483535501468, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1213", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": 1.686, + "date": 1483535501468, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1234", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": 5.385, + "date": 1483535501468, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1254", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": 3.904, + "date": 1483535501468, + "rssi": 100, + "_id": "586cf814dbab07be5f2e1278", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": 16.247, + "date": 1483535501468, + "rssi": 100, + "_id": "586cf940dbab07be5f2e129b", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": 21.457, + "date": 1483535501468, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12bc", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": 14.55, + "date": 1483535501468, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12de", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": 17.921, + "date": 1483535501468, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e12fe", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": 11.911, + "date": 1483535501468, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e131f", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": 11.613, + "date": 1483535501468, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e133f", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": 6.496, + "date": 1483535501468, + "rssi": 100, + "_id": "586d0047dbab07be5f2e135f", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": -9.038, + "date": 1483535501468, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1380", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": -10.022, + "date": 1483535501468, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13a0", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": -2.869, + "date": 1483535501468, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13c4", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": -3.87, + "date": 1483535501468, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13e5", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": -6.913, + "date": 1483535501468, + "rssi": 100, + "_id": "586d087bdbab07be5f2e1405", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": 2.933, + "date": 1483535501468, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1426", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": -0.658, + "date": 1483535501468, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1446", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": 1.262, + "date": 1483535501468, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e146a", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": 1.936, + "date": 1483535501468, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1489", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": 1.348, + "date": 1483535501468, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14af", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": -0.207, + "date": 1483535501468, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14d0", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": 0.173, + "date": 1483535501468, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14f1", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": -4.631, + "date": 1483535501468, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1513", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": -13.679, + "date": 1483535501468, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1534", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": -20.713, + "date": 1483535501468, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1554", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 2.554, + "date": 1483535201718, + "rssi": 100, + "_id": "586cf364dbab07be5f2e11f1", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 1.314, + "date": 1483535201718, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1214", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 1.686, + "date": 1483535201718, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1235", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 5.385, + "date": 1483535201718, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1255", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 3.904, + "date": 1483535201718, + "rssi": 100, + "_id": "586cf814dbab07be5f2e1279", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 16.247, + "date": 1483535201718, + "rssi": 100, + "_id": "586cf940dbab07be5f2e129c", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 21.457, + "date": 1483535201718, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12bd", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 14.55, + "date": 1483535201718, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12df", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 17.921, + "date": 1483535201718, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e12ff", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 11.911, + "date": 1483535201718, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1320", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 11.613, + "date": 1483535201718, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1340", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 6.496, + "date": 1483535201718, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1360", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -9.038, + "date": 1483535201718, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1381", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -10.022, + "date": 1483535201718, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13a1", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -2.869, + "date": 1483535201718, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13c3", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -3.87, + "date": 1483535201718, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13e6", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -6.913, + "date": 1483535201718, + "rssi": 100, + "_id": "586d087bdbab07be5f2e1406", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 2.933, + "date": 1483535201718, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1425", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -0.658, + "date": 1483535201718, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1447", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 1.262, + "date": 1483535201718, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e146c", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 1.936, + "date": 1483535201718, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e148b", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 1.348, + "date": 1483535201718, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14ae", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -0.207, + "date": 1483535201718, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14d1", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 0.173, + "date": 1483535201718, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14f2", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -4.631, + "date": 1483535201718, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1514", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -13.679, + "date": 1483535201718, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1535", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -20.713, + "date": 1483535201718, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1555", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 1.87, + "date": 1483534901296, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11d2", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 2.554, + "date": 1483534901296, + "rssi": 100, + "_id": "586cf364dbab07be5f2e11f2", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 1.314, + "date": 1483534901296, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1215", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 1.686, + "date": 1483534901296, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1236", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 5.385, + "date": 1483534901296, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1256", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 3.904, + "date": 1483534901296, + "rssi": 100, + "_id": "586cf814dbab07be5f2e127a", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 16.247, + "date": 1483534901296, + "rssi": 100, + "_id": "586cf940dbab07be5f2e129d", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 21.457, + "date": 1483534901296, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12be", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 14.55, + "date": 1483534901296, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12e0", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 17.921, + "date": 1483534901296, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e1300", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 11.911, + "date": 1483534901296, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1321", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 11.613, + "date": 1483534901296, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1341", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 6.496, + "date": 1483534901296, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1361", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": -9.038, + "date": 1483534901296, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1382", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": -10.022, + "date": 1483534901296, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13a2", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": -2.869, + "date": 1483534901296, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13c5", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": -3.87, + "date": 1483534901296, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13e8", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": -6.913, + "date": 1483534901296, + "rssi": 100, + "_id": "586d087bdbab07be5f2e1407", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 2.933, + "date": 1483534901296, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1427", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": -0.658, + "date": 1483534901296, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1448", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 1.262, + "date": 1483534901296, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e146d", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 1.936, + "date": 1483534901296, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e148c", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 1.348, + "date": 1483534901296, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14b0", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": -0.207, + "date": 1483534901296, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14d2", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 0.173, + "date": 1483534901296, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14f3", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": -4.631, + "date": 1483534901296, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1515", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": -13.679, + "date": 1483534901296, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1536", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": -20.713, + "date": 1483534901296, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1556", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 0.069, + "date": 1483534601873, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11b0", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 1.87, + "date": 1483534601873, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11d3", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 2.554, + "date": 1483534601873, + "rssi": 100, + "_id": "586cf364dbab07be5f2e11f3", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 1.314, + "date": 1483534601873, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1216", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 1.686, + "date": 1483534601873, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1237", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 5.385, + "date": 1483534601873, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1257", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 3.904, + "date": 1483534601873, + "rssi": 100, + "_id": "586cf814dbab07be5f2e127b", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 16.247, + "date": 1483534601873, + "rssi": 100, + "_id": "586cf940dbab07be5f2e129e", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 21.457, + "date": 1483534601873, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12bf", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 14.55, + "date": 1483534601873, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12e1", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 17.921, + "date": 1483534601873, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e1301", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 11.911, + "date": 1483534601873, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1322", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 11.613, + "date": 1483534601873, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1343", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 6.496, + "date": 1483534601873, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1362", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": -9.038, + "date": 1483534601873, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1383", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": -10.022, + "date": 1483534601873, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13a4", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": -2.869, + "date": 1483534601873, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13c6", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": -3.87, + "date": 1483534601873, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13e7", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": -6.913, + "date": 1483534601873, + "rssi": 100, + "_id": "586d087bdbab07be5f2e1408", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 2.933, + "date": 1483534601873, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1428", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": -0.658, + "date": 1483534601873, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1449", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 1.262, + "date": 1483534601873, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e146e", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 1.936, + "date": 1483534601873, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e148d", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 1.348, + "date": 1483534601873, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14b1", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": -0.207, + "date": 1483534601873, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14d3", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 0.173, + "date": 1483534601873, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14f4", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": -4.631, + "date": 1483534601873, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1517", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": -13.679, + "date": 1483534601873, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1537", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": -20.713, + "date": 1483534601873, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1558", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 0.207, + "date": 1483534301597, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e1192", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 0.069, + "date": 1483534301597, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11b1", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 1.87, + "date": 1483534301597, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11d4", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 2.554, + "date": 1483534301597, + "rssi": 100, + "_id": "586cf364dbab07be5f2e11f4", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 1.314, + "date": 1483534301597, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1217", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 1.686, + "date": 1483534301597, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1238", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 5.385, + "date": 1483534301597, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1258", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 3.904, + "date": 1483534301597, + "rssi": 100, + "_id": "586cf814dbab07be5f2e127c", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 16.247, + "date": 1483534301597, + "rssi": 100, + "_id": "586cf940dbab07be5f2e129f", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 21.457, + "date": 1483534301597, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12c0", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 14.55, + "date": 1483534301597, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12e2", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 17.921, + "date": 1483534301597, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e1302", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 11.911, + "date": 1483534301597, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1323", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 11.613, + "date": 1483534301597, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1342", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 6.496, + "date": 1483534301597, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1363", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": -9.038, + "date": 1483534301597, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1384", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": -10.022, + "date": 1483534301597, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13a5", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": -2.869, + "date": 1483534301597, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13c7", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": -3.87, + "date": 1483534301597, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13e9", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": -6.913, + "date": 1483534301597, + "rssi": 100, + "_id": "586d087bdbab07be5f2e1409", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 2.933, + "date": 1483534301597, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1429", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": -0.658, + "date": 1483534301597, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e144b", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 1.262, + "date": 1483534301597, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1470", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 1.936, + "date": 1483534301597, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e148f", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 1.348, + "date": 1483534301597, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14b2", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": -0.207, + "date": 1483534301597, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14d4", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 0.173, + "date": 1483534301597, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14f5", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": -4.631, + "date": 1483534301597, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1516", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": -13.679, + "date": 1483534301597, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1538", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": -20.713, + "date": 1483534301597, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1557", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 2.177, + "date": 1483534001427, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e1173", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 0.207, + "date": 1483534001427, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e1193", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 0.069, + "date": 1483534001427, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11b2", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 1.87, + "date": 1483534001427, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11d5", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 2.554, + "date": 1483534001427, + "rssi": 100, + "_id": "586cf364dbab07be5f2e11f5", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 1.314, + "date": 1483534001427, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1218", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 1.686, + "date": 1483534001427, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1239", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 5.385, + "date": 1483534001427, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1259", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 3.904, + "date": 1483534001427, + "rssi": 100, + "_id": "586cf814dbab07be5f2e127d", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 16.247, + "date": 1483534001427, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12a0", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 21.457, + "date": 1483534001427, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12c1", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 14.55, + "date": 1483534001427, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12e4", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 17.921, + "date": 1483534001427, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e1303", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 11.911, + "date": 1483534001427, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1324", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 11.613, + "date": 1483534001427, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1344", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 6.496, + "date": 1483534001427, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1364", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": -9.038, + "date": 1483534001427, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1385", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": -10.022, + "date": 1483534001427, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13a7", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": -2.869, + "date": 1483534001427, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13c8", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": -3.87, + "date": 1483534001427, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13ea", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": -6.913, + "date": 1483534001427, + "rssi": 100, + "_id": "586d087bdbab07be5f2e140a", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 2.933, + "date": 1483534001427, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e142a", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": -0.658, + "date": 1483534001427, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e144a", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 1.262, + "date": 1483534001427, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e146f", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 1.936, + "date": 1483534001427, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e148e", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 1.348, + "date": 1483534001427, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14b3", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": -0.207, + "date": 1483534001427, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14d5", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 0.173, + "date": 1483534001427, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14f6", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": -4.631, + "date": 1483534001427, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1519", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": -13.679, + "date": 1483534001427, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1539", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 2.523, + "date": 1483533701407, + "rssi": 100, + "_id": "586ced88dbab07be5f2e1153", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 2.177, + "date": 1483533701407, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e1174", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 0.207, + "date": 1483533701407, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e1194", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 0.069, + "date": 1483533701407, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11b3", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 1.87, + "date": 1483533701407, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11d6", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 2.554, + "date": 1483533701407, + "rssi": 100, + "_id": "586cf364dbab07be5f2e11f6", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 1.314, + "date": 1483533701407, + "rssi": 100, + "_id": "586cf490dbab07be5f2e121c", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 1.686, + "date": 1483533701407, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e123a", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 5.385, + "date": 1483533701407, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e125a", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 3.904, + "date": 1483533701407, + "rssi": 100, + "_id": "586cf814dbab07be5f2e127e", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 16.247, + "date": 1483533701407, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12a1", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 21.457, + "date": 1483533701407, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12c2", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 14.55, + "date": 1483533701407, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12e3", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 17.921, + "date": 1483533701407, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e1304", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 11.911, + "date": 1483533701407, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1325", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 11.613, + "date": 1483533701407, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1345", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 6.496, + "date": 1483533701407, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1367", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": -9.038, + "date": 1483533701407, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1386", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": -10.022, + "date": 1483533701407, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13a8", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": -2.869, + "date": 1483533701407, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13ca", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": -3.87, + "date": 1483533701407, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13eb", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": -6.913, + "date": 1483533701407, + "rssi": 100, + "_id": "586d087bdbab07be5f2e140b", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 2.933, + "date": 1483533701407, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e142b", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": -0.658, + "date": 1483533701407, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e144c", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 1.262, + "date": 1483533701407, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1471", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 1.936, + "date": 1483533701407, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1491", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 1.348, + "date": 1483533701407, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14b6", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": -0.207, + "date": 1483533701407, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14d6", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 0.173, + "date": 1483533701407, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14f7", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": -4.631, + "date": 1483533701407, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1518", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": -3.597, + "date": 1483533401451, + "rssi": 100, + "_id": "586cec5bdbab07be5f2e1133", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 2.523, + "date": 1483533401451, + "rssi": 100, + "_id": "586ced88dbab07be5f2e1154", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 2.177, + "date": 1483533401451, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e1175", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 0.207, + "date": 1483533401451, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e1195", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 0.069, + "date": 1483533401451, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11b4", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 1.87, + "date": 1483533401451, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11d7", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 2.554, + "date": 1483533401451, + "rssi": 100, + "_id": "586cf364dbab07be5f2e11f7", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 1.314, + "date": 1483533401451, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1219", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 1.686, + "date": 1483533401451, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e123b", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 5.385, + "date": 1483533401451, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e125b", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 3.904, + "date": 1483533401451, + "rssi": 100, + "_id": "586cf814dbab07be5f2e127f", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 16.247, + "date": 1483533401451, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12a2", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 21.457, + "date": 1483533401451, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12c3", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 14.55, + "date": 1483533401451, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12e5", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 17.921, + "date": 1483533401451, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e1305", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 11.911, + "date": 1483533401451, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1326", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 11.613, + "date": 1483533401451, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1346", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 6.496, + "date": 1483533401451, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1365", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": -9.038, + "date": 1483533401451, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1387", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": -10.022, + "date": 1483533401451, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13ac", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": -2.869, + "date": 1483533401451, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13c9", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": -3.87, + "date": 1483533401451, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13ec", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": -6.913, + "date": 1483533401451, + "rssi": 100, + "_id": "586d087bdbab07be5f2e140c", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 2.933, + "date": 1483533401451, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e142c", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": -0.658, + "date": 1483533401451, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e144d", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 1.262, + "date": 1483533401451, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1472", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 1.936, + "date": 1483533401451, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1492", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 1.348, + "date": 1483533401451, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14b7", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": -0.207, + "date": 1483533401451, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14d7", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 0.173, + "date": 1483533401451, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14f8", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 1.658, + "date": 1483533101684, + "rssi": 100, + "_id": "586ceb30dbab07be5f2e1114", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": -3.597, + "date": 1483533101684, + "rssi": 100, + "_id": "586cec5bdbab07be5f2e1134", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 2.523, + "date": 1483533101684, + "rssi": 100, + "_id": "586ced88dbab07be5f2e1155", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 2.177, + "date": 1483533101684, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e1176", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 0.207, + "date": 1483533101684, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e1196", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 0.069, + "date": 1483533101684, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11b5", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 1.87, + "date": 1483533101684, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11d8", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 2.554, + "date": 1483533101684, + "rssi": 100, + "_id": "586cf364dbab07be5f2e11f8", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 1.314, + "date": 1483533101684, + "rssi": 100, + "_id": "586cf490dbab07be5f2e121b", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 1.686, + "date": 1483533101684, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e123c", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 5.385, + "date": 1483533101684, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e125e", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 3.904, + "date": 1483533101684, + "rssi": 100, + "_id": "586cf814dbab07be5f2e1280", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 16.247, + "date": 1483533101684, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12a3", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 21.457, + "date": 1483533101684, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12c4", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 14.55, + "date": 1483533101684, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12e6", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 17.921, + "date": 1483533101684, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e1306", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 11.911, + "date": 1483533101684, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1328", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 11.613, + "date": 1483533101684, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1347", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 6.496, + "date": 1483533101684, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1368", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": -9.038, + "date": 1483533101684, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1388", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": -10.022, + "date": 1483533101684, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13a9", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": -2.869, + "date": 1483533101684, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13cc", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": -3.87, + "date": 1483533101684, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13ed", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": -6.913, + "date": 1483533101684, + "rssi": 100, + "_id": "586d087bdbab07be5f2e140d", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 2.933, + "date": 1483533101684, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e142d", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": -0.658, + "date": 1483533101684, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e144e", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 1.262, + "date": 1483533101684, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1473", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 1.936, + "date": 1483533101684, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1493", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 1.348, + "date": 1483533101684, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14b4", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": -0.207, + "date": 1483533101684, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14d8", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 1.935, + "date": 1483532801480, + "rssi": 100, + "_id": "586cea04dbab07be5f2e10f3", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 1.658, + "date": 1483532801480, + "rssi": 100, + "_id": "586ceb30dbab07be5f2e1115", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": -3.597, + "date": 1483532801480, + "rssi": 100, + "_id": "586cec5bdbab07be5f2e1135", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 2.523, + "date": 1483532801480, + "rssi": 100, + "_id": "586ced88dbab07be5f2e1156", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 2.177, + "date": 1483532801480, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e1177", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 0.207, + "date": 1483532801480, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e1197", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 0.069, + "date": 1483532801480, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11b6", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 1.87, + "date": 1483532801480, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11d9", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 2.554, + "date": 1483532801480, + "rssi": 100, + "_id": "586cf364dbab07be5f2e11f9", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 1.314, + "date": 1483532801480, + "rssi": 100, + "_id": "586cf490dbab07be5f2e121a", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 1.686, + "date": 1483532801480, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e123d", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 5.385, + "date": 1483532801480, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e125c", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 3.904, + "date": 1483532801480, + "rssi": 100, + "_id": "586cf814dbab07be5f2e1282", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 16.247, + "date": 1483532801480, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12a4", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 21.457, + "date": 1483532801480, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12c5", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 14.55, + "date": 1483532801480, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12e7", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 17.921, + "date": 1483532801480, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e1307", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 11.911, + "date": 1483532801480, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1327", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 11.613, + "date": 1483532801480, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1348", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 6.496, + "date": 1483532801480, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1366", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": -9.038, + "date": 1483532801480, + "rssi": 100, + "_id": "586d029fdbab07be5f2e138a", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": -10.022, + "date": 1483532801480, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13ad", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": -2.869, + "date": 1483532801480, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13cb", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": -3.87, + "date": 1483532801480, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13ee", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": -6.913, + "date": 1483532801480, + "rssi": 100, + "_id": "586d087bdbab07be5f2e140e", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 2.933, + "date": 1483532801480, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e142e", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": -0.658, + "date": 1483532801480, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e144f", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 1.262, + "date": 1483532801480, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1474", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 1.936, + "date": 1483532801480, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1494", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 1.348, + "date": 1483532801480, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14b5", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": -3.417, + "date": 1483532501420, + "rssi": 100, + "_id": "586ce8d8dbab07be5f2e10d4", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 1.935, + "date": 1483532501420, + "rssi": 100, + "_id": "586cea04dbab07be5f2e10f4", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 1.658, + "date": 1483532501420, + "rssi": 100, + "_id": "586ceb30dbab07be5f2e1116", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": -3.597, + "date": 1483532501420, + "rssi": 100, + "_id": "586cec5bdbab07be5f2e1136", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 2.523, + "date": 1483532501420, + "rssi": 100, + "_id": "586ced88dbab07be5f2e1157", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 2.177, + "date": 1483532501420, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e1178", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 0.207, + "date": 1483532501420, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e1198", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 0.069, + "date": 1483532501420, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11b7", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 1.87, + "date": 1483532501420, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11da", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 2.554, + "date": 1483532501420, + "rssi": 100, + "_id": "586cf364dbab07be5f2e11fa", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 1.314, + "date": 1483532501420, + "rssi": 100, + "_id": "586cf490dbab07be5f2e121d", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 1.686, + "date": 1483532501420, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1241", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 5.385, + "date": 1483532501420, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e125d", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 3.904, + "date": 1483532501420, + "rssi": 100, + "_id": "586cf814dbab07be5f2e1281", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 16.247, + "date": 1483532501420, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12a5", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 21.457, + "date": 1483532501420, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12c6", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 14.55, + "date": 1483532501420, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12e8", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 17.921, + "date": 1483532501420, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e1308", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 11.911, + "date": 1483532501420, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1329", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 11.613, + "date": 1483532501420, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1349", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 6.496, + "date": 1483532501420, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1369", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": -9.038, + "date": 1483532501420, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1389", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": -10.022, + "date": 1483532501420, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13aa", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": -2.869, + "date": 1483532501420, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13cd", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": -3.87, + "date": 1483532501420, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13ef", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": -6.913, + "date": 1483532501420, + "rssi": 100, + "_id": "586d087bdbab07be5f2e140f", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 2.933, + "date": 1483532501420, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e142f", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": -0.658, + "date": 1483532501420, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1450", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 1.262, + "date": 1483532501420, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1475", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 1.936, + "date": 1483532501420, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1495", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": -1.417, + "date": 1483532201043, + "rssi": 100, + "_id": "586ce7acdbab07be5f2e10cb", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": -3.417, + "date": 1483532201043, + "rssi": 100, + "_id": "586ce8d8dbab07be5f2e10d7", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 1.935, + "date": 1483532201043, + "rssi": 100, + "_id": "586cea04dbab07be5f2e10f7", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 1.658, + "date": 1483532201043, + "rssi": 100, + "_id": "586ceb30dbab07be5f2e1118", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": -3.597, + "date": 1483532201043, + "rssi": 100, + "_id": "586cec5bdbab07be5f2e1137", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 2.523, + "date": 1483532201043, + "rssi": 100, + "_id": "586ced88dbab07be5f2e1158", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 2.177, + "date": 1483532201043, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e117b", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 0.207, + "date": 1483532201043, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e1199", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 0.069, + "date": 1483532201043, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11b8", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 1.87, + "date": 1483532201043, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11db", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 2.554, + "date": 1483532201043, + "rssi": 100, + "_id": "586cf364dbab07be5f2e11fb", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 1.314, + "date": 1483532201043, + "rssi": 100, + "_id": "586cf490dbab07be5f2e121e", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 1.686, + "date": 1483532201043, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e123e", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 5.385, + "date": 1483532201043, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e125f", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 3.904, + "date": 1483532201043, + "rssi": 100, + "_id": "586cf814dbab07be5f2e1283", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 16.247, + "date": 1483532201043, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12a6", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 21.457, + "date": 1483532201043, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12c7", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 14.55, + "date": 1483532201043, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12e9", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 17.921, + "date": 1483532201043, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e1309", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 11.911, + "date": 1483532201043, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e132b", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 11.613, + "date": 1483532201043, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e134a", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 6.496, + "date": 1483532201043, + "rssi": 100, + "_id": "586d0047dbab07be5f2e136a", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": -9.038, + "date": 1483532201043, + "rssi": 100, + "_id": "586d029fdbab07be5f2e138b", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": -10.022, + "date": 1483532201043, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13ab", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": -2.869, + "date": 1483532201043, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13ce", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": -3.87, + "date": 1483532201043, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13f2", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": -6.913, + "date": 1483532201043, + "rssi": 100, + "_id": "586d087bdbab07be5f2e1410", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 2.933, + "date": 1483532201043, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1430", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": -0.658, + "date": 1483532201043, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1451", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 1.262, + "date": 1483532201043, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1476", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 6.609, + "date": 1483531901044, + "rssi": 100, + "_id": "586ce67fdbab07be5f2e10ac", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": -1.417, + "date": 1483531901044, + "rssi": 100, + "_id": "586ce7acdbab07be5f2e10cc", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": -3.417, + "date": 1483531901044, + "rssi": 100, + "_id": "586ce8d8dbab07be5f2e10d5", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 1.935, + "date": 1483531901044, + "rssi": 100, + "_id": "586cea04dbab07be5f2e10f5", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 1.658, + "date": 1483531901044, + "rssi": 100, + "_id": "586ceb30dbab07be5f2e1117", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": -3.597, + "date": 1483531901044, + "rssi": 100, + "_id": "586cec5bdbab07be5f2e1138", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 2.523, + "date": 1483531901044, + "rssi": 100, + "_id": "586ced88dbab07be5f2e1159", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 2.177, + "date": 1483531901044, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e1179", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 0.207, + "date": 1483531901044, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e119a", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 0.069, + "date": 1483531901044, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11b9", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 1.87, + "date": 1483531901044, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11dc", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 2.554, + "date": 1483531901044, + "rssi": 100, + "_id": "586cf364dbab07be5f2e11fc", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 1.314, + "date": 1483531901044, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1221", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 1.686, + "date": 1483531901044, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e123f", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 5.385, + "date": 1483531901044, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1260", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 3.904, + "date": 1483531901044, + "rssi": 100, + "_id": "586cf814dbab07be5f2e1284", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 16.247, + "date": 1483531901044, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12a7", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 21.457, + "date": 1483531901044, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12c8", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 14.55, + "date": 1483531901044, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12ea", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 17.921, + "date": 1483531901044, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e130a", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 11.911, + "date": 1483531901044, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e132a", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 11.613, + "date": 1483531901044, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e134b", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 6.496, + "date": 1483531901044, + "rssi": 100, + "_id": "586d0047dbab07be5f2e136b", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": -9.038, + "date": 1483531901044, + "rssi": 100, + "_id": "586d029fdbab07be5f2e138c", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": -10.022, + "date": 1483531901044, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13ae", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": -2.869, + "date": 1483531901044, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13cf", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": -3.87, + "date": 1483531901044, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13f0", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": -6.913, + "date": 1483531901044, + "rssi": 100, + "_id": "586d087bdbab07be5f2e1411", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 2.933, + "date": 1483531901044, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1431", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": -0.658, + "date": 1483531901044, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1452", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 1.069, + "date": 1483531601420, + "rssi": 100, + "_id": "586ce553dbab07be5f2e108d", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 6.609, + "date": 1483531601420, + "rssi": 100, + "_id": "586ce67fdbab07be5f2e10ad", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": -1.417, + "date": 1483531601420, + "rssi": 100, + "_id": "586ce7acdbab07be5f2e10cd", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": -3.417, + "date": 1483531601420, + "rssi": 100, + "_id": "586ce8d8dbab07be5f2e10d6", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 1.935, + "date": 1483531601420, + "rssi": 100, + "_id": "586cea04dbab07be5f2e10f6", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 1.658, + "date": 1483531601420, + "rssi": 100, + "_id": "586ceb30dbab07be5f2e1119", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": -3.597, + "date": 1483531601420, + "rssi": 100, + "_id": "586cec5bdbab07be5f2e1139", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 2.523, + "date": 1483531601420, + "rssi": 100, + "_id": "586ced88dbab07be5f2e115a", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 2.177, + "date": 1483531601420, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e117a", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 0.207, + "date": 1483531601420, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e119b", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 0.069, + "date": 1483531601420, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11ba", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 1.87, + "date": 1483531601420, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11dd", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 2.554, + "date": 1483531601420, + "rssi": 100, + "_id": "586cf364dbab07be5f2e11fd", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 1.314, + "date": 1483531601420, + "rssi": 100, + "_id": "586cf490dbab07be5f2e121f", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 1.686, + "date": 1483531601420, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1240", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 5.385, + "date": 1483531601420, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1261", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 3.904, + "date": 1483531601420, + "rssi": 100, + "_id": "586cf814dbab07be5f2e1285", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 16.247, + "date": 1483531601420, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12a8", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 21.457, + "date": 1483531601420, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12c9", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 14.55, + "date": 1483531601420, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12eb", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 17.921, + "date": 1483531601420, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e130b", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 11.911, + "date": 1483531601420, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e132c", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 11.613, + "date": 1483531601420, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e134c", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 6.496, + "date": 1483531601420, + "rssi": 100, + "_id": "586d0047dbab07be5f2e136c", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": -9.038, + "date": 1483531601420, + "rssi": 100, + "_id": "586d029fdbab07be5f2e138d", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": -10.022, + "date": 1483531601420, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13af", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": -2.869, + "date": 1483531601420, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13d0", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": -3.87, + "date": 1483531601420, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13f1", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": -6.913, + "date": 1483531601420, + "rssi": 100, + "_id": "586d087bdbab07be5f2e1412", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 2.933, + "date": 1483531601420, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1432", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": -3.331, + "date": 1483531300848, + "rssi": 100, + "_id": "586ce42ddbab07be5f2e106d", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 1.069, + "date": 1483531300848, + "rssi": 100, + "_id": "586ce553dbab07be5f2e108e", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 6.609, + "date": 1483531300848, + "rssi": 100, + "_id": "586ce67fdbab07be5f2e10ae", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": -1.417, + "date": 1483531300848, + "rssi": 100, + "_id": "586ce7acdbab07be5f2e10ce", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": -3.417, + "date": 1483531300848, + "rssi": 100, + "_id": "586ce8d8dbab07be5f2e10d8", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 1.935, + "date": 1483531300848, + "rssi": 100, + "_id": "586cea04dbab07be5f2e10f8", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 1.658, + "date": 1483531300848, + "rssi": 100, + "_id": "586ceb30dbab07be5f2e111a", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": -3.597, + "date": 1483531300848, + "rssi": 100, + "_id": "586cec5bdbab07be5f2e113a", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 2.523, + "date": 1483531300848, + "rssi": 100, + "_id": "586ced88dbab07be5f2e115b", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 2.177, + "date": 1483531300848, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e117c", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 0.207, + "date": 1483531300848, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e119c", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 0.069, + "date": 1483531300848, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11bb", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 1.87, + "date": 1483531300848, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11de", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 2.554, + "date": 1483531300848, + "rssi": 100, + "_id": "586cf364dbab07be5f2e11fe", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 1.314, + "date": 1483531300848, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1220", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 1.686, + "date": 1483531300848, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1242", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 5.385, + "date": 1483531300848, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1262", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 3.904, + "date": 1483531300848, + "rssi": 100, + "_id": "586cf814dbab07be5f2e1286", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 16.247, + "date": 1483531300848, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12a9", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 21.457, + "date": 1483531300848, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12ca", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 14.55, + "date": 1483531300848, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12ec", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 17.921, + "date": 1483531300848, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e130c", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 11.911, + "date": 1483531300848, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e132d", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 11.613, + "date": 1483531300848, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e134e", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 6.496, + "date": 1483531300848, + "rssi": 100, + "_id": "586d0047dbab07be5f2e136d", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": -9.038, + "date": 1483531300848, + "rssi": 100, + "_id": "586d029fdbab07be5f2e138f", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": -10.022, + "date": 1483531300848, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13b0", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": -2.869, + "date": 1483531300848, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13d1", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": -3.87, + "date": 1483531300848, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13f3", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": -6.913, + "date": 1483531300848, + "rssi": 100, + "_id": "586d087bdbab07be5f2e1413", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 1.516, + "date": 1483531002068, + "rssi": 100, + "_id": "586ce2fddbab07be5f2e104d", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": -3.331, + "date": 1483531002068, + "rssi": 100, + "_id": "586ce42ddbab07be5f2e106e", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 1.069, + "date": 1483531002068, + "rssi": 100, + "_id": "586ce553dbab07be5f2e108f", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 6.609, + "date": 1483531002068, + "rssi": 100, + "_id": "586ce67fdbab07be5f2e10af", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": -1.417, + "date": 1483531002068, + "rssi": 100, + "_id": "586ce7acdbab07be5f2e10cf", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": -3.417, + "date": 1483531002068, + "rssi": 100, + "_id": "586ce8d8dbab07be5f2e10d9", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 1.935, + "date": 1483531002068, + "rssi": 100, + "_id": "586cea04dbab07be5f2e10f9", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 1.658, + "date": 1483531002068, + "rssi": 100, + "_id": "586ceb30dbab07be5f2e111b", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": -3.597, + "date": 1483531002068, + "rssi": 100, + "_id": "586cec5bdbab07be5f2e113b", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 2.523, + "date": 1483531002068, + "rssi": 100, + "_id": "586ced88dbab07be5f2e115c", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 2.177, + "date": 1483531002068, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e117d", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 0.207, + "date": 1483531002068, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e119d", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 0.069, + "date": 1483531002068, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11bc", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 1.87, + "date": 1483531002068, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11df", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 2.554, + "date": 1483531002068, + "rssi": 100, + "_id": "586cf364dbab07be5f2e11ff", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 1.314, + "date": 1483531002068, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1222", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 1.686, + "date": 1483531002068, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1243", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 5.385, + "date": 1483531002068, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1263", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 3.904, + "date": 1483531002068, + "rssi": 100, + "_id": "586cf814dbab07be5f2e1287", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 16.247, + "date": 1483531002068, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12aa", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 21.457, + "date": 1483531002068, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12cb", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 14.55, + "date": 1483531002068, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12ed", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 17.921, + "date": 1483531002068, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e130d", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 11.911, + "date": 1483531002068, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e132e", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 11.613, + "date": 1483531002068, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e134d", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 6.496, + "date": 1483531002068, + "rssi": 100, + "_id": "586d0047dbab07be5f2e136e", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": -9.038, + "date": 1483531002068, + "rssi": 100, + "_id": "586d029fdbab07be5f2e138e", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": -10.022, + "date": 1483531002068, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13b1", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": -2.869, + "date": 1483531002068, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13d2", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": -3.87, + "date": 1483531002068, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13f4", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": -1.417, + "date": 1483530701141, + "rssi": 100, + "_id": "586ce1d1dbab07be5f2e102e", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 1.516, + "date": 1483530701141, + "rssi": 100, + "_id": "586ce2fddbab07be5f2e104e", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": -3.331, + "date": 1483530701141, + "rssi": 100, + "_id": "586ce42ddbab07be5f2e106f", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 1.069, + "date": 1483530701141, + "rssi": 100, + "_id": "586ce553dbab07be5f2e1090", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 6.609, + "date": 1483530701141, + "rssi": 100, + "_id": "586ce67fdbab07be5f2e10b0", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": -3.417, + "date": 1483530701141, + "rssi": 100, + "_id": "586ce8d8dbab07be5f2e10da", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 1.935, + "date": 1483530701141, + "rssi": 100, + "_id": "586cea04dbab07be5f2e10fa", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 1.658, + "date": 1483530701141, + "rssi": 100, + "_id": "586ceb30dbab07be5f2e111d", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": -3.597, + "date": 1483530701141, + "rssi": 100, + "_id": "586cec5bdbab07be5f2e113c", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 2.523, + "date": 1483530701141, + "rssi": 100, + "_id": "586ced88dbab07be5f2e115d", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 2.177, + "date": 1483530701141, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e117e", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 0.207, + "date": 1483530701141, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e119e", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 0.069, + "date": 1483530701141, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11be", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 1.87, + "date": 1483530701141, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11e0", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 2.554, + "date": 1483530701141, + "rssi": 100, + "_id": "586cf364dbab07be5f2e1200", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 1.314, + "date": 1483530701141, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1223", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 1.686, + "date": 1483530701141, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1245", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 5.385, + "date": 1483530701141, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1264", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 3.904, + "date": 1483530701141, + "rssi": 100, + "_id": "586cf814dbab07be5f2e1288", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 16.247, + "date": 1483530701141, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12ab", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 21.457, + "date": 1483530701141, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12cc", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 14.55, + "date": 1483530701141, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12ee", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 17.921, + "date": 1483530701141, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e130e", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 11.911, + "date": 1483530701141, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e132f", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 11.613, + "date": 1483530701141, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1350", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 6.496, + "date": 1483530701141, + "rssi": 100, + "_id": "586d0047dbab07be5f2e136f", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": -9.038, + "date": 1483530701141, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1390", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": -10.022, + "date": 1483530701141, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13b3", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": -2.869, + "date": 1483530701141, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13d3", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": -2.218, + "date": 1483530401170, + "rssi": 100, + "_id": "586ce0a4dbab07be5f2e100e", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": -1.417, + "date": 1483530401170, + "rssi": 100, + "_id": "586ce1d1dbab07be5f2e102f", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 1.516, + "date": 1483530401170, + "rssi": 100, + "_id": "586ce2fddbab07be5f2e104f", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": -3.331, + "date": 1483530401170, + "rssi": 100, + "_id": "586ce42ddbab07be5f2e1070", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 1.069, + "date": 1483530401170, + "rssi": 100, + "_id": "586ce553dbab07be5f2e1091", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 6.609, + "date": 1483530401170, + "rssi": 100, + "_id": "586ce680dbab07be5f2e10b1", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": -3.417, + "date": 1483530401170, + "rssi": 100, + "_id": "586ce8d8dbab07be5f2e10db", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 1.935, + "date": 1483530401170, + "rssi": 100, + "_id": "586cea04dbab07be5f2e10fb", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 1.658, + "date": 1483530401170, + "rssi": 100, + "_id": "586ceb30dbab07be5f2e111c", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": -3.597, + "date": 1483530401170, + "rssi": 100, + "_id": "586cec5bdbab07be5f2e113d", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 2.523, + "date": 1483530401170, + "rssi": 100, + "_id": "586ced88dbab07be5f2e115e", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 2.177, + "date": 1483530401170, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e117f", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 0.207, + "date": 1483530401170, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e119f", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 0.069, + "date": 1483530401170, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11bd", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 1.87, + "date": 1483530401170, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11e1", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 2.554, + "date": 1483530401170, + "rssi": 100, + "_id": "586cf364dbab07be5f2e1201", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 1.314, + "date": 1483530401170, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1224", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 1.686, + "date": 1483530401170, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1244", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 5.385, + "date": 1483530401170, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1265", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 3.904, + "date": 1483530401170, + "rssi": 100, + "_id": "586cf814dbab07be5f2e1289", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 16.247, + "date": 1483530401170, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12ac", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 21.457, + "date": 1483530401170, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12cd", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 14.55, + "date": 1483530401170, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12ef", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 17.921, + "date": 1483530401170, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e130f", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 11.911, + "date": 1483530401170, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1330", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 11.613, + "date": 1483530401170, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e134f", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 6.496, + "date": 1483530401170, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1370", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": -9.038, + "date": 1483530401170, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1391", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": -10.022, + "date": 1483530401170, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13b2", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": -0.207, + "date": 1483530102052, + "rssi": 100, + "_id": "586cdf78dbab07be5f2e0fef", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": -2.218, + "date": 1483530102052, + "rssi": 100, + "_id": "586ce0a4dbab07be5f2e100f", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": -1.417, + "date": 1483530102052, + "rssi": 100, + "_id": "586ce1d1dbab07be5f2e1030", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 1.516, + "date": 1483530102052, + "rssi": 100, + "_id": "586ce2fddbab07be5f2e1051", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": -3.331, + "date": 1483530102052, + "rssi": 100, + "_id": "586ce42ddbab07be5f2e1071", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 1.069, + "date": 1483530102052, + "rssi": 100, + "_id": "586ce553dbab07be5f2e1092", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 6.609, + "date": 1483530102052, + "rssi": 100, + "_id": "586ce680dbab07be5f2e10b2", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": -3.417, + "date": 1483530102052, + "rssi": 100, + "_id": "586ce8d8dbab07be5f2e10dc", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 1.935, + "date": 1483530102052, + "rssi": 100, + "_id": "586cea04dbab07be5f2e10fc", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 1.658, + "date": 1483530102052, + "rssi": 100, + "_id": "586ceb30dbab07be5f2e111f", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": -3.597, + "date": 1483530102052, + "rssi": 100, + "_id": "586cec5bdbab07be5f2e113e", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 2.523, + "date": 1483530102052, + "rssi": 100, + "_id": "586ced88dbab07be5f2e115f", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 2.177, + "date": 1483530102052, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e1180", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 0.207, + "date": 1483530102052, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e11a0", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 0.069, + "date": 1483530102052, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11bf", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 1.87, + "date": 1483530102052, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11e2", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 2.554, + "date": 1483530102052, + "rssi": 100, + "_id": "586cf364dbab07be5f2e1202", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 1.314, + "date": 1483530102052, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1225", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 1.686, + "date": 1483530102052, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1246", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 5.385, + "date": 1483530102052, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1266", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 3.904, + "date": 1483530102052, + "rssi": 100, + "_id": "586cf814dbab07be5f2e128a", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 16.247, + "date": 1483530102052, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12ad", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 21.457, + "date": 1483530102052, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12ce", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 14.55, + "date": 1483530102052, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12f0", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 17.921, + "date": 1483530102052, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e1310", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 11.911, + "date": 1483530102052, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1331", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 11.613, + "date": 1483530102052, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1351", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 6.496, + "date": 1483530102052, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1371", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": -9.038, + "date": 1483530102052, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1392", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": -2.237, + "date": 1483529802048, + "rssi": 100, + "_id": "586cde4cdbab07be5f2e0fd1", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": -0.207, + "date": 1483529802048, + "rssi": 100, + "_id": "586cdf78dbab07be5f2e0ff0", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": -2.218, + "date": 1483529802048, + "rssi": 100, + "_id": "586ce0a4dbab07be5f2e1010", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": -1.417, + "date": 1483529802048, + "rssi": 100, + "_id": "586ce1d1dbab07be5f2e1031", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 1.516, + "date": 1483529802048, + "rssi": 100, + "_id": "586ce2fddbab07be5f2e1050", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": -3.331, + "date": 1483529802048, + "rssi": 100, + "_id": "586ce42ddbab07be5f2e1072", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 1.069, + "date": 1483529802048, + "rssi": 100, + "_id": "586ce553dbab07be5f2e1093", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 6.609, + "date": 1483529802048, + "rssi": 100, + "_id": "586ce680dbab07be5f2e10b3", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": -3.417, + "date": 1483529802048, + "rssi": 100, + "_id": "586ce8d8dbab07be5f2e10dd", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 1.935, + "date": 1483529802048, + "rssi": 100, + "_id": "586cea04dbab07be5f2e10fd", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 1.658, + "date": 1483529802048, + "rssi": 100, + "_id": "586ceb30dbab07be5f2e111e", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": -3.597, + "date": 1483529802048, + "rssi": 100, + "_id": "586cec5bdbab07be5f2e113f", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 2.523, + "date": 1483529802048, + "rssi": 100, + "_id": "586ced88dbab07be5f2e1160", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 2.177, + "date": 1483529802048, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e1182", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 0.207, + "date": 1483529802048, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e11a1", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 0.069, + "date": 1483529802048, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11c0", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 1.87, + "date": 1483529802048, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11e3", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 2.554, + "date": 1483529802048, + "rssi": 100, + "_id": "586cf364dbab07be5f2e1203", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 1.314, + "date": 1483529802048, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1226", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 1.686, + "date": 1483529802048, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1247", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 5.385, + "date": 1483529802048, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1267", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 3.904, + "date": 1483529802048, + "rssi": 100, + "_id": "586cf814dbab07be5f2e128b", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 16.247, + "date": 1483529802048, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12ae", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 21.457, + "date": 1483529802048, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12cf", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 14.55, + "date": 1483529802048, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12f1", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 17.921, + "date": 1483529802048, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e1311", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 11.911, + "date": 1483529802048, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1332", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 11.613, + "date": 1483529802048, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1353", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 6.496, + "date": 1483529802048, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1372", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": -4.355, + "date": 1483529500848, + "rssi": 100, + "_id": "586cdd20dbab07be5f2e0fb2", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": -2.237, + "date": 1483529500848, + "rssi": 100, + "_id": "586cde4cdbab07be5f2e0fd2", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": -0.207, + "date": 1483529500848, + "rssi": 100, + "_id": "586cdf78dbab07be5f2e0ff1", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": -2.218, + "date": 1483529500848, + "rssi": 100, + "_id": "586ce0a4dbab07be5f2e1011", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": -1.417, + "date": 1483529500848, + "rssi": 100, + "_id": "586ce1d1dbab07be5f2e1032", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 1.516, + "date": 1483529500848, + "rssi": 100, + "_id": "586ce2fddbab07be5f2e1052", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": -3.331, + "date": 1483529500848, + "rssi": 100, + "_id": "586ce42ddbab07be5f2e1073", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 1.069, + "date": 1483529500848, + "rssi": 100, + "_id": "586ce553dbab07be5f2e1094", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 6.609, + "date": 1483529500848, + "rssi": 100, + "_id": "586ce680dbab07be5f2e10b4", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": -3.417, + "date": 1483529500848, + "rssi": 100, + "_id": "586ce8d8dbab07be5f2e10df", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 1.935, + "date": 1483529500848, + "rssi": 100, + "_id": "586cea04dbab07be5f2e10fe", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 1.658, + "date": 1483529500848, + "rssi": 100, + "_id": "586ceb30dbab07be5f2e1120", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": -3.597, + "date": 1483529500848, + "rssi": 100, + "_id": "586cec5bdbab07be5f2e1140", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 2.523, + "date": 1483529500848, + "rssi": 100, + "_id": "586ced88dbab07be5f2e1161", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 2.177, + "date": 1483529500848, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e1181", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 0.207, + "date": 1483529500848, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e11a2", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 0.069, + "date": 1483529500848, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11c1", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 1.87, + "date": 1483529500848, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11e4", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 2.554, + "date": 1483529500848, + "rssi": 100, + "_id": "586cf364dbab07be5f2e1204", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 1.314, + "date": 1483529500848, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1229", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 1.686, + "date": 1483529500848, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1248", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 5.385, + "date": 1483529500848, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1268", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 3.904, + "date": 1483529500848, + "rssi": 100, + "_id": "586cf814dbab07be5f2e128c", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 16.247, + "date": 1483529500848, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12af", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 21.457, + "date": 1483529500848, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12d0", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 14.55, + "date": 1483529500848, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12f2", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 17.921, + "date": 1483529500848, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e1312", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 11.911, + "date": 1483529500848, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1333", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 11.613, + "date": 1483529500848, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1352", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 1.002, + "date": 1483529200876, + "rssi": 100, + "_id": "586cdbf3dbab07be5f2e0f93", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -4.355, + "date": 1483529200876, + "rssi": 100, + "_id": "586cdd20dbab07be5f2e0fb3", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -2.237, + "date": 1483529200876, + "rssi": 100, + "_id": "586cde4cdbab07be5f2e0fd3", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -0.207, + "date": 1483529200876, + "rssi": 100, + "_id": "586cdf78dbab07be5f2e0ff2", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -2.218, + "date": 1483529200876, + "rssi": 100, + "_id": "586ce0a4dbab07be5f2e1012", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -1.417, + "date": 1483529200876, + "rssi": 100, + "_id": "586ce1d1dbab07be5f2e1033", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 1.516, + "date": 1483529200876, + "rssi": 100, + "_id": "586ce2fddbab07be5f2e1053", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -3.331, + "date": 1483529200876, + "rssi": 100, + "_id": "586ce42ddbab07be5f2e1074", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 1.069, + "date": 1483529200876, + "rssi": 100, + "_id": "586ce553dbab07be5f2e1095", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 6.609, + "date": 1483529200876, + "rssi": 100, + "_id": "586ce680dbab07be5f2e10b5", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -3.417, + "date": 1483529200876, + "rssi": 100, + "_id": "586ce8d8dbab07be5f2e10de", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 1.935, + "date": 1483529200876, + "rssi": 100, + "_id": "586cea04dbab07be5f2e10ff", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 1.658, + "date": 1483529200876, + "rssi": 100, + "_id": "586ceb30dbab07be5f2e1121", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -3.597, + "date": 1483529200876, + "rssi": 100, + "_id": "586cec5bdbab07be5f2e1141", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 2.523, + "date": 1483529200876, + "rssi": 100, + "_id": "586ced88dbab07be5f2e1162", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 2.177, + "date": 1483529200876, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e1183", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 0.207, + "date": 1483529200876, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e11a3", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 0.069, + "date": 1483529200876, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11c2", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 1.87, + "date": 1483529200876, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11e5", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 2.554, + "date": 1483529200876, + "rssi": 100, + "_id": "586cf364dbab07be5f2e1205", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 1.314, + "date": 1483529200876, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1228", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 1.686, + "date": 1483529200876, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1249", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 5.385, + "date": 1483529200876, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1269", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 3.904, + "date": 1483529200876, + "rssi": 100, + "_id": "586cf814dbab07be5f2e128d", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 16.247, + "date": 1483529200876, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12b0", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 21.457, + "date": 1483529200876, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12d1", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 14.55, + "date": 1483529200876, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12f3", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 17.921, + "date": 1483529200876, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e1313", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 11.911, + "date": 1483529200876, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1334", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 4.079, + "date": 1483528900865, + "rssi": 100, + "_id": "586cdac7dbab07be5f2e0f6e", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 1.002, + "date": 1483528900865, + "rssi": 100, + "_id": "586cdbf3dbab07be5f2e0f94", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": -4.355, + "date": 1483528900865, + "rssi": 100, + "_id": "586cdd20dbab07be5f2e0fb4", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": -2.237, + "date": 1483528900865, + "rssi": 100, + "_id": "586cde4cdbab07be5f2e0fd4", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": -0.207, + "date": 1483528900865, + "rssi": 100, + "_id": "586cdf78dbab07be5f2e0ff3", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": -2.218, + "date": 1483528900865, + "rssi": 100, + "_id": "586ce0a4dbab07be5f2e1013", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": -1.417, + "date": 1483528900865, + "rssi": 100, + "_id": "586ce1d1dbab07be5f2e1034", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 1.516, + "date": 1483528900865, + "rssi": 100, + "_id": "586ce2fddbab07be5f2e1054", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": -3.331, + "date": 1483528900865, + "rssi": 100, + "_id": "586ce42ddbab07be5f2e1075", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 1.069, + "date": 1483528900865, + "rssi": 100, + "_id": "586ce553dbab07be5f2e10a1", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 6.609, + "date": 1483528900865, + "rssi": 100, + "_id": "586ce680dbab07be5f2e10b6", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": -3.417, + "date": 1483528900865, + "rssi": 100, + "_id": "586ce8d8dbab07be5f2e10e0", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 1.935, + "date": 1483528900865, + "rssi": 100, + "_id": "586cea04dbab07be5f2e1100", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 1.658, + "date": 1483528900865, + "rssi": 100, + "_id": "586ceb30dbab07be5f2e1122", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": -3.597, + "date": 1483528900865, + "rssi": 100, + "_id": "586cec5bdbab07be5f2e1142", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 2.523, + "date": 1483528900865, + "rssi": 100, + "_id": "586ced88dbab07be5f2e1163", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 2.177, + "date": 1483528900865, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e1184", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 0.207, + "date": 1483528900865, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e11a4", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 0.069, + "date": 1483528900865, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11c3", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 1.87, + "date": 1483528900865, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11e7", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 2.554, + "date": 1483528900865, + "rssi": 100, + "_id": "586cf364dbab07be5f2e1206", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 1.314, + "date": 1483528900865, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1227", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 1.686, + "date": 1483528900865, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e124a", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 5.385, + "date": 1483528900865, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e126a", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 3.904, + "date": 1483528900865, + "rssi": 100, + "_id": "586cf814dbab07be5f2e128e", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 16.247, + "date": 1483528900865, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12b1", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 21.457, + "date": 1483528900865, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12d2", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 14.55, + "date": 1483528900865, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12f4", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 17.921, + "date": 1483528900865, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e1314", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 161184, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:16:40.916000+01:00", + "sgv": 118, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163488, + "delta": 1.071, + "date": 1483528600916, + "rssi": 100, + "_id": "586cd99cdbab07be5f2e0f4f", + "type": "sgv", + "glucose": 118 + }, + { + "filtered": 161184, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:16:40.916000+01:00", + "sgv": 118, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163488, + "delta": 4.079, + "date": 1483528600916, + "rssi": 100, + "_id": "586cdac7dbab07be5f2e0f6f", + "type": "sgv", + "glucose": 118 + } +] \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/enact/enacted.json b/app/src/main/java/info/nightscout/sampleData/enact/enacted.json new file mode 100644 index 0000000000..c1460545c8 --- /dev/null +++ b/app/src/main/java/info/nightscout/sampleData/enact/enacted.json @@ -0,0 +1,31 @@ +{ + "bg": 148, + "temp": "absolute", + "snoozeBG": 17, + "recieved": true, + "predBGs": { + "IOB": [ + 148, + 128, + 109, + 91, + 75, + 59, + 45, + 39, + 39, + 39, + 39, + 39, + 39 + ] + }, + "rate": 0.0, + "reason": "COB: 0, Dev: -64, BGI: -8.24, ISF: 21, Target: 81; Eventual BG -34 < 81, setting -11.1U/hr", + "COB": 0, + "eventualBG": -34, + "timestamp": "2017-01-04T16:37:56.113148", + "duration": 30, + "tick": -21, + "IOB": 5.521 +} \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/enact/suggested.json b/app/src/main/java/info/nightscout/sampleData/enact/suggested.json new file mode 100644 index 0000000000..e5a25dbb3f --- /dev/null +++ b/app/src/main/java/info/nightscout/sampleData/enact/suggested.json @@ -0,0 +1 @@ +{"temp":"absolute","bg":148,"tick":-21,"eventualBG":-28,"snoozeBG":16,"predBGs":{"IOB":[148,128,109,92,75,60,46,39,39,39,39,39,39]},"COB":0,"IOB":5.248,"reason":"COB: 0, Dev: -64, BGI: -8.2, ISF: 21, Target: 81; Eventual BG -28 < 81, setting -11.3U/hr, but 28m left and 0 ~ req 0U/hr: no action required"} diff --git a/app/src/main/java/info/nightscout/sampleData/monitor/battery.json b/app/src/main/java/info/nightscout/sampleData/monitor/battery.json new file mode 100644 index 0000000000..4f4bc03804 --- /dev/null +++ b/app/src/main/java/info/nightscout/sampleData/monitor/battery.json @@ -0,0 +1,4 @@ +{ + "status": "normal", + "voltage": 1.45 +} \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/monitor/carbhistory.json b/app/src/main/java/info/nightscout/sampleData/monitor/carbhistory.json new file mode 100644 index 0000000000..1169f8d030 --- /dev/null +++ b/app/src/main/java/info/nightscout/sampleData/monitor/carbhistory.json @@ -0,0 +1 @@ +[{"_id":"586caa0edbab07be5f2e0a9d","carbs":60,"ratio":"7","bg":"98","glucose":98,"glucoseType":"BolusWizard","wizard":{"unknown_byte[8]":0,"_type":"BolusWizard","bg":98,"_byte[5]":2,"unknown_byte[10]":0,"_description":"BolusWizard 2017-01-04T08:53:23 head[2], body[13] op[0x5b]","timestamp":"2017-01-04T08:53:23+01:00","_body":"3c50071e5a025500000000575a","bg_target_high":90,"sensitivity":30,"carb_ratio":7,"food_estimate":8.5,"unabsorbed_insulin_total":0,"correction_estimate":0.2,"carb_input":60,"_head":"5b62","unabsorbed_insulin_count":"??","_byte[7]":0,"bolus_estimate":8.7,"_date":"1775080411","bg_target_low":90},"timestamp":"2017-01-04T08:53:23+01:00","created_at":"2017-01-04T08:53:23+01:00","eventType":"Carb Correction","notes":"Food estimate 8.5\nCorrection estimate 0.2\nBolus estimate 8.7\nTarget low 90\nTarget high 90\nHypothetical glucose delta 0\nGlucose was: 98","medtronic":"mm://openaps/mm-format-ns-treatments/Carb Correction","enteredBy":"openaps://medtronic/522","insulin":null},{"_id":"586c03acdbab07be5f2df99e","duration":0,"bolus":{"_type":"Bolus","_description":"Bolus 2017-01-03T20:57:24 head[4], body[0] op[0x01]","timestamp":"2017-01-03T20:57:24+01:00","_body":"","appended":[{"_type":"UnabsorbedInsulinBolus","_description":"UnabsorbedInsulinBolus unknown head[23], body[0] op[0x5c]","_body":"","_head":"5c177894c0b4f8c07a20d0262ad0503ed07c98d0eca2d0","data":[{"amount":3,"age":148},{"amount":4.5,"age":248},{"amount":3.05,"age":288},{"amount":0.95,"age":298},{"amount":2,"age":318},{"amount":3.1,"age":408},{"amount":5.9,"age":418}],"_date":""}],"programmed":7,"duration":0,"amount":7,"_head":"01464600","type":"normal","_date":"1879540311"},"timestamp":"2017-01-03T20:57:24+01:00","created_at":"2017-01-03T20:57:24+01:00","carbs":55,"ratio":"9","bg":"90","glucose":90,"glucoseType":"BolusWizard","wizard":{"unknown_byte[8]":0,"_type":"BolusWizard","bg":90,"_byte[5]":0,"unknown_byte[10]":0,"_description":"BolusWizard 2017-01-03T20:57:24 head[2], body[13] op[0x5b]","timestamp":"2017-01-03T20:57:24+01:00","_body":"3750091e5a003d000004003d5a","bg_target_high":90,"sensitivity":30,"carb_ratio":9,"food_estimate":6.1,"unabsorbed_insulin_total":0.4,"correction_estimate":0,"carb_input":55,"_head":"5b5a","unabsorbed_insulin_count":"??","_byte[7]":0,"bolus_estimate":6.1,"_date":"1879140311","bg_target_low":90},"eventType":"Meal Bolus","insulin":7,"notes":"Normal bolus with wizard.\nProgrammed bolus 7\nDelivered bolus 7\nPercent delivered: 100%\nFood estimate 6.1\nCorrection estimate 0\nBolus estimate 6.1\nTarget low 90\nTarget high 90\nHypothetical glucose delta -210\nGlucose was: 90","medtronic":"mm://openaps/mm-format-ns-treatments/Meal Bolus","enteredBy":"openaps://medtronic/522"},{"_id":"586bc94adbab07be5f2df3c1","duration":0,"bolus":{"_type":"Bolus","_description":"Bolus 2017-01-03T16:50:06 head[4], body[0] op[0x01]","timestamp":"2017-01-03T16:50:06+01:00","_body":"","appended":[{"_type":"UnabsorbedInsulinBolus","_description":"UnabsorbedInsulinBolus unknown head[17], body[0] op[0x5c]","_body":"","_head":"5c117a29c02633c05047c07ca1c0ecabc0","data":[{"amount":3.05,"age":41},{"amount":0.95,"age":51},{"amount":2,"age":71},{"amount":3.1,"age":161},{"amount":5.9,"age":171}],"_date":""}],"programmed":4.5,"duration":0,"amount":4.5,"_head":"012d2d00","type":"normal","_date":"0672500311"},"timestamp":"2017-01-03T16:50:06+01:00","created_at":"2017-01-03T16:50:06+01:00","carbs":40,"ratio":"9","bg":"111","glucose":111,"glucoseType":"BolusWizard","wizard":{"unknown_byte[8]":0,"_type":"BolusWizard","bg":111,"_byte[5]":7,"unknown_byte[10]":0,"_description":"BolusWizard 2017-01-03T16:50:06 head[2], body[13] op[0x5b]","timestamp":"2017-01-03T16:50:06+01:00","_body":"2850091e5a072c000035002c5a","bg_target_high":90,"sensitivity":30,"carb_ratio":9,"food_estimate":4.4,"unabsorbed_insulin_total":5.3,"correction_estimate":0.7,"carb_input":40,"_head":"5b6f","unabsorbed_insulin_count":"??","_byte[7]":0,"bolus_estimate":4.4,"_date":"0672100311","bg_target_low":90},"eventType":"Meal Bolus","insulin":4.5,"notes":"Normal bolus with wizard.\nProgrammed bolus 4.5\nDelivered bolus 4.5\nPercent delivered: 100%\nFood estimate 4.4\nCorrection estimate 0.7\nBolus estimate 4.4\nTarget low 90\nTarget high 90\nHypothetical glucose delta -135\nGlucose was: 111","medtronic":"mm://openaps/mm-format-ns-treatments/Meal Bolus","enteredBy":"openaps://medtronic/"},{"_id":"586ba38cdbab07be5f2def9f","duration":0,"bolus":{"_type":"Bolus","_description":"Bolus 2017-01-03T14:04:52 head[4], body[0] op[0x01]","timestamp":"2017-01-03T14:04:52+01:00","_body":"","appended":[{"_type":"UnabsorbedInsulinBolus","_description":"UnabsorbedInsulinBolus unknown head[11], body[0] op[0x5c]","_body":"","_head":"5c0b503bd02263d0326dd1","data":[{"amount":2,"age":315},{"amount":0.85,"age":355},{"amount":1.25,"age":365}],"_date":""}],"programmed":9,"duration":0,"amount":9,"_head":"015a5a00","type":"normal","_date":"34444e0311"},"timestamp":"2017-01-03T14:04:52+01:00","created_at":"2017-01-03T14:04:52+01:00","carbs":70,"ratio":"9","bg":"130","glucose":130,"glucoseType":"BolusWizard","wizard":{"unknown_byte[8]":0,"_type":"BolusWizard","bg":130,"_byte[5]":13,"unknown_byte[10]":0,"_description":"BolusWizard 2017-01-03T14:04:52 head[2], body[13] op[0x5b]","timestamp":"2017-01-03T14:04:52+01:00","_body":"4650091e5a0d4d000000005a5a","bg_target_high":90,"sensitivity":30,"carb_ratio":9,"food_estimate":7.7,"unabsorbed_insulin_total":0,"correction_estimate":1.3,"carb_input":70,"_head":"5b82","unabsorbed_insulin_count":"??","_byte[7]":0,"bolus_estimate":9,"_date":"34440e0311","bg_target_low":90},"eventType":"Meal Bolus","insulin":9,"notes":"Normal bolus with wizard.\nProgrammed bolus 9\nDelivered bolus 9\nPercent delivered: 100%\nFood estimate 7.7\nCorrection estimate 1.3\nBolus estimate 9\nTarget low 90\nTarget high 90\nHypothetical glucose delta -270\nGlucose was: 130","medtronic":"mm://openaps/mm-format-ns-treatments/Meal Bolus","enteredBy":"openaps://medtronic/522"},{"_id":"586b4fdbdbab07be5f2de63f","duration":0,"bolus":{"_type":"Bolus","_description":"Bolus 2017-01-03T08:03:47 head[4], body[0] op[0x01]","timestamp":"2017-01-03T08:03:47+01:00","_body":"","programmed":8.5,"_head":"01555500","amount":8.5,"duration":0,"type":"normal","_date":"2f43480311"},"timestamp":"2017-01-03T08:03:47+01:00","created_at":"2017-01-03T08:03:47+01:00","carbs":60,"ratio":"7","bg":"90","glucose":90,"glucoseType":"BolusWizard","wizard":{"unknown_byte[8]":0,"_type":"BolusWizard","bg":90,"_byte[5]":0,"unknown_byte[10]":0,"_description":"BolusWizard 2017-01-03T08:03:47 head[2], body[13] op[0x5b]","timestamp":"2017-01-03T08:03:47+01:00","_body":"3c50071e5a005500000000555a","bg_target_high":90,"sensitivity":30,"carb_ratio":7,"food_estimate":8.5,"unabsorbed_insulin_total":0,"correction_estimate":0,"carb_input":60,"_head":"5b5a","unabsorbed_insulin_count":"??","_byte[7]":0,"bolus_estimate":8.5,"_date":"2f43080311","bg_target_low":90},"eventType":"Meal Bolus","insulin":8.5,"notes":"Normal bolus with wizard.\nProgrammed bolus 8.5\nDelivered bolus 8.5\nPercent delivered: 100%\nFood estimate 8.5\nCorrection estimate 0\nBolus estimate 8.5\nTarget low 90\nTarget high 90\nHypothetical glucose delta -255\nGlucose was: 90","medtronic":"mm://openaps/mm-format-ns-treatments/Meal Bolus","enteredBy":"openaps://medtronic/522"},{"_id":"586aa57edbab07be5f2dd4e9","duration":0,"bolus":{"_type":"Bolus","_description":"Bolus 2017-01-02T20:06:46 head[4], body[0] op[0x01]","timestamp":"2017-01-02T20:06:46+01:00","_body":"","appended":[{"_type":"UnabsorbedInsulinBolus","_description":"UnabsorbedInsulinBolus unknown head[29], body[0] op[0x5c]","_body":"","_head":"5c1d501bc02825c0282fc05043c05475c01c7fc05083d028a1d050c9d0","data":[{"amount":2,"age":27},{"amount":1,"age":37},{"amount":1,"age":47},{"amount":2,"age":67},{"amount":2.1,"age":117},{"amount":0.7,"age":127},{"amount":2,"age":387},{"amount":1,"age":417},{"amount":2,"age":457}],"_date":""}],"programmed":3.3,"duration":0,"amount":3.3,"_head":"01212100","type":"normal","_date":"2e46540211"},"timestamp":"2017-01-02T20:06:46+01:00","created_at":"2017-01-02T20:06:46+01:00","carbs":30,"ratio":"9","bg":"110","glucose":110,"glucoseType":"BolusWizard","wizard":{"unknown_byte[8]":0,"_type":"BolusWizard","bg":110,"_byte[5]":6,"unknown_byte[10]":0,"_description":"BolusWizard 2017-01-02T20:06:46 head[2], body[13] op[0x5b]","timestamp":"2017-01-02T20:06:46+01:00","_body":"1e50091e5a062100003800215a","bg_target_high":90,"sensitivity":30,"carb_ratio":9,"food_estimate":3.3,"unabsorbed_insulin_total":5.6,"correction_estimate":0.6,"carb_input":30,"_head":"5b6e","unabsorbed_insulin_count":"??","_byte[7]":0,"bolus_estimate":3.3,"_date":"2e46140211","bg_target_low":90},"eventType":"Meal Bolus","insulin":3.3,"notes":"Normal bolus with wizard.\nProgrammed bolus 3.3\nDelivered bolus 3.3\nPercent delivered: 100%\nFood estimate 3.3\nCorrection estimate 0.6\nBolus estimate 3.3\nTarget low 90\nTarget high 90\nHypothetical glucose delta -99\nGlucose was: 110","medtronic":"mm://openaps/mm-format-ns-treatments/Meal Bolus","enteredBy":"openaps://medtronic/522"},{"_id":"586a89d5dbab07be5f2dd231","duration":0,"bolus":{"_type":"Bolus","_description":"Bolus 2017-01-02T18:08:32 head[4], body[0] op[0x01]","timestamp":"2017-01-02T18:08:32+01:00","_body":"","appended":[{"_type":"UnabsorbedInsulinBolus","_description":"UnabsorbedInsulinBolus unknown head[11], body[0] op[0x5c]","_body":"","_head":"5c0b500dd0282bd05053d0","data":[{"amount":2,"age":269},{"amount":1,"age":299},{"amount":2,"age":339}],"_date":""}],"programmed":2.8,"duration":0,"amount":2.8,"_head":"011c1c00","type":"normal","_date":"2048520211"},"timestamp":"2017-01-02T18:08:32+01:00","created_at":"2017-01-02T18:08:32+01:00","carbs":25,"ratio":"9","bg":"94","glucose":94,"glucoseType":"BolusWizard","wizard":{"unknown_byte[8]":0,"_type":"BolusWizard","bg":94,"_byte[5]":1,"unknown_byte[10]":0,"_description":"BolusWizard 2017-01-02T18:08:32 head[2], body[13] op[0x5b]","timestamp":"2017-01-02T18:08:32+01:00","_body":"1950091e5a011b000000001c5a","bg_target_high":90,"sensitivity":30,"carb_ratio":9,"food_estimate":2.7,"unabsorbed_insulin_total":0,"correction_estimate":0.1,"carb_input":25,"_head":"5b5e","unabsorbed_insulin_count":"??","_byte[7]":0,"bolus_estimate":2.8,"_date":"2048120211","bg_target_low":90},"eventType":"Meal Bolus","insulin":2.8,"notes":"Normal bolus with wizard.\nProgrammed bolus 2.8\nDelivered bolus 2.8\nPercent delivered: 100%\nFood estimate 2.7\nCorrection estimate 0.1\nBolus estimate 2.8\nTarget low 90\nTarget high 90\nHypothetical glucose delta -84\nGlucose was: 94","medtronic":"mm://openaps/mm-format-ns-treatments/Meal Bolus","enteredBy":"openaps://medtronic/522"},{"_id":"5869ed83dbab07be5f2dc96e","duration":0,"bolus":{"_type":"Bolus","_description":"Bolus 2017-01-02T06:58:00 head[4], body[0] op[0x01]","timestamp":"2017-01-02T06:58:00+01:00","_body":"","programmed":8.5,"_head":"01555500","amount":8.5,"duration":0,"type":"normal","_date":"007a460211"},"timestamp":"2017-01-02T06:58:00+01:00","created_at":"2017-01-02T06:58:00+01:00","carbs":60,"ratio":"7","bg":"101","glucose":101,"glucoseType":"BolusWizard","wizard":{"unknown_byte[8]":0,"_type":"BolusWizard","bg":101,"_byte[5]":3,"unknown_byte[10]":0,"_description":"BolusWizard 2017-01-02T06:58:00 head[2], body[13] op[0x5b]","timestamp":"2017-01-02T06:58:00+01:00","_body":"3c50071e5a035500000000585a","bg_target_high":90,"sensitivity":30,"carb_ratio":7,"food_estimate":8.5,"unabsorbed_insulin_total":0,"correction_estimate":0.3,"carb_input":60,"_head":"5b65","unabsorbed_insulin_count":"??","_byte[7]":0,"bolus_estimate":8.8,"_date":"007a060211","bg_target_low":90},"eventType":"Meal Bolus","insulin":8.5,"notes":"Normal bolus with wizard.\nProgrammed bolus 8.5\nDelivered bolus 8.5\nPercent delivered: 100%\nFood estimate 8.5\nCorrection estimate 0.3\nBolus estimate 8.8\nTarget low 90\nTarget high 90\nHypothetical glucose delta -255\nGlucose was: 101","medtronic":"mm://openaps/mm-format-ns-treatments/Meal Bolus","enteredBy":"openaps://medtronic/522"},{"_id":"58694d71dbab07be5f2db898","duration":0,"bolus":{"_type":"Bolus","_description":"Bolus 2017-01-01T19:33:43 head[4], body[0] op[0x01]","timestamp":"2017-01-01T19:33:43+01:00","_body":"","appended":[{"_type":"UnabsorbedInsulinBolus","_description":"UnabsorbedInsulinBolus unknown head[26], body[0] op[0x5c]","_body":"","_head":"5c1a0e90c06a9ac078c2c050f4c0501cd028a8d050b2d050bcd0","data":[{"amount":0.35,"age":144},{"amount":2.65,"age":154},{"amount":3,"age":194},{"amount":2,"age":244},{"amount":2,"age":284},{"amount":1,"age":424},{"amount":2,"age":434},{"amount":2,"age":444}],"_date":""}],"programmed":9.5,"duration":0,"amount":9.5,"_head":"015f5f00","type":"normal","_date":"2b61530111"},"timestamp":"2017-01-01T19:33:43+01:00","created_at":"2017-01-01T19:33:43+01:00","carbs":85,"ratio":"9","bg":"105","glucose":105,"glucoseType":"BolusWizard","wizard":{"unknown_byte[8]":0,"_type":"BolusWizard","bg":105,"_byte[5]":5,"unknown_byte[10]":0,"_description":"BolusWizard 2017-01-01T19:33:43 head[2], body[13] op[0x5b]","timestamp":"2017-01-01T19:33:43+01:00","_body":"5550091e55055e000004005f5a","bg_target_high":90,"sensitivity":30,"carb_ratio":9,"food_estimate":9.4,"unabsorbed_insulin_total":0.4,"correction_estimate":0.5,"carb_input":85,"_head":"5b69","unabsorbed_insulin_count":"??","_byte[7]":0,"bolus_estimate":9.5,"_date":"2b61130111","bg_target_low":85},"eventType":"Meal Bolus","insulin":9.5,"notes":"Normal bolus with wizard.\nProgrammed bolus 9.5\nDelivered bolus 9.5\nPercent delivered: 100%\nFood estimate 9.4\nCorrection estimate 0.5\nBolus estimate 9.5\nTarget low 85\nTarget high 90\nHypothetical glucose delta -285\nGlucose was: 105","medtronic":"mm://openaps/mm-format-ns-treatments/Meal Bolus","enteredBy":"openaps://medtronic/522"},{"_id":"586914b5dbab07be5f2db2ed","duration":0,"bolus":{"_type":"Bolus","_description":"Bolus 2017-01-01T15:36:56 head[4], body[0] op[0x01]","timestamp":"2017-01-01T15:36:56+01:00","_body":"","appended":[{"_type":"UnabsorbedInsulinBolus","_description":"UnabsorbedInsulinBolus unknown head[23], body[0] op[0x5c]","_body":"","_head":"5c17502fc028bbc050c5c050cfc0281fd0c065d0806fd0","data":[{"amount":2,"age":47},{"amount":1,"age":187},{"amount":2,"age":197},{"amount":2,"age":207},{"amount":1,"age":287},{"amount":4.8,"age":357},{"amount":3.2,"age":367}],"_date":""}],"programmed":2,"duration":0,"amount":2,"_head":"01141400","type":"normal","_date":"38644f0111"},"timestamp":"2017-01-01T15:36:56+01:00","created_at":"2017-01-01T15:36:56+01:00","carbs":20,"ratio":"9","bg":"90","glucose":90,"glucoseType":"BolusWizard","wizard":{"unknown_byte[8]":0,"_type":"BolusWizard","bg":90,"_byte[5]":0,"unknown_byte[10]":0,"_description":"BolusWizard 2017-01-01T15:36:56 head[2], body[13] op[0x5b]","timestamp":"2017-01-01T15:36:56+01:00","_body":"1450091e55001600001100165a","bg_target_high":90,"sensitivity":30,"carb_ratio":9,"food_estimate":2.2,"unabsorbed_insulin_total":1.7,"correction_estimate":0,"carb_input":20,"_head":"5b5a","unabsorbed_insulin_count":"??","_byte[7]":0,"bolus_estimate":2.2,"_date":"38640f0111","bg_target_low":85},"eventType":"Meal Bolus","insulin":2,"notes":"Normal bolus with wizard.\nProgrammed bolus 2\nDelivered bolus 2\nPercent delivered: 100%\nFood estimate 2.2\nCorrection estimate 0\nBolus estimate 2.2\nTarget low 85\nTarget high 90\nHypothetical glucose delta -60\nGlucose was: 90","medtronic":"mm://openaps/mm-format-ns-treatments/Meal Bolus","enteredBy":"openaps://medtronic/522"},{"_id":"5868c13edbab07be5f2dabdf","duration":0,"bolus":{"_type":"Bolus","_description":"Bolus 2017-01-01T09:36:51 head[4], body[0] op[0x01]","timestamp":"2017-01-01T09:36:51+01:00","_body":"","programmed":8,"_head":"01505000","amount":8,"duration":0,"type":"normal","_date":"3364490111"},"timestamp":"2017-01-01T09:36:50+01:00","created_at":"2017-01-01T09:36:50+01:00","carbs":60,"ratio":"9","bg":"86","glucose":86,"glucoseType":"BolusWizard","wizard":{"unknown_byte[8]":0,"_type":"BolusWizard","bg":86,"_byte[5]":0,"unknown_byte[10]":0,"_description":"BolusWizard 2017-01-01T09:36:50 head[2], body[13] op[0x5b]","timestamp":"2017-01-01T09:36:50+01:00","_body":"3c50091e55004200000000425a","bg_target_high":90,"sensitivity":30,"carb_ratio":9,"food_estimate":6.6,"unabsorbed_insulin_total":0,"correction_estimate":0,"carb_input":60,"_head":"5b56","unabsorbed_insulin_count":"??","_byte[7]":0,"bolus_estimate":6.6,"_date":"3264090111","bg_target_low":85},"eventType":"Meal Bolus","insulin":8,"notes":"Normal bolus with wizard.\nProgrammed bolus 8\nDelivered bolus 8\nPercent delivered: 100%\nFood estimate 6.6\nCorrection estimate 0\nBolus estimate 6.6\nTarget low 85\nTarget high 90\nHypothetical glucose delta -240\nGlucose was: 86","medtronic":"mm://openaps/mm-format-ns-treatments/Meal Bolus","enteredBy":"openaps://medtronic/522"},{"_id":"5867f162dbab07be5f2d9631","duration":0,"bolus":{"_type":"Bolus","_description":"Bolus 2016-12-31T18:49:42 head[4], body[0] op[0x01]","timestamp":"2016-12-31T18:49:42+01:00","_body":"","appended":[{"_type":"UnabsorbedInsulinBolus","_description":"UnabsorbedInsulinBolus unknown head[26], body[0] op[0x5c]","_body":"","_head":"5c1a5014c05096c028aac050bec0c804d06440d05090d0509ad0","data":[{"amount":2,"age":20},{"amount":2,"age":150},{"amount":1,"age":170},{"amount":2,"age":190},{"amount":5,"age":260},{"amount":2.5,"age":320},{"amount":2,"age":400},{"amount":2,"age":410}],"_date":""}],"programmed":6.5,"duration":0,"amount":6.5,"_head":"01414100","type":"normal","_date":"ea31521f10"},"timestamp":"2016-12-31T18:49:42+01:00","created_at":"2016-12-31T18:49:42+01:00","carbs":60,"ratio":"9","bg":"120","glucose":120,"glucoseType":"BolusWizard","wizard":{"unknown_byte[8]":0,"_type":"BolusWizard","bg":120,"_byte[5]":10,"unknown_byte[10]":0,"_description":"BolusWizard 2016-12-31T18:49:42 head[2], body[13] op[0x5b]","timestamp":"2016-12-31T18:49:42+01:00","_body":"3c50091e550a4200001700425a","bg_target_high":90,"sensitivity":30,"carb_ratio":9,"food_estimate":6.6,"unabsorbed_insulin_total":2.3,"correction_estimate":1,"carb_input":60,"_head":"5b78","unabsorbed_insulin_count":"??","_byte[7]":0,"bolus_estimate":6.6,"_date":"ea31121f10","bg_target_low":85},"eventType":"Meal Bolus","insulin":6.5,"notes":"Normal bolus with wizard.\nProgrammed bolus 6.5\nDelivered bolus 6.5\nPercent delivered: 100%\nFood estimate 6.6\nCorrection estimate 1\nBolus estimate 6.6\nTarget low 85\nTarget high 90\nHypothetical glucose delta -195\nGlucose was: 120","medtronic":"mm://openaps/mm-format-ns-treatments/Meal Bolus","enteredBy":"openaps://medtronic/522"}] \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/monitor/clock-zoned.json b/app/src/main/java/info/nightscout/sampleData/monitor/clock-zoned.json new file mode 100644 index 0000000000..d8e4e2f4fe --- /dev/null +++ b/app/src/main/java/info/nightscout/sampleData/monitor/clock-zoned.json @@ -0,0 +1 @@ +"2017-01-04T16:40:31+01:00" \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/monitor/clock.json b/app/src/main/java/info/nightscout/sampleData/monitor/clock.json new file mode 100644 index 0000000000..233cee13ee --- /dev/null +++ b/app/src/main/java/info/nightscout/sampleData/monitor/clock.json @@ -0,0 +1 @@ +"2017-01-04T16:40:31" \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/monitor/edison-battery.json b/app/src/main/java/info/nightscout/sampleData/monitor/edison-battery.json new file mode 100644 index 0000000000..15da5e3d65 --- /dev/null +++ b/app/src/main/java/info/nightscout/sampleData/monitor/edison-battery.json @@ -0,0 +1,4 @@ +{ + "battery": 52, + "batteryVoltage": 3701 +} \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/monitor/glucose.json b/app/src/main/java/info/nightscout/sampleData/monitor/glucose.json new file mode 100644 index 0000000000..c4c0130106 --- /dev/null +++ b/app/src/main/java/info/nightscout/sampleData/monitor/glucose.json @@ -0,0 +1,15002 @@ +[ + { + "filtered": 217664, + "direction": "DoubleDown", + "noise": 1, + "dateString": "2017-01-04T16:36:41.224000+01:00", + "sgv": 148, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 191424, + "delta": -20.713, + "date": 1483544201224, + "rssi": 100, + "_id": "586d168bdbab07be5f2e153b", + "type": "sgv", + "glucose": 148 + }, + { + "filtered": 226528, + "direction": "SingleDown", + "noise": 1, + "dateString": "2017-01-04T16:31:41.395000+01:00", + "sgv": 169, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 210592, + "delta": -13.679, + "date": 1483543901395, + "rssi": 100, + "_id": "586d155fdbab07be5f2e151c", + "type": "sgv", + "glucose": 169 + }, + { + "filtered": 226528, + "direction": "SingleDown", + "noise": 1, + "dateString": "2017-01-04T16:31:41.395000+01:00", + "sgv": 169, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 210592, + "delta": -20.713, + "date": 1483543901395, + "rssi": 100, + "_id": "586d168bdbab07be5f2e153c", + "type": "sgv", + "glucose": 169 + }, + { + "filtered": 230624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:26:41.244000+01:00", + "sgv": 183, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 223264, + "delta": -4.631, + "date": 1483543601244, + "rssi": 100, + "_id": "586d1433dbab07be5f2e14fc", + "type": "sgv", + "glucose": 183 + }, + { + "filtered": 230624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:26:41.244000+01:00", + "sgv": 183, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 223264, + "delta": -13.679, + "date": 1483543601244, + "rssi": 100, + "_id": "586d155fdbab07be5f2e151d", + "type": "sgv", + "glucose": 183 + }, + { + "filtered": 230624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:26:41.244000+01:00", + "sgv": 183, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 223264, + "delta": -20.713, + "date": 1483543601244, + "rssi": 100, + "_id": "586d168bdbab07be5f2e153d", + "type": "sgv", + "glucose": 183 + }, + { + "filtered": 231808, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:16:41.221000+01:00", + "sgv": 192, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 231840, + "delta": 0.173, + "date": 1483543001221, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14db", + "type": "sgv", + "glucose": 192 + }, + { + "filtered": 231808, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:16:41.221000+01:00", + "sgv": 192, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 231840, + "delta": -4.631, + "date": 1483543001221, + "rssi": 100, + "_id": "586d1433dbab07be5f2e14fd", + "type": "sgv", + "glucose": 192 + }, + { + "filtered": 231808, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:16:41.221000+01:00", + "sgv": 192, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 231840, + "delta": -13.679, + "date": 1483543001221, + "rssi": 100, + "_id": "586d155fdbab07be5f2e151e", + "type": "sgv", + "glucose": 192 + }, + { + "filtered": 231808, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:16:41.221000+01:00", + "sgv": 192, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 231840, + "delta": -20.713, + "date": 1483543001221, + "rssi": 100, + "_id": "586d168bdbab07be5f2e153e", + "type": "sgv", + "glucose": 192 + }, + { + "filtered": 230944, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:11:41.253000+01:00", + "sgv": 192, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 231680, + "delta": -0.207, + "date": 1483542701253, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14bb", + "type": "sgv", + "glucose": 192 + }, + { + "filtered": 230944, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:11:41.253000+01:00", + "sgv": 192, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 231680, + "delta": 0.173, + "date": 1483542701253, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14dc", + "type": "sgv", + "glucose": 192 + }, + { + "filtered": 230944, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:11:41.253000+01:00", + "sgv": 192, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 231680, + "delta": -4.631, + "date": 1483542701253, + "rssi": 100, + "_id": "586d1433dbab07be5f2e14fe", + "type": "sgv", + "glucose": 192 + }, + { + "filtered": 230944, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:11:41.253000+01:00", + "sgv": 192, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 231680, + "delta": -13.679, + "date": 1483542701253, + "rssi": 100, + "_id": "586d155fdbab07be5f2e151f", + "type": "sgv", + "glucose": 192 + }, + { + "filtered": 230944, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:11:41.253000+01:00", + "sgv": 192, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 231680, + "delta": -20.713, + "date": 1483542701253, + "rssi": 100, + "_id": "586d168bdbab07be5f2e153f", + "type": "sgv", + "glucose": 192 + }, + { + "filtered": 229536, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:06:41.161000+01:00", + "sgv": 192, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 231872, + "delta": 1.348, + "date": 1483542401161, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e149a", + "type": "sgv", + "glucose": 192 + }, + { + "filtered": 229536, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:06:41.161000+01:00", + "sgv": 192, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 231872, + "delta": -0.207, + "date": 1483542401161, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14bc", + "type": "sgv", + "glucose": 192 + }, + { + "filtered": 229536, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:06:41.161000+01:00", + "sgv": 192, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 231872, + "delta": 0.173, + "date": 1483542401161, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14dd", + "type": "sgv", + "glucose": 192 + }, + { + "filtered": 229536, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:06:41.161000+01:00", + "sgv": 192, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 231872, + "delta": -4.631, + "date": 1483542401161, + "rssi": 100, + "_id": "586d1433dbab07be5f2e14ff", + "type": "sgv", + "glucose": 192 + }, + { + "filtered": 229536, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:06:41.161000+01:00", + "sgv": 192, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 231872, + "delta": -13.679, + "date": 1483542401161, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1520", + "type": "sgv", + "glucose": 192 + }, + { + "filtered": 229536, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:06:41.161000+01:00", + "sgv": 192, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 231872, + "delta": -20.713, + "date": 1483542401161, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1540", + "type": "sgv", + "glucose": 192 + }, + { + "filtered": 227968, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:01:41.177000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230624, + "delta": 1.936, + "date": 1483542101177, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1478", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 227968, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:01:41.177000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230624, + "delta": 1.348, + "date": 1483542101177, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e149b", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 227968, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:01:41.177000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230624, + "delta": -0.207, + "date": 1483542101177, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14bd", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 227968, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:01:41.177000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230624, + "delta": 0.173, + "date": 1483542101177, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14de", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 227968, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:01:41.177000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230624, + "delta": -4.631, + "date": 1483542101177, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1500", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 227968, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:01:41.177000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230624, + "delta": -13.679, + "date": 1483542101177, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1521", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 227968, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T16:01:41.177000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230624, + "delta": -20.713, + "date": 1483542101177, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1541", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 226656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:56:41.241000+01:00", + "sgv": 189, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 228832, + "delta": 1.262, + "date": 1483541801241, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1459", + "type": "sgv", + "glucose": 189 + }, + { + "filtered": 226656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:56:41.241000+01:00", + "sgv": 189, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 228832, + "delta": 1.936, + "date": 1483541801241, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1479", + "type": "sgv", + "glucose": 189 + }, + { + "filtered": 226656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:56:41.241000+01:00", + "sgv": 189, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 228832, + "delta": 1.348, + "date": 1483541801241, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e149c", + "type": "sgv", + "glucose": 189 + }, + { + "filtered": 226656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:56:41.241000+01:00", + "sgv": 189, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 228832, + "delta": -0.207, + "date": 1483541801241, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14be", + "type": "sgv", + "glucose": 189 + }, + { + "filtered": 226656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:56:41.241000+01:00", + "sgv": 189, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 228832, + "delta": 0.173, + "date": 1483541801241, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14df", + "type": "sgv", + "glucose": 189 + }, + { + "filtered": 226656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:56:41.241000+01:00", + "sgv": 189, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 228832, + "delta": -4.631, + "date": 1483541801241, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1501", + "type": "sgv", + "glucose": 189 + }, + { + "filtered": 226656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:56:41.241000+01:00", + "sgv": 189, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 228832, + "delta": -13.679, + "date": 1483541801241, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1522", + "type": "sgv", + "glucose": 189 + }, + { + "filtered": 226656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:56:41.241000+01:00", + "sgv": 189, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 228832, + "delta": -20.713, + "date": 1483541801241, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1542", + "type": "sgv", + "glucose": 189 + }, + { + "filtered": 226464, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:46:41.285000+01:00", + "sgv": 186, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 226496, + "delta": -0.658, + "date": 1483541201285, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1435", + "type": "sgv", + "glucose": 186 + }, + { + "filtered": 226464, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:46:41.285000+01:00", + "sgv": 186, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 226496, + "delta": 1.262, + "date": 1483541201285, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e145a", + "type": "sgv", + "glucose": 186 + }, + { + "filtered": 226464, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:46:41.285000+01:00", + "sgv": 186, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 226496, + "delta": 1.936, + "date": 1483541201285, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e147b", + "type": "sgv", + "glucose": 186 + }, + { + "filtered": 226464, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:46:41.285000+01:00", + "sgv": 186, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 226496, + "delta": 1.348, + "date": 1483541201285, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e149d", + "type": "sgv", + "glucose": 186 + }, + { + "filtered": 226464, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:46:41.285000+01:00", + "sgv": 186, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 226496, + "delta": -0.207, + "date": 1483541201285, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14bf", + "type": "sgv", + "glucose": 186 + }, + { + "filtered": 226464, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:46:41.285000+01:00", + "sgv": 186, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 226496, + "delta": 0.173, + "date": 1483541201285, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14e0", + "type": "sgv", + "glucose": 186 + }, + { + "filtered": 226464, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:46:41.285000+01:00", + "sgv": 186, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 226496, + "delta": -4.631, + "date": 1483541201285, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1502", + "type": "sgv", + "glucose": 186 + }, + { + "filtered": 226464, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:46:41.285000+01:00", + "sgv": 186, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 226496, + "delta": -13.679, + "date": 1483541201285, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1524", + "type": "sgv", + "glucose": 186 + }, + { + "filtered": 226464, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:46:41.285000+01:00", + "sgv": 186, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 226496, + "delta": -20.713, + "date": 1483541201285, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1543", + "type": "sgv", + "glucose": 186 + }, + { + "filtered": 227840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:41:41.755000+01:00", + "sgv": 187, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227104, + "delta": 2.933, + "date": 1483540901755, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1415", + "type": "sgv", + "glucose": 187 + }, + { + "filtered": 227840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:41:41.755000+01:00", + "sgv": 187, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227104, + "delta": -0.658, + "date": 1483540901755, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1436", + "type": "sgv", + "glucose": 187 + }, + { + "filtered": 227840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:41:41.755000+01:00", + "sgv": 187, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227104, + "delta": 1.262, + "date": 1483540901755, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e145b", + "type": "sgv", + "glucose": 187 + }, + { + "filtered": 227840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:41:41.755000+01:00", + "sgv": 187, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227104, + "delta": 1.936, + "date": 1483540901755, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e147a", + "type": "sgv", + "glucose": 187 + }, + { + "filtered": 227840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:41:41.755000+01:00", + "sgv": 187, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227104, + "delta": 1.348, + "date": 1483540901755, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e149e", + "type": "sgv", + "glucose": 187 + }, + { + "filtered": 227840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:41:41.755000+01:00", + "sgv": 187, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227104, + "delta": -0.207, + "date": 1483540901755, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14c0", + "type": "sgv", + "glucose": 187 + }, + { + "filtered": 227840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:41:41.755000+01:00", + "sgv": 187, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227104, + "delta": 0.173, + "date": 1483540901755, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14e1", + "type": "sgv", + "glucose": 187 + }, + { + "filtered": 227840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:41:41.755000+01:00", + "sgv": 187, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227104, + "delta": -4.631, + "date": 1483540901755, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1503", + "type": "sgv", + "glucose": 187 + }, + { + "filtered": 227840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:41:41.755000+01:00", + "sgv": 187, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227104, + "delta": -13.679, + "date": 1483540901755, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1523", + "type": "sgv", + "glucose": 187 + }, + { + "filtered": 227840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:41:41.755000+01:00", + "sgv": 187, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227104, + "delta": -20.713, + "date": 1483540901755, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1544", + "type": "sgv", + "glucose": 187 + }, + { + "filtered": 230208, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:36:41.273000+01:00", + "sgv": 184, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 224384, + "delta": -6.913, + "date": 1483540601273, + "rssi": 100, + "_id": "586d087bdbab07be5f2e13f6", + "type": "sgv", + "glucose": 184 + }, + { + "filtered": 230208, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:36:41.273000+01:00", + "sgv": 184, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 224384, + "delta": 2.933, + "date": 1483540601273, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1416", + "type": "sgv", + "glucose": 184 + }, + { + "filtered": 230208, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:36:41.273000+01:00", + "sgv": 184, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 224384, + "delta": -0.658, + "date": 1483540601273, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1437", + "type": "sgv", + "glucose": 184 + }, + { + "filtered": 230208, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:36:41.273000+01:00", + "sgv": 184, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 224384, + "delta": 1.262, + "date": 1483540601273, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e145c", + "type": "sgv", + "glucose": 184 + }, + { + "filtered": 230208, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:36:41.273000+01:00", + "sgv": 184, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 224384, + "delta": 1.936, + "date": 1483540601273, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e147c", + "type": "sgv", + "glucose": 184 + }, + { + "filtered": 230208, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:36:41.273000+01:00", + "sgv": 184, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 224384, + "delta": 1.348, + "date": 1483540601273, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e149f", + "type": "sgv", + "glucose": 184 + }, + { + "filtered": 230208, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:36:41.273000+01:00", + "sgv": 184, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 224384, + "delta": -0.207, + "date": 1483540601273, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14c1", + "type": "sgv", + "glucose": 184 + }, + { + "filtered": 230208, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:36:41.273000+01:00", + "sgv": 184, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 224384, + "delta": 0.173, + "date": 1483540601273, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14e2", + "type": "sgv", + "glucose": 184 + }, + { + "filtered": 230208, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:36:41.273000+01:00", + "sgv": 184, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 224384, + "delta": -4.631, + "date": 1483540601273, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1504", + "type": "sgv", + "glucose": 184 + }, + { + "filtered": 230208, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:36:41.273000+01:00", + "sgv": 184, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 224384, + "delta": -13.679, + "date": 1483540601273, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1525", + "type": "sgv", + "glucose": 184 + }, + { + "filtered": 230208, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:36:41.273000+01:00", + "sgv": 184, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 224384, + "delta": -20.713, + "date": 1483540601273, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1545", + "type": "sgv", + "glucose": 184 + }, + { + "filtered": 234784, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:31:41.318000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230784, + "delta": -3.87, + "date": 1483540301318, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13d7", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 234784, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:31:41.318000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230784, + "delta": -6.913, + "date": 1483540301318, + "rssi": 100, + "_id": "586d087bdbab07be5f2e13f7", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 234784, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:31:41.318000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230784, + "delta": 2.933, + "date": 1483540301318, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1417", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 234784, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:31:41.318000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230784, + "delta": -0.658, + "date": 1483540301318, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1438", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 234784, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:31:41.318000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230784, + "delta": 1.262, + "date": 1483540301318, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e145d", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 234784, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:31:41.318000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230784, + "delta": 1.936, + "date": 1483540301318, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e147d", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 234784, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:31:41.318000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230784, + "delta": 1.348, + "date": 1483540301318, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14a0", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 234784, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:31:41.318000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230784, + "delta": -0.207, + "date": 1483540301318, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14c2", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 234784, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:31:41.318000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230784, + "delta": 0.173, + "date": 1483540301318, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14e3", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 234784, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:31:41.318000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230784, + "delta": -4.631, + "date": 1483540301318, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1505", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 234784, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:31:41.318000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230784, + "delta": -13.679, + "date": 1483540301318, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1526", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 234784, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:31:41.318000+01:00", + "sgv": 191, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 230784, + "delta": -20.713, + "date": 1483540301318, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1546", + "type": "sgv", + "glucose": 191 + }, + { + "filtered": 242592, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:26:41.288000+01:00", + "sgv": 195, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 234368, + "delta": -2.869, + "date": 1483540001288, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13b6", + "type": "sgv", + "glucose": 195 + }, + { + "filtered": 242592, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:26:41.288000+01:00", + "sgv": 195, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 234368, + "delta": -3.87, + "date": 1483540001288, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13d8", + "type": "sgv", + "glucose": 195 + }, + { + "filtered": 242592, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:26:41.288000+01:00", + "sgv": 195, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 234368, + "delta": -6.913, + "date": 1483540001288, + "rssi": 100, + "_id": "586d087bdbab07be5f2e13f9", + "type": "sgv", + "glucose": 195 + }, + { + "filtered": 242592, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:26:41.288000+01:00", + "sgv": 195, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 234368, + "delta": 2.933, + "date": 1483540001288, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1418", + "type": "sgv", + "glucose": 195 + }, + { + "filtered": 242592, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:26:41.288000+01:00", + "sgv": 195, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 234368, + "delta": -0.658, + "date": 1483540001288, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1439", + "type": "sgv", + "glucose": 195 + }, + { + "filtered": 242592, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:26:41.288000+01:00", + "sgv": 195, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 234368, + "delta": 1.262, + "date": 1483540001288, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e145e", + "type": "sgv", + "glucose": 195 + }, + { + "filtered": 242592, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:26:41.288000+01:00", + "sgv": 195, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 234368, + "delta": 1.936, + "date": 1483540001288, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e147e", + "type": "sgv", + "glucose": 195 + }, + { + "filtered": 242592, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:26:41.288000+01:00", + "sgv": 195, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 234368, + "delta": 1.348, + "date": 1483540001288, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14a1", + "type": "sgv", + "glucose": 195 + }, + { + "filtered": 242592, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:26:41.288000+01:00", + "sgv": 195, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 234368, + "delta": -0.207, + "date": 1483540001288, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14c3", + "type": "sgv", + "glucose": 195 + }, + { + "filtered": 242592, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:26:41.288000+01:00", + "sgv": 195, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 234368, + "delta": 0.173, + "date": 1483540001288, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14e4", + "type": "sgv", + "glucose": 195 + }, + { + "filtered": 242592, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:26:41.288000+01:00", + "sgv": 195, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 234368, + "delta": -4.631, + "date": 1483540001288, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1506", + "type": "sgv", + "glucose": 195 + }, + { + "filtered": 242592, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:26:41.288000+01:00", + "sgv": 195, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 234368, + "delta": -13.679, + "date": 1483540001288, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1527", + "type": "sgv", + "glucose": 195 + }, + { + "filtered": 242592, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T15:26:41.288000+01:00", + "sgv": 195, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 234368, + "delta": -20.713, + "date": 1483540001288, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1547", + "type": "sgv", + "glucose": 195 + }, + { + "filtered": 253376, + "direction": "SingleDown", + "noise": 1, + "dateString": "2017-01-04T15:21:41.330000+01:00", + "sgv": 198, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 237024, + "delta": -10.022, + "date": 1483539701330, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e1396", + "type": "sgv", + "glucose": 198 + }, + { + "filtered": 253376, + "direction": "SingleDown", + "noise": 1, + "dateString": "2017-01-04T15:21:41.330000+01:00", + "sgv": 198, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 237024, + "delta": -2.869, + "date": 1483539701330, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13ba", + "type": "sgv", + "glucose": 198 + }, + { + "filtered": 253376, + "direction": "SingleDown", + "noise": 1, + "dateString": "2017-01-04T15:21:41.330000+01:00", + "sgv": 198, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 237024, + "delta": -3.87, + "date": 1483539701330, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13d9", + "type": "sgv", + "glucose": 198 + }, + { + "filtered": 253376, + "direction": "SingleDown", + "noise": 1, + "dateString": "2017-01-04T15:21:41.330000+01:00", + "sgv": 198, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 237024, + "delta": -6.913, + "date": 1483539701330, + "rssi": 100, + "_id": "586d087bdbab07be5f2e13f8", + "type": "sgv", + "glucose": 198 + }, + { + "filtered": 253376, + "direction": "SingleDown", + "noise": 1, + "dateString": "2017-01-04T15:21:41.330000+01:00", + "sgv": 198, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 237024, + "delta": 2.933, + "date": 1483539701330, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1419", + "type": "sgv", + "glucose": 198 + }, + { + "filtered": 253376, + "direction": "SingleDown", + "noise": 1, + "dateString": "2017-01-04T15:21:41.330000+01:00", + "sgv": 198, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 237024, + "delta": -0.658, + "date": 1483539701330, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e143a", + "type": "sgv", + "glucose": 198 + }, + { + "filtered": 253376, + "direction": "SingleDown", + "noise": 1, + "dateString": "2017-01-04T15:21:41.330000+01:00", + "sgv": 198, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 237024, + "delta": 1.262, + "date": 1483539701330, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e145f", + "type": "sgv", + "glucose": 198 + }, + { + "filtered": 253376, + "direction": "SingleDown", + "noise": 1, + "dateString": "2017-01-04T15:21:41.330000+01:00", + "sgv": 198, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 237024, + "delta": 1.936, + "date": 1483539701330, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e147f", + "type": "sgv", + "glucose": 198 + }, + { + "filtered": 253376, + "direction": "SingleDown", + "noise": 1, + "dateString": "2017-01-04T15:21:41.330000+01:00", + "sgv": 198, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 237024, + "delta": 1.348, + "date": 1483539701330, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14a2", + "type": "sgv", + "glucose": 198 + }, + { + "filtered": 253376, + "direction": "SingleDown", + "noise": 1, + "dateString": "2017-01-04T15:21:41.330000+01:00", + "sgv": 198, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 237024, + "delta": -0.207, + "date": 1483539701330, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14c4", + "type": "sgv", + "glucose": 198 + }, + { + "filtered": 253376, + "direction": "SingleDown", + "noise": 1, + "dateString": "2017-01-04T15:21:41.330000+01:00", + "sgv": 198, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 237024, + "delta": 0.173, + "date": 1483539701330, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14e5", + "type": "sgv", + "glucose": 198 + }, + { + "filtered": 253376, + "direction": "SingleDown", + "noise": 1, + "dateString": "2017-01-04T15:21:41.330000+01:00", + "sgv": 198, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 237024, + "delta": -4.631, + "date": 1483539701330, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1507", + "type": "sgv", + "glucose": 198 + }, + { + "filtered": 253376, + "direction": "SingleDown", + "noise": 1, + "dateString": "2017-01-04T15:21:41.330000+01:00", + "sgv": 198, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 237024, + "delta": -13.679, + "date": 1483539701330, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1528", + "type": "sgv", + "glucose": 198 + }, + { + "filtered": 253376, + "direction": "SingleDown", + "noise": 1, + "dateString": "2017-01-04T15:21:41.330000+01:00", + "sgv": 198, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 237024, + "delta": -20.713, + "date": 1483539701330, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1548", + "type": "sgv", + "glucose": 198 + }, + { + "filtered": 269184, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:11:41.287000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255584, + "delta": -9.038, + "date": 1483539101287, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1375", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 269184, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:11:41.287000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255584, + "delta": -10.022, + "date": 1483539101287, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e1397", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 269184, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:11:41.287000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255584, + "delta": -2.869, + "date": 1483539101287, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13b7", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 269184, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:11:41.287000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255584, + "delta": -3.87, + "date": 1483539101287, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13da", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 269184, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:11:41.287000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255584, + "delta": -6.913, + "date": 1483539101287, + "rssi": 100, + "_id": "586d087bdbab07be5f2e13fa", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 269184, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:11:41.287000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255584, + "delta": 2.933, + "date": 1483539101287, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e141a", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 269184, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:11:41.287000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255584, + "delta": -0.658, + "date": 1483539101287, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e143b", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 269184, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:11:41.287000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255584, + "delta": 1.262, + "date": 1483539101287, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1460", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 269184, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:11:41.287000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255584, + "delta": 1.936, + "date": 1483539101287, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1480", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 269184, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:11:41.287000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255584, + "delta": 1.348, + "date": 1483539101287, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14a3", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 269184, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:11:41.287000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255584, + "delta": -0.207, + "date": 1483539101287, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14c5", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 269184, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:11:41.287000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255584, + "delta": 0.173, + "date": 1483539101287, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14e6", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 269184, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:11:41.287000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255584, + "delta": -4.631, + "date": 1483539101287, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1508", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 269184, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:11:41.287000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255584, + "delta": -13.679, + "date": 1483539101287, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1529", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 269184, + "direction": "FortyFiveDown", + "noise": 1, + "dateString": "2017-01-04T15:11:41.287000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255584, + "delta": -20.713, + "date": 1483539101287, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1549", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 261440, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T15:01:41.333000+01:00", + "sgv": 236, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 272320, + "delta": 6.496, + "date": 1483538501333, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1355", + "type": "sgv", + "glucose": 236 + }, + { + "filtered": 261440, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T15:01:41.333000+01:00", + "sgv": 236, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 272320, + "delta": -9.038, + "date": 1483538501333, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1376", + "type": "sgv", + "glucose": 236 + }, + { + "filtered": 261440, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T15:01:41.333000+01:00", + "sgv": 236, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 272320, + "delta": -10.022, + "date": 1483538501333, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e1398", + "type": "sgv", + "glucose": 236 + }, + { + "filtered": 261440, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T15:01:41.333000+01:00", + "sgv": 236, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 272320, + "delta": -2.869, + "date": 1483538501333, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13b8", + "type": "sgv", + "glucose": 236 + }, + { + "filtered": 261440, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T15:01:41.333000+01:00", + "sgv": 236, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 272320, + "delta": -3.87, + "date": 1483538501333, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13db", + "type": "sgv", + "glucose": 236 + }, + { + "filtered": 261440, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T15:01:41.333000+01:00", + "sgv": 236, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 272320, + "delta": -6.913, + "date": 1483538501333, + "rssi": 100, + "_id": "586d087bdbab07be5f2e13fb", + "type": "sgv", + "glucose": 236 + }, + { + "filtered": 261440, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T15:01:41.333000+01:00", + "sgv": 236, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 272320, + "delta": 2.933, + "date": 1483538501333, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e141b", + "type": "sgv", + "glucose": 236 + }, + { + "filtered": 261440, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T15:01:41.333000+01:00", + "sgv": 236, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 272320, + "delta": -0.658, + "date": 1483538501333, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e143c", + "type": "sgv", + "glucose": 236 + }, + { + "filtered": 261440, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T15:01:41.333000+01:00", + "sgv": 236, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 272320, + "delta": 1.262, + "date": 1483538501333, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1461", + "type": "sgv", + "glucose": 236 + }, + { + "filtered": 261440, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T15:01:41.333000+01:00", + "sgv": 236, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 272320, + "delta": 1.936, + "date": 1483538501333, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1481", + "type": "sgv", + "glucose": 236 + }, + { + "filtered": 261440, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T15:01:41.333000+01:00", + "sgv": 236, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 272320, + "delta": 1.348, + "date": 1483538501333, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14a4", + "type": "sgv", + "glucose": 236 + }, + { + "filtered": 261440, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T15:01:41.333000+01:00", + "sgv": 236, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 272320, + "delta": -0.207, + "date": 1483538501333, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14c6", + "type": "sgv", + "glucose": 236 + }, + { + "filtered": 261440, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T15:01:41.333000+01:00", + "sgv": 236, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 272320, + "delta": 0.173, + "date": 1483538501333, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14e7", + "type": "sgv", + "glucose": 236 + }, + { + "filtered": 261440, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T15:01:41.333000+01:00", + "sgv": 236, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 272320, + "delta": -4.631, + "date": 1483538501333, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1509", + "type": "sgv", + "glucose": 236 + }, + { + "filtered": 261440, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T15:01:41.333000+01:00", + "sgv": 236, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 272320, + "delta": -13.679, + "date": 1483538501333, + "rssi": 100, + "_id": "586d155fdbab07be5f2e152a", + "type": "sgv", + "glucose": 236 + }, + { + "filtered": 261440, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T15:01:41.333000+01:00", + "sgv": 236, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 272320, + "delta": -20.713, + "date": 1483538501333, + "rssi": 100, + "_id": "586d168bdbab07be5f2e154a", + "type": "sgv", + "glucose": 236 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": 11.613, + "date": 1483538201284, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1336", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": 6.496, + "date": 1483538201284, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1356", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": -9.038, + "date": 1483538201284, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1377", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": -10.022, + "date": 1483538201284, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e1399", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": -2.869, + "date": 1483538201284, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13b9", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": -3.87, + "date": 1483538201284, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13dc", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": -6.913, + "date": 1483538201284, + "rssi": 100, + "_id": "586d087bdbab07be5f2e13fc", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": 2.933, + "date": 1483538201284, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e141c", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": -0.658, + "date": 1483538201284, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e143d", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": 1.262, + "date": 1483538201284, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1462", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": 1.936, + "date": 1483538201284, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1482", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": 1.348, + "date": 1483538201284, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14a5", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": -0.207, + "date": 1483538201284, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14c7", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": 0.173, + "date": 1483538201284, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14e8", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": -4.631, + "date": 1483538201284, + "rssi": 100, + "_id": "586d1433dbab07be5f2e150a", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": -13.679, + "date": 1483538201284, + "rssi": 100, + "_id": "586d155fdbab07be5f2e152b", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 250240, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:56:41.284000+01:00", + "sgv": 229, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 266304, + "delta": -20.713, + "date": 1483538201284, + "rssi": 100, + "_id": "586d168bdbab07be5f2e154b", + "type": "sgv", + "glucose": 229 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": 11.911, + "date": 1483537901316, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1317", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": 11.613, + "date": 1483537901316, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1337", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": 6.496, + "date": 1483537901316, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1357", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": -9.038, + "date": 1483537901316, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1378", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": -10.022, + "date": 1483537901316, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e139a", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": -2.869, + "date": 1483537901316, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13bb", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": -3.87, + "date": 1483537901316, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13de", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": -6.913, + "date": 1483537901316, + "rssi": 100, + "_id": "586d087bdbab07be5f2e13fd", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": 2.933, + "date": 1483537901316, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e141d", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": -0.658, + "date": 1483537901316, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e143e", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": 1.262, + "date": 1483537901316, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1463", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": 1.936, + "date": 1483537901316, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1483", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": 1.348, + "date": 1483537901316, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14a6", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": -0.207, + "date": 1483537901316, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14c8", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": 0.173, + "date": 1483537901316, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14e9", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": -4.631, + "date": 1483537901316, + "rssi": 100, + "_id": "586d1433dbab07be5f2e150b", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": -13.679, + "date": 1483537901316, + "rssi": 100, + "_id": "586d155fdbab07be5f2e152c", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 235712, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:51:41.316000+01:00", + "sgv": 218, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 255552, + "delta": -20.713, + "date": 1483537901316, + "rssi": 100, + "_id": "586d168bdbab07be5f2e154c", + "type": "sgv", + "glucose": 218 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": 17.921, + "date": 1483537601014, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e12f7", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": 11.911, + "date": 1483537601014, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1318", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": 11.613, + "date": 1483537601014, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1338", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": 6.496, + "date": 1483537601014, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1358", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": -9.038, + "date": 1483537601014, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1379", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": -10.022, + "date": 1483537601014, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e139b", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": -2.869, + "date": 1483537601014, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13bd", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": -3.87, + "date": 1483537601014, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13dd", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": -6.913, + "date": 1483537601014, + "rssi": 100, + "_id": "586d087bdbab07be5f2e13fe", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": 2.933, + "date": 1483537601014, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e141e", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": -0.658, + "date": 1483537601014, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e143f", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": 1.262, + "date": 1483537601014, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1464", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": 1.936, + "date": 1483537601014, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1484", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": 1.348, + "date": 1483537601014, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14a7", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": -0.207, + "date": 1483537601014, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14c9", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": 0.173, + "date": 1483537601014, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14ea", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": -4.631, + "date": 1483537601014, + "rssi": 100, + "_id": "586d1433dbab07be5f2e150c", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": -13.679, + "date": 1483537601014, + "rssi": 100, + "_id": "586d155fdbab07be5f2e152d", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 218464, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:46:41.014000+01:00", + "sgv": 206, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 244512, + "delta": -20.713, + "date": 1483537601014, + "rssi": 100, + "_id": "586d168bdbab07be5f2e154d", + "type": "sgv", + "glucose": 206 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": 14.55, + "date": 1483537301326, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12d8", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": 17.921, + "date": 1483537301326, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e12f8", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": 11.911, + "date": 1483537301326, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1319", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": 11.613, + "date": 1483537301326, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1339", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": 6.496, + "date": 1483537301326, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1359", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": -9.038, + "date": 1483537301326, + "rssi": 100, + "_id": "586d029fdbab07be5f2e137a", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": -10.022, + "date": 1483537301326, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e139c", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": -2.869, + "date": 1483537301326, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13bc", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": -3.87, + "date": 1483537301326, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13df", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": -6.913, + "date": 1483537301326, + "rssi": 100, + "_id": "586d087bdbab07be5f2e13ff", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": 2.933, + "date": 1483537301326, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1420", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": -0.658, + "date": 1483537301326, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1440", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": 1.262, + "date": 1483537301326, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1465", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": 1.936, + "date": 1483537301326, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1485", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": 1.348, + "date": 1483537301326, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14a8", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": -0.207, + "date": 1483537301326, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14ca", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": 0.173, + "date": 1483537301326, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14eb", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": -4.631, + "date": 1483537301326, + "rssi": 100, + "_id": "586d1433dbab07be5f2e150d", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": -13.679, + "date": 1483537301326, + "rssi": 100, + "_id": "586d155fdbab07be5f2e152e", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 201152, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:41:41.326000+01:00", + "sgv": 188, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 227936, + "delta": -20.713, + "date": 1483537301326, + "rssi": 100, + "_id": "586d168bdbab07be5f2e154e", + "type": "sgv", + "glucose": 188 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": 21.457, + "date": 1483537001325, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12b9", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": 14.55, + "date": 1483537001325, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12d9", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": 17.921, + "date": 1483537001325, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e12f9", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": 11.911, + "date": 1483537001325, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e131a", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": 11.613, + "date": 1483537001325, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e133a", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": 6.496, + "date": 1483537001325, + "rssi": 100, + "_id": "586d0047dbab07be5f2e135a", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": -9.038, + "date": 1483537001325, + "rssi": 100, + "_id": "586d029fdbab07be5f2e137b", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": -10.022, + "date": 1483537001325, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e139d", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": -2.869, + "date": 1483537001325, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13be", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": -3.87, + "date": 1483537001325, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13e0", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": -6.913, + "date": 1483537001325, + "rssi": 100, + "_id": "586d087bdbab07be5f2e1400", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": 2.933, + "date": 1483537001325, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e141f", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": -0.658, + "date": 1483537001325, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1441", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": 1.262, + "date": 1483537001325, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1466", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": 1.936, + "date": 1483537001325, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1486", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": 1.348, + "date": 1483537001325, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14aa", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": -0.207, + "date": 1483537001325, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14cb", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": 0.173, + "date": 1483537001325, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14ec", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": -4.631, + "date": 1483537001325, + "rssi": 100, + "_id": "586d1433dbab07be5f2e150e", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": -13.679, + "date": 1483537001325, + "rssi": 100, + "_id": "586d155fdbab07be5f2e152f", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 187264, + "direction": "DoubleUp", + "noise": 1, + "dateString": "2017-01-04T14:36:41.325000+01:00", + "sgv": 173, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 214464, + "delta": -20.713, + "date": 1483537001325, + "rssi": 100, + "_id": "586d168bdbab07be5f2e154f", + "type": "sgv", + "glucose": 173 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": 16.247, + "date": 1483536701263, + "rssi": 100, + "_id": "586cf940dbab07be5f2e1297", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": 21.457, + "date": 1483536701263, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12ba", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": 14.55, + "date": 1483536701263, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12da", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": 17.921, + "date": 1483536701263, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e12fa", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": 11.911, + "date": 1483536701263, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e131b", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": 11.613, + "date": 1483536701263, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e133b", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": 6.496, + "date": 1483536701263, + "rssi": 100, + "_id": "586d0047dbab07be5f2e135b", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": -9.038, + "date": 1483536701263, + "rssi": 100, + "_id": "586d029fdbab07be5f2e137c", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": -10.022, + "date": 1483536701263, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e139e", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": -2.869, + "date": 1483536701263, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13bf", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": -3.87, + "date": 1483536701263, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13e1", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": -6.913, + "date": 1483536701263, + "rssi": 100, + "_id": "586d087bdbab07be5f2e1401", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": 2.933, + "date": 1483536701263, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1421", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": -0.658, + "date": 1483536701263, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1443", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": 1.262, + "date": 1483536701263, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1467", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": 1.936, + "date": 1483536701263, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1490", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": 1.348, + "date": 1483536701263, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14a9", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": -0.207, + "date": 1483536701263, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14cc", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": 0.173, + "date": 1483536701263, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14ed", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": -4.631, + "date": 1483536701263, + "rssi": 100, + "_id": "586d1433dbab07be5f2e150f", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": -13.679, + "date": 1483536701263, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1530", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 178208, + "direction": "SingleUp", + "noise": 1, + "dateString": "2017-01-04T14:31:41.263000+01:00", + "sgv": 152, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 194592, + "delta": -20.713, + "date": 1483536701263, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1551", + "type": "sgv", + "glucose": 152 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": 3.904, + "date": 1483536401340, + "rssi": 100, + "_id": "586cf814dbab07be5f2e1275", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": 16.247, + "date": 1483536401340, + "rssi": 100, + "_id": "586cf940dbab07be5f2e1298", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": 21.457, + "date": 1483536401340, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12b8", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": 14.55, + "date": 1483536401340, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12db", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": 17.921, + "date": 1483536401340, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e12fb", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": 11.911, + "date": 1483536401340, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e131c", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": 11.613, + "date": 1483536401340, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e133c", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": 6.496, + "date": 1483536401340, + "rssi": 100, + "_id": "586d0047dbab07be5f2e135c", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": -9.038, + "date": 1483536401340, + "rssi": 100, + "_id": "586d029fdbab07be5f2e137d", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": -10.022, + "date": 1483536401340, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e139f", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": -2.869, + "date": 1483536401340, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13c0", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": -3.87, + "date": 1483536401340, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13e3", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": -6.913, + "date": 1483536401340, + "rssi": 100, + "_id": "586d087bdbab07be5f2e1402", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": 2.933, + "date": 1483536401340, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1422", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": -0.658, + "date": 1483536401340, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1442", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": 1.262, + "date": 1483536401340, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1468", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": 1.936, + "date": 1483536401340, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e148a", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": 1.348, + "date": 1483536401340, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14ab", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": -0.207, + "date": 1483536401340, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14cd", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": 0.173, + "date": 1483536401340, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14ee", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": -4.631, + "date": 1483536401340, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1510", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": -13.679, + "date": 1483536401340, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1531", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 173344, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:26:41.340000+01:00", + "sgv": 136, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 179552, + "delta": -20.713, + "date": 1483536401340, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1550", + "type": "sgv", + "glucose": 136 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": 5.385, + "date": 1483536101258, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1252", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": 3.904, + "date": 1483536101258, + "rssi": 100, + "_id": "586cf814dbab07be5f2e1276", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": 16.247, + "date": 1483536101258, + "rssi": 100, + "_id": "586cf940dbab07be5f2e1299", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": 21.457, + "date": 1483536101258, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12b7", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": 14.55, + "date": 1483536101258, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12dc", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": 17.921, + "date": 1483536101258, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e12fc", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": 11.911, + "date": 1483536101258, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e131d", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": 11.613, + "date": 1483536101258, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e133d", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": 6.496, + "date": 1483536101258, + "rssi": 100, + "_id": "586d0047dbab07be5f2e135d", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": -9.038, + "date": 1483536101258, + "rssi": 100, + "_id": "586d029fdbab07be5f2e137e", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": -10.022, + "date": 1483536101258, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13a6", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": -2.869, + "date": 1483536101258, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13c1", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": -3.87, + "date": 1483536101258, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13e2", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": -6.913, + "date": 1483536101258, + "rssi": 100, + "_id": "586d087bdbab07be5f2e1403", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": 2.933, + "date": 1483536101258, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1423", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": -0.658, + "date": 1483536101258, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1444", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": 1.262, + "date": 1483536101258, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e146b", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": 1.936, + "date": 1483536101258, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1487", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": 1.348, + "date": 1483536101258, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14ad", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": -0.207, + "date": 1483536101258, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14ce", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": 0.173, + "date": 1483536101258, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14ef", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": -4.631, + "date": 1483536101258, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1512", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": -13.679, + "date": 1483536101258, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1532", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 170496, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T14:21:41.258000+01:00", + "sgv": 132, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 175936, + "delta": -20.713, + "date": 1483536101258, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1552", + "type": "sgv", + "glucose": 132 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": 1.686, + "date": 1483535802855, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1233", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": 5.385, + "date": 1483535802855, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1253", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": 3.904, + "date": 1483535802855, + "rssi": 100, + "_id": "586cf814dbab07be5f2e1277", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": 16.247, + "date": 1483535802855, + "rssi": 100, + "_id": "586cf940dbab07be5f2e129a", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": 21.457, + "date": 1483535802855, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12bb", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": 14.55, + "date": 1483535802855, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12dd", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": 17.921, + "date": 1483535802855, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e12fd", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": 11.911, + "date": 1483535802855, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e131e", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": 11.613, + "date": 1483535802855, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e133e", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": 6.496, + "date": 1483535802855, + "rssi": 100, + "_id": "586d0047dbab07be5f2e135e", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": -9.038, + "date": 1483535802855, + "rssi": 100, + "_id": "586d029fdbab07be5f2e137f", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": -10.022, + "date": 1483535802855, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13a3", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": -2.869, + "date": 1483535802855, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13c2", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": -3.87, + "date": 1483535802855, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13e4", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": -6.913, + "date": 1483535802855, + "rssi": 100, + "_id": "586d087bdbab07be5f2e1404", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": 2.933, + "date": 1483535802855, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1424", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": -0.658, + "date": 1483535802855, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1445", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": 1.262, + "date": 1483535802855, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1469", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": 1.936, + "date": 1483535802855, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1488", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": 1.348, + "date": 1483535802855, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14ac", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": -0.207, + "date": 1483535802855, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14cf", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": 0.173, + "date": 1483535802855, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14f0", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": -4.631, + "date": 1483535802855, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1511", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": -13.679, + "date": 1483535802855, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1533", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 168288, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:16:42.855000+01:00", + "sgv": 126, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 170976, + "delta": -20.713, + "date": 1483535802855, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1553", + "type": "sgv", + "glucose": 126 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": 1.314, + "date": 1483535501468, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1213", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": 1.686, + "date": 1483535501468, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1234", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": 5.385, + "date": 1483535501468, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1254", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": 3.904, + "date": 1483535501468, + "rssi": 100, + "_id": "586cf814dbab07be5f2e1278", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": 16.247, + "date": 1483535501468, + "rssi": 100, + "_id": "586cf940dbab07be5f2e129b", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": 21.457, + "date": 1483535501468, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12bc", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": 14.55, + "date": 1483535501468, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12de", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": 17.921, + "date": 1483535501468, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e12fe", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": 11.911, + "date": 1483535501468, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e131f", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": 11.613, + "date": 1483535501468, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e133f", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": 6.496, + "date": 1483535501468, + "rssi": 100, + "_id": "586d0047dbab07be5f2e135f", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": -9.038, + "date": 1483535501468, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1380", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": -10.022, + "date": 1483535501468, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13a0", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": -2.869, + "date": 1483535501468, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13c4", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": -3.87, + "date": 1483535501468, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13e5", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": -6.913, + "date": 1483535501468, + "rssi": 100, + "_id": "586d087bdbab07be5f2e1405", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": 2.933, + "date": 1483535501468, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1426", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": -0.658, + "date": 1483535501468, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1446", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": 1.262, + "date": 1483535501468, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e146a", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": 1.936, + "date": 1483535501468, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1489", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": 1.348, + "date": 1483535501468, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14af", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": -0.207, + "date": 1483535501468, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14d0", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": 0.173, + "date": 1483535501468, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14f1", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": -4.631, + "date": 1483535501468, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1513", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": -13.679, + "date": 1483535501468, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1534", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 166624, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:11:41.468000+01:00", + "sgv": 125, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 169408, + "delta": -20.713, + "date": 1483535501468, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1554", + "type": "sgv", + "glucose": 125 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 2.554, + "date": 1483535201718, + "rssi": 100, + "_id": "586cf364dbab07be5f2e11f1", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 1.314, + "date": 1483535201718, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1214", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 1.686, + "date": 1483535201718, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1235", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 5.385, + "date": 1483535201718, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1255", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 3.904, + "date": 1483535201718, + "rssi": 100, + "_id": "586cf814dbab07be5f2e1279", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 16.247, + "date": 1483535201718, + "rssi": 100, + "_id": "586cf940dbab07be5f2e129c", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 21.457, + "date": 1483535201718, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12bd", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 14.55, + "date": 1483535201718, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12df", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 17.921, + "date": 1483535201718, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e12ff", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 11.911, + "date": 1483535201718, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1320", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 11.613, + "date": 1483535201718, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1340", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 6.496, + "date": 1483535201718, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1360", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -9.038, + "date": 1483535201718, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1381", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -10.022, + "date": 1483535201718, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13a1", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -2.869, + "date": 1483535201718, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13c3", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -3.87, + "date": 1483535201718, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13e6", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -6.913, + "date": 1483535201718, + "rssi": 100, + "_id": "586d087bdbab07be5f2e1406", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 2.933, + "date": 1483535201718, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1425", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -0.658, + "date": 1483535201718, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1447", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 1.262, + "date": 1483535201718, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e146c", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 1.936, + "date": 1483535201718, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e148b", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 1.348, + "date": 1483535201718, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14ae", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -0.207, + "date": 1483535201718, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14d1", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 0.173, + "date": 1483535201718, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14f2", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -4.631, + "date": 1483535201718, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1514", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -13.679, + "date": 1483535201718, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1535", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165376, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:06:41.718000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -20.713, + "date": 1483535201718, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1555", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 1.87, + "date": 1483534901296, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11d2", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 2.554, + "date": 1483534901296, + "rssi": 100, + "_id": "586cf364dbab07be5f2e11f2", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 1.314, + "date": 1483534901296, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1215", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 1.686, + "date": 1483534901296, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1236", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 5.385, + "date": 1483534901296, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1256", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 3.904, + "date": 1483534901296, + "rssi": 100, + "_id": "586cf814dbab07be5f2e127a", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 16.247, + "date": 1483534901296, + "rssi": 100, + "_id": "586cf940dbab07be5f2e129d", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 21.457, + "date": 1483534901296, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12be", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 14.55, + "date": 1483534901296, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12e0", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 17.921, + "date": 1483534901296, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e1300", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 11.911, + "date": 1483534901296, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1321", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 11.613, + "date": 1483534901296, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1341", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 6.496, + "date": 1483534901296, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1361", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": -9.038, + "date": 1483534901296, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1382", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": -10.022, + "date": 1483534901296, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13a2", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": -2.869, + "date": 1483534901296, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13c5", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": -3.87, + "date": 1483534901296, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13e8", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": -6.913, + "date": 1483534901296, + "rssi": 100, + "_id": "586d087bdbab07be5f2e1407", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 2.933, + "date": 1483534901296, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1427", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": -0.658, + "date": 1483534901296, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1448", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 1.262, + "date": 1483534901296, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e146d", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 1.936, + "date": 1483534901296, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e148c", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 1.348, + "date": 1483534901296, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14b0", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": -0.207, + "date": 1483534901296, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14d2", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": 0.173, + "date": 1483534901296, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14f3", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": -4.631, + "date": 1483534901296, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1515", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": -13.679, + "date": 1483534901296, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1536", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 164416, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T14:01:41.296000+01:00", + "sgv": 121, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 165824, + "delta": -20.713, + "date": 1483534901296, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1556", + "type": "sgv", + "glucose": 121 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 0.069, + "date": 1483534601873, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11b0", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 1.87, + "date": 1483534601873, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11d3", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 2.554, + "date": 1483534601873, + "rssi": 100, + "_id": "586cf364dbab07be5f2e11f3", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 1.314, + "date": 1483534601873, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1216", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 1.686, + "date": 1483534601873, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1237", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 5.385, + "date": 1483534601873, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1257", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 3.904, + "date": 1483534601873, + "rssi": 100, + "_id": "586cf814dbab07be5f2e127b", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 16.247, + "date": 1483534601873, + "rssi": 100, + "_id": "586cf940dbab07be5f2e129e", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 21.457, + "date": 1483534601873, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12bf", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 14.55, + "date": 1483534601873, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12e1", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 17.921, + "date": 1483534601873, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e1301", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 11.911, + "date": 1483534601873, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1322", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 11.613, + "date": 1483534601873, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1343", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 6.496, + "date": 1483534601873, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1362", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": -9.038, + "date": 1483534601873, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1383", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": -10.022, + "date": 1483534601873, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13a4", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": -2.869, + "date": 1483534601873, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13c6", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": -3.87, + "date": 1483534601873, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13e7", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": -6.913, + "date": 1483534601873, + "rssi": 100, + "_id": "586d087bdbab07be5f2e1408", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 2.933, + "date": 1483534601873, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1428", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": -0.658, + "date": 1483534601873, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1449", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 1.262, + "date": 1483534601873, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e146e", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 1.936, + "date": 1483534601873, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e148d", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 1.348, + "date": 1483534601873, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14b1", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": -0.207, + "date": 1483534601873, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14d3", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": 0.173, + "date": 1483534601873, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14f4", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": -4.631, + "date": 1483534601873, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1517", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": -13.679, + "date": 1483534601873, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1537", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 163328, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:56:41.873000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164096, + "delta": -20.713, + "date": 1483534601873, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1558", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 0.207, + "date": 1483534301597, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e1192", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 0.069, + "date": 1483534301597, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11b1", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 1.87, + "date": 1483534301597, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11d4", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 2.554, + "date": 1483534301597, + "rssi": 100, + "_id": "586cf364dbab07be5f2e11f4", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 1.314, + "date": 1483534301597, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1217", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 1.686, + "date": 1483534301597, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1238", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 5.385, + "date": 1483534301597, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1258", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 3.904, + "date": 1483534301597, + "rssi": 100, + "_id": "586cf814dbab07be5f2e127c", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 16.247, + "date": 1483534301597, + "rssi": 100, + "_id": "586cf940dbab07be5f2e129f", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 21.457, + "date": 1483534301597, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12c0", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 14.55, + "date": 1483534301597, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12e2", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 17.921, + "date": 1483534301597, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e1302", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 11.911, + "date": 1483534301597, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1323", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 11.613, + "date": 1483534301597, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1342", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 6.496, + "date": 1483534301597, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1363", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": -9.038, + "date": 1483534301597, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1384", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": -10.022, + "date": 1483534301597, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13a5", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": -2.869, + "date": 1483534301597, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13c7", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": -3.87, + "date": 1483534301597, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13e9", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": -6.913, + "date": 1483534301597, + "rssi": 100, + "_id": "586d087bdbab07be5f2e1409", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 2.933, + "date": 1483534301597, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1429", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": -0.658, + "date": 1483534301597, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e144b", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 1.262, + "date": 1483534301597, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1470", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 1.936, + "date": 1483534301597, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e148f", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 1.348, + "date": 1483534301597, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14b2", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": -0.207, + "date": 1483534301597, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14d4", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": 0.173, + "date": 1483534301597, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14f5", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": -4.631, + "date": 1483534301597, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1516", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": -13.679, + "date": 1483534301597, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1538", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 162144, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:51:41.597000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164032, + "delta": -20.713, + "date": 1483534301597, + "rssi": 100, + "_id": "586d168bdbab07be5f2e1557", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 2.177, + "date": 1483534001427, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e1173", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 0.207, + "date": 1483534001427, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e1193", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 0.069, + "date": 1483534001427, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11b2", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 1.87, + "date": 1483534001427, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11d5", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 2.554, + "date": 1483534001427, + "rssi": 100, + "_id": "586cf364dbab07be5f2e11f5", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 1.314, + "date": 1483534001427, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1218", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 1.686, + "date": 1483534001427, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1239", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 5.385, + "date": 1483534001427, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1259", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 3.904, + "date": 1483534001427, + "rssi": 100, + "_id": "586cf814dbab07be5f2e127d", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 16.247, + "date": 1483534001427, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12a0", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 21.457, + "date": 1483534001427, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12c1", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 14.55, + "date": 1483534001427, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12e4", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 17.921, + "date": 1483534001427, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e1303", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 11.911, + "date": 1483534001427, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1324", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 11.613, + "date": 1483534001427, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1344", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 6.496, + "date": 1483534001427, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1364", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": -9.038, + "date": 1483534001427, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1385", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": -10.022, + "date": 1483534001427, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13a7", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": -2.869, + "date": 1483534001427, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13c8", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": -3.87, + "date": 1483534001427, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13ea", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": -6.913, + "date": 1483534001427, + "rssi": 100, + "_id": "586d087bdbab07be5f2e140a", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 2.933, + "date": 1483534001427, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e142a", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": -0.658, + "date": 1483534001427, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e144a", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 1.262, + "date": 1483534001427, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e146f", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 1.936, + "date": 1483534001427, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e148e", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 1.348, + "date": 1483534001427, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14b3", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": -0.207, + "date": 1483534001427, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14d5", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": 0.173, + "date": 1483534001427, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14f6", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": -4.631, + "date": 1483534001427, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1519", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 161280, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:46:41.427000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163840, + "delta": -13.679, + "date": 1483534001427, + "rssi": 100, + "_id": "586d155fdbab07be5f2e1539", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 2.523, + "date": 1483533701407, + "rssi": 100, + "_id": "586ced88dbab07be5f2e1153", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 2.177, + "date": 1483533701407, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e1174", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 0.207, + "date": 1483533701407, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e1194", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 0.069, + "date": 1483533701407, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11b3", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 1.87, + "date": 1483533701407, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11d6", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 2.554, + "date": 1483533701407, + "rssi": 100, + "_id": "586cf364dbab07be5f2e11f6", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 1.314, + "date": 1483533701407, + "rssi": 100, + "_id": "586cf490dbab07be5f2e121c", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 1.686, + "date": 1483533701407, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e123a", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 5.385, + "date": 1483533701407, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e125a", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 3.904, + "date": 1483533701407, + "rssi": 100, + "_id": "586cf814dbab07be5f2e127e", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 16.247, + "date": 1483533701407, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12a1", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 21.457, + "date": 1483533701407, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12c2", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 14.55, + "date": 1483533701407, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12e3", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 17.921, + "date": 1483533701407, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e1304", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 11.911, + "date": 1483533701407, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1325", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 11.613, + "date": 1483533701407, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1345", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 6.496, + "date": 1483533701407, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1367", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": -9.038, + "date": 1483533701407, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1386", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": -10.022, + "date": 1483533701407, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13a8", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": -2.869, + "date": 1483533701407, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13ca", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": -3.87, + "date": 1483533701407, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13eb", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": -6.913, + "date": 1483533701407, + "rssi": 100, + "_id": "586d087bdbab07be5f2e140b", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 2.933, + "date": 1483533701407, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e142b", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": -0.658, + "date": 1483533701407, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e144c", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 1.262, + "date": 1483533701407, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1471", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 1.936, + "date": 1483533701407, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1491", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 1.348, + "date": 1483533701407, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14b6", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": -0.207, + "date": 1483533701407, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14d6", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": 0.173, + "date": 1483533701407, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14f7", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 160896, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:41:41.407000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161824, + "delta": -4.631, + "date": 1483533701407, + "rssi": 100, + "_id": "586d1433dbab07be5f2e1518", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": -3.597, + "date": 1483533401451, + "rssi": 100, + "_id": "586cec5bdbab07be5f2e1133", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 2.523, + "date": 1483533401451, + "rssi": 100, + "_id": "586ced88dbab07be5f2e1154", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 2.177, + "date": 1483533401451, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e1175", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 0.207, + "date": 1483533401451, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e1195", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 0.069, + "date": 1483533401451, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11b4", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 1.87, + "date": 1483533401451, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11d7", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 2.554, + "date": 1483533401451, + "rssi": 100, + "_id": "586cf364dbab07be5f2e11f7", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 1.314, + "date": 1483533401451, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1219", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 1.686, + "date": 1483533401451, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e123b", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 5.385, + "date": 1483533401451, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e125b", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 3.904, + "date": 1483533401451, + "rssi": 100, + "_id": "586cf814dbab07be5f2e127f", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 16.247, + "date": 1483533401451, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12a2", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 21.457, + "date": 1483533401451, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12c3", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 14.55, + "date": 1483533401451, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12e5", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 17.921, + "date": 1483533401451, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e1305", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 11.911, + "date": 1483533401451, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1326", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 11.613, + "date": 1483533401451, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1346", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 6.496, + "date": 1483533401451, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1365", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": -9.038, + "date": 1483533401451, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1387", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": -10.022, + "date": 1483533401451, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13ac", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": -2.869, + "date": 1483533401451, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13c9", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": -3.87, + "date": 1483533401451, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13ec", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": -6.913, + "date": 1483533401451, + "rssi": 100, + "_id": "586d087bdbab07be5f2e140c", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 2.933, + "date": 1483533401451, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e142c", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": -0.658, + "date": 1483533401451, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e144d", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 1.262, + "date": 1483533401451, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1472", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 1.936, + "date": 1483533401451, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1492", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 1.348, + "date": 1483533401451, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14b7", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": -0.207, + "date": 1483533401451, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14d7", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161152, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:36:41.451000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 0.173, + "date": 1483533401451, + "rssi": 100, + "_id": "586d11dbdbab07be5f2e14f8", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 1.658, + "date": 1483533101684, + "rssi": 100, + "_id": "586ceb30dbab07be5f2e1114", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": -3.597, + "date": 1483533101684, + "rssi": 100, + "_id": "586cec5bdbab07be5f2e1134", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 2.523, + "date": 1483533101684, + "rssi": 100, + "_id": "586ced88dbab07be5f2e1155", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 2.177, + "date": 1483533101684, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e1176", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 0.207, + "date": 1483533101684, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e1196", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 0.069, + "date": 1483533101684, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11b5", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 1.87, + "date": 1483533101684, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11d8", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 2.554, + "date": 1483533101684, + "rssi": 100, + "_id": "586cf364dbab07be5f2e11f8", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 1.314, + "date": 1483533101684, + "rssi": 100, + "_id": "586cf490dbab07be5f2e121b", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 1.686, + "date": 1483533101684, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e123c", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 5.385, + "date": 1483533101684, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e125e", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 3.904, + "date": 1483533101684, + "rssi": 100, + "_id": "586cf814dbab07be5f2e1280", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 16.247, + "date": 1483533101684, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12a3", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 21.457, + "date": 1483533101684, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12c4", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 14.55, + "date": 1483533101684, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12e6", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 17.921, + "date": 1483533101684, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e1306", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 11.911, + "date": 1483533101684, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1328", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 11.613, + "date": 1483533101684, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1347", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 6.496, + "date": 1483533101684, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1368", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": -9.038, + "date": 1483533101684, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1388", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": -10.022, + "date": 1483533101684, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13a9", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": -2.869, + "date": 1483533101684, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13cc", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": -3.87, + "date": 1483533101684, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13ed", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": -6.913, + "date": 1483533101684, + "rssi": 100, + "_id": "586d087bdbab07be5f2e140d", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 2.933, + "date": 1483533101684, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e142d", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": -0.658, + "date": 1483533101684, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e144e", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 1.262, + "date": 1483533101684, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1473", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 1.936, + "date": 1483533101684, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1493", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": 1.348, + "date": 1483533101684, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14b4", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 161856, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:31:41.684000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162816, + "delta": -0.207, + "date": 1483533101684, + "rssi": 100, + "_id": "586d10afdbab07be5f2e14d8", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 1.935, + "date": 1483532801480, + "rssi": 100, + "_id": "586cea04dbab07be5f2e10f3", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 1.658, + "date": 1483532801480, + "rssi": 100, + "_id": "586ceb30dbab07be5f2e1115", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": -3.597, + "date": 1483532801480, + "rssi": 100, + "_id": "586cec5bdbab07be5f2e1135", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 2.523, + "date": 1483532801480, + "rssi": 100, + "_id": "586ced88dbab07be5f2e1156", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 2.177, + "date": 1483532801480, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e1177", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 0.207, + "date": 1483532801480, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e1197", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 0.069, + "date": 1483532801480, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11b6", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 1.87, + "date": 1483532801480, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11d9", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 2.554, + "date": 1483532801480, + "rssi": 100, + "_id": "586cf364dbab07be5f2e11f9", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 1.314, + "date": 1483532801480, + "rssi": 100, + "_id": "586cf490dbab07be5f2e121a", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 1.686, + "date": 1483532801480, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e123d", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 5.385, + "date": 1483532801480, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e125c", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 3.904, + "date": 1483532801480, + "rssi": 100, + "_id": "586cf814dbab07be5f2e1282", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 16.247, + "date": 1483532801480, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12a4", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 21.457, + "date": 1483532801480, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12c5", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 14.55, + "date": 1483532801480, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12e7", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 17.921, + "date": 1483532801480, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e1307", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 11.911, + "date": 1483532801480, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1327", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 11.613, + "date": 1483532801480, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1348", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 6.496, + "date": 1483532801480, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1366", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": -9.038, + "date": 1483532801480, + "rssi": 100, + "_id": "586d029fdbab07be5f2e138a", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": -10.022, + "date": 1483532801480, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13ad", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": -2.869, + "date": 1483532801480, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13cb", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": -3.87, + "date": 1483532801480, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13ee", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": -6.913, + "date": 1483532801480, + "rssi": 100, + "_id": "586d087bdbab07be5f2e140e", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 2.933, + "date": 1483532801480, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e142e", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": -0.658, + "date": 1483532801480, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e144f", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 1.262, + "date": 1483532801480, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1474", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 1.936, + "date": 1483532801480, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1494", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 162176, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:26:41.480000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161280, + "delta": 1.348, + "date": 1483532801480, + "rssi": 100, + "_id": "586d0f83dbab07be5f2e14b5", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": -3.417, + "date": 1483532501420, + "rssi": 100, + "_id": "586ce8d8dbab07be5f2e10d4", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 1.935, + "date": 1483532501420, + "rssi": 100, + "_id": "586cea04dbab07be5f2e10f4", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 1.658, + "date": 1483532501420, + "rssi": 100, + "_id": "586ceb30dbab07be5f2e1116", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": -3.597, + "date": 1483532501420, + "rssi": 100, + "_id": "586cec5bdbab07be5f2e1136", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 2.523, + "date": 1483532501420, + "rssi": 100, + "_id": "586ced88dbab07be5f2e1157", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 2.177, + "date": 1483532501420, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e1178", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 0.207, + "date": 1483532501420, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e1198", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 0.069, + "date": 1483532501420, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11b7", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 1.87, + "date": 1483532501420, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11da", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 2.554, + "date": 1483532501420, + "rssi": 100, + "_id": "586cf364dbab07be5f2e11fa", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 1.314, + "date": 1483532501420, + "rssi": 100, + "_id": "586cf490dbab07be5f2e121d", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 1.686, + "date": 1483532501420, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1241", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 5.385, + "date": 1483532501420, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e125d", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 3.904, + "date": 1483532501420, + "rssi": 100, + "_id": "586cf814dbab07be5f2e1281", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 16.247, + "date": 1483532501420, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12a5", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 21.457, + "date": 1483532501420, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12c6", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 14.55, + "date": 1483532501420, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12e8", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 17.921, + "date": 1483532501420, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e1308", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 11.911, + "date": 1483532501420, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1329", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 11.613, + "date": 1483532501420, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1349", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 6.496, + "date": 1483532501420, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1369", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": -9.038, + "date": 1483532501420, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1389", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": -10.022, + "date": 1483532501420, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13aa", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": -2.869, + "date": 1483532501420, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13cd", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": -3.87, + "date": 1483532501420, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13ef", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": -6.913, + "date": 1483532501420, + "rssi": 100, + "_id": "586d087bdbab07be5f2e140f", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 2.933, + "date": 1483532501420, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e142f", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": -0.658, + "date": 1483532501420, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1450", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 1.262, + "date": 1483532501420, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1475", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 161408, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:21:41.420000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159488, + "delta": 1.936, + "date": 1483532501420, + "rssi": 100, + "_id": "586d0e58dbab07be5f2e1495", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": -1.417, + "date": 1483532201043, + "rssi": 100, + "_id": "586ce7acdbab07be5f2e10cb", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": -3.417, + "date": 1483532201043, + "rssi": 100, + "_id": "586ce8d8dbab07be5f2e10d7", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 1.935, + "date": 1483532201043, + "rssi": 100, + "_id": "586cea04dbab07be5f2e10f7", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 1.658, + "date": 1483532201043, + "rssi": 100, + "_id": "586ceb30dbab07be5f2e1118", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": -3.597, + "date": 1483532201043, + "rssi": 100, + "_id": "586cec5bdbab07be5f2e1137", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 2.523, + "date": 1483532201043, + "rssi": 100, + "_id": "586ced88dbab07be5f2e1158", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 2.177, + "date": 1483532201043, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e117b", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 0.207, + "date": 1483532201043, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e1199", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 0.069, + "date": 1483532201043, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11b8", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 1.87, + "date": 1483532201043, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11db", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 2.554, + "date": 1483532201043, + "rssi": 100, + "_id": "586cf364dbab07be5f2e11fb", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 1.314, + "date": 1483532201043, + "rssi": 100, + "_id": "586cf490dbab07be5f2e121e", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 1.686, + "date": 1483532201043, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e123e", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 5.385, + "date": 1483532201043, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e125f", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 3.904, + "date": 1483532201043, + "rssi": 100, + "_id": "586cf814dbab07be5f2e1283", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 16.247, + "date": 1483532201043, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12a6", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 21.457, + "date": 1483532201043, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12c7", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 14.55, + "date": 1483532201043, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12e9", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 17.921, + "date": 1483532201043, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e1309", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 11.911, + "date": 1483532201043, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e132b", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 11.613, + "date": 1483532201043, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e134a", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 6.496, + "date": 1483532201043, + "rssi": 100, + "_id": "586d0047dbab07be5f2e136a", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": -9.038, + "date": 1483532201043, + "rssi": 100, + "_id": "586d029fdbab07be5f2e138b", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": -10.022, + "date": 1483532201043, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13ab", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": -2.869, + "date": 1483532201043, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13ce", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": -3.87, + "date": 1483532201043, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13f2", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": -6.913, + "date": 1483532201043, + "rssi": 100, + "_id": "586d087bdbab07be5f2e1410", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 2.933, + "date": 1483532201043, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1430", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": -0.658, + "date": 1483532201043, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1451", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 159840, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:16:41.043000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162656, + "delta": 1.262, + "date": 1483532201043, + "rssi": 100, + "_id": "586d0d2cdbab07be5f2e1476", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 6.609, + "date": 1483531901044, + "rssi": 100, + "_id": "586ce67fdbab07be5f2e10ac", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": -1.417, + "date": 1483531901044, + "rssi": 100, + "_id": "586ce7acdbab07be5f2e10cc", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": -3.417, + "date": 1483531901044, + "rssi": 100, + "_id": "586ce8d8dbab07be5f2e10d5", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 1.935, + "date": 1483531901044, + "rssi": 100, + "_id": "586cea04dbab07be5f2e10f5", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 1.658, + "date": 1483531901044, + "rssi": 100, + "_id": "586ceb30dbab07be5f2e1117", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": -3.597, + "date": 1483531901044, + "rssi": 100, + "_id": "586cec5bdbab07be5f2e1138", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 2.523, + "date": 1483531901044, + "rssi": 100, + "_id": "586ced88dbab07be5f2e1159", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 2.177, + "date": 1483531901044, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e1179", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 0.207, + "date": 1483531901044, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e119a", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 0.069, + "date": 1483531901044, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11b9", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 1.87, + "date": 1483531901044, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11dc", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 2.554, + "date": 1483531901044, + "rssi": 100, + "_id": "586cf364dbab07be5f2e11fc", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 1.314, + "date": 1483531901044, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1221", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 1.686, + "date": 1483531901044, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e123f", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 5.385, + "date": 1483531901044, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1260", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 3.904, + "date": 1483531901044, + "rssi": 100, + "_id": "586cf814dbab07be5f2e1284", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 16.247, + "date": 1483531901044, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12a7", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 21.457, + "date": 1483531901044, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12c8", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 14.55, + "date": 1483531901044, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12ea", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 17.921, + "date": 1483531901044, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e130a", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 11.911, + "date": 1483531901044, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e132a", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 11.613, + "date": 1483531901044, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e134b", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 6.496, + "date": 1483531901044, + "rssi": 100, + "_id": "586d0047dbab07be5f2e136b", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": -9.038, + "date": 1483531901044, + "rssi": 100, + "_id": "586d029fdbab07be5f2e138c", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": -10.022, + "date": 1483531901044, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13ae", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": -2.869, + "date": 1483531901044, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13cf", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": -3.87, + "date": 1483531901044, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13f0", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": -6.913, + "date": 1483531901044, + "rssi": 100, + "_id": "586d087bdbab07be5f2e1411", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": 2.933, + "date": 1483531901044, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1431", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158592, + "direction": "FortyFiveUp", + "noise": 1, + "dateString": "2017-01-04T13:11:41.044000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163968, + "delta": -0.658, + "date": 1483531901044, + "rssi": 100, + "_id": "586d0ad3dbab07be5f2e1452", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 1.069, + "date": 1483531601420, + "rssi": 100, + "_id": "586ce553dbab07be5f2e108d", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 6.609, + "date": 1483531601420, + "rssi": 100, + "_id": "586ce67fdbab07be5f2e10ad", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": -1.417, + "date": 1483531601420, + "rssi": 100, + "_id": "586ce7acdbab07be5f2e10cd", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": -3.417, + "date": 1483531601420, + "rssi": 100, + "_id": "586ce8d8dbab07be5f2e10d6", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 1.935, + "date": 1483531601420, + "rssi": 100, + "_id": "586cea04dbab07be5f2e10f6", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 1.658, + "date": 1483531601420, + "rssi": 100, + "_id": "586ceb30dbab07be5f2e1119", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": -3.597, + "date": 1483531601420, + "rssi": 100, + "_id": "586cec5bdbab07be5f2e1139", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 2.523, + "date": 1483531601420, + "rssi": 100, + "_id": "586ced88dbab07be5f2e115a", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 2.177, + "date": 1483531601420, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e117a", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 0.207, + "date": 1483531601420, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e119b", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 0.069, + "date": 1483531601420, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11ba", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 1.87, + "date": 1483531601420, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11dd", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 2.554, + "date": 1483531601420, + "rssi": 100, + "_id": "586cf364dbab07be5f2e11fd", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 1.314, + "date": 1483531601420, + "rssi": 100, + "_id": "586cf490dbab07be5f2e121f", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 1.686, + "date": 1483531601420, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1240", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 5.385, + "date": 1483531601420, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1261", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 3.904, + "date": 1483531601420, + "rssi": 100, + "_id": "586cf814dbab07be5f2e1285", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 16.247, + "date": 1483531601420, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12a8", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 21.457, + "date": 1483531601420, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12c9", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 14.55, + "date": 1483531601420, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12eb", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 17.921, + "date": 1483531601420, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e130b", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 11.911, + "date": 1483531601420, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e132c", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 11.613, + "date": 1483531601420, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e134c", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 6.496, + "date": 1483531601420, + "rssi": 100, + "_id": "586d0047dbab07be5f2e136c", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": -9.038, + "date": 1483531601420, + "rssi": 100, + "_id": "586d029fdbab07be5f2e138d", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": -10.022, + "date": 1483531601420, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13af", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": -2.869, + "date": 1483531601420, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13d0", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": -3.87, + "date": 1483531601420, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13f1", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": -6.913, + "date": 1483531601420, + "rssi": 100, + "_id": "586d087bdbab07be5f2e1412", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158304, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:06:41.420000+01:00", + "sgv": 112, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 157856, + "delta": 2.933, + "date": 1483531601420, + "rssi": 100, + "_id": "586d09a9dbab07be5f2e1432", + "type": "sgv", + "glucose": 112 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": -3.331, + "date": 1483531300848, + "rssi": 100, + "_id": "586ce42ddbab07be5f2e106d", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 1.069, + "date": 1483531300848, + "rssi": 100, + "_id": "586ce553dbab07be5f2e108e", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 6.609, + "date": 1483531300848, + "rssi": 100, + "_id": "586ce67fdbab07be5f2e10ae", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": -1.417, + "date": 1483531300848, + "rssi": 100, + "_id": "586ce7acdbab07be5f2e10ce", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": -3.417, + "date": 1483531300848, + "rssi": 100, + "_id": "586ce8d8dbab07be5f2e10d8", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 1.935, + "date": 1483531300848, + "rssi": 100, + "_id": "586cea04dbab07be5f2e10f8", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 1.658, + "date": 1483531300848, + "rssi": 100, + "_id": "586ceb30dbab07be5f2e111a", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": -3.597, + "date": 1483531300848, + "rssi": 100, + "_id": "586cec5bdbab07be5f2e113a", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 2.523, + "date": 1483531300848, + "rssi": 100, + "_id": "586ced88dbab07be5f2e115b", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 2.177, + "date": 1483531300848, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e117c", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 0.207, + "date": 1483531300848, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e119c", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 0.069, + "date": 1483531300848, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11bb", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 1.87, + "date": 1483531300848, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11de", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 2.554, + "date": 1483531300848, + "rssi": 100, + "_id": "586cf364dbab07be5f2e11fe", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 1.314, + "date": 1483531300848, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1220", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 1.686, + "date": 1483531300848, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1242", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 5.385, + "date": 1483531300848, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1262", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 3.904, + "date": 1483531300848, + "rssi": 100, + "_id": "586cf814dbab07be5f2e1286", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 16.247, + "date": 1483531300848, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12a9", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 21.457, + "date": 1483531300848, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12ca", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 14.55, + "date": 1483531300848, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12ec", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 17.921, + "date": 1483531300848, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e130c", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 11.911, + "date": 1483531300848, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e132d", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 11.613, + "date": 1483531300848, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e134e", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": 6.496, + "date": 1483531300848, + "rssi": 100, + "_id": "586d0047dbab07be5f2e136d", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": -9.038, + "date": 1483531300848, + "rssi": 100, + "_id": "586d029fdbab07be5f2e138f", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": -10.022, + "date": 1483531300848, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13b0", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": -2.869, + "date": 1483531300848, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13d1", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": -3.87, + "date": 1483531300848, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13f3", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 158720, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T13:01:40.848000+01:00", + "sgv": 111, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 156864, + "delta": -6.913, + "date": 1483531300848, + "rssi": 100, + "_id": "586d087bdbab07be5f2e1413", + "type": "sgv", + "glucose": 111 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 1.516, + "date": 1483531002068, + "rssi": 100, + "_id": "586ce2fddbab07be5f2e104d", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": -3.331, + "date": 1483531002068, + "rssi": 100, + "_id": "586ce42ddbab07be5f2e106e", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 1.069, + "date": 1483531002068, + "rssi": 100, + "_id": "586ce553dbab07be5f2e108f", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 6.609, + "date": 1483531002068, + "rssi": 100, + "_id": "586ce67fdbab07be5f2e10af", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": -1.417, + "date": 1483531002068, + "rssi": 100, + "_id": "586ce7acdbab07be5f2e10cf", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": -3.417, + "date": 1483531002068, + "rssi": 100, + "_id": "586ce8d8dbab07be5f2e10d9", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 1.935, + "date": 1483531002068, + "rssi": 100, + "_id": "586cea04dbab07be5f2e10f9", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 1.658, + "date": 1483531002068, + "rssi": 100, + "_id": "586ceb30dbab07be5f2e111b", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": -3.597, + "date": 1483531002068, + "rssi": 100, + "_id": "586cec5bdbab07be5f2e113b", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 2.523, + "date": 1483531002068, + "rssi": 100, + "_id": "586ced88dbab07be5f2e115c", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 2.177, + "date": 1483531002068, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e117d", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 0.207, + "date": 1483531002068, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e119d", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 0.069, + "date": 1483531002068, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11bc", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 1.87, + "date": 1483531002068, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11df", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 2.554, + "date": 1483531002068, + "rssi": 100, + "_id": "586cf364dbab07be5f2e11ff", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 1.314, + "date": 1483531002068, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1222", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 1.686, + "date": 1483531002068, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1243", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 5.385, + "date": 1483531002068, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1263", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 3.904, + "date": 1483531002068, + "rssi": 100, + "_id": "586cf814dbab07be5f2e1287", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 16.247, + "date": 1483531002068, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12aa", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 21.457, + "date": 1483531002068, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12cb", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 14.55, + "date": 1483531002068, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12ed", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 17.921, + "date": 1483531002068, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e130d", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 11.911, + "date": 1483531002068, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e132e", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 11.613, + "date": 1483531002068, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e134d", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": 6.496, + "date": 1483531002068, + "rssi": 100, + "_id": "586d0047dbab07be5f2e136e", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": -9.038, + "date": 1483531002068, + "rssi": 100, + "_id": "586d029fdbab07be5f2e138e", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": -10.022, + "date": 1483531002068, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13b1", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": -2.869, + "date": 1483531002068, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13d2", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 159264, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:56:42.068000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159936, + "delta": -3.87, + "date": 1483531002068, + "rssi": 100, + "_id": "586d074fdbab07be5f2e13f4", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": -1.417, + "date": 1483530701141, + "rssi": 100, + "_id": "586ce1d1dbab07be5f2e102e", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 1.516, + "date": 1483530701141, + "rssi": 100, + "_id": "586ce2fddbab07be5f2e104e", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": -3.331, + "date": 1483530701141, + "rssi": 100, + "_id": "586ce42ddbab07be5f2e106f", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 1.069, + "date": 1483530701141, + "rssi": 100, + "_id": "586ce553dbab07be5f2e1090", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 6.609, + "date": 1483530701141, + "rssi": 100, + "_id": "586ce67fdbab07be5f2e10b0", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": -3.417, + "date": 1483530701141, + "rssi": 100, + "_id": "586ce8d8dbab07be5f2e10da", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 1.935, + "date": 1483530701141, + "rssi": 100, + "_id": "586cea04dbab07be5f2e10fa", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 1.658, + "date": 1483530701141, + "rssi": 100, + "_id": "586ceb30dbab07be5f2e111d", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": -3.597, + "date": 1483530701141, + "rssi": 100, + "_id": "586cec5bdbab07be5f2e113c", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 2.523, + "date": 1483530701141, + "rssi": 100, + "_id": "586ced88dbab07be5f2e115d", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 2.177, + "date": 1483530701141, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e117e", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 0.207, + "date": 1483530701141, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e119e", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 0.069, + "date": 1483530701141, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11be", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 1.87, + "date": 1483530701141, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11e0", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 2.554, + "date": 1483530701141, + "rssi": 100, + "_id": "586cf364dbab07be5f2e1200", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 1.314, + "date": 1483530701141, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1223", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 1.686, + "date": 1483530701141, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1245", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 5.385, + "date": 1483530701141, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1264", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 3.904, + "date": 1483530701141, + "rssi": 100, + "_id": "586cf814dbab07be5f2e1288", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 16.247, + "date": 1483530701141, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12ab", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 21.457, + "date": 1483530701141, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12cc", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 14.55, + "date": 1483530701141, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12ee", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 17.921, + "date": 1483530701141, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e130e", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 11.911, + "date": 1483530701141, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e132f", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 11.613, + "date": 1483530701141, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1350", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": 6.496, + "date": 1483530701141, + "rssi": 100, + "_id": "586d0047dbab07be5f2e136f", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": -9.038, + "date": 1483530701141, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1390", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": -10.022, + "date": 1483530701141, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13b3", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 160256, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:51:41.141000+01:00", + "sgv": 113, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 158528, + "delta": -2.869, + "date": 1483530701141, + "rssi": 100, + "_id": "586d0623dbab07be5f2e13d3", + "type": "sgv", + "glucose": 113 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": -2.218, + "date": 1483530401170, + "rssi": 100, + "_id": "586ce0a4dbab07be5f2e100e", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": -1.417, + "date": 1483530401170, + "rssi": 100, + "_id": "586ce1d1dbab07be5f2e102f", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 1.516, + "date": 1483530401170, + "rssi": 100, + "_id": "586ce2fddbab07be5f2e104f", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": -3.331, + "date": 1483530401170, + "rssi": 100, + "_id": "586ce42ddbab07be5f2e1070", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 1.069, + "date": 1483530401170, + "rssi": 100, + "_id": "586ce553dbab07be5f2e1091", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 6.609, + "date": 1483530401170, + "rssi": 100, + "_id": "586ce680dbab07be5f2e10b1", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": -3.417, + "date": 1483530401170, + "rssi": 100, + "_id": "586ce8d8dbab07be5f2e10db", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 1.935, + "date": 1483530401170, + "rssi": 100, + "_id": "586cea04dbab07be5f2e10fb", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 1.658, + "date": 1483530401170, + "rssi": 100, + "_id": "586ceb30dbab07be5f2e111c", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": -3.597, + "date": 1483530401170, + "rssi": 100, + "_id": "586cec5bdbab07be5f2e113d", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 2.523, + "date": 1483530401170, + "rssi": 100, + "_id": "586ced88dbab07be5f2e115e", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 2.177, + "date": 1483530401170, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e117f", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 0.207, + "date": 1483530401170, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e119f", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 0.069, + "date": 1483530401170, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11bd", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 1.87, + "date": 1483530401170, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11e1", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 2.554, + "date": 1483530401170, + "rssi": 100, + "_id": "586cf364dbab07be5f2e1201", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 1.314, + "date": 1483530401170, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1224", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 1.686, + "date": 1483530401170, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1244", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 5.385, + "date": 1483530401170, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1265", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 3.904, + "date": 1483530401170, + "rssi": 100, + "_id": "586cf814dbab07be5f2e1289", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 16.247, + "date": 1483530401170, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12ac", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 21.457, + "date": 1483530401170, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12cd", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 14.55, + "date": 1483530401170, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12ef", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 17.921, + "date": 1483530401170, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e130f", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 11.911, + "date": 1483530401170, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1330", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 11.613, + "date": 1483530401170, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e134f", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": 6.496, + "date": 1483530401170, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1370", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": -9.038, + "date": 1483530401170, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1391", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 162240, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:46:41.170000+01:00", + "sgv": 114, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 159840, + "delta": -10.022, + "date": 1483530401170, + "rssi": 100, + "_id": "586d04f8dbab07be5f2e13b2", + "type": "sgv", + "glucose": 114 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": -0.207, + "date": 1483530102052, + "rssi": 100, + "_id": "586cdf78dbab07be5f2e0fef", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": -2.218, + "date": 1483530102052, + "rssi": 100, + "_id": "586ce0a4dbab07be5f2e100f", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": -1.417, + "date": 1483530102052, + "rssi": 100, + "_id": "586ce1d1dbab07be5f2e1030", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 1.516, + "date": 1483530102052, + "rssi": 100, + "_id": "586ce2fddbab07be5f2e1051", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": -3.331, + "date": 1483530102052, + "rssi": 100, + "_id": "586ce42ddbab07be5f2e1071", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 1.069, + "date": 1483530102052, + "rssi": 100, + "_id": "586ce553dbab07be5f2e1092", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 6.609, + "date": 1483530102052, + "rssi": 100, + "_id": "586ce680dbab07be5f2e10b2", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": -3.417, + "date": 1483530102052, + "rssi": 100, + "_id": "586ce8d8dbab07be5f2e10dc", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 1.935, + "date": 1483530102052, + "rssi": 100, + "_id": "586cea04dbab07be5f2e10fc", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 1.658, + "date": 1483530102052, + "rssi": 100, + "_id": "586ceb30dbab07be5f2e111f", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": -3.597, + "date": 1483530102052, + "rssi": 100, + "_id": "586cec5bdbab07be5f2e113e", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 2.523, + "date": 1483530102052, + "rssi": 100, + "_id": "586ced88dbab07be5f2e115f", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 2.177, + "date": 1483530102052, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e1180", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 0.207, + "date": 1483530102052, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e11a0", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 0.069, + "date": 1483530102052, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11bf", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 1.87, + "date": 1483530102052, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11e2", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 2.554, + "date": 1483530102052, + "rssi": 100, + "_id": "586cf364dbab07be5f2e1202", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 1.314, + "date": 1483530102052, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1225", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 1.686, + "date": 1483530102052, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1246", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 5.385, + "date": 1483530102052, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1266", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 3.904, + "date": 1483530102052, + "rssi": 100, + "_id": "586cf814dbab07be5f2e128a", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 16.247, + "date": 1483530102052, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12ad", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 21.457, + "date": 1483530102052, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12ce", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 14.55, + "date": 1483530102052, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12f0", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 17.921, + "date": 1483530102052, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e1310", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 11.911, + "date": 1483530102052, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1331", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 11.613, + "date": 1483530102052, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1351", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": 6.496, + "date": 1483530102052, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1371", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 164736, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:41:42.052000+01:00", + "sgv": 116, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 161888, + "delta": -9.038, + "date": 1483530102052, + "rssi": 100, + "_id": "586d029fdbab07be5f2e1392", + "type": "sgv", + "glucose": 116 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": -2.237, + "date": 1483529802048, + "rssi": 100, + "_id": "586cde4cdbab07be5f2e0fd1", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": -0.207, + "date": 1483529802048, + "rssi": 100, + "_id": "586cdf78dbab07be5f2e0ff0", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": -2.218, + "date": 1483529802048, + "rssi": 100, + "_id": "586ce0a4dbab07be5f2e1010", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": -1.417, + "date": 1483529802048, + "rssi": 100, + "_id": "586ce1d1dbab07be5f2e1031", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 1.516, + "date": 1483529802048, + "rssi": 100, + "_id": "586ce2fddbab07be5f2e1050", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": -3.331, + "date": 1483529802048, + "rssi": 100, + "_id": "586ce42ddbab07be5f2e1072", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 1.069, + "date": 1483529802048, + "rssi": 100, + "_id": "586ce553dbab07be5f2e1093", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 6.609, + "date": 1483529802048, + "rssi": 100, + "_id": "586ce680dbab07be5f2e10b3", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": -3.417, + "date": 1483529802048, + "rssi": 100, + "_id": "586ce8d8dbab07be5f2e10dd", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 1.935, + "date": 1483529802048, + "rssi": 100, + "_id": "586cea04dbab07be5f2e10fd", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 1.658, + "date": 1483529802048, + "rssi": 100, + "_id": "586ceb30dbab07be5f2e111e", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": -3.597, + "date": 1483529802048, + "rssi": 100, + "_id": "586cec5bdbab07be5f2e113f", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 2.523, + "date": 1483529802048, + "rssi": 100, + "_id": "586ced88dbab07be5f2e1160", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 2.177, + "date": 1483529802048, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e1182", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 0.207, + "date": 1483529802048, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e11a1", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 0.069, + "date": 1483529802048, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11c0", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 1.87, + "date": 1483529802048, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11e3", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 2.554, + "date": 1483529802048, + "rssi": 100, + "_id": "586cf364dbab07be5f2e1203", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 1.314, + "date": 1483529802048, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1226", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 1.686, + "date": 1483529802048, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1247", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 5.385, + "date": 1483529802048, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1267", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 3.904, + "date": 1483529802048, + "rssi": 100, + "_id": "586cf814dbab07be5f2e128b", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 16.247, + "date": 1483529802048, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12ae", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 21.457, + "date": 1483529802048, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12cf", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 14.55, + "date": 1483529802048, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12f1", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 17.921, + "date": 1483529802048, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e1311", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 11.911, + "date": 1483529802048, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1332", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 11.613, + "date": 1483529802048, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1353", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166528, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:36:42.048000+01:00", + "sgv": 117, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 162080, + "delta": 6.496, + "date": 1483529802048, + "rssi": 100, + "_id": "586d0047dbab07be5f2e1372", + "type": "sgv", + "glucose": 117 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": -4.355, + "date": 1483529500848, + "rssi": 100, + "_id": "586cdd20dbab07be5f2e0fb2", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": -2.237, + "date": 1483529500848, + "rssi": 100, + "_id": "586cde4cdbab07be5f2e0fd2", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": -0.207, + "date": 1483529500848, + "rssi": 100, + "_id": "586cdf78dbab07be5f2e0ff1", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": -2.218, + "date": 1483529500848, + "rssi": 100, + "_id": "586ce0a4dbab07be5f2e1011", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": -1.417, + "date": 1483529500848, + "rssi": 100, + "_id": "586ce1d1dbab07be5f2e1032", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 1.516, + "date": 1483529500848, + "rssi": 100, + "_id": "586ce2fddbab07be5f2e1052", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": -3.331, + "date": 1483529500848, + "rssi": 100, + "_id": "586ce42ddbab07be5f2e1073", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 1.069, + "date": 1483529500848, + "rssi": 100, + "_id": "586ce553dbab07be5f2e1094", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 6.609, + "date": 1483529500848, + "rssi": 100, + "_id": "586ce680dbab07be5f2e10b4", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": -3.417, + "date": 1483529500848, + "rssi": 100, + "_id": "586ce8d8dbab07be5f2e10df", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 1.935, + "date": 1483529500848, + "rssi": 100, + "_id": "586cea04dbab07be5f2e10fe", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 1.658, + "date": 1483529500848, + "rssi": 100, + "_id": "586ceb30dbab07be5f2e1120", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": -3.597, + "date": 1483529500848, + "rssi": 100, + "_id": "586cec5bdbab07be5f2e1140", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 2.523, + "date": 1483529500848, + "rssi": 100, + "_id": "586ced88dbab07be5f2e1161", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 2.177, + "date": 1483529500848, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e1181", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 0.207, + "date": 1483529500848, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e11a2", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 0.069, + "date": 1483529500848, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11c1", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 1.87, + "date": 1483529500848, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11e4", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 2.554, + "date": 1483529500848, + "rssi": 100, + "_id": "586cf364dbab07be5f2e1204", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 1.314, + "date": 1483529500848, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1229", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 1.686, + "date": 1483529500848, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1248", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 5.385, + "date": 1483529500848, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1268", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 3.904, + "date": 1483529500848, + "rssi": 100, + "_id": "586cf814dbab07be5f2e128c", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 16.247, + "date": 1483529500848, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12af", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 21.457, + "date": 1483529500848, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12d0", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 14.55, + "date": 1483529500848, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12f2", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 17.921, + "date": 1483529500848, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e1312", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 11.911, + "date": 1483529500848, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1333", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 166656, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:31:40.848000+01:00", + "sgv": 119, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 164160, + "delta": 11.613, + "date": 1483529500848, + "rssi": 100, + "_id": "586cff1cdbab07be5f2e1352", + "type": "sgv", + "glucose": 119 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 1.002, + "date": 1483529200876, + "rssi": 100, + "_id": "586cdbf3dbab07be5f2e0f93", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -4.355, + "date": 1483529200876, + "rssi": 100, + "_id": "586cdd20dbab07be5f2e0fb3", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -2.237, + "date": 1483529200876, + "rssi": 100, + "_id": "586cde4cdbab07be5f2e0fd3", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -0.207, + "date": 1483529200876, + "rssi": 100, + "_id": "586cdf78dbab07be5f2e0ff2", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -2.218, + "date": 1483529200876, + "rssi": 100, + "_id": "586ce0a4dbab07be5f2e1012", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -1.417, + "date": 1483529200876, + "rssi": 100, + "_id": "586ce1d1dbab07be5f2e1033", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 1.516, + "date": 1483529200876, + "rssi": 100, + "_id": "586ce2fddbab07be5f2e1053", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -3.331, + "date": 1483529200876, + "rssi": 100, + "_id": "586ce42ddbab07be5f2e1074", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 1.069, + "date": 1483529200876, + "rssi": 100, + "_id": "586ce553dbab07be5f2e1095", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 6.609, + "date": 1483529200876, + "rssi": 100, + "_id": "586ce680dbab07be5f2e10b5", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -3.417, + "date": 1483529200876, + "rssi": 100, + "_id": "586ce8d8dbab07be5f2e10de", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 1.935, + "date": 1483529200876, + "rssi": 100, + "_id": "586cea04dbab07be5f2e10ff", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 1.658, + "date": 1483529200876, + "rssi": 100, + "_id": "586ceb30dbab07be5f2e1121", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": -3.597, + "date": 1483529200876, + "rssi": 100, + "_id": "586cec5bdbab07be5f2e1141", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 2.523, + "date": 1483529200876, + "rssi": 100, + "_id": "586ced88dbab07be5f2e1162", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 2.177, + "date": 1483529200876, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e1183", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 0.207, + "date": 1483529200876, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e11a3", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 0.069, + "date": 1483529200876, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11c2", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 1.87, + "date": 1483529200876, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11e5", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 2.554, + "date": 1483529200876, + "rssi": 100, + "_id": "586cf364dbab07be5f2e1205", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 1.314, + "date": 1483529200876, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1228", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 1.686, + "date": 1483529200876, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e1249", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 5.385, + "date": 1483529200876, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e1269", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 3.904, + "date": 1483529200876, + "rssi": 100, + "_id": "586cf814dbab07be5f2e128d", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 16.247, + "date": 1483529200876, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12b0", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 21.457, + "date": 1483529200876, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12d1", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 14.55, + "date": 1483529200876, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12f3", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 17.921, + "date": 1483529200876, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e1313", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 165216, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:26:40.876000+01:00", + "sgv": 123, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 168192, + "delta": 11.911, + "date": 1483529200876, + "rssi": 100, + "_id": "586cfdefdbab07be5f2e1334", + "type": "sgv", + "glucose": 123 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 4.079, + "date": 1483528900865, + "rssi": 100, + "_id": "586cdac7dbab07be5f2e0f6e", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 1.002, + "date": 1483528900865, + "rssi": 100, + "_id": "586cdbf3dbab07be5f2e0f94", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": -4.355, + "date": 1483528900865, + "rssi": 100, + "_id": "586cdd20dbab07be5f2e0fb4", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": -2.237, + "date": 1483528900865, + "rssi": 100, + "_id": "586cde4cdbab07be5f2e0fd4", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": -0.207, + "date": 1483528900865, + "rssi": 100, + "_id": "586cdf78dbab07be5f2e0ff3", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": -2.218, + "date": 1483528900865, + "rssi": 100, + "_id": "586ce0a4dbab07be5f2e1013", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": -1.417, + "date": 1483528900865, + "rssi": 100, + "_id": "586ce1d1dbab07be5f2e1034", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 1.516, + "date": 1483528900865, + "rssi": 100, + "_id": "586ce2fddbab07be5f2e1054", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": -3.331, + "date": 1483528900865, + "rssi": 100, + "_id": "586ce42ddbab07be5f2e1075", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 1.069, + "date": 1483528900865, + "rssi": 100, + "_id": "586ce553dbab07be5f2e10a1", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 6.609, + "date": 1483528900865, + "rssi": 100, + "_id": "586ce680dbab07be5f2e10b6", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": -3.417, + "date": 1483528900865, + "rssi": 100, + "_id": "586ce8d8dbab07be5f2e10e0", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 1.935, + "date": 1483528900865, + "rssi": 100, + "_id": "586cea04dbab07be5f2e1100", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 1.658, + "date": 1483528900865, + "rssi": 100, + "_id": "586ceb30dbab07be5f2e1122", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": -3.597, + "date": 1483528900865, + "rssi": 100, + "_id": "586cec5bdbab07be5f2e1142", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 2.523, + "date": 1483528900865, + "rssi": 100, + "_id": "586ced88dbab07be5f2e1163", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 2.177, + "date": 1483528900865, + "rssi": 100, + "_id": "586ceeb3dbab07be5f2e1184", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 0.207, + "date": 1483528900865, + "rssi": 100, + "_id": "586cefe0dbab07be5f2e11a4", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 0.069, + "date": 1483528900865, + "rssi": 100, + "_id": "586cf10cdbab07be5f2e11c3", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 1.87, + "date": 1483528900865, + "rssi": 100, + "_id": "586cf238dbab07be5f2e11e7", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 2.554, + "date": 1483528900865, + "rssi": 100, + "_id": "586cf364dbab07be5f2e1206", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 1.314, + "date": 1483528900865, + "rssi": 100, + "_id": "586cf490dbab07be5f2e1227", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 1.686, + "date": 1483528900865, + "rssi": 100, + "_id": "586cf5bddbab07be5f2e124a", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 5.385, + "date": 1483528900865, + "rssi": 100, + "_id": "586cf6e8dbab07be5f2e126a", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 3.904, + "date": 1483528900865, + "rssi": 100, + "_id": "586cf814dbab07be5f2e128e", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 16.247, + "date": 1483528900865, + "rssi": 100, + "_id": "586cf940dbab07be5f2e12b1", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 21.457, + "date": 1483528900865, + "rssi": 100, + "_id": "586cfa6cdbab07be5f2e12d2", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 14.55, + "date": 1483528900865, + "rssi": 100, + "_id": "586cfb98dbab07be5f2e12f4", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 163104, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:21:40.865000+01:00", + "sgv": 122, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 167264, + "delta": 17.921, + "date": 1483528900865, + "rssi": 100, + "_id": "586cfcc3dbab07be5f2e1314", + "type": "sgv", + "glucose": 122 + }, + { + "filtered": 161184, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:16:40.916000+01:00", + "sgv": 118, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163488, + "delta": 1.071, + "date": 1483528600916, + "rssi": 100, + "_id": "586cd99cdbab07be5f2e0f4f", + "type": "sgv", + "glucose": 118 + }, + { + "filtered": 161184, + "direction": "Flat", + "noise": 1, + "dateString": "2017-01-04T12:16:40.916000+01:00", + "sgv": 118, + "device": "xDrip-DexbridgeWixel", + "unfiltered": 163488, + "delta": 4.079, + "date": 1483528600916, + "rssi": 100, + "_id": "586cdac7dbab07be5f2e0f6f", + "type": "sgv", + "glucose": 118 + } +] \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/monitor/iob.json b/app/src/main/java/info/nightscout/sampleData/monitor/iob.json new file mode 100644 index 0000000000..f96f4137a9 --- /dev/null +++ b/app/src/main/java/info/nightscout/sampleData/monitor/iob.json @@ -0,0 +1 @@ +[{"iob":5.248,"activity":0.0766,"bolussnooze":1.371,"basaliob":1.751,"netbasalinsulin":4.95,"hightempinsulin":5.05,"time":"2017-01-04T15:40:31.000Z"},{"iob":4.818,"activity":0.076,"bolussnooze":1.057,"basaliob":1.55,"netbasalinsulin":4.85,"hightempinsulin":5,"time":"2017-01-04T15:45:31.000Z"},{"iob":4.391,"activity":0.0753,"bolussnooze":0.785,"basaliob":1.357,"netbasalinsulin":4.65,"hightempinsulin":4.85,"time":"2017-01-04T15:50:31.000Z"},{"iob":3.967,"activity":0.0749,"bolussnooze":0.556,"basaliob":1.171,"netbasalinsulin":4.4,"hightempinsulin":4.65,"time":"2017-01-04T15:55:31.000Z"},{"iob":3.545,"activity":0.0741,"bolussnooze":0.369,"basaliob":0.992,"netbasalinsulin":4.3,"hightempinsulin":4.6,"time":"2017-01-04T16:00:31.000Z"},{"iob":3.139,"activity":0.0713,"bolussnooze":0.224,"basaliob":0.821,"netbasalinsulin":4.25,"hightempinsulin":4.6,"time":"2017-01-04T16:05:31.000Z"},{"iob":2.796,"activity":0.0686,"bolussnooze":0.121,"basaliob":0.709,"netbasalinsulin":4.2,"hightempinsulin":4.55,"time":"2017-01-04T16:10:31.000Z"},{"iob":2.471,"activity":0.0648,"bolussnooze":0.059,"basaliob":0.604,"netbasalinsulin":4.15,"hightempinsulin":4.5,"time":"2017-01-04T16:15:31.000Z"},{"iob":2.173,"activity":0.0594,"bolussnooze":0.019,"basaliob":0.508,"netbasalinsulin":4.05,"hightempinsulin":4.4,"time":"2017-01-04T16:20:31.000Z"},{"iob":1.901,"activity":0.0546,"bolussnooze":0.001,"basaliob":0.42,"netbasalinsulin":4,"hightempinsulin":4.35,"time":"2017-01-04T16:25:31.000Z"},{"iob":1.65,"activity":0.0502,"bolussnooze":0,"basaliob":0.341,"netbasalinsulin":3.95,"hightempinsulin":4.3,"time":"2017-01-04T16:30:31.000Z"},{"iob":1.419,"activity":0.0461,"bolussnooze":0,"basaliob":0.271,"netbasalinsulin":3.85,"hightempinsulin":4.2,"time":"2017-01-04T16:35:31.000Z"},{"iob":1.21,"activity":0.0419,"bolussnooze":0,"basaliob":0.211,"netbasalinsulin":3.65,"hightempinsulin":4,"time":"2017-01-04T16:40:31.000Z"},{"iob":1.022,"activity":0.0377,"bolussnooze":0,"basaliob":0.162,"netbasalinsulin":3.2,"hightempinsulin":3.55,"time":"2017-01-04T16:45:31.000Z"},{"iob":0.854,"activity":0.0336,"bolussnooze":0,"basaliob":0.123,"netbasalinsulin":2.75,"hightempinsulin":3.1,"time":"2017-01-04T16:50:31.000Z"},{"iob":0.705,"activity":0.0298,"bolussnooze":0,"basaliob":0.093,"netbasalinsulin":2.3,"hightempinsulin":2.65,"time":"2017-01-04T16:55:31.000Z"},{"iob":0.573,"activity":0.0263,"bolussnooze":0,"basaliob":0.069,"netbasalinsulin":1.8,"hightempinsulin":2.15,"time":"2017-01-04T17:00:31.000Z"},{"iob":0.458,"activity":0.0232,"bolussnooze":0,"basaliob":0.05,"netbasalinsulin":1.35,"hightempinsulin":1.7,"time":"2017-01-04T17:05:31.000Z"},{"iob":0.356,"activity":0.0203,"bolussnooze":0,"basaliob":0.035,"netbasalinsulin":0.85,"hightempinsulin":1.2,"time":"2017-01-04T17:10:31.000Z"},{"iob":0.268,"activity":0.0178,"bolussnooze":0,"basaliob":0.022,"netbasalinsulin":0.6,"hightempinsulin":0.95,"time":"2017-01-04T17:15:31.000Z"},{"iob":0.191,"activity":0.0153,"bolussnooze":0,"basaliob":0.011,"netbasalinsulin":0.6,"hightempinsulin":0.95,"time":"2017-01-04T17:20:31.000Z"},{"iob":0.127,"activity":0.0129,"bolussnooze":0,"basaliob":0.001,"netbasalinsulin":0.65,"hightempinsulin":0.95,"time":"2017-01-04T17:25:31.000Z"},{"iob":0.075,"activity":0.0104,"bolussnooze":0,"basaliob":-0.007,"netbasalinsulin":0.6,"hightempinsulin":0.9,"time":"2017-01-04T17:30:31.000Z"},{"iob":0.035,"activity":0.008,"bolussnooze":0,"basaliob":-0.013,"netbasalinsulin":0.6,"hightempinsulin":0.9,"time":"2017-01-04T17:35:31.000Z"},{"iob":0.007,"activity":0.0056,"bolussnooze":0,"basaliob":-0.018,"netbasalinsulin":0.6,"hightempinsulin":0.9,"time":"2017-01-04T17:40:31.000Z"},{"iob":-0.01,"activity":0.0034,"bolussnooze":0,"basaliob":-0.021,"netbasalinsulin":0.55,"hightempinsulin":0.85,"time":"2017-01-04T17:45:31.000Z"},{"iob":-0.02,"activity":0.0021,"bolussnooze":0,"basaliob":-0.023,"netbasalinsulin":0.5,"hightempinsulin":0.8,"time":"2017-01-04T17:50:31.000Z"},{"iob":-0.024,"activity":0.0008,"bolussnooze":0,"basaliob":-0.024,"netbasalinsulin":0.45,"hightempinsulin":0.75,"time":"2017-01-04T17:55:31.000Z"},{"iob":-0.023,"activity":-0.0001,"bolussnooze":0,"basaliob":-0.023,"netbasalinsulin":0.45,"hightempinsulin":0.75,"time":"2017-01-04T18:00:31.000Z"},{"iob":-0.022,"activity":-0.0003,"bolussnooze":0,"basaliob":-0.022,"netbasalinsulin":0.4,"hightempinsulin":0.7,"time":"2017-01-04T18:05:31.000Z"},{"iob":-0.019,"activity":-0.0005,"bolussnooze":0,"basaliob":-0.019,"netbasalinsulin":0.35,"hightempinsulin":0.65,"time":"2017-01-04T18:10:31.000Z"},{"iob":-0.016,"activity":-0.0007,"bolussnooze":0,"basaliob":-0.016,"netbasalinsulin":0.2,"hightempinsulin":0.5,"time":"2017-01-04T18:15:31.000Z"},{"iob":-0.012,"activity":-0.0008,"bolussnooze":0,"basaliob":-0.012,"netbasalinsulin":0.05,"hightempinsulin":0.35,"time":"2017-01-04T18:20:31.000Z"},{"iob":-0.008,"activity":-0.0007,"bolussnooze":0,"basaliob":-0.008,"netbasalinsulin":-0.15,"hightempinsulin":0.15,"time":"2017-01-04T18:25:31.000Z"},{"iob":-0.005,"activity":-0.0006,"bolussnooze":0,"basaliob":-0.005,"netbasalinsulin":-0.3,"hightempinsulin":0,"time":"2017-01-04T18:30:31.000Z"},{"iob":-0.003,"activity":-0.0004,"bolussnooze":0,"basaliob":-0.003,"netbasalinsulin":-0.3,"hightempinsulin":0,"time":"2017-01-04T18:35:31.000Z"},{"iob":-0.002,"activity":-0.0003,"bolussnooze":0,"basaliob":-0.002,"netbasalinsulin":-0.25,"hightempinsulin":0,"time":"2017-01-04T18:40:31.000Z"},{"iob":-0.001,"activity":-0.0002,"bolussnooze":0,"basaliob":-0.001,"netbasalinsulin":-0.2,"hightempinsulin":0,"time":"2017-01-04T18:45:31.000Z"},{"iob":0,"activity":-0.0001,"bolussnooze":0,"basaliob":0,"netbasalinsulin":-0.15,"hightempinsulin":0,"time":"2017-01-04T18:50:31.000Z"},{"iob":0,"activity":0,"bolussnooze":0,"basaliob":0,"netbasalinsulin":-0.1,"hightempinsulin":0,"time":"2017-01-04T18:55:31.000Z"},{"iob":0,"activity":0,"bolussnooze":0,"basaliob":0,"netbasalinsulin":-0.05,"hightempinsulin":0,"time":"2017-01-04T19:00:31.000Z"},{"iob":0,"activity":0,"bolussnooze":0,"basaliob":0,"netbasalinsulin":0,"hightempinsulin":0,"time":"2017-01-04T19:05:31.000Z"}] diff --git a/app/src/main/java/info/nightscout/sampleData/monitor/meal.json b/app/src/main/java/info/nightscout/sampleData/monitor/meal.json new file mode 100644 index 0000000000..d0e41ca9fa --- /dev/null +++ b/app/src/main/java/info/nightscout/sampleData/monitor/meal.json @@ -0,0 +1 @@ +{"carbs":0,"boluses":8,"mealCOB":0} diff --git a/app/src/main/java/info/nightscout/sampleData/monitor/mmtune.json b/app/src/main/java/info/nightscout/sampleData/monitor/mmtune.json new file mode 100644 index 0000000000..460af83e51 --- /dev/null +++ b/app/src/main/java/info/nightscout/sampleData/monitor/mmtune.json @@ -0,0 +1,131 @@ +{ + "scanDetails": [ + [ + "868.300", + 0, + -99 + ], + [ + "868.312", + 0, + -99 + ], + [ + "868.324", + 0, + -99 + ], + [ + "868.336", + 0, + -99 + ], + [ + "868.348", + 0, + -99 + ], + [ + "868.360", + 0, + -99 + ], + [ + "868.372", + 4, + -91 + ], + [ + "868.384", + 5, + -81 + ], + [ + "868.396", + 5, + -78 + ], + [ + "868.408", + 5, + -77 + ], + [ + "868.420", + 5, + -76 + ], + [ + "868.432", + 5, + -76 + ], + [ + "868.444", + 5, + -76 + ], + [ + "868.456", + 5, + -76 + ], + [ + "868.468", + 5, + -75 + ], + [ + "868.480", + 5, + -76 + ], + [ + "868.492", + 5, + -76 + ], + [ + "868.504", + 5, + -77 + ], + [ + "868.516", + 5, + -80 + ], + [ + "868.528", + 5, + -86 + ], + [ + "868.540", + 0, + -99 + ], + [ + "868.552", + 0, + -99 + ], + [ + "868.564", + 0, + -99 + ], + [ + "868.576", + 0, + -99 + ], + [ + "868.588", + 0, + -99 + ] + ], + "setFreq": 868.468, + "usedDefault": false +} \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/monitor/pumphistory-zoned.json b/app/src/main/java/info/nightscout/sampleData/monitor/pumphistory-zoned.json new file mode 100644 index 0000000000..3070d01cd5 --- /dev/null +++ b/app/src/main/java/info/nightscout/sampleData/monitor/pumphistory-zoned.json @@ -0,0 +1,936 @@ +[ + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T16:37:57 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T16:37:57+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "3965104411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T16:37:57 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T16:37:57+01:00", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "3965104411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T16:28:28 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T16:28:28+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1c5c104411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T16:28:28 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T16:28:28+01:00", + "_body": "00", + "_head": "3322", + "rate": 0.85, + "_date": "1c5c104411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T16:21:31 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T16:21:31+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1f55104411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T16:21:31 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T16:21:31+01:00", + "_body": "00", + "_head": "337c", + "rate": 3.1, + "_date": "1f55104411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T16:15:29 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T16:15:29+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1d4f104411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T16:15:29 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T16:15:29+01:00", + "_body": "00", + "_head": "3362", + "rate": 2.45, + "_date": "1d4f104411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T16:08:41 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T16:08:41+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "2948104411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T16:08:41 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T16:08:41+01:00", + "_body": "00", + "_head": "334e", + "rate": 1.95, + "_date": "2948104411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T16:06:50 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T16:06:50+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "3246104411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T16:06:50 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T16:06:50+01:00", + "_body": "00", + "_head": "3332", + "rate": 1.25, + "_date": "3246104411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T16:02:03 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T16:02:03+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "0342104411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T16:02:03 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T16:02:03+01:00", + "_body": "00", + "_head": "3322", + "rate": 0.85, + "_date": "0342104411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T16:01:28 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T16:01:28+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1c41104411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T16:01:28 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T16:01:28+01:00", + "_body": "00", + "_head": "3396", + "rate": 3.75, + "_date": "1c41104411" + }, + { + "_type": "Bolus", + "_description": "Bolus 2017-01-04T15:58:37 head[4], body[0] op[0x01]", + "timestamp": "2017-01-04T15:58:37+01:00", + "_body": "", + "programmed": 2.0, + "_head": "01141400", + "amount": 2.0, + "duration": 0, + "type": "normal", + "_date": "257a4f0411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T15:55:29 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T15:55:29+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1d770f4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T15:55:29 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T15:55:29+01:00", + "_body": "00", + "_head": "332d", + "rate": 1.125, + "_date": "1d770f4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T15:46:50 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T15:46:50+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "326e0f4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T15:46:50 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T15:46:50+01:00", + "_body": "00", + "_head": "3322", + "rate": 0.85, + "_date": "326e0f4411" + }, + { + "_type": "Bolus", + "_description": "Bolus 2017-01-04T15:44:07 head[4], body[0] op[0x01]", + "timestamp": "2017-01-04T15:44:07+01:00", + "_body": "", + "programmed": 2.0, + "_head": "01141400", + "amount": 2.0, + "duration": 0, + "type": "normal", + "_date": "076c4f0411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T15:43:50 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T15:43:50+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "326b0f4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T15:43:50 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T15:43:50+01:00", + "_body": "00", + "_head": "3341", + "rate": 1.625, + "_date": "326b0f4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T15:41:22 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T15:41:22+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "16690f4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T15:41:22 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T15:41:22+01:00", + "_body": "00", + "_head": "3322", + "rate": 0.85, + "_date": "16690f4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T15:28:24 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T15:28:24+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "185c0f4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T15:28:24 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T15:28:24+01:00", + "_body": "00", + "_head": "3322", + "rate": 0.85, + "_date": "185c0f4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T15:22:58 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T15:22:58+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "3a560f4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T15:22:58 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T15:22:58+01:00", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "3a560f4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T15:13:01 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T15:13:01+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "014d0f4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T15:13:01 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T15:13:01+01:00", + "_body": "00", + "_head": "3322", + "rate": 0.85, + "_date": "014d0f4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T14:50:21 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T14:50:21+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "15720e4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T14:50:21 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T14:50:21+01:00", + "_body": "00", + "_head": "33fb", + "rate": 6.275, + "_date": "15720e4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T14:38:50 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T14:38:50+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "32660e4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T14:38:50 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T14:38:50+01:00", + "_body": "00", + "_head": "33e7", + "rate": 5.775, + "_date": "32660e4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T14:34:03 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T14:34:03+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "03620e4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T14:34:03 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T14:34:03+01:00", + "_body": "00", + "_head": "3344", + "rate": 1.7, + "_date": "03620e4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T14:33:29 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T14:33:29+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1d610e4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T14:33:29 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T14:33:29+01:00", + "_body": "00", + "_head": "3392", + "rate": 3.65, + "_date": "1d610e4411" + }, + { + "_type": "Bolus", + "_description": "Bolus 2017-01-04T14:32:05 head[4], body[0] op[0x01]", + "timestamp": "2017-01-04T14:32:05+01:00", + "_body": "", + "programmed": 1.0, + "_head": "010a0a00", + "amount": 1.0, + "duration": 0, + "type": "normal", + "_date": "05604e0411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T14:26:30 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T14:26:30+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1e5a0e4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T14:26:30 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T14:26:30+01:00", + "_body": "00", + "_head": "3320", + "rate": 0.8, + "_date": "1e5a0e4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T14:25:47 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T14:25:47+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "2f590e4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T14:25:47 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T14:25:47+01:00", + "_body": "00", + "_head": "3378", + "rate": 3.0, + "_date": "2f590e4411" + }, + { + "_type": "Bolus", + "_description": "Bolus 2017-01-04T14:22:59 head[4], body[0] op[0x01]", + "timestamp": "2017-01-04T14:22:59+01:00", + "_body": "", + "programmed": 2.0, + "_head": "01141400", + "amount": 2.0, + "duration": 0, + "type": "normal", + "_date": "3b564e0411" + }, + { + "_type": "Prime", + "_description": "Prime 2017-01-04T14:18:15 head[5], body[0] op[0x03]", + "timestamp": "2017-01-04T14:18:15+01:00", + "_body": "", + "_head": "0300000027", + "amount": 3.9, + "fixed": 0.0, + "type": "manual", + "_date": "0f522e0411" + }, + { + "_type": "Rewind", + "_description": "Rewind 2017-01-04T14:18:03 head[2], body[0] op[0x21]", + "timestamp": "2017-01-04T14:18:03+01:00", + "_body": "", + "_head": "2100", + "_date": "03520e0411" + }, + { + "_type": "Prime", + "_description": "Prime 2017-01-04T14:17:15 head[5], body[0] op[0x03]", + "timestamp": "2017-01-04T14:17:15+01:00", + "_body": "", + "_head": "03000a000a", + "amount": 1.0, + "fixed": 1.0, + "type": "fixed", + "_date": "0f510e0411" + }, + { + "_type": "Prime", + "_description": "Prime 2017-01-04T14:14:56 head[5], body[0] op[0x03]", + "timestamp": "2017-01-04T14:14:56+01:00", + "_body": "", + "_head": "0300190019", + "amount": 2.5, + "fixed": 2.5, + "type": "fixed", + "_date": "384e0e0411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T14:14:32 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T14:14:32+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "204e0e4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T14:14:32 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T14:14:32+01:00", + "_body": "00", + "_head": "3346", + "rate": 1.75, + "_date": "204e0e4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T14:09:45 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T14:09:45+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "2d490e4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T14:09:45 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T14:09:45+01:00", + "_body": "00", + "_head": "3337", + "rate": 1.375, + "_date": "2d490e4411" + }, + { + "_type": "ClearAlarm", + "_description": "ClearAlarm 2017-01-04T14:04:16 head[2], body[0] op[0x0c]", + "timestamp": "2017-01-04T14:04:16+01:00", + "_body": "", + "_head": "0c04", + "_date": "10440e0411" + }, + { + "_type": "AlarmPump", + "_description": "AlarmPump 2017-01-04T14:04:05 head[4], body[0] op[0x06]", + "timestamp": "2017-01-04T14:04:05+01:00", + "_body": "", + "_head": "06040bff", + "_date": "05444e4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T13:57:38 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T13:57:38+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "26790d4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T13:57:38 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T13:57:38+01:00", + "_body": "00", + "_head": "331e", + "rate": 0.75, + "_date": "26790d4411" + }, + { + "_type": "Bolus", + "_description": "Bolus 2017-01-04T13:53:05 head[4], body[0] op[0x01]", + "timestamp": "2017-01-04T13:53:05+01:00", + "_body": "", + "programmed": 1.0, + "_head": "010a0a00", + "amount": 1.0, + "duration": 0, + "type": "normal", + "_date": "05754d0411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T13:47:51 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T13:47:51+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "336f0d4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T13:47:51 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T13:47:51+01:00", + "_body": "00", + "_head": "3368", + "rate": 2.6, + "_date": "336f0d4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T13:43:53 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T13:43:53+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "356b0d4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T13:43:53 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T13:43:53+01:00", + "_body": "00", + "_head": "3355", + "rate": 2.125, + "_date": "356b0d4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T13:40:04 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T13:40:04+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "04680d4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T13:40:04 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T13:40:04+01:00", + "_body": "00", + "_head": "331e", + "rate": 0.75, + "_date": "04680d4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T13:27:46 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T13:27:46+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "2e5b0d4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T13:27:46 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T13:27:46+01:00", + "_body": "00", + "_head": "3348", + "rate": 1.8, + "_date": "2e5b0d4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T13:27:00 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T13:27:00+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "005b0d4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T13:27:00 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T13:27:00+01:00", + "_body": "00", + "_head": "331e", + "rate": 0.75, + "_date": "005b0d4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T13:20:49 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T13:20:49+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "31540d4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T13:20:49 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T13:20:49+01:00", + "_body": "00", + "_head": "332d", + "rate": 1.125, + "_date": "31540d4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T13:15:40 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T13:15:40+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "284f0d4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T13:15:40 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T13:15:40+01:00", + "_body": "00", + "_head": "3373", + "rate": 2.875, + "_date": "284f0d4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T13:15:31 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T13:15:31+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1f4f0d4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T13:15:31 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T13:15:31+01:00", + "_body": "00", + "_head": "3373", + "rate": 2.875, + "_date": "1f4f0d4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T13:08:29 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T13:08:29+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1d480d4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T13:08:29 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T13:08:29+01:00", + "_body": "00", + "_head": "332c", + "rate": 1.1, + "_date": "1d480d4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T13:03:28 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T13:03:28+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1c430d4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T13:03:28 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T13:03:28+01:00", + "_body": "00", + "_head": "331e", + "rate": 0.75, + "_date": "1c430d4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T12:57:44 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T12:57:44+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "2c790c4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T12:57:44 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T12:57:44+01:00", + "_body": "00", + "_head": "332a", + "rate": 1.05, + "_date": "2c790c4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T12:47:29 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T12:47:29+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1d6f0c4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T12:47:29 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T12:47:29+01:00", + "_body": "00", + "_head": "331e", + "rate": 0.75, + "_date": "1d6f0c4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T12:35:30 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T12:35:30+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1e630c4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T12:35:30 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T12:35:30+01:00", + "_body": "00", + "_head": "3322", + "rate": 0.85, + "_date": "1e630c4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T12:23:47 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T12:23:47+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "2f570c4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T12:23:47 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T12:23:47+01:00", + "_body": "00", + "_head": "33b5", + "rate": 4.525, + "_date": "2f570c4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T12:18:48 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T12:18:48+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "30520c4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T12:18:48 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T12:18:48+01:00", + "_body": "00", + "_head": "334a", + "rate": 1.85, + "_date": "30520c4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T12:13:29 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T12:13:29+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1d4d0c4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T12:13:29 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T12:13:29+01:00", + "_body": "00", + "_head": "3337", + "rate": 1.375, + "_date": "1d4d0c4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T12:08:07 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T12:08:07+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "07480c4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T12:08:07 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T12:08:07+01:00", + "_body": "00", + "_head": "3324", + "rate": 0.9, + "_date": "07480c4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T11:55:46 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T11:55:46+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "2e770b4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T11:55:46 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T11:55:46+01:00", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "2e770b4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T11:42:44 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T11:42:44+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "2c6a0b4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T11:42:44 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T11:42:44+01:00", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "2c6a0b4411" + } +] \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/monitor/pumphistory.json b/app/src/main/java/info/nightscout/sampleData/monitor/pumphistory.json new file mode 100644 index 0000000000..709365d77c --- /dev/null +++ b/app/src/main/java/info/nightscout/sampleData/monitor/pumphistory.json @@ -0,0 +1,936 @@ +[ + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T16:37:57 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T16:37:57", + "_body": "", + "_head": "1601", + "_date": "3965104411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T16:37:57 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T16:37:57", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "3965104411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T16:28:28 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T16:28:28", + "_body": "", + "_head": "1601", + "_date": "1c5c104411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T16:28:28 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T16:28:28", + "_body": "00", + "_head": "3322", + "rate": 0.85, + "_date": "1c5c104411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T16:21:31 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T16:21:31", + "_body": "", + "_head": "1601", + "_date": "1f55104411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T16:21:31 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T16:21:31", + "_body": "00", + "_head": "337c", + "rate": 3.1, + "_date": "1f55104411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T16:15:29 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T16:15:29", + "_body": "", + "_head": "1601", + "_date": "1d4f104411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T16:15:29 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T16:15:29", + "_body": "00", + "_head": "3362", + "rate": 2.45, + "_date": "1d4f104411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T16:08:41 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T16:08:41", + "_body": "", + "_head": "1601", + "_date": "2948104411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T16:08:41 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T16:08:41", + "_body": "00", + "_head": "334e", + "rate": 1.95, + "_date": "2948104411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T16:06:50 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T16:06:50", + "_body": "", + "_head": "1601", + "_date": "3246104411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T16:06:50 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T16:06:50", + "_body": "00", + "_head": "3332", + "rate": 1.25, + "_date": "3246104411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T16:02:03 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T16:02:03", + "_body": "", + "_head": "1601", + "_date": "0342104411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T16:02:03 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T16:02:03", + "_body": "00", + "_head": "3322", + "rate": 0.85, + "_date": "0342104411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T16:01:28 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T16:01:28", + "_body": "", + "_head": "1601", + "_date": "1c41104411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T16:01:28 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T16:01:28", + "_body": "00", + "_head": "3396", + "rate": 3.75, + "_date": "1c41104411" + }, + { + "programmed": 2.0, + "_type": "Bolus", + "type": "normal", + "_description": "Bolus 2017-01-04T15:58:37 head[4], body[0] op[0x01]", + "duration": 0, + "timestamp": "2017-01-04T15:58:37", + "_body": "", + "_head": "01141400", + "amount": 2.0, + "_date": "257a4f0411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T15:55:29 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T15:55:29", + "_body": "", + "_head": "1601", + "_date": "1d770f4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T15:55:29 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T15:55:29", + "_body": "00", + "_head": "332d", + "rate": 1.125, + "_date": "1d770f4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T15:46:50 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T15:46:50", + "_body": "", + "_head": "1601", + "_date": "326e0f4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T15:46:50 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T15:46:50", + "_body": "00", + "_head": "3322", + "rate": 0.85, + "_date": "326e0f4411" + }, + { + "programmed": 2.0, + "_type": "Bolus", + "type": "normal", + "_description": "Bolus 2017-01-04T15:44:07 head[4], body[0] op[0x01]", + "duration": 0, + "timestamp": "2017-01-04T15:44:07", + "_body": "", + "_head": "01141400", + "amount": 2.0, + "_date": "076c4f0411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T15:43:50 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T15:43:50", + "_body": "", + "_head": "1601", + "_date": "326b0f4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T15:43:50 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T15:43:50", + "_body": "00", + "_head": "3341", + "rate": 1.625, + "_date": "326b0f4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T15:41:22 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T15:41:22", + "_body": "", + "_head": "1601", + "_date": "16690f4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T15:41:22 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T15:41:22", + "_body": "00", + "_head": "3322", + "rate": 0.85, + "_date": "16690f4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T15:28:24 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T15:28:24", + "_body": "", + "_head": "1601", + "_date": "185c0f4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T15:28:24 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T15:28:24", + "_body": "00", + "_head": "3322", + "rate": 0.85, + "_date": "185c0f4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T15:22:58 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T15:22:58", + "_body": "", + "_head": "1601", + "_date": "3a560f4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T15:22:58 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T15:22:58", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "3a560f4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T15:13:01 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T15:13:01", + "_body": "", + "_head": "1601", + "_date": "014d0f4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T15:13:01 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T15:13:01", + "_body": "00", + "_head": "3322", + "rate": 0.85, + "_date": "014d0f4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T14:50:21 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T14:50:21", + "_body": "", + "_head": "1601", + "_date": "15720e4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T14:50:21 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T14:50:21", + "_body": "00", + "_head": "33fb", + "rate": 6.275, + "_date": "15720e4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T14:38:50 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T14:38:50", + "_body": "", + "_head": "1601", + "_date": "32660e4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T14:38:50 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T14:38:50", + "_body": "00", + "_head": "33e7", + "rate": 5.775, + "_date": "32660e4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T14:34:03 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T14:34:03", + "_body": "", + "_head": "1601", + "_date": "03620e4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T14:34:03 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T14:34:03", + "_body": "00", + "_head": "3344", + "rate": 1.7, + "_date": "03620e4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T14:33:29 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T14:33:29", + "_body": "", + "_head": "1601", + "_date": "1d610e4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T14:33:29 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T14:33:29", + "_body": "00", + "_head": "3392", + "rate": 3.65, + "_date": "1d610e4411" + }, + { + "programmed": 1.0, + "_type": "Bolus", + "type": "normal", + "_description": "Bolus 2017-01-04T14:32:05 head[4], body[0] op[0x01]", + "duration": 0, + "timestamp": "2017-01-04T14:32:05", + "_body": "", + "_head": "010a0a00", + "amount": 1.0, + "_date": "05604e0411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T14:26:30 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T14:26:30", + "_body": "", + "_head": "1601", + "_date": "1e5a0e4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T14:26:30 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T14:26:30", + "_body": "00", + "_head": "3320", + "rate": 0.8, + "_date": "1e5a0e4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T14:25:47 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T14:25:47", + "_body": "", + "_head": "1601", + "_date": "2f590e4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T14:25:47 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T14:25:47", + "_body": "00", + "_head": "3378", + "rate": 3.0, + "_date": "2f590e4411" + }, + { + "programmed": 2.0, + "_type": "Bolus", + "type": "normal", + "_description": "Bolus 2017-01-04T14:22:59 head[4], body[0] op[0x01]", + "duration": 0, + "timestamp": "2017-01-04T14:22:59", + "_body": "", + "_head": "01141400", + "amount": 2.0, + "_date": "3b564e0411" + }, + { + "_type": "Prime", + "type": "manual", + "_description": "Prime 2017-01-04T14:18:15 head[5], body[0] op[0x03]", + "timestamp": "2017-01-04T14:18:15", + "_body": "", + "fixed": 0.0, + "_head": "0300000027", + "amount": 3.9, + "_date": "0f522e0411" + }, + { + "_type": "Rewind", + "_description": "Rewind 2017-01-04T14:18:03 head[2], body[0] op[0x21]", + "timestamp": "2017-01-04T14:18:03", + "_body": "", + "_head": "2100", + "_date": "03520e0411" + }, + { + "_type": "Prime", + "type": "fixed", + "_description": "Prime 2017-01-04T14:17:15 head[5], body[0] op[0x03]", + "timestamp": "2017-01-04T14:17:15", + "_body": "", + "fixed": 1.0, + "_head": "03000a000a", + "amount": 1.0, + "_date": "0f510e0411" + }, + { + "_type": "Prime", + "type": "fixed", + "_description": "Prime 2017-01-04T14:14:56 head[5], body[0] op[0x03]", + "timestamp": "2017-01-04T14:14:56", + "_body": "", + "fixed": 2.5, + "_head": "0300190019", + "amount": 2.5, + "_date": "384e0e0411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T14:14:32 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T14:14:32", + "_body": "", + "_head": "1601", + "_date": "204e0e4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T14:14:32 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T14:14:32", + "_body": "00", + "_head": "3346", + "rate": 1.75, + "_date": "204e0e4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T14:09:45 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T14:09:45", + "_body": "", + "_head": "1601", + "_date": "2d490e4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T14:09:45 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T14:09:45", + "_body": "00", + "_head": "3337", + "rate": 1.375, + "_date": "2d490e4411" + }, + { + "_type": "ClearAlarm", + "_description": "ClearAlarm 2017-01-04T14:04:16 head[2], body[0] op[0x0c]", + "timestamp": "2017-01-04T14:04:16", + "_body": "", + "_head": "0c04", + "_date": "10440e0411" + }, + { + "_type": "AlarmPump", + "_description": "AlarmPump 2017-01-04T14:04:05 head[4], body[0] op[0x06]", + "timestamp": "2017-01-04T14:04:05", + "_body": "", + "_head": "06040bff", + "_date": "05444e4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T13:57:38 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T13:57:38", + "_body": "", + "_head": "1601", + "_date": "26790d4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T13:57:38 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T13:57:38", + "_body": "00", + "_head": "331e", + "rate": 0.75, + "_date": "26790d4411" + }, + { + "programmed": 1.0, + "_type": "Bolus", + "type": "normal", + "_description": "Bolus 2017-01-04T13:53:05 head[4], body[0] op[0x01]", + "duration": 0, + "timestamp": "2017-01-04T13:53:05", + "_body": "", + "_head": "010a0a00", + "amount": 1.0, + "_date": "05754d0411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T13:47:51 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T13:47:51", + "_body": "", + "_head": "1601", + "_date": "336f0d4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T13:47:51 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T13:47:51", + "_body": "00", + "_head": "3368", + "rate": 2.6, + "_date": "336f0d4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T13:43:53 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T13:43:53", + "_body": "", + "_head": "1601", + "_date": "356b0d4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T13:43:53 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T13:43:53", + "_body": "00", + "_head": "3355", + "rate": 2.125, + "_date": "356b0d4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T13:40:04 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T13:40:04", + "_body": "", + "_head": "1601", + "_date": "04680d4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T13:40:04 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T13:40:04", + "_body": "00", + "_head": "331e", + "rate": 0.75, + "_date": "04680d4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T13:27:46 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T13:27:46", + "_body": "", + "_head": "1601", + "_date": "2e5b0d4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T13:27:46 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T13:27:46", + "_body": "00", + "_head": "3348", + "rate": 1.8, + "_date": "2e5b0d4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T13:27:00 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T13:27:00", + "_body": "", + "_head": "1601", + "_date": "005b0d4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T13:27:00 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T13:27:00", + "_body": "00", + "_head": "331e", + "rate": 0.75, + "_date": "005b0d4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T13:20:49 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T13:20:49", + "_body": "", + "_head": "1601", + "_date": "31540d4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T13:20:49 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T13:20:49", + "_body": "00", + "_head": "332d", + "rate": 1.125, + "_date": "31540d4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T13:15:40 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T13:15:40", + "_body": "", + "_head": "1601", + "_date": "284f0d4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T13:15:40 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T13:15:40", + "_body": "00", + "_head": "3373", + "rate": 2.875, + "_date": "284f0d4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T13:15:31 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T13:15:31", + "_body": "", + "_head": "1601", + "_date": "1f4f0d4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T13:15:31 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T13:15:31", + "_body": "00", + "_head": "3373", + "rate": 2.875, + "_date": "1f4f0d4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T13:08:29 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T13:08:29", + "_body": "", + "_head": "1601", + "_date": "1d480d4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T13:08:29 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T13:08:29", + "_body": "00", + "_head": "332c", + "rate": 1.1, + "_date": "1d480d4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T13:03:28 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T13:03:28", + "_body": "", + "_head": "1601", + "_date": "1c430d4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T13:03:28 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T13:03:28", + "_body": "00", + "_head": "331e", + "rate": 0.75, + "_date": "1c430d4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T12:57:44 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T12:57:44", + "_body": "", + "_head": "1601", + "_date": "2c790c4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T12:57:44 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T12:57:44", + "_body": "00", + "_head": "332a", + "rate": 1.05, + "_date": "2c790c4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T12:47:29 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T12:47:29", + "_body": "", + "_head": "1601", + "_date": "1d6f0c4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T12:47:29 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T12:47:29", + "_body": "00", + "_head": "331e", + "rate": 0.75, + "_date": "1d6f0c4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T12:35:30 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T12:35:30", + "_body": "", + "_head": "1601", + "_date": "1e630c4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T12:35:30 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T12:35:30", + "_body": "00", + "_head": "3322", + "rate": 0.85, + "_date": "1e630c4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T12:23:47 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T12:23:47", + "_body": "", + "_head": "1601", + "_date": "2f570c4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T12:23:47 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T12:23:47", + "_body": "00", + "_head": "33b5", + "rate": 4.525, + "_date": "2f570c4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T12:18:48 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T12:18:48", + "_body": "", + "_head": "1601", + "_date": "30520c4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T12:18:48 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T12:18:48", + "_body": "00", + "_head": "334a", + "rate": 1.85, + "_date": "30520c4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T12:13:29 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T12:13:29", + "_body": "", + "_head": "1601", + "_date": "1d4d0c4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T12:13:29 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T12:13:29", + "_body": "00", + "_head": "3337", + "rate": 1.375, + "_date": "1d4d0c4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T12:08:07 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T12:08:07", + "_body": "", + "_head": "1601", + "_date": "07480c4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T12:08:07 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T12:08:07", + "_body": "00", + "_head": "3324", + "rate": 0.9, + "_date": "07480c4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T11:55:46 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T11:55:46", + "_body": "", + "_head": "1601", + "_date": "2e770b4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T11:55:46 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T11:55:46", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "2e770b4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T11:42:44 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T11:42:44", + "_body": "", + "_head": "1601", + "_date": "2c6a0b4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T11:42:44 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T11:42:44", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "2c6a0b4411" + } +] \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/monitor/reservoir.json b/app/src/main/java/info/nightscout/sampleData/monitor/reservoir.json new file mode 100644 index 0000000000..8044dad1ca --- /dev/null +++ b/app/src/main/java/info/nightscout/sampleData/monitor/reservoir.json @@ -0,0 +1 @@ +120.5 \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/monitor/status.json b/app/src/main/java/info/nightscout/sampleData/monitor/status.json new file mode 100644 index 0000000000..557b2e011f --- /dev/null +++ b/app/src/main/java/info/nightscout/sampleData/monitor/status.json @@ -0,0 +1,5 @@ +{ + "status": "normal", + "bolusing": false, + "suspended": false +} \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/monitor/temp_basal.json b/app/src/main/java/info/nightscout/sampleData/monitor/temp_basal.json new file mode 100644 index 0000000000..199234eef0 --- /dev/null +++ b/app/src/main/java/info/nightscout/sampleData/monitor/temp_basal.json @@ -0,0 +1,5 @@ +{ + "duration": 28, + "rate": 0.0, + "temp": "absolute" +} \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/settings/autosens.json b/app/src/main/java/info/nightscout/sampleData/settings/autosens.json new file mode 100644 index 0000000000..531ce45238 --- /dev/null +++ b/app/src/main/java/info/nightscout/sampleData/settings/autosens.json @@ -0,0 +1 @@ +{"ratio":1.4} diff --git a/app/src/main/java/info/nightscout/sampleData/settings/basal_profile.json b/app/src/main/java/info/nightscout/sampleData/settings/basal_profile.json new file mode 100644 index 0000000000..80e240fb56 --- /dev/null +++ b/app/src/main/java/info/nightscout/sampleData/settings/basal_profile.json @@ -0,0 +1,140 @@ +[ + { + "i": 0, + "start": "00:00:00", + "rate": 1.0, + "minutes": 0 + }, + { + "i": 1, + "start": "01:00:00", + "rate": 0.9, + "minutes": 60 + }, + { + "i": 2, + "start": "02:00:00", + "rate": 0.8, + "minutes": 120 + }, + { + "i": 3, + "start": "03:00:00", + "rate": 0.8, + "minutes": 180 + }, + { + "i": 4, + "start": "04:00:00", + "rate": 1.3, + "minutes": 240 + }, + { + "i": 5, + "start": "05:00:00", + "rate": 1.4000000000000001, + "minutes": 300 + }, + { + "i": 6, + "start": "06:00:00", + "rate": 1.8, + "minutes": 360 + }, + { + "i": 7, + "start": "07:00:00", + "rate": 1.8, + "minutes": 420 + }, + { + "i": 8, + "start": "08:00:00", + "rate": 1.8, + "minutes": 480 + }, + { + "i": 9, + "start": "09:00:00", + "rate": 1.5, + "minutes": 540 + }, + { + "i": 10, + "start": "10:00:00", + "rate": 1.0, + "minutes": 600 + }, + { + "i": 11, + "start": "11:00:00", + "rate": 0.9, + "minutes": 660 + }, + { + "i": 12, + "start": "12:00:00", + "rate": 0.6000000000000001, + "minutes": 720 + }, + { + "i": 13, + "start": "13:00:00", + "rate": 0.6000000000000001, + "minutes": 780 + }, + { + "i": 14, + "start": "14:00:00", + "rate": 0.6000000000000001, + "minutes": 840 + }, + { + "i": 15, + "start": "15:00:00", + "rate": 0.6000000000000001, + "minutes": 900 + }, + { + "i": 16, + "start": "17:00:00", + "rate": 0.6000000000000001, + "minutes": 1020 + }, + { + "i": 17, + "start": "18:00:00", + "rate": 0.6000000000000001, + "minutes": 1080 + }, + { + "i": 18, + "start": "19:00:00", + "rate": 0.6000000000000001, + "minutes": 1140 + }, + { + "i": 19, + "start": "20:00:00", + "rate": 0.6000000000000001, + "minutes": 1200 + }, + { + "i": 20, + "start": "21:00:00", + "rate": 0.6000000000000001, + "minutes": 1260 + }, + { + "i": 21, + "start": "22:00:00", + "rate": 0.6000000000000001, + "minutes": 1320 + }, + { + "i": 22, + "start": "23:00:00", + "rate": 0.6000000000000001, + "minutes": 1380 + } +] \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/settings/bg_targets.json b/app/src/main/java/info/nightscout/sampleData/settings/bg_targets.json new file mode 100644 index 0000000000..a53f740ae4 --- /dev/null +++ b/app/src/main/java/info/nightscout/sampleData/settings/bg_targets.json @@ -0,0 +1,16 @@ +{ + "units": "mg/dL", + "raw": "0x01 0x00 0x5a 0x5a 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00", + "user_preferred_units": "mg/dL", + "targets": [ + { + "i": 0, + "high": 90, + "start": "00:00:00", + "low": 90, + "offset": 0, + "x": 0 + } + ], + "first": 1 +} \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/settings/bg_targets_raw.json b/app/src/main/java/info/nightscout/sampleData/settings/bg_targets_raw.json new file mode 100644 index 0000000000..887bc01e31 --- /dev/null +++ b/app/src/main/java/info/nightscout/sampleData/settings/bg_targets_raw.json @@ -0,0 +1,15 @@ +{ + "units": "mg/dL", + "raw": "0x01 0x00 0x5a 0x5a 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00", + "targets": [ + { + "high": 90, + "start": "00:00:00", + "low": 90, + "offset": 0, + "i": 0, + "x": 0 + } + ], + "first": 1 +} \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/settings/carb_ratios.json b/app/src/main/java/info/nightscout/sampleData/settings/carb_ratios.json new file mode 100644 index 0000000000..8249963d76 --- /dev/null +++ b/app/src/main/java/info/nightscout/sampleData/settings/carb_ratios.json @@ -0,0 +1,31 @@ +{ + "units": "grams", + "raw": "0x01 0x00 0x09 0x0b 0x07 0x12 0x09 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00", + "first": 1, + "schedule": [ + { + "start": "00:00:00", + "r": 9, + "ratio": 9, + "offset": 0, + "i": 0, + "x": 0 + }, + { + "start": "05:30:00", + "r": 7, + "ratio": 7, + "offset": 330, + "i": 11, + "x": 1 + }, + { + "start": "09:00:00", + "r": 9, + "ratio": 9, + "offset": 540, + "i": 18, + "x": 2 + } + ] +} \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/settings/insulin_sensitivities.json b/app/src/main/java/info/nightscout/sampleData/settings/insulin_sensitivities.json new file mode 100644 index 0000000000..42aa84cbae --- /dev/null +++ b/app/src/main/java/info/nightscout/sampleData/settings/insulin_sensitivities.json @@ -0,0 +1,28 @@ +{ + "units": "mg/dL", + "user_preferred_units": "mg/dL", + "sensitivities": [ + { + "i": 0, + "start": "00:00:00", + "sensitivity": 35, + "x": 0, + "offset": 0 + }, + { + "i": 8, + "start": "04:00:00", + "sensitivity": 30, + "x": 1, + "offset": 240 + }, + { + "i": 20, + "start": "10:00:00", + "sensitivity": 30, + "x": 2, + "offset": 600 + } + ], + "first": 1 +} \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/settings/insulin_sensitivities_raw.json b/app/src/main/java/info/nightscout/sampleData/settings/insulin_sensitivities_raw.json new file mode 100644 index 0000000000..ca36a04c94 --- /dev/null +++ b/app/src/main/java/info/nightscout/sampleData/settings/insulin_sensitivities_raw.json @@ -0,0 +1,27 @@ +{ + "units": "mg/dL", + "sensitivities": [ + { + "i": 0, + "start": "00:00:00", + "sensitivity": 35, + "offset": 0, + "x": 0 + }, + { + "i": 8, + "start": "04:00:00", + "sensitivity": 30, + "offset": 240, + "x": 1 + }, + { + "i": 20, + "start": "10:00:00", + "sensitivity": 30, + "offset": 600, + "x": 2 + } + ], + "first": 1 +} \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/settings/model.json b/app/src/main/java/info/nightscout/sampleData/settings/model.json new file mode 100644 index 0000000000..7bd9b5e600 --- /dev/null +++ b/app/src/main/java/info/nightscout/sampleData/settings/model.json @@ -0,0 +1 @@ +"522" \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/settings/profile.json b/app/src/main/java/info/nightscout/sampleData/settings/profile.json new file mode 100644 index 0000000000..66e6cbc197 --- /dev/null +++ b/app/src/main/java/info/nightscout/sampleData/settings/profile.json @@ -0,0 +1 @@ +{"max_iob":15,"max_daily_safety_multiplier":9,"current_basal_safety_multiplier":12,"autosens_max":1.4,"autosens_min":0.6,"autosens_adjust_targets":true,"override_high_target_with_low":false,"skip_neutral_temps":false,"bolussnooze_dia_divisor":2,"min_5m_carbimpact":3,"carbratio_adjustmentratio":1,"dia":3,"model":"522","current_basal":0.6,"basalprofile":[{"i":0,"start":"00:00:00","rate":1,"minutes":0},{"i":1,"start":"01:00:00","rate":0.9,"minutes":60},{"i":2,"start":"02:00:00","rate":0.8,"minutes":120},{"i":3,"start":"03:00:00","rate":0.8,"minutes":180},{"i":4,"start":"04:00:00","rate":1.3,"minutes":240},{"i":5,"start":"05:00:00","rate":1.4000000000000001,"minutes":300},{"i":6,"start":"06:00:00","rate":1.8,"minutes":360},{"i":7,"start":"07:00:00","rate":1.8,"minutes":420},{"i":8,"start":"08:00:00","rate":1.8,"minutes":480},{"i":9,"start":"09:00:00","rate":1.5,"minutes":540},{"i":10,"start":"10:00:00","rate":1,"minutes":600},{"i":11,"start":"11:00:00","rate":0.9,"minutes":660},{"i":12,"start":"12:00:00","rate":0.6000000000000001,"minutes":720},{"i":13,"start":"13:00:00","rate":0.6000000000000001,"minutes":780},{"i":14,"start":"14:00:00","rate":0.6000000000000001,"minutes":840},{"i":15,"start":"15:00:00","rate":0.6000000000000001,"minutes":900},{"i":16,"start":"17:00:00","rate":0.6000000000000001,"minutes":1020},{"i":17,"start":"18:00:00","rate":0.6000000000000001,"minutes":1080},{"i":18,"start":"19:00:00","rate":0.6000000000000001,"minutes":1140},{"i":19,"start":"20:00:00","rate":0.6000000000000001,"minutes":1200},{"i":20,"start":"21:00:00","rate":0.6000000000000001,"minutes":1260},{"i":21,"start":"22:00:00","rate":0.6000000000000001,"minutes":1320},{"i":22,"start":"23:00:00","rate":0.6000000000000001,"minutes":1380}],"max_daily_basal":1.8,"max_basal":6.3,"out_units":"mg/dL","min_bg":90,"max_bg":90,"sens":30,"isfProfile":{"units":"mg/dL","user_preferred_units":"mg/dL","sensitivities":[{"i":0,"start":"00:00:00","sensitivity":35,"x":0,"offset":0},{"i":8,"start":"04:00:00","sensitivity":30,"x":1,"offset":240},{"i":20,"start":"10:00:00","sensitivity":30,"x":2,"offset":600,"endOffset":1440}],"first":1},"carb_ratio":9} diff --git a/app/src/main/java/info/nightscout/sampleData/settings/pumphistory-24h-zoned.json b/app/src/main/java/info/nightscout/sampleData/settings/pumphistory-24h-zoned.json new file mode 100644 index 0000000000..3110d24e4c --- /dev/null +++ b/app/src/main/java/info/nightscout/sampleData/settings/pumphistory-24h-zoned.json @@ -0,0 +1,4075 @@ +[ + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T16:37:57 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T16:37:57+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "3965104411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T16:37:57 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T16:37:57+01:00", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "3965104411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T16:28:28 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T16:28:28+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1c5c104411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T16:28:28 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T16:28:28+01:00", + "_body": "00", + "_head": "3322", + "rate": 0.85, + "_date": "1c5c104411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T16:21:31 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T16:21:31+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1f55104411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T16:21:31 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T16:21:31+01:00", + "_body": "00", + "_head": "337c", + "rate": 3.1, + "_date": "1f55104411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T16:15:29 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T16:15:29+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1d4f104411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T16:15:29 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T16:15:29+01:00", + "_body": "00", + "_head": "3362", + "rate": 2.45, + "_date": "1d4f104411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T16:08:41 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T16:08:41+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "2948104411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T16:08:41 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T16:08:41+01:00", + "_body": "00", + "_head": "334e", + "rate": 1.95, + "_date": "2948104411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T16:06:50 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T16:06:50+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "3246104411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T16:06:50 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T16:06:50+01:00", + "_body": "00", + "_head": "3332", + "rate": 1.25, + "_date": "3246104411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T16:02:03 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T16:02:03+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "0342104411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T16:02:03 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T16:02:03+01:00", + "_body": "00", + "_head": "3322", + "rate": 0.85, + "_date": "0342104411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T16:01:28 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T16:01:28+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1c41104411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T16:01:28 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T16:01:28+01:00", + "_body": "00", + "_head": "3396", + "rate": 3.75, + "_date": "1c41104411" + }, + { + "_type": "Bolus", + "_description": "Bolus 2017-01-04T15:58:37 head[4], body[0] op[0x01]", + "timestamp": "2017-01-04T15:58:37+01:00", + "_body": "", + "programmed": 2.0, + "_head": "01141400", + "amount": 2.0, + "duration": 0, + "type": "normal", + "_date": "257a4f0411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T15:55:29 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T15:55:29+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1d770f4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T15:55:29 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T15:55:29+01:00", + "_body": "00", + "_head": "332d", + "rate": 1.125, + "_date": "1d770f4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T15:46:50 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T15:46:50+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "326e0f4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T15:46:50 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T15:46:50+01:00", + "_body": "00", + "_head": "3322", + "rate": 0.85, + "_date": "326e0f4411" + }, + { + "_type": "Bolus", + "_description": "Bolus 2017-01-04T15:44:07 head[4], body[0] op[0x01]", + "timestamp": "2017-01-04T15:44:07+01:00", + "_body": "", + "programmed": 2.0, + "_head": "01141400", + "amount": 2.0, + "duration": 0, + "type": "normal", + "_date": "076c4f0411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T15:43:50 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T15:43:50+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "326b0f4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T15:43:50 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T15:43:50+01:00", + "_body": "00", + "_head": "3341", + "rate": 1.625, + "_date": "326b0f4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T15:41:22 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T15:41:22+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "16690f4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T15:41:22 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T15:41:22+01:00", + "_body": "00", + "_head": "3322", + "rate": 0.85, + "_date": "16690f4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T15:28:24 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T15:28:24+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "185c0f4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T15:28:24 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T15:28:24+01:00", + "_body": "00", + "_head": "3322", + "rate": 0.85, + "_date": "185c0f4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T15:22:58 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T15:22:58+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "3a560f4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T15:22:58 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T15:22:58+01:00", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "3a560f4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T15:13:01 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T15:13:01+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "014d0f4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T15:13:01 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T15:13:01+01:00", + "_body": "00", + "_head": "3322", + "rate": 0.85, + "_date": "014d0f4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T14:50:21 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T14:50:21+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "15720e4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T14:50:21 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T14:50:21+01:00", + "_body": "00", + "_head": "33fb", + "rate": 6.275, + "_date": "15720e4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T14:38:50 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T14:38:50+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "32660e4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T14:38:50 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T14:38:50+01:00", + "_body": "00", + "_head": "33e7", + "rate": 5.775, + "_date": "32660e4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T14:34:03 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T14:34:03+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "03620e4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T14:34:03 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T14:34:03+01:00", + "_body": "00", + "_head": "3344", + "rate": 1.7, + "_date": "03620e4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T14:33:29 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T14:33:29+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1d610e4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T14:33:29 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T14:33:29+01:00", + "_body": "00", + "_head": "3392", + "rate": 3.65, + "_date": "1d610e4411" + }, + { + "_type": "Bolus", + "_description": "Bolus 2017-01-04T14:32:05 head[4], body[0] op[0x01]", + "timestamp": "2017-01-04T14:32:05+01:00", + "_body": "", + "programmed": 1.0, + "_head": "010a0a00", + "amount": 1.0, + "duration": 0, + "type": "normal", + "_date": "05604e0411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T14:26:30 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T14:26:30+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1e5a0e4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T14:26:30 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T14:26:30+01:00", + "_body": "00", + "_head": "3320", + "rate": 0.8, + "_date": "1e5a0e4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T14:25:47 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T14:25:47+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "2f590e4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T14:25:47 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T14:25:47+01:00", + "_body": "00", + "_head": "3378", + "rate": 3.0, + "_date": "2f590e4411" + }, + { + "_type": "Bolus", + "_description": "Bolus 2017-01-04T14:22:59 head[4], body[0] op[0x01]", + "timestamp": "2017-01-04T14:22:59+01:00", + "_body": "", + "programmed": 2.0, + "_head": "01141400", + "amount": 2.0, + "duration": 0, + "type": "normal", + "_date": "3b564e0411" + }, + { + "_type": "Prime", + "_description": "Prime 2017-01-04T14:18:15 head[5], body[0] op[0x03]", + "timestamp": "2017-01-04T14:18:15+01:00", + "_body": "", + "_head": "0300000027", + "amount": 3.9, + "fixed": 0.0, + "type": "manual", + "_date": "0f522e0411" + }, + { + "_type": "Rewind", + "_description": "Rewind 2017-01-04T14:18:03 head[2], body[0] op[0x21]", + "timestamp": "2017-01-04T14:18:03+01:00", + "_body": "", + "_head": "2100", + "_date": "03520e0411" + }, + { + "_type": "Prime", + "_description": "Prime 2017-01-04T14:17:15 head[5], body[0] op[0x03]", + "timestamp": "2017-01-04T14:17:15+01:00", + "_body": "", + "_head": "03000a000a", + "amount": 1.0, + "fixed": 1.0, + "type": "fixed", + "_date": "0f510e0411" + }, + { + "_type": "Prime", + "_description": "Prime 2017-01-04T14:14:56 head[5], body[0] op[0x03]", + "timestamp": "2017-01-04T14:14:56+01:00", + "_body": "", + "_head": "0300190019", + "amount": 2.5, + "fixed": 2.5, + "type": "fixed", + "_date": "384e0e0411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T14:14:32 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T14:14:32+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "204e0e4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T14:14:32 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T14:14:32+01:00", + "_body": "00", + "_head": "3346", + "rate": 1.75, + "_date": "204e0e4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T14:09:45 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T14:09:45+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "2d490e4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T14:09:45 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T14:09:45+01:00", + "_body": "00", + "_head": "3337", + "rate": 1.375, + "_date": "2d490e4411" + }, + { + "_type": "ClearAlarm", + "_description": "ClearAlarm 2017-01-04T14:04:16 head[2], body[0] op[0x0c]", + "timestamp": "2017-01-04T14:04:16+01:00", + "_body": "", + "_head": "0c04", + "_date": "10440e0411" + }, + { + "_type": "AlarmPump", + "_description": "AlarmPump 2017-01-04T14:04:05 head[4], body[0] op[0x06]", + "timestamp": "2017-01-04T14:04:05+01:00", + "_body": "", + "_head": "06040bff", + "_date": "05444e4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T13:57:38 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T13:57:38+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "26790d4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T13:57:38 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T13:57:38+01:00", + "_body": "00", + "_head": "331e", + "rate": 0.75, + "_date": "26790d4411" + }, + { + "_type": "Bolus", + "_description": "Bolus 2017-01-04T13:53:05 head[4], body[0] op[0x01]", + "timestamp": "2017-01-04T13:53:05+01:00", + "_body": "", + "programmed": 1.0, + "_head": "010a0a00", + "amount": 1.0, + "duration": 0, + "type": "normal", + "_date": "05754d0411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T13:47:51 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T13:47:51+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "336f0d4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T13:47:51 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T13:47:51+01:00", + "_body": "00", + "_head": "3368", + "rate": 2.6, + "_date": "336f0d4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T13:43:53 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T13:43:53+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "356b0d4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T13:43:53 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T13:43:53+01:00", + "_body": "00", + "_head": "3355", + "rate": 2.125, + "_date": "356b0d4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T13:40:04 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T13:40:04+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "04680d4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T13:40:04 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T13:40:04+01:00", + "_body": "00", + "_head": "331e", + "rate": 0.75, + "_date": "04680d4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T13:27:46 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T13:27:46+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "2e5b0d4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T13:27:46 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T13:27:46+01:00", + "_body": "00", + "_head": "3348", + "rate": 1.8, + "_date": "2e5b0d4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T13:27:00 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T13:27:00+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "005b0d4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T13:27:00 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T13:27:00+01:00", + "_body": "00", + "_head": "331e", + "rate": 0.75, + "_date": "005b0d4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T13:20:49 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T13:20:49+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "31540d4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T13:20:49 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T13:20:49+01:00", + "_body": "00", + "_head": "332d", + "rate": 1.125, + "_date": "31540d4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T13:15:40 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T13:15:40+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "284f0d4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T13:15:40 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T13:15:40+01:00", + "_body": "00", + "_head": "3373", + "rate": 2.875, + "_date": "284f0d4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T13:15:31 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T13:15:31+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1f4f0d4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T13:15:31 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T13:15:31+01:00", + "_body": "00", + "_head": "3373", + "rate": 2.875, + "_date": "1f4f0d4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T13:08:29 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T13:08:29+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1d480d4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T13:08:29 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T13:08:29+01:00", + "_body": "00", + "_head": "332c", + "rate": 1.1, + "_date": "1d480d4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T13:03:28 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T13:03:28+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1c430d4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T13:03:28 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T13:03:28+01:00", + "_body": "00", + "_head": "331e", + "rate": 0.75, + "_date": "1c430d4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T12:57:44 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T12:57:44+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "2c790c4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T12:57:44 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T12:57:44+01:00", + "_body": "00", + "_head": "332a", + "rate": 1.05, + "_date": "2c790c4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T12:47:29 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T12:47:29+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1d6f0c4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T12:47:29 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T12:47:29+01:00", + "_body": "00", + "_head": "331e", + "rate": 0.75, + "_date": "1d6f0c4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T12:35:30 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T12:35:30+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1e630c4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T12:35:30 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T12:35:30+01:00", + "_body": "00", + "_head": "3322", + "rate": 0.85, + "_date": "1e630c4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T12:23:47 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T12:23:47+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "2f570c4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T12:23:47 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T12:23:47+01:00", + "_body": "00", + "_head": "33b5", + "rate": 4.525, + "_date": "2f570c4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T12:18:48 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T12:18:48+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "30520c4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T12:18:48 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T12:18:48+01:00", + "_body": "00", + "_head": "334a", + "rate": 1.85, + "_date": "30520c4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T12:13:29 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T12:13:29+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1d4d0c4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T12:13:29 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T12:13:29+01:00", + "_body": "00", + "_head": "3337", + "rate": 1.375, + "_date": "1d4d0c4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T12:08:07 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T12:08:07+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "07480c4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T12:08:07 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T12:08:07+01:00", + "_body": "00", + "_head": "3324", + "rate": 0.9, + "_date": "07480c4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T11:55:46 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T11:55:46+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "2e770b4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T11:55:46 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T11:55:46+01:00", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "2e770b4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T11:42:44 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T11:42:44+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "2c6a0b4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T11:42:44 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T11:42:44+01:00", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "2c6a0b4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T11:31:27 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T11:31:27+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1b5f0b4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T11:31:27 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T11:31:27+01:00", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "1b5f0b4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T11:19:25 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T11:19:25+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "19530b4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T11:19:25 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T11:19:25+01:00", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "19530b4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T10:58:19 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T10:58:19+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "137a0a4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T10:58:19 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T10:58:19+01:00", + "_body": "00", + "_head": "33c9", + "rate": 5.025, + "_date": "137a0a4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T10:52:44 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T10:52:44+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "2c740a4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T10:52:44 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T10:52:44+01:00", + "_body": "00", + "_head": "33a8", + "rate": 4.2, + "_date": "2c740a4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T10:48:19 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T10:48:19+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "13700a4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T10:48:19 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T10:48:19+01:00", + "_body": "00", + "_head": "3380", + "rate": 3.2, + "_date": "13700a4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T10:33:14 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T10:33:14+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "0e610a4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T10:33:14 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T10:33:14+01:00", + "_body": "00", + "_head": "336e", + "rate": 2.75, + "_date": "0e610a4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T10:27:44 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T10:27:44+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "2c5b0a4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T10:27:44 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T10:27:44+01:00", + "_body": "00", + "_head": "334a", + "rate": 1.85, + "_date": "2c5b0a4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T10:23:49 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T10:23:49+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "31570a4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T10:23:49 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T10:23:49+01:00", + "_body": "00", + "_head": "3310", + "rate": 0.4, + "_date": "31570a4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T10:18:26 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T10:18:26+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1a520a4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T10:18:26 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T10:18:26+01:00", + "_body": "00", + "_head": "331b", + "rate": 0.675, + "_date": "1a520a4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T10:08:25 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T10:08:25+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "19480a4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T10:08:25 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T10:08:25+01:00", + "_body": "00", + "_head": "3324", + "rate": 0.9, + "_date": "19480a4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T10:03:08 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T10:03:08+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "08430a4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T10:03:08 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T10:03:08+01:00", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "08430a4411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T09:45:24 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T09:45:24+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "186d094411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T09:45:24 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T09:45:24+01:00", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "186d094411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T09:33:14 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T09:33:14+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "0e61094411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T09:33:14 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T09:33:14+01:00", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "0e61094411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T09:32:28 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T09:32:28+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1c60094411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T09:32:28 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T09:32:28+01:00", + "_body": "00", + "_head": "3324", + "rate": 0.9, + "_date": "1c60094411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T09:18:26 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T09:18:26+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1a52094411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T09:18:26 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T09:18:26+01:00", + "_body": "00", + "_head": "3336", + "rate": 1.35, + "_date": "1a52094411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T09:01:07 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T09:01:07+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "0741094411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T09:01:07 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T09:01:07+01:00", + "_body": "00", + "_head": "3336", + "rate": 1.35, + "_date": "0741094411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T09:00:27 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T09:00:27+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1b40094411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T09:00:27 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T09:00:27+01:00", + "_body": "00", + "_head": "33d3", + "rate": 5.275, + "_date": "1b40094411" + }, + { + "_type": "Bolus", + "_description": "Bolus 2017-01-04T08:53:23 head[4], body[0] op[0x01]", + "timestamp": "2017-01-04T08:53:23+01:00", + "_body": "", + "programmed": 8.5, + "_head": "01555500", + "amount": 8.5, + "duration": 0, + "type": "normal", + "_date": "1775480411" + }, + { + "unknown_byte[8]": 0, + "_type": "BolusWizard", + "bg": 98, + "_byte[5]": 2, + "unknown_byte[10]": 0, + "_description": "BolusWizard 2017-01-04T08:53:23 head[2], body[13] op[0x5b]", + "timestamp": "2017-01-04T08:53:23+01:00", + "_body": "3c50071e5a025500000000575a", + "bg_target_high": 90, + "sensitivity": 30, + "carb_ratio": 7, + "food_estimate": 8.5, + "unabsorbed_insulin_total": 0.0, + "correction_estimate": 0.2, + "carb_input": 60, + "_head": "5b62", + "unabsorbed_insulin_count": "??", + "_byte[7]": 0, + "bolus_estimate": 8.7, + "_date": "1775080411", + "bg_target_low": 90 + }, + { + "_type": "CalBGForPH", + "_description": "CalBGForPH 2017-01-04T08:53:09 head[2], body[0] op[0x0a]", + "timestamp": "2017-01-04T08:53:09+01:00", + "_body": "", + "_head": "0a62", + "amount": 98, + "_date": "0975280411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T08:49:26 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T08:49:26+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1a71084411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T08:49:26 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T08:49:26+01:00", + "_body": "00", + "_head": "3397", + "rate": 3.775, + "_date": "1a71084411" + }, + { + "_type": "Prime", + "_description": "Prime 2017-01-04T08:47:41 head[5], body[0] op[0x03]", + "timestamp": "2017-01-04T08:47:41+01:00", + "_body": "", + "_head": "0300000035", + "amount": 5.3, + "fixed": 0.0, + "type": "manual", + "_date": "296f280411" + }, + { + "_type": "Rewind", + "_description": "Rewind 2017-01-04T08:46:39 head[2], body[0] op[0x21]", + "timestamp": "2017-01-04T08:46:39+01:00", + "_body": "", + "_head": "2100", + "_date": "276e080411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T08:35:51 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T08:35:51+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "3363084411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T08:35:51 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T08:35:51+01:00", + "_body": "00", + "_head": "3364", + "rate": 2.5, + "_date": "3363084411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T08:16:25 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T08:16:25+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1950084411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T08:16:25 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T08:16:25+01:00", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "1950084411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T08:02:26 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T08:02:26+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1a42084411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T08:02:26 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T08:02:26+01:00", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "1a42084411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T07:49:32 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T07:49:32+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "2071074411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T07:49:32 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T07:49:32+01:00", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "2071074411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T07:37:12 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T07:37:12+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "0c65074411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T07:37:12 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T07:37:12+01:00", + "_body": "00", + "_head": "335e", + "rate": 2.35, + "_date": "0c65074411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T07:29:09 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T07:29:09+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "095d074411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T07:29:09 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T07:29:09+01:00", + "_body": "00", + "_head": "3341", + "rate": 1.625, + "_date": "095d074411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T07:13:03 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T07:13:03+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "034d074411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T07:13:03 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T07:13:03+01:00", + "_body": "00", + "_head": "3337", + "rate": 1.375, + "_date": "034d074411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T06:55:25 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T06:55:25+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1977064411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T06:55:25 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T06:55:25+01:00", + "_body": "00", + "_head": "3348", + "rate": 1.8, + "_date": "1977064411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T06:39:20 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T06:39:20+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1467064411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T06:39:20 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T06:39:20+01:00", + "_body": "00", + "_head": "3348", + "rate": 1.8, + "_date": "1467064411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T06:13:02 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T06:13:02+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "024d064411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T06:13:02 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T06:13:02+01:00", + "_body": "00", + "_head": "3328", + "rate": 1.0, + "_date": "024d064411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T06:05:47 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T06:05:47+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "2f45064411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T06:05:47 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T06:05:47+01:00", + "_body": "00", + "_head": "334e", + "rate": 1.95, + "_date": "2f45064411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T05:57:53 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T05:57:53+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "3579054411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T05:57:53 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T05:57:53+01:00", + "_body": "00", + "_head": "336e", + "rate": 2.75, + "_date": "3579054411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T05:48:01 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T05:48:01+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "0170054411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T05:48:01 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T05:48:01+01:00", + "_body": "00", + "_head": "3351", + "rate": 2.025, + "_date": "0170054411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T05:44:11 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T05:44:11+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "0b6c054411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T05:44:11 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T05:44:11+01:00", + "_body": "00", + "_head": "339a", + "rate": 3.85, + "_date": "0b6c054411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T05:42:18 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T05:42:18+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "126a054411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T05:42:18 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T05:42:18+01:00", + "_body": "00", + "_head": "3372", + "rate": 2.85, + "_date": "126a054411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T05:27:12 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T05:27:12+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "0c5b054411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T05:27:12 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T05:27:12+01:00", + "_body": "00", + "_head": "335f", + "rate": 2.375, + "_date": "0c5b054411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T05:24:13 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T05:24:13+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "0d58054411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T05:24:13 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T05:24:13+01:00", + "_body": "00", + "_head": "334b", + "rate": 1.875, + "_date": "0d58054411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T05:19:49 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T05:19:49+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "3153054411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T05:19:49 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T05:19:49+01:00", + "_body": "00", + "_head": "333c", + "rate": 1.5, + "_date": "3153054411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T05:07:57 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T05:07:57+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "3947054411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T05:07:57 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T05:07:57+01:00", + "_body": "00", + "_head": "3339", + "rate": 1.425, + "_date": "3947054411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T04:58:02 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T04:58:02+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "027a044411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T04:58:02 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T04:58:02+01:00", + "_body": "00", + "_head": "331e", + "rate": 0.75, + "_date": "027a044411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T04:52:15 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T04:52:15+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "0f74044411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T04:52:15 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T04:52:15+01:00", + "_body": "00", + "_head": "333e", + "rate": 1.55, + "_date": "0f74044411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T04:32:13 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T04:32:13+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "0d60044411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T04:32:13 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T04:32:13+01:00", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "0d60044411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T04:13:58 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T04:13:58+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "3a4d044411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T04:13:58 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T04:13:58+01:00", + "_body": "00", + "_head": "3368", + "rate": 2.6, + "_date": "3a4d044411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T04:02:18 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T04:02:18+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1242044411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T04:02:18 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T04:02:18+01:00", + "_body": "00", + "_head": "335b", + "rate": 2.275, + "_date": "1242044411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T03:57:54 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T03:57:54+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "3679034411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T03:57:54 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T03:57:54+01:00", + "_body": "00", + "_head": "3337", + "rate": 1.375, + "_date": "3679034411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T03:50:05 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T03:50:05+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "0572034411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T03:50:05 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T03:50:05+01:00", + "_body": "00", + "_head": "332c", + "rate": 1.1, + "_date": "0572034411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T03:38:04 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T03:38:04+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "0466034411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T03:38:04 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T03:38:04+01:00", + "_body": "00", + "_head": "332a", + "rate": 1.05, + "_date": "0466034411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T03:34:07 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T03:34:07+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "0762034411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T03:34:07 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T03:34:07+01:00", + "_body": "00", + "_head": "3322", + "rate": 0.85, + "_date": "0762034411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T03:32:16 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T03:32:16+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1060034411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T03:32:16 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T03:32:16+01:00", + "_body": "00", + "_head": "331b", + "rate": 0.675, + "_date": "1060034411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T03:28:18 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T03:28:18+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "125c034411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T03:28:18 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T03:28:18+01:00", + "_body": "00", + "_head": "3328", + "rate": 1.0, + "_date": "125c034411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T03:23:59 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T03:23:59+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "3b57034411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T03:23:59 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T03:23:59+01:00", + "_body": "00", + "_head": "331b", + "rate": 0.675, + "_date": "3b57034411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T03:15:58 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T03:15:58+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "3a4f034411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T03:15:58 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T03:15:58+01:00", + "_body": "00", + "_head": "3328", + "rate": 1.0, + "_date": "3a4f034411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T03:09:54 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T03:09:54+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "3649034411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T03:09:54 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T03:09:54+01:00", + "_body": "00", + "_head": "3320", + "rate": 0.8, + "_date": "3649034411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T03:04:59 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T03:04:59+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "3b44034411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T03:04:59 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T03:04:59+01:00", + "_body": "00", + "_head": "333c", + "rate": 1.5, + "_date": "3b44034411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T02:53:05 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T02:53:05+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "0575024411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T02:53:05 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T02:53:05+01:00", + "_body": "00", + "_head": "3332", + "rate": 1.25, + "_date": "0575024411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T02:50:55 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T02:50:55+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "3772024411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T02:50:55 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T02:50:55+01:00", + "_body": "00", + "_head": "3322", + "rate": 0.85, + "_date": "3772024411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T02:37:22 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T02:37:22+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1665024411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T02:37:22 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T02:37:22+01:00", + "_body": "00", + "_head": "3312", + "rate": 0.45, + "_date": "1665024411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T02:34:59 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T02:34:59+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "3b62024411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T02:34:59 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T02:34:59+01:00", + "_body": "00", + "_head": "3320", + "rate": 0.8, + "_date": "3b62024411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T02:23:02 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T02:23:02+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "0257024411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T02:23:02 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T02:23:02+01:00", + "_body": "00", + "_head": "3328", + "rate": 1.0, + "_date": "0257024411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T02:07:22 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T02:07:22+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1647024411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T02:07:22 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T02:07:22+01:00", + "_body": "00", + "_head": "3383", + "rate": 3.275, + "_date": "1647024411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T01:57:47 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T01:57:47+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "2f79014411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T01:57:47 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T01:57:47+01:00", + "_body": "00", + "_head": "336c", + "rate": 2.7, + "_date": "2f79014411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T01:52:18 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T01:52:18+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1274014411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T01:52:18 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T01:52:18+01:00", + "_body": "00", + "_head": "3351", + "rate": 2.025, + "_date": "1274014411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T01:50:04 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T01:50:04+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "0472014411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T01:50:04 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T01:50:04+01:00", + "_body": "00", + "_head": "338a", + "rate": 3.45, + "_date": "0472014411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T01:38:02 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T01:38:02+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "0266014411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T01:38:02 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T01:38:02+01:00", + "_body": "00", + "_head": "3388", + "rate": 3.4, + "_date": "0266014411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T01:32:14 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T01:32:14+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "0e60014411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T01:32:14 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T01:32:14+01:00", + "_body": "00", + "_head": "336e", + "rate": 2.75, + "_date": "0e60014411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T01:27:55 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T01:27:55+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "375b014411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T01:27:55 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T01:27:55+01:00", + "_body": "00", + "_head": "3354", + "rate": 2.1, + "_date": "375b014411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T01:22:27 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T01:22:27+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1b56014411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T01:22:27 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T01:22:27+01:00", + "_body": "00", + "_head": "3340", + "rate": 1.6, + "_date": "1b56014411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T01:18:07 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T01:18:07+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "0752014411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T01:18:07 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T01:18:07+01:00", + "_body": "00", + "_head": "332f", + "rate": 1.175, + "_date": "0752014411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T01:13:54 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T01:13:54+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "364d014411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T01:13:54 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T01:13:54+01:00", + "_body": "00", + "_head": "3325", + "rate": 0.925, + "_date": "364d014411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T00:55:59 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T00:55:59+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "3b77004411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T00:55:59 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T00:55:59+01:00", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "3b77004411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T00:44:48 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T00:44:48+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "306c004411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T00:44:48 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T00:44:48+01:00", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "306c004411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T00:33:20 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T00:33:20+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1461004411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T00:33:20 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T00:33:20+01:00", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "1461004411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T00:30:57 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T00:30:57+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "395e004411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T00:30:57 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T00:30:57+01:00", + "_body": "00", + "_head": "3382", + "rate": 3.25, + "_date": "395e004411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T00:23:08 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T00:23:08+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "0857004411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T00:23:08 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T00:23:08+01:00", + "_body": "00", + "_head": "334b", + "rate": 1.875, + "_date": "0857004411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T00:21:10 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T00:21:10+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "0a55004411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T00:21:10 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T00:21:10+01:00", + "_body": "00", + "_head": "3334", + "rate": 1.3, + "_date": "0a55004411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T00:17:20 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T00:17:20+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1451004411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T00:17:20 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T00:17:20+01:00", + "_body": "00", + "_head": "332a", + "rate": 1.05, + "_date": "1451004411" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T00:07:10 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T00:07:10+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "0a47004411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T00:07:10 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T00:07:10+01:00", + "_body": "00", + "_head": "33d2", + "rate": 5.25, + "_date": "0a47004411" + }, + { + "_type": "Model522ResultTotals", + "_description": "Model522ResultTotals 2017-01-04T00:00:00 head[1], body[41] op[0x6d]", + "timestamp": "2017-01-04T00:00:00+01:00", + "_body": "0500695a820400000c2804f82907303b00e107303b04403b00480402a8250a020002060c00e8000000", + "_head": "6d", + "_date": "0391" + }, + { + "_type": "ResultDailyTotal", + "_description": "ResultDailyTotal 2017-01-04T00:00:00 head[5], body[0] op[0x07]", + "timestamp": "2017-01-04T00:00:00+01:00", + "_body": "", + "_head": "0700000c28", + "valid_date": "2017-01-03", + "_date": "0391" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T23:57:37 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T23:57:37+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "2579174311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T23:57:37 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T23:57:37+01:00", + "_body": "00", + "_head": "33aa", + "rate": 4.25, + "_date": "2579174311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T23:53:56 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T23:53:56+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "3875174311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T23:53:56 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T23:53:56+01:00", + "_body": "00", + "_head": "337c", + "rate": 3.1, + "_date": "3875174311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T23:42:13 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T23:42:13+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "0d6a174311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T23:42:13 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T23:42:13+01:00", + "_body": "00", + "_head": "3368", + "rate": 2.6, + "_date": "0d6a174311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T23:38:13 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T23:38:13+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "0d66174311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T23:38:13 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T23:38:13+01:00", + "_body": "00", + "_head": "3351", + "rate": 2.025, + "_date": "0d66174311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T23:33:48 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T23:33:48+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "3061174311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T23:33:48 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T23:33:48+01:00", + "_body": "00", + "_head": "331e", + "rate": 0.75, + "_date": "3061174311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T23:22:14 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T23:22:14+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "0e56174311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T23:22:14 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T23:22:14+01:00", + "_body": "00", + "_head": "331a", + "rate": 0.65, + "_date": "0e56174311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T23:12:12 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T23:12:12+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "0c4c174311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T23:12:12 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T23:12:12+01:00", + "_body": "00", + "_head": "339a", + "rate": 3.85, + "_date": "0c4c174311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T23:10:13 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T23:10:13+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "0d4a174311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T23:10:13 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T23:10:13+01:00", + "_body": "00", + "_head": "336e", + "rate": 2.75, + "_date": "0d4a174311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T23:08:14 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T23:08:14+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "0e48174311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T23:08:14 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T23:08:14+01:00", + "_body": "00", + "_head": "333e", + "rate": 1.55, + "_date": "0e48174311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T23:05:07 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T23:05:07+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "0745174311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T23:05:07 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T23:05:07+01:00", + "_body": "00", + "_head": "3317", + "rate": 0.575, + "_date": "0745174311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T23:04:47 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T23:04:47+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "2f44174311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T23:04:47 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T23:04:47+01:00", + "_body": "00", + "_head": "33c9", + "rate": 5.025, + "_date": "2f44174311" + }, + { + "_type": "Bolus", + "_description": "Bolus 2017-01-03T23:02:21 head[4], body[0] op[0x01]", + "timestamp": "2017-01-03T23:02:21+01:00", + "_body": "", + "programmed": 3.0, + "_head": "011e1e00", + "amount": 3.0, + "duration": 0, + "type": "normal", + "_date": "1542570311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T22:57:19 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T22:57:19+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1379164311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T22:57:19 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T22:57:19+01:00", + "_body": "00", + "_head": "337c", + "rate": 3.1, + "_date": "1379164311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T22:52:52 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T22:52:52+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "3474164311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T22:52:52 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T22:52:52+01:00", + "_body": "00", + "_head": "3340", + "rate": 1.6, + "_date": "3474164311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T22:46:10 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T22:46:10+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "0a6e164311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T22:46:10 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T22:46:10+01:00", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "0a6e164311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T22:44:16 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T22:44:16+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "106c164311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T22:44:16 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T22:44:16+01:00", + "_body": "00", + "_head": "331b", + "rate": 0.675, + "_date": "106c164311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T22:41:55 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T22:41:55+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "3769164311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T22:41:55 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T22:41:55+01:00", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "3769164311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T22:29:55 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T22:29:55+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "375d164311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T22:29:55 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T22:29:55+01:00", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "375d164311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T22:16:25 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T22:16:25+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1950164311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T22:16:25 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T22:16:25+01:00", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "1950164311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T22:04:03 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T22:04:03+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "0344164311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T22:04:03 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T22:04:03+01:00", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "0344164311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T21:54:01 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T21:54:01+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "0176154311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T21:54:01 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T21:54:01+01:00", + "_body": "00", + "_head": "331b", + "rate": 0.675, + "_date": "0176154311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T21:37:25 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T21:37:25+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1965154311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T21:37:25 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T21:37:25+01:00", + "_body": "00", + "_head": "331b", + "rate": 0.675, + "_date": "1965154311" + }, + { + "_type": "Bolus", + "_description": "Bolus 2017-01-03T21:28:28 head[4], body[0] op[0x01]", + "timestamp": "2017-01-03T21:28:28+01:00", + "_body": "", + "programmed": 3.0, + "_head": "011e1e00", + "amount": 3.0, + "duration": 0, + "type": "normal", + "_date": "1c5c550311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T21:19:24 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T21:19:24+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1853154311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T21:19:24 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T21:19:24+01:00", + "_body": "00", + "_head": "331b", + "rate": 0.675, + "_date": "1853154311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T21:03:50 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T21:03:50+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "3243154311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T21:03:50 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T21:03:50+01:00", + "_body": "00", + "_head": "331b", + "rate": 0.675, + "_date": "3243154311" + }, + { + "_type": "Bolus", + "_description": "Bolus 2017-01-03T20:57:24 head[4], body[0] op[0x01]", + "timestamp": "2017-01-03T20:57:24+01:00", + "_body": "", + "appended": [ + { + "_type": "UnabsorbedInsulinBolus", + "_description": "UnabsorbedInsulinBolus unknown head[23], body[0] op[0x5c]", + "_body": "", + "_head": "5c177894c0b4f8c07a20d0262ad0503ed07c98d0eca2d0", + "data": [ + { + "amount": 3.0, + "age": 148 + }, + { + "amount": 4.5, + "age": 248 + }, + { + "amount": 3.05, + "age": 288 + }, + { + "amount": 0.95, + "age": 298 + }, + { + "amount": 2.0, + "age": 318 + }, + { + "amount": 3.1, + "age": 408 + }, + { + "amount": 5.9, + "age": 418 + } + ], + "_date": "" + } + ], + "programmed": 7.0, + "duration": 0, + "amount": 7.0, + "_head": "01464600", + "type": "normal", + "_date": "1879540311" + }, + { + "unknown_byte[8]": 0, + "_type": "BolusWizard", + "bg": 90, + "_byte[5]": 0, + "unknown_byte[10]": 0, + "_description": "BolusWizard 2017-01-03T20:57:24 head[2], body[13] op[0x5b]", + "timestamp": "2017-01-03T20:57:24+01:00", + "_body": "3750091e5a003d000004003d5a", + "bg_target_high": 90, + "sensitivity": 30, + "carb_ratio": 9, + "food_estimate": 6.1, + "unabsorbed_insulin_total": 0.4, + "correction_estimate": 0.0, + "carb_input": 55, + "_head": "5b5a", + "unabsorbed_insulin_count": "??", + "_byte[7]": 0, + "bolus_estimate": 6.1, + "_date": "1879140311", + "bg_target_low": 90 + }, + { + "_type": "CalBGForPH", + "_description": "CalBGForPH 2017-01-03T20:57:06 head[2], body[0] op[0x0a]", + "timestamp": "2017-01-03T20:57:06+01:00", + "_body": "", + "_head": "0a5a", + "amount": 90, + "_date": "0679340311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T20:29:56 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T20:29:56+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "385d144311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T20:29:56 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T20:29:56+01:00", + "_body": "00", + "_head": "331b", + "rate": 0.675, + "_date": "385d144311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T20:01:26 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T20:01:26+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1a41144311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T20:01:26 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T20:01:26+01:00", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "1a41144311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T19:48:02 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T19:48:02+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "0270134311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T19:48:02 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T19:48:02+01:00", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "0270134311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T19:34:24 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T19:34:24+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1862134311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T19:34:24 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T19:34:24+01:00", + "_body": "00", + "_head": "331b", + "rate": 0.675, + "_date": "1862134311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T19:23:24 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T19:23:24+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1857134311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T19:23:24 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T19:23:24+01:00", + "_body": "00", + "_head": "335f", + "rate": 2.375, + "_date": "1857134311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T19:17:59 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T19:17:59+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "3b51134311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T19:17:59 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T19:17:59+01:00", + "_body": "00", + "_head": "334b", + "rate": 1.875, + "_date": "3b51134311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T19:08:00 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T19:08:00+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "0048134311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T19:08:00 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T19:08:00+01:00", + "_body": "00", + "_head": "331b", + "rate": 0.675, + "_date": "0048134311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T18:57:52 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T18:57:52+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "3479124311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T18:57:52 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T18:57:52+01:00", + "_body": "00", + "_head": "335b", + "rate": 2.275, + "_date": "3479124311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T18:54:25 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T18:54:25+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1976124311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T18:54:25 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T18:54:25+01:00", + "_body": "00", + "_head": "3322", + "rate": 0.85, + "_date": "1976124311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T18:48:50 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T18:48:50+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "3270124311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T18:48:50 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T18:48:50+01:00", + "_body": "00", + "_head": "331b", + "rate": 0.675, + "_date": "3270124311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T18:45:26 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T18:45:26+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1a6d124311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T18:45:26 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T18:45:26+01:00", + "_body": "00", + "_head": "3328", + "rate": 1.0, + "_date": "1a6d124311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T18:34:48 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T18:34:48+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "3062124311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T18:34:48 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T18:34:48+01:00", + "_body": "00", + "_head": "331b", + "rate": 0.675, + "_date": "3062124311" + }, + { + "_type": "Bolus", + "_description": "Bolus 2017-01-03T18:30:43 head[4], body[0] op[0x01]", + "timestamp": "2017-01-03T18:30:43+01:00", + "_body": "", + "programmed": 3.0, + "_head": "011e1e00", + "amount": 3.0, + "duration": 0, + "type": "normal", + "_date": "2b5e520311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T18:20:35 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T18:20:35+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "2354124311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T18:20:35 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T18:20:35+01:00", + "_body": "00", + "_head": "335f", + "rate": 2.375, + "_date": "2354124311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T18:13:27 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T18:13:27+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1b4d124311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T18:13:27 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T18:13:27+01:00", + "_body": "00", + "_head": "3310", + "rate": 0.4, + "_date": "1b4d124311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T18:08:14 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T18:08:14+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "0e48124311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T18:08:14 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T18:08:14+01:00", + "_body": "00", + "_head": "335f", + "rate": 2.375, + "_date": "0e48124311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T18:07:19 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T18:07:19+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1347124311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T18:07:19 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T18:07:19+01:00", + "_body": "00", + "_head": "3322", + "rate": 0.85, + "_date": "1347124311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T17:55:55 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T17:55:55+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "3777114311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T17:55:55 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T17:55:55+01:00", + "_body": "00", + "_head": "33c6", + "rate": 4.95, + "_date": "3777114311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T17:43:16 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T17:43:16+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "106b114311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T17:43:16 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T17:43:16+01:00", + "_body": "00", + "_head": "33aa", + "rate": 4.25, + "_date": "106b114311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T17:35:58 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T17:35:58+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "3a63114311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T17:35:58 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T17:35:58+01:00", + "_body": "00", + "_head": "331b", + "rate": 0.675, + "_date": "3a63114311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T17:18:03 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T17:18:03+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "0352114311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T17:18:03 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T17:18:03+01:00", + "_body": "00", + "_head": "331b", + "rate": 0.675, + "_date": "0352114311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T17:12:52 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T17:12:52+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "344c114311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T17:12:52 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T17:12:52+01:00", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "344c114311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T16:55:21 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T16:55:21+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1577104311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T16:55:21 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T16:55:21+01:00", + "_body": "00", + "_head": "331b", + "rate": 0.675, + "_date": "1577104311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T16:54:10 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T16:54:10+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "0a76104311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T16:54:10 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T16:54:10+01:00", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "0a76104311" + }, + { + "_type": "Bolus", + "_description": "Bolus 2017-01-03T16:50:06 head[4], body[0] op[0x01]", + "timestamp": "2017-01-03T16:50:06+01:00", + "_body": "", + "appended": [ + { + "_type": "UnabsorbedInsulinBolus", + "_description": "UnabsorbedInsulinBolus unknown head[17], body[0] op[0x5c]", + "_body": "", + "_head": "5c117a29c02633c05047c07ca1c0ecabc0", + "data": [ + { + "amount": 3.05, + "age": 41 + }, + { + "amount": 0.95, + "age": 51 + }, + { + "amount": 2.0, + "age": 71 + }, + { + "amount": 3.1, + "age": 161 + }, + { + "amount": 5.9, + "age": 171 + } + ], + "_date": "" + } + ], + "programmed": 4.5, + "duration": 0, + "amount": 4.5, + "_head": "012d2d00", + "type": "normal", + "_date": "0672500311" + }, + { + "unknown_byte[8]": 0, + "_type": "BolusWizard", + "bg": 111, + "_byte[5]": 7, + "unknown_byte[10]": 0, + "_description": "BolusWizard 2017-01-03T16:50:06 head[2], body[13] op[0x5b]", + "timestamp": "2017-01-03T16:50:06+01:00", + "_body": "2850091e5a072c000035002c5a", + "bg_target_high": 90, + "sensitivity": 30, + "carb_ratio": 9, + "food_estimate": 4.4, + "unabsorbed_insulin_total": 5.3, + "correction_estimate": 0.7, + "carb_input": 40, + "_head": "5b6f", + "unabsorbed_insulin_count": "??", + "_byte[7]": 0, + "bolus_estimate": 4.4, + "_date": "0672100311", + "bg_target_low": 90 + }, + { + "_type": "CalBGForPH", + "_description": "CalBGForPH 2017-01-03T16:49:56 head[2], body[0] op[0x0a]", + "timestamp": "2017-01-03T16:49:56+01:00", + "_body": "", + "_head": "0a6f", + "amount": 111, + "_date": "3871300311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T16:36:22 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T16:36:22+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1664104311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T16:36:22 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T16:36:22+01:00", + "_body": "00", + "_head": "331b", + "rate": 0.675, + "_date": "1664104311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T16:27:52 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T16:27:52+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "345b104311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T16:27:52 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T16:27:52+01:00", + "_body": "00", + "_head": "3316", + "rate": 0.55, + "_date": "345b104311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T16:11:40 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T16:11:40+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "284b104311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T16:11:40 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T16:11:40+01:00", + "_body": "00", + "_head": "3316", + "rate": 0.55, + "_date": "284b104311" + }, + { + "_type": "Bolus", + "_description": "Bolus 2017-01-03T16:08:21 head[4], body[0] op[0x01]", + "timestamp": "2017-01-03T16:08:21+01:00", + "_body": "", + "programmed": 4.0, + "_head": "01282800", + "amount": 4.0, + "duration": 0, + "type": "normal", + "_date": "1548500311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T16:07:59 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T16:07:59+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "3b47104311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T16:07:59 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T16:07:59+01:00", + "_body": "00", + "_head": "338d", + "rate": 3.525, + "_date": "3b47104311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T16:02:42 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T16:02:42+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "2a42104311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T16:02:42 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T16:02:42+01:00", + "_body": "00", + "_head": "3348", + "rate": 1.8, + "_date": "2a42104311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T15:55:23 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T15:55:23+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "17770f4311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T15:55:23 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T15:55:23+01:00", + "_body": "00", + "_head": "3316", + "rate": 0.55, + "_date": "17770f4311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T15:44:53 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T15:44:53+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "356c0f4311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T15:44:53 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T15:44:53+01:00", + "_body": "00", + "_head": "3317", + "rate": 0.575, + "_date": "356c0f4311" + }, + { + "_type": "Bolus", + "_description": "Bolus 2017-01-03T15:42:20 head[4], body[0] op[0x01]", + "timestamp": "2017-01-03T15:42:20+01:00", + "_body": "", + "programmed": 2.0, + "_head": "01141400", + "amount": 2.0, + "duration": 0, + "type": "normal", + "_date": "146a4f0311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T15:38:37 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T15:38:37+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "25660f4311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T15:38:37 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T15:38:37+01:00", + "_body": "00", + "_head": "3376", + "rate": 2.95, + "_date": "25660f4311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T15:34:30 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T15:34:30+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1e620f4311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T15:34:30 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T15:34:30+01:00", + "_body": "00", + "_head": "3350", + "rate": 2.0, + "_date": "1e620f4311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T15:30:52 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T15:30:52+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "345e0f4311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T15:30:52 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T15:30:52+01:00", + "_body": "00", + "_head": "3334", + "rate": 1.3, + "_date": "345e0f4311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T15:17:38 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T15:17:38+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "26510f4311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T15:17:38 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T15:17:38+01:00", + "_body": "00", + "_head": "3314", + "rate": 0.5, + "_date": "26510f4311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T15:13:54 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T15:13:54+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "364d0f4311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T15:13:54 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T15:13:54+01:00", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "364d0f4311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T15:02:56 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T15:02:56+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "38420f4311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T15:02:56 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T15:02:56+01:00", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "38420f4311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T14:57:53 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T14:57:53+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "35790e4311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T14:57:53 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T14:57:53+01:00", + "_body": "00", + "_head": "3312", + "rate": 0.45, + "_date": "35790e4311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T14:47:42 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T14:47:42+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "2a6f0e4311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T14:47:42 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T14:47:42+01:00", + "_body": "00", + "_head": "3317", + "rate": 0.575, + "_date": "2a6f0e4311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T14:41:21 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T14:41:21+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "15690e4311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T14:41:21 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T14:41:21+01:00", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "15690e4311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T14:24:44 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T14:24:44+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "2c580e4311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T14:24:44 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T14:24:44+01:00", + "_body": "00", + "_head": "3317", + "rate": 0.575, + "_date": "2c580e4311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T14:13:22 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T14:13:22+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "164d0e4311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T14:13:22 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T14:13:22+01:00", + "_body": "00", + "_head": "3316", + "rate": 0.55, + "_date": "164d0e4311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T14:11:22 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T14:11:22+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "164b0e4311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T14:11:22 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T14:11:22+01:00", + "_body": "00", + "_head": "332a", + "rate": 1.05, + "_date": "164b0e4311" + }, + { + "_type": "Bolus", + "_description": "Bolus 2017-01-03T14:04:52 head[4], body[0] op[0x01]", + "timestamp": "2017-01-03T14:04:52+01:00", + "_body": "", + "appended": [ + { + "_type": "UnabsorbedInsulinBolus", + "_description": "UnabsorbedInsulinBolus unknown head[11], body[0] op[0x5c]", + "_body": "", + "_head": "5c0b503bd02263d0326dd1", + "data": [ + { + "amount": 2.0, + "age": 315 + }, + { + "amount": 0.85, + "age": 355 + }, + { + "amount": 1.25, + "age": 365 + } + ], + "_date": "" + } + ], + "programmed": 9.0, + "duration": 0, + "amount": 9.0, + "_head": "015a5a00", + "type": "normal", + "_date": "34444e0311" + }, + { + "unknown_byte[8]": 0, + "_type": "BolusWizard", + "bg": 130, + "_byte[5]": 13, + "unknown_byte[10]": 0, + "_description": "BolusWizard 2017-01-03T14:04:52 head[2], body[13] op[0x5b]", + "timestamp": "2017-01-03T14:04:52+01:00", + "_body": "4650091e5a0d4d000000005a5a", + "bg_target_high": 90, + "sensitivity": 30, + "carb_ratio": 9, + "food_estimate": 7.7, + "unabsorbed_insulin_total": 0.0, + "correction_estimate": 1.3, + "carb_input": 70, + "_head": "5b82", + "unabsorbed_insulin_count": "??", + "_byte[7]": 0, + "bolus_estimate": 9.0, + "_date": "34440e0311", + "bg_target_low": 90 + }, + { + "_type": "CalBGForPH", + "_description": "CalBGForPH 2017-01-03T14:04:35 head[2], body[0] op[0x0a]", + "timestamp": "2017-01-03T14:04:35+01:00", + "_body": "", + "_head": "0a82", + "amount": 130, + "_date": "23442e0311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T14:03:56 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T14:03:56+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "38430e4311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T14:03:56 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T14:03:56+01:00", + "_body": "00", + "_head": "33a6", + "rate": 4.15, + "_date": "38430e4311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T14:03:01 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T14:03:01+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "01430e4311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T14:03:01 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T14:03:01+01:00", + "_body": "00", + "_head": "3372", + "rate": 2.85, + "_date": "01430e4311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T13:57:33 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T13:57:33+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "21790d4311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T13:57:33 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T13:57:33+01:00", + "_body": "00", + "_head": "333e", + "rate": 1.55, + "_date": "21790d4311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T13:53:14 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T13:53:14+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "0e750d4311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T13:53:14 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T13:53:14+01:00", + "_body": "00", + "_head": "3316", + "rate": 0.55, + "_date": "0e750d4311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T13:42:29 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T13:42:29+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "1d6a0d4311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T13:42:29 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T13:42:29+01:00", + "_body": "00", + "_head": "33d3", + "rate": 5.275, + "_date": "1d6a0d4311" + }, + { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-03T13:40:41 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T13:40:41+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "29680d4311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T13:40:41 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T13:40:41+01:00", + "_body": "00", + "_head": "33a8", + "rate": 4.2, + "_date": "29680d4311" + } +] \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/settings/pumphistory-24h.json b/app/src/main/java/info/nightscout/sampleData/settings/pumphistory-24h.json new file mode 100644 index 0000000000..4513d0796d --- /dev/null +++ b/app/src/main/java/info/nightscout/sampleData/settings/pumphistory-24h.json @@ -0,0 +1,4075 @@ +[ + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T16:37:57 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T16:37:57", + "_body": "", + "_head": "1601", + "_date": "3965104411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T16:37:57 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T16:37:57", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "3965104411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T16:28:28 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T16:28:28", + "_body": "", + "_head": "1601", + "_date": "1c5c104411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T16:28:28 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T16:28:28", + "_body": "00", + "_head": "3322", + "rate": 0.85, + "_date": "1c5c104411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T16:21:31 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T16:21:31", + "_body": "", + "_head": "1601", + "_date": "1f55104411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T16:21:31 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T16:21:31", + "_body": "00", + "_head": "337c", + "rate": 3.1, + "_date": "1f55104411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T16:15:29 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T16:15:29", + "_body": "", + "_head": "1601", + "_date": "1d4f104411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T16:15:29 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T16:15:29", + "_body": "00", + "_head": "3362", + "rate": 2.45, + "_date": "1d4f104411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T16:08:41 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T16:08:41", + "_body": "", + "_head": "1601", + "_date": "2948104411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T16:08:41 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T16:08:41", + "_body": "00", + "_head": "334e", + "rate": 1.95, + "_date": "2948104411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T16:06:50 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T16:06:50", + "_body": "", + "_head": "1601", + "_date": "3246104411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T16:06:50 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T16:06:50", + "_body": "00", + "_head": "3332", + "rate": 1.25, + "_date": "3246104411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T16:02:03 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T16:02:03", + "_body": "", + "_head": "1601", + "_date": "0342104411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T16:02:03 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T16:02:03", + "_body": "00", + "_head": "3322", + "rate": 0.85, + "_date": "0342104411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T16:01:28 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T16:01:28", + "_body": "", + "_head": "1601", + "_date": "1c41104411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T16:01:28 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T16:01:28", + "_body": "00", + "_head": "3396", + "rate": 3.75, + "_date": "1c41104411" + }, + { + "programmed": 2.0, + "_type": "Bolus", + "type": "normal", + "_description": "Bolus 2017-01-04T15:58:37 head[4], body[0] op[0x01]", + "duration": 0, + "timestamp": "2017-01-04T15:58:37", + "_body": "", + "_head": "01141400", + "amount": 2.0, + "_date": "257a4f0411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T15:55:29 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T15:55:29", + "_body": "", + "_head": "1601", + "_date": "1d770f4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T15:55:29 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T15:55:29", + "_body": "00", + "_head": "332d", + "rate": 1.125, + "_date": "1d770f4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T15:46:50 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T15:46:50", + "_body": "", + "_head": "1601", + "_date": "326e0f4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T15:46:50 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T15:46:50", + "_body": "00", + "_head": "3322", + "rate": 0.85, + "_date": "326e0f4411" + }, + { + "programmed": 2.0, + "_type": "Bolus", + "type": "normal", + "_description": "Bolus 2017-01-04T15:44:07 head[4], body[0] op[0x01]", + "duration": 0, + "timestamp": "2017-01-04T15:44:07", + "_body": "", + "_head": "01141400", + "amount": 2.0, + "_date": "076c4f0411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T15:43:50 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T15:43:50", + "_body": "", + "_head": "1601", + "_date": "326b0f4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T15:43:50 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T15:43:50", + "_body": "00", + "_head": "3341", + "rate": 1.625, + "_date": "326b0f4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T15:41:22 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T15:41:22", + "_body": "", + "_head": "1601", + "_date": "16690f4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T15:41:22 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T15:41:22", + "_body": "00", + "_head": "3322", + "rate": 0.85, + "_date": "16690f4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T15:28:24 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T15:28:24", + "_body": "", + "_head": "1601", + "_date": "185c0f4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T15:28:24 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T15:28:24", + "_body": "00", + "_head": "3322", + "rate": 0.85, + "_date": "185c0f4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T15:22:58 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T15:22:58", + "_body": "", + "_head": "1601", + "_date": "3a560f4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T15:22:58 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T15:22:58", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "3a560f4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T15:13:01 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T15:13:01", + "_body": "", + "_head": "1601", + "_date": "014d0f4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T15:13:01 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T15:13:01", + "_body": "00", + "_head": "3322", + "rate": 0.85, + "_date": "014d0f4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T14:50:21 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T14:50:21", + "_body": "", + "_head": "1601", + "_date": "15720e4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T14:50:21 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T14:50:21", + "_body": "00", + "_head": "33fb", + "rate": 6.275, + "_date": "15720e4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T14:38:50 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T14:38:50", + "_body": "", + "_head": "1601", + "_date": "32660e4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T14:38:50 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T14:38:50", + "_body": "00", + "_head": "33e7", + "rate": 5.775, + "_date": "32660e4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T14:34:03 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T14:34:03", + "_body": "", + "_head": "1601", + "_date": "03620e4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T14:34:03 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T14:34:03", + "_body": "00", + "_head": "3344", + "rate": 1.7, + "_date": "03620e4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T14:33:29 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T14:33:29", + "_body": "", + "_head": "1601", + "_date": "1d610e4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T14:33:29 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T14:33:29", + "_body": "00", + "_head": "3392", + "rate": 3.65, + "_date": "1d610e4411" + }, + { + "programmed": 1.0, + "_type": "Bolus", + "type": "normal", + "_description": "Bolus 2017-01-04T14:32:05 head[4], body[0] op[0x01]", + "duration": 0, + "timestamp": "2017-01-04T14:32:05", + "_body": "", + "_head": "010a0a00", + "amount": 1.0, + "_date": "05604e0411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T14:26:30 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T14:26:30", + "_body": "", + "_head": "1601", + "_date": "1e5a0e4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T14:26:30 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T14:26:30", + "_body": "00", + "_head": "3320", + "rate": 0.8, + "_date": "1e5a0e4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T14:25:47 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T14:25:47", + "_body": "", + "_head": "1601", + "_date": "2f590e4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T14:25:47 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T14:25:47", + "_body": "00", + "_head": "3378", + "rate": 3.0, + "_date": "2f590e4411" + }, + { + "programmed": 2.0, + "_type": "Bolus", + "type": "normal", + "_description": "Bolus 2017-01-04T14:22:59 head[4], body[0] op[0x01]", + "duration": 0, + "timestamp": "2017-01-04T14:22:59", + "_body": "", + "_head": "01141400", + "amount": 2.0, + "_date": "3b564e0411" + }, + { + "_type": "Prime", + "type": "manual", + "_description": "Prime 2017-01-04T14:18:15 head[5], body[0] op[0x03]", + "timestamp": "2017-01-04T14:18:15", + "_body": "", + "fixed": 0.0, + "_head": "0300000027", + "amount": 3.9, + "_date": "0f522e0411" + }, + { + "_type": "Rewind", + "_description": "Rewind 2017-01-04T14:18:03 head[2], body[0] op[0x21]", + "timestamp": "2017-01-04T14:18:03", + "_body": "", + "_head": "2100", + "_date": "03520e0411" + }, + { + "_type": "Prime", + "type": "fixed", + "_description": "Prime 2017-01-04T14:17:15 head[5], body[0] op[0x03]", + "timestamp": "2017-01-04T14:17:15", + "_body": "", + "fixed": 1.0, + "_head": "03000a000a", + "amount": 1.0, + "_date": "0f510e0411" + }, + { + "_type": "Prime", + "type": "fixed", + "_description": "Prime 2017-01-04T14:14:56 head[5], body[0] op[0x03]", + "timestamp": "2017-01-04T14:14:56", + "_body": "", + "fixed": 2.5, + "_head": "0300190019", + "amount": 2.5, + "_date": "384e0e0411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T14:14:32 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T14:14:32", + "_body": "", + "_head": "1601", + "_date": "204e0e4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T14:14:32 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T14:14:32", + "_body": "00", + "_head": "3346", + "rate": 1.75, + "_date": "204e0e4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T14:09:45 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T14:09:45", + "_body": "", + "_head": "1601", + "_date": "2d490e4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T14:09:45 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T14:09:45", + "_body": "00", + "_head": "3337", + "rate": 1.375, + "_date": "2d490e4411" + }, + { + "_type": "ClearAlarm", + "_description": "ClearAlarm 2017-01-04T14:04:16 head[2], body[0] op[0x0c]", + "timestamp": "2017-01-04T14:04:16", + "_body": "", + "_head": "0c04", + "_date": "10440e0411" + }, + { + "_type": "AlarmPump", + "_description": "AlarmPump 2017-01-04T14:04:05 head[4], body[0] op[0x06]", + "timestamp": "2017-01-04T14:04:05", + "_body": "", + "_head": "06040bff", + "_date": "05444e4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T13:57:38 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T13:57:38", + "_body": "", + "_head": "1601", + "_date": "26790d4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T13:57:38 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T13:57:38", + "_body": "00", + "_head": "331e", + "rate": 0.75, + "_date": "26790d4411" + }, + { + "programmed": 1.0, + "_type": "Bolus", + "type": "normal", + "_description": "Bolus 2017-01-04T13:53:05 head[4], body[0] op[0x01]", + "duration": 0, + "timestamp": "2017-01-04T13:53:05", + "_body": "", + "_head": "010a0a00", + "amount": 1.0, + "_date": "05754d0411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T13:47:51 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T13:47:51", + "_body": "", + "_head": "1601", + "_date": "336f0d4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T13:47:51 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T13:47:51", + "_body": "00", + "_head": "3368", + "rate": 2.6, + "_date": "336f0d4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T13:43:53 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T13:43:53", + "_body": "", + "_head": "1601", + "_date": "356b0d4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T13:43:53 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T13:43:53", + "_body": "00", + "_head": "3355", + "rate": 2.125, + "_date": "356b0d4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T13:40:04 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T13:40:04", + "_body": "", + "_head": "1601", + "_date": "04680d4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T13:40:04 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T13:40:04", + "_body": "00", + "_head": "331e", + "rate": 0.75, + "_date": "04680d4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T13:27:46 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T13:27:46", + "_body": "", + "_head": "1601", + "_date": "2e5b0d4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T13:27:46 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T13:27:46", + "_body": "00", + "_head": "3348", + "rate": 1.8, + "_date": "2e5b0d4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T13:27:00 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T13:27:00", + "_body": "", + "_head": "1601", + "_date": "005b0d4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T13:27:00 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T13:27:00", + "_body": "00", + "_head": "331e", + "rate": 0.75, + "_date": "005b0d4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T13:20:49 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T13:20:49", + "_body": "", + "_head": "1601", + "_date": "31540d4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T13:20:49 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T13:20:49", + "_body": "00", + "_head": "332d", + "rate": 1.125, + "_date": "31540d4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T13:15:40 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T13:15:40", + "_body": "", + "_head": "1601", + "_date": "284f0d4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T13:15:40 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T13:15:40", + "_body": "00", + "_head": "3373", + "rate": 2.875, + "_date": "284f0d4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T13:15:31 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T13:15:31", + "_body": "", + "_head": "1601", + "_date": "1f4f0d4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T13:15:31 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T13:15:31", + "_body": "00", + "_head": "3373", + "rate": 2.875, + "_date": "1f4f0d4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T13:08:29 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T13:08:29", + "_body": "", + "_head": "1601", + "_date": "1d480d4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T13:08:29 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T13:08:29", + "_body": "00", + "_head": "332c", + "rate": 1.1, + "_date": "1d480d4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T13:03:28 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T13:03:28", + "_body": "", + "_head": "1601", + "_date": "1c430d4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T13:03:28 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T13:03:28", + "_body": "00", + "_head": "331e", + "rate": 0.75, + "_date": "1c430d4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T12:57:44 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T12:57:44", + "_body": "", + "_head": "1601", + "_date": "2c790c4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T12:57:44 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T12:57:44", + "_body": "00", + "_head": "332a", + "rate": 1.05, + "_date": "2c790c4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T12:47:29 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T12:47:29", + "_body": "", + "_head": "1601", + "_date": "1d6f0c4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T12:47:29 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T12:47:29", + "_body": "00", + "_head": "331e", + "rate": 0.75, + "_date": "1d6f0c4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T12:35:30 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T12:35:30", + "_body": "", + "_head": "1601", + "_date": "1e630c4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T12:35:30 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T12:35:30", + "_body": "00", + "_head": "3322", + "rate": 0.85, + "_date": "1e630c4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T12:23:47 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T12:23:47", + "_body": "", + "_head": "1601", + "_date": "2f570c4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T12:23:47 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T12:23:47", + "_body": "00", + "_head": "33b5", + "rate": 4.525, + "_date": "2f570c4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T12:18:48 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T12:18:48", + "_body": "", + "_head": "1601", + "_date": "30520c4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T12:18:48 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T12:18:48", + "_body": "00", + "_head": "334a", + "rate": 1.85, + "_date": "30520c4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T12:13:29 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T12:13:29", + "_body": "", + "_head": "1601", + "_date": "1d4d0c4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T12:13:29 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T12:13:29", + "_body": "00", + "_head": "3337", + "rate": 1.375, + "_date": "1d4d0c4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T12:08:07 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T12:08:07", + "_body": "", + "_head": "1601", + "_date": "07480c4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T12:08:07 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T12:08:07", + "_body": "00", + "_head": "3324", + "rate": 0.9, + "_date": "07480c4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T11:55:46 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T11:55:46", + "_body": "", + "_head": "1601", + "_date": "2e770b4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T11:55:46 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T11:55:46", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "2e770b4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T11:42:44 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T11:42:44", + "_body": "", + "_head": "1601", + "_date": "2c6a0b4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T11:42:44 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T11:42:44", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "2c6a0b4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T11:31:27 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T11:31:27", + "_body": "", + "_head": "1601", + "_date": "1b5f0b4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T11:31:27 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T11:31:27", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "1b5f0b4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T11:19:25 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T11:19:25", + "_body": "", + "_head": "1601", + "_date": "19530b4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T11:19:25 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T11:19:25", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "19530b4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T10:58:19 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T10:58:19", + "_body": "", + "_head": "1601", + "_date": "137a0a4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T10:58:19 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T10:58:19", + "_body": "00", + "_head": "33c9", + "rate": 5.025, + "_date": "137a0a4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T10:52:44 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T10:52:44", + "_body": "", + "_head": "1601", + "_date": "2c740a4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T10:52:44 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T10:52:44", + "_body": "00", + "_head": "33a8", + "rate": 4.2, + "_date": "2c740a4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T10:48:19 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T10:48:19", + "_body": "", + "_head": "1601", + "_date": "13700a4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T10:48:19 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T10:48:19", + "_body": "00", + "_head": "3380", + "rate": 3.2, + "_date": "13700a4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T10:33:14 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T10:33:14", + "_body": "", + "_head": "1601", + "_date": "0e610a4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T10:33:14 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T10:33:14", + "_body": "00", + "_head": "336e", + "rate": 2.75, + "_date": "0e610a4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T10:27:44 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T10:27:44", + "_body": "", + "_head": "1601", + "_date": "2c5b0a4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T10:27:44 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T10:27:44", + "_body": "00", + "_head": "334a", + "rate": 1.85, + "_date": "2c5b0a4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T10:23:49 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T10:23:49", + "_body": "", + "_head": "1601", + "_date": "31570a4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T10:23:49 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T10:23:49", + "_body": "00", + "_head": "3310", + "rate": 0.4, + "_date": "31570a4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T10:18:26 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T10:18:26", + "_body": "", + "_head": "1601", + "_date": "1a520a4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T10:18:26 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T10:18:26", + "_body": "00", + "_head": "331b", + "rate": 0.675, + "_date": "1a520a4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T10:08:25 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T10:08:25", + "_body": "", + "_head": "1601", + "_date": "19480a4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T10:08:25 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T10:08:25", + "_body": "00", + "_head": "3324", + "rate": 0.9, + "_date": "19480a4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T10:03:08 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T10:03:08", + "_body": "", + "_head": "1601", + "_date": "08430a4411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T10:03:08 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T10:03:08", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "08430a4411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T09:45:24 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T09:45:24", + "_body": "", + "_head": "1601", + "_date": "186d094411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T09:45:24 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T09:45:24", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "186d094411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T09:33:14 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T09:33:14", + "_body": "", + "_head": "1601", + "_date": "0e61094411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T09:33:14 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T09:33:14", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "0e61094411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T09:32:28 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T09:32:28", + "_body": "", + "_head": "1601", + "_date": "1c60094411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T09:32:28 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T09:32:28", + "_body": "00", + "_head": "3324", + "rate": 0.9, + "_date": "1c60094411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T09:18:26 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T09:18:26", + "_body": "", + "_head": "1601", + "_date": "1a52094411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T09:18:26 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T09:18:26", + "_body": "00", + "_head": "3336", + "rate": 1.35, + "_date": "1a52094411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T09:01:07 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T09:01:07", + "_body": "", + "_head": "1601", + "_date": "0741094411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T09:01:07 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T09:01:07", + "_body": "00", + "_head": "3336", + "rate": 1.35, + "_date": "0741094411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T09:00:27 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T09:00:27", + "_body": "", + "_head": "1601", + "_date": "1b40094411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T09:00:27 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T09:00:27", + "_body": "00", + "_head": "33d3", + "rate": 5.275, + "_date": "1b40094411" + }, + { + "programmed": 8.5, + "_type": "Bolus", + "type": "normal", + "_description": "Bolus 2017-01-04T08:53:23 head[4], body[0] op[0x01]", + "duration": 0, + "timestamp": "2017-01-04T08:53:23", + "_body": "", + "_head": "01555500", + "amount": 8.5, + "_date": "1775480411" + }, + { + "_type": "BolusWizard", + "bg": 98, + "bg_target_high": 90, + "correction_estimate": 0.2, + "unknown_byte[10]": 0, + "_description": "BolusWizard 2017-01-04T08:53:23 head[2], body[13] op[0x5b]", + "timestamp": "2017-01-04T08:53:23", + "_body": "3c50071e5a025500000000575a", + "carb_input": 60, + "_head": "5b62", + "unabsorbed_insulin_total": 0.0, + "_byte[5]": 2, + "unabsorbed_insulin_count": "??", + "_byte[7]": 0, + "_date": "1775080411", + "bolus_estimate": 8.7, + "unknown_byte[8]": 0, + "carb_ratio": 7, + "food_estimate": 8.5, + "bg_target_low": 90, + "sensitivity": 30 + }, + { + "_type": "CalBGForPH", + "_description": "CalBGForPH 2017-01-04T08:53:09 head[2], body[0] op[0x0a]", + "timestamp": "2017-01-04T08:53:09", + "_body": "", + "_head": "0a62", + "amount": 98, + "_date": "0975280411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T08:49:26 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T08:49:26", + "_body": "", + "_head": "1601", + "_date": "1a71084411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T08:49:26 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T08:49:26", + "_body": "00", + "_head": "3397", + "rate": 3.775, + "_date": "1a71084411" + }, + { + "_type": "Prime", + "type": "manual", + "_description": "Prime 2017-01-04T08:47:41 head[5], body[0] op[0x03]", + "timestamp": "2017-01-04T08:47:41", + "_body": "", + "fixed": 0.0, + "_head": "0300000035", + "amount": 5.3, + "_date": "296f280411" + }, + { + "_type": "Rewind", + "_description": "Rewind 2017-01-04T08:46:39 head[2], body[0] op[0x21]", + "timestamp": "2017-01-04T08:46:39", + "_body": "", + "_head": "2100", + "_date": "276e080411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T08:35:51 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T08:35:51", + "_body": "", + "_head": "1601", + "_date": "3363084411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T08:35:51 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T08:35:51", + "_body": "00", + "_head": "3364", + "rate": 2.5, + "_date": "3363084411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T08:16:25 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T08:16:25", + "_body": "", + "_head": "1601", + "_date": "1950084411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T08:16:25 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T08:16:25", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "1950084411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T08:02:26 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T08:02:26", + "_body": "", + "_head": "1601", + "_date": "1a42084411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T08:02:26 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T08:02:26", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "1a42084411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T07:49:32 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T07:49:32", + "_body": "", + "_head": "1601", + "_date": "2071074411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T07:49:32 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T07:49:32", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "2071074411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T07:37:12 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T07:37:12", + "_body": "", + "_head": "1601", + "_date": "0c65074411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T07:37:12 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T07:37:12", + "_body": "00", + "_head": "335e", + "rate": 2.35, + "_date": "0c65074411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T07:29:09 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T07:29:09", + "_body": "", + "_head": "1601", + "_date": "095d074411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T07:29:09 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T07:29:09", + "_body": "00", + "_head": "3341", + "rate": 1.625, + "_date": "095d074411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T07:13:03 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T07:13:03", + "_body": "", + "_head": "1601", + "_date": "034d074411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T07:13:03 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T07:13:03", + "_body": "00", + "_head": "3337", + "rate": 1.375, + "_date": "034d074411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T06:55:25 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T06:55:25", + "_body": "", + "_head": "1601", + "_date": "1977064411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T06:55:25 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T06:55:25", + "_body": "00", + "_head": "3348", + "rate": 1.8, + "_date": "1977064411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T06:39:20 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T06:39:20", + "_body": "", + "_head": "1601", + "_date": "1467064411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T06:39:20 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T06:39:20", + "_body": "00", + "_head": "3348", + "rate": 1.8, + "_date": "1467064411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T06:13:02 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T06:13:02", + "_body": "", + "_head": "1601", + "_date": "024d064411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T06:13:02 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T06:13:02", + "_body": "00", + "_head": "3328", + "rate": 1.0, + "_date": "024d064411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T06:05:47 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T06:05:47", + "_body": "", + "_head": "1601", + "_date": "2f45064411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T06:05:47 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T06:05:47", + "_body": "00", + "_head": "334e", + "rate": 1.95, + "_date": "2f45064411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T05:57:53 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T05:57:53", + "_body": "", + "_head": "1601", + "_date": "3579054411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T05:57:53 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T05:57:53", + "_body": "00", + "_head": "336e", + "rate": 2.75, + "_date": "3579054411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T05:48:01 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T05:48:01", + "_body": "", + "_head": "1601", + "_date": "0170054411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T05:48:01 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T05:48:01", + "_body": "00", + "_head": "3351", + "rate": 2.025, + "_date": "0170054411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T05:44:11 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T05:44:11", + "_body": "", + "_head": "1601", + "_date": "0b6c054411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T05:44:11 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T05:44:11", + "_body": "00", + "_head": "339a", + "rate": 3.85, + "_date": "0b6c054411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T05:42:18 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T05:42:18", + "_body": "", + "_head": "1601", + "_date": "126a054411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T05:42:18 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T05:42:18", + "_body": "00", + "_head": "3372", + "rate": 2.85, + "_date": "126a054411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T05:27:12 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T05:27:12", + "_body": "", + "_head": "1601", + "_date": "0c5b054411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T05:27:12 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T05:27:12", + "_body": "00", + "_head": "335f", + "rate": 2.375, + "_date": "0c5b054411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T05:24:13 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T05:24:13", + "_body": "", + "_head": "1601", + "_date": "0d58054411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T05:24:13 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T05:24:13", + "_body": "00", + "_head": "334b", + "rate": 1.875, + "_date": "0d58054411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T05:19:49 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T05:19:49", + "_body": "", + "_head": "1601", + "_date": "3153054411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T05:19:49 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T05:19:49", + "_body": "00", + "_head": "333c", + "rate": 1.5, + "_date": "3153054411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T05:07:57 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T05:07:57", + "_body": "", + "_head": "1601", + "_date": "3947054411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T05:07:57 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T05:07:57", + "_body": "00", + "_head": "3339", + "rate": 1.425, + "_date": "3947054411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T04:58:02 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T04:58:02", + "_body": "", + "_head": "1601", + "_date": "027a044411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T04:58:02 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T04:58:02", + "_body": "00", + "_head": "331e", + "rate": 0.75, + "_date": "027a044411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T04:52:15 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T04:52:15", + "_body": "", + "_head": "1601", + "_date": "0f74044411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T04:52:15 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T04:52:15", + "_body": "00", + "_head": "333e", + "rate": 1.55, + "_date": "0f74044411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T04:32:13 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T04:32:13", + "_body": "", + "_head": "1601", + "_date": "0d60044411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T04:32:13 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T04:32:13", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "0d60044411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T04:13:58 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T04:13:58", + "_body": "", + "_head": "1601", + "_date": "3a4d044411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T04:13:58 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T04:13:58", + "_body": "00", + "_head": "3368", + "rate": 2.6, + "_date": "3a4d044411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T04:02:18 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T04:02:18", + "_body": "", + "_head": "1601", + "_date": "1242044411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T04:02:18 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T04:02:18", + "_body": "00", + "_head": "335b", + "rate": 2.275, + "_date": "1242044411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T03:57:54 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T03:57:54", + "_body": "", + "_head": "1601", + "_date": "3679034411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T03:57:54 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T03:57:54", + "_body": "00", + "_head": "3337", + "rate": 1.375, + "_date": "3679034411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T03:50:05 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T03:50:05", + "_body": "", + "_head": "1601", + "_date": "0572034411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T03:50:05 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T03:50:05", + "_body": "00", + "_head": "332c", + "rate": 1.1, + "_date": "0572034411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T03:38:04 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T03:38:04", + "_body": "", + "_head": "1601", + "_date": "0466034411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T03:38:04 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T03:38:04", + "_body": "00", + "_head": "332a", + "rate": 1.05, + "_date": "0466034411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T03:34:07 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T03:34:07", + "_body": "", + "_head": "1601", + "_date": "0762034411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T03:34:07 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T03:34:07", + "_body": "00", + "_head": "3322", + "rate": 0.85, + "_date": "0762034411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T03:32:16 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T03:32:16", + "_body": "", + "_head": "1601", + "_date": "1060034411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T03:32:16 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T03:32:16", + "_body": "00", + "_head": "331b", + "rate": 0.675, + "_date": "1060034411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T03:28:18 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T03:28:18", + "_body": "", + "_head": "1601", + "_date": "125c034411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T03:28:18 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T03:28:18", + "_body": "00", + "_head": "3328", + "rate": 1.0, + "_date": "125c034411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T03:23:59 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T03:23:59", + "_body": "", + "_head": "1601", + "_date": "3b57034411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T03:23:59 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T03:23:59", + "_body": "00", + "_head": "331b", + "rate": 0.675, + "_date": "3b57034411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T03:15:58 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T03:15:58", + "_body": "", + "_head": "1601", + "_date": "3a4f034411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T03:15:58 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T03:15:58", + "_body": "00", + "_head": "3328", + "rate": 1.0, + "_date": "3a4f034411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T03:09:54 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T03:09:54", + "_body": "", + "_head": "1601", + "_date": "3649034411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T03:09:54 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T03:09:54", + "_body": "00", + "_head": "3320", + "rate": 0.8, + "_date": "3649034411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T03:04:59 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T03:04:59", + "_body": "", + "_head": "1601", + "_date": "3b44034411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T03:04:59 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T03:04:59", + "_body": "00", + "_head": "333c", + "rate": 1.5, + "_date": "3b44034411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T02:53:05 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T02:53:05", + "_body": "", + "_head": "1601", + "_date": "0575024411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T02:53:05 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T02:53:05", + "_body": "00", + "_head": "3332", + "rate": 1.25, + "_date": "0575024411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T02:50:55 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T02:50:55", + "_body": "", + "_head": "1601", + "_date": "3772024411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T02:50:55 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T02:50:55", + "_body": "00", + "_head": "3322", + "rate": 0.85, + "_date": "3772024411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T02:37:22 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T02:37:22", + "_body": "", + "_head": "1601", + "_date": "1665024411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T02:37:22 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T02:37:22", + "_body": "00", + "_head": "3312", + "rate": 0.45, + "_date": "1665024411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T02:34:59 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T02:34:59", + "_body": "", + "_head": "1601", + "_date": "3b62024411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T02:34:59 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T02:34:59", + "_body": "00", + "_head": "3320", + "rate": 0.8, + "_date": "3b62024411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T02:23:02 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T02:23:02", + "_body": "", + "_head": "1601", + "_date": "0257024411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T02:23:02 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T02:23:02", + "_body": "00", + "_head": "3328", + "rate": 1.0, + "_date": "0257024411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T02:07:22 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T02:07:22", + "_body": "", + "_head": "1601", + "_date": "1647024411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T02:07:22 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T02:07:22", + "_body": "00", + "_head": "3383", + "rate": 3.275, + "_date": "1647024411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T01:57:47 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T01:57:47", + "_body": "", + "_head": "1601", + "_date": "2f79014411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T01:57:47 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T01:57:47", + "_body": "00", + "_head": "336c", + "rate": 2.7, + "_date": "2f79014411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T01:52:18 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T01:52:18", + "_body": "", + "_head": "1601", + "_date": "1274014411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T01:52:18 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T01:52:18", + "_body": "00", + "_head": "3351", + "rate": 2.025, + "_date": "1274014411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T01:50:04 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T01:50:04", + "_body": "", + "_head": "1601", + "_date": "0472014411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T01:50:04 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T01:50:04", + "_body": "00", + "_head": "338a", + "rate": 3.45, + "_date": "0472014411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T01:38:02 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T01:38:02", + "_body": "", + "_head": "1601", + "_date": "0266014411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T01:38:02 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T01:38:02", + "_body": "00", + "_head": "3388", + "rate": 3.4, + "_date": "0266014411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T01:32:14 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T01:32:14", + "_body": "", + "_head": "1601", + "_date": "0e60014411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T01:32:14 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T01:32:14", + "_body": "00", + "_head": "336e", + "rate": 2.75, + "_date": "0e60014411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T01:27:55 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T01:27:55", + "_body": "", + "_head": "1601", + "_date": "375b014411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T01:27:55 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T01:27:55", + "_body": "00", + "_head": "3354", + "rate": 2.1, + "_date": "375b014411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T01:22:27 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T01:22:27", + "_body": "", + "_head": "1601", + "_date": "1b56014411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T01:22:27 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T01:22:27", + "_body": "00", + "_head": "3340", + "rate": 1.6, + "_date": "1b56014411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T01:18:07 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T01:18:07", + "_body": "", + "_head": "1601", + "_date": "0752014411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T01:18:07 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T01:18:07", + "_body": "00", + "_head": "332f", + "rate": 1.175, + "_date": "0752014411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T01:13:54 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T01:13:54", + "_body": "", + "_head": "1601", + "_date": "364d014411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T01:13:54 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T01:13:54", + "_body": "00", + "_head": "3325", + "rate": 0.925, + "_date": "364d014411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T00:55:59 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T00:55:59", + "_body": "", + "_head": "1601", + "_date": "3b77004411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T00:55:59 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T00:55:59", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "3b77004411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T00:44:48 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T00:44:48", + "_body": "", + "_head": "1601", + "_date": "306c004411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T00:44:48 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T00:44:48", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "306c004411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T00:33:20 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T00:33:20", + "_body": "", + "_head": "1601", + "_date": "1461004411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T00:33:20 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T00:33:20", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "1461004411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T00:30:57 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T00:30:57", + "_body": "", + "_head": "1601", + "_date": "395e004411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T00:30:57 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T00:30:57", + "_body": "00", + "_head": "3382", + "rate": 3.25, + "_date": "395e004411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T00:23:08 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T00:23:08", + "_body": "", + "_head": "1601", + "_date": "0857004411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T00:23:08 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T00:23:08", + "_body": "00", + "_head": "334b", + "rate": 1.875, + "_date": "0857004411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T00:21:10 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T00:21:10", + "_body": "", + "_head": "1601", + "_date": "0a55004411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T00:21:10 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T00:21:10", + "_body": "00", + "_head": "3334", + "rate": 1.3, + "_date": "0a55004411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T00:17:20 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T00:17:20", + "_body": "", + "_head": "1601", + "_date": "1451004411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T00:17:20 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T00:17:20", + "_body": "00", + "_head": "332a", + "rate": 1.05, + "_date": "1451004411" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-04T00:07:10 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T00:07:10", + "_body": "", + "_head": "1601", + "_date": "0a47004411" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T00:07:10 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T00:07:10", + "_body": "00", + "_head": "33d2", + "rate": 5.25, + "_date": "0a47004411" + }, + { + "_type": "Model522ResultTotals", + "_description": "Model522ResultTotals 2017-01-04T00:00:00 head[1], body[41] op[0x6d]", + "timestamp": "2017-01-04T00:00:00", + "_body": "0500695a820400000c2804f82907303b00e107303b04403b00480402a8250a020002060c00e8000000", + "_head": "6d", + "_date": "0391" + }, + { + "_type": "ResultDailyTotal", + "_description": "ResultDailyTotal 2017-01-04T00:00:00 head[5], body[0] op[0x07]", + "timestamp": "2017-01-04T00:00:00", + "_body": "", + "valid_date": "2017-01-03", + "_head": "0700000c28", + "_date": "0391" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T23:57:37 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T23:57:37", + "_body": "", + "_head": "1601", + "_date": "2579174311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T23:57:37 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T23:57:37", + "_body": "00", + "_head": "33aa", + "rate": 4.25, + "_date": "2579174311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T23:53:56 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T23:53:56", + "_body": "", + "_head": "1601", + "_date": "3875174311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T23:53:56 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T23:53:56", + "_body": "00", + "_head": "337c", + "rate": 3.1, + "_date": "3875174311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T23:42:13 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T23:42:13", + "_body": "", + "_head": "1601", + "_date": "0d6a174311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T23:42:13 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T23:42:13", + "_body": "00", + "_head": "3368", + "rate": 2.6, + "_date": "0d6a174311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T23:38:13 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T23:38:13", + "_body": "", + "_head": "1601", + "_date": "0d66174311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T23:38:13 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T23:38:13", + "_body": "00", + "_head": "3351", + "rate": 2.025, + "_date": "0d66174311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T23:33:48 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T23:33:48", + "_body": "", + "_head": "1601", + "_date": "3061174311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T23:33:48 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T23:33:48", + "_body": "00", + "_head": "331e", + "rate": 0.75, + "_date": "3061174311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T23:22:14 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T23:22:14", + "_body": "", + "_head": "1601", + "_date": "0e56174311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T23:22:14 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T23:22:14", + "_body": "00", + "_head": "331a", + "rate": 0.65, + "_date": "0e56174311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T23:12:12 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T23:12:12", + "_body": "", + "_head": "1601", + "_date": "0c4c174311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T23:12:12 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T23:12:12", + "_body": "00", + "_head": "339a", + "rate": 3.85, + "_date": "0c4c174311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T23:10:13 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T23:10:13", + "_body": "", + "_head": "1601", + "_date": "0d4a174311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T23:10:13 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T23:10:13", + "_body": "00", + "_head": "336e", + "rate": 2.75, + "_date": "0d4a174311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T23:08:14 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T23:08:14", + "_body": "", + "_head": "1601", + "_date": "0e48174311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T23:08:14 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T23:08:14", + "_body": "00", + "_head": "333e", + "rate": 1.55, + "_date": "0e48174311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T23:05:07 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T23:05:07", + "_body": "", + "_head": "1601", + "_date": "0745174311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T23:05:07 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T23:05:07", + "_body": "00", + "_head": "3317", + "rate": 0.575, + "_date": "0745174311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T23:04:47 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T23:04:47", + "_body": "", + "_head": "1601", + "_date": "2f44174311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T23:04:47 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T23:04:47", + "_body": "00", + "_head": "33c9", + "rate": 5.025, + "_date": "2f44174311" + }, + { + "programmed": 3.0, + "_type": "Bolus", + "type": "normal", + "_description": "Bolus 2017-01-03T23:02:21 head[4], body[0] op[0x01]", + "duration": 0, + "timestamp": "2017-01-03T23:02:21", + "_body": "", + "_head": "011e1e00", + "amount": 3.0, + "_date": "1542570311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T22:57:19 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T22:57:19", + "_body": "", + "_head": "1601", + "_date": "1379164311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T22:57:19 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T22:57:19", + "_body": "00", + "_head": "337c", + "rate": 3.1, + "_date": "1379164311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T22:52:52 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T22:52:52", + "_body": "", + "_head": "1601", + "_date": "3474164311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T22:52:52 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T22:52:52", + "_body": "00", + "_head": "3340", + "rate": 1.6, + "_date": "3474164311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T22:46:10 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T22:46:10", + "_body": "", + "_head": "1601", + "_date": "0a6e164311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T22:46:10 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T22:46:10", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "0a6e164311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T22:44:16 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T22:44:16", + "_body": "", + "_head": "1601", + "_date": "106c164311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T22:44:16 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T22:44:16", + "_body": "00", + "_head": "331b", + "rate": 0.675, + "_date": "106c164311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T22:41:55 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T22:41:55", + "_body": "", + "_head": "1601", + "_date": "3769164311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T22:41:55 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T22:41:55", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "3769164311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T22:29:55 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T22:29:55", + "_body": "", + "_head": "1601", + "_date": "375d164311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T22:29:55 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T22:29:55", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "375d164311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T22:16:25 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T22:16:25", + "_body": "", + "_head": "1601", + "_date": "1950164311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T22:16:25 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T22:16:25", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "1950164311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T22:04:03 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T22:04:03", + "_body": "", + "_head": "1601", + "_date": "0344164311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T22:04:03 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T22:04:03", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "0344164311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T21:54:01 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T21:54:01", + "_body": "", + "_head": "1601", + "_date": "0176154311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T21:54:01 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T21:54:01", + "_body": "00", + "_head": "331b", + "rate": 0.675, + "_date": "0176154311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T21:37:25 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T21:37:25", + "_body": "", + "_head": "1601", + "_date": "1965154311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T21:37:25 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T21:37:25", + "_body": "00", + "_head": "331b", + "rate": 0.675, + "_date": "1965154311" + }, + { + "programmed": 3.0, + "_type": "Bolus", + "type": "normal", + "_description": "Bolus 2017-01-03T21:28:28 head[4], body[0] op[0x01]", + "duration": 0, + "timestamp": "2017-01-03T21:28:28", + "_body": "", + "_head": "011e1e00", + "amount": 3.0, + "_date": "1c5c550311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T21:19:24 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T21:19:24", + "_body": "", + "_head": "1601", + "_date": "1853154311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T21:19:24 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T21:19:24", + "_body": "00", + "_head": "331b", + "rate": 0.675, + "_date": "1853154311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T21:03:50 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T21:03:50", + "_body": "", + "_head": "1601", + "_date": "3243154311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T21:03:50 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T21:03:50", + "_body": "00", + "_head": "331b", + "rate": 0.675, + "_date": "3243154311" + }, + { + "_type": "Bolus", + "_description": "Bolus 2017-01-03T20:57:24 head[4], body[0] op[0x01]", + "timestamp": "2017-01-03T20:57:24", + "_body": "", + "appended": [ + { + "_type": "UnabsorbedInsulinBolus", + "_description": "UnabsorbedInsulinBolus unknown head[23], body[0] op[0x5c]", + "data": [ + { + "amount": 3.0, + "age": 148 + }, + { + "amount": 4.5, + "age": 248 + }, + { + "amount": 3.05, + "age": 288 + }, + { + "amount": 0.95, + "age": 298 + }, + { + "amount": 2.0, + "age": 318 + }, + { + "amount": 3.1, + "age": 408 + }, + { + "amount": 5.9, + "age": 418 + } + ], + "_body": "", + "_head": "5c177894c0b4f8c07a20d0262ad0503ed07c98d0eca2d0", + "_date": "" + } + ], + "programmed": 7.0, + "_head": "01464600", + "amount": 7.0, + "duration": 0, + "type": "normal", + "_date": "1879540311" + }, + { + "_type": "BolusWizard", + "bg": 90, + "bg_target_high": 90, + "correction_estimate": 0.0, + "unknown_byte[10]": 0, + "_description": "BolusWizard 2017-01-03T20:57:24 head[2], body[13] op[0x5b]", + "timestamp": "2017-01-03T20:57:24", + "_body": "3750091e5a003d000004003d5a", + "carb_input": 55, + "_head": "5b5a", + "unabsorbed_insulin_total": 0.4, + "_byte[5]": 0, + "unabsorbed_insulin_count": "??", + "_byte[7]": 0, + "_date": "1879140311", + "bolus_estimate": 6.1, + "unknown_byte[8]": 0, + "carb_ratio": 9, + "food_estimate": 6.1, + "bg_target_low": 90, + "sensitivity": 30 + }, + { + "_type": "CalBGForPH", + "_description": "CalBGForPH 2017-01-03T20:57:06 head[2], body[0] op[0x0a]", + "timestamp": "2017-01-03T20:57:06", + "_body": "", + "_head": "0a5a", + "amount": 90, + "_date": "0679340311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T20:29:56 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T20:29:56", + "_body": "", + "_head": "1601", + "_date": "385d144311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T20:29:56 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T20:29:56", + "_body": "00", + "_head": "331b", + "rate": 0.675, + "_date": "385d144311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T20:01:26 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T20:01:26", + "_body": "", + "_head": "1601", + "_date": "1a41144311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T20:01:26 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T20:01:26", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "1a41144311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T19:48:02 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T19:48:02", + "_body": "", + "_head": "1601", + "_date": "0270134311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T19:48:02 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T19:48:02", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "0270134311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T19:34:24 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T19:34:24", + "_body": "", + "_head": "1601", + "_date": "1862134311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T19:34:24 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T19:34:24", + "_body": "00", + "_head": "331b", + "rate": 0.675, + "_date": "1862134311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T19:23:24 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T19:23:24", + "_body": "", + "_head": "1601", + "_date": "1857134311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T19:23:24 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T19:23:24", + "_body": "00", + "_head": "335f", + "rate": 2.375, + "_date": "1857134311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T19:17:59 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T19:17:59", + "_body": "", + "_head": "1601", + "_date": "3b51134311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T19:17:59 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T19:17:59", + "_body": "00", + "_head": "334b", + "rate": 1.875, + "_date": "3b51134311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T19:08:00 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T19:08:00", + "_body": "", + "_head": "1601", + "_date": "0048134311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T19:08:00 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T19:08:00", + "_body": "00", + "_head": "331b", + "rate": 0.675, + "_date": "0048134311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T18:57:52 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T18:57:52", + "_body": "", + "_head": "1601", + "_date": "3479124311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T18:57:52 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T18:57:52", + "_body": "00", + "_head": "335b", + "rate": 2.275, + "_date": "3479124311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T18:54:25 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T18:54:25", + "_body": "", + "_head": "1601", + "_date": "1976124311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T18:54:25 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T18:54:25", + "_body": "00", + "_head": "3322", + "rate": 0.85, + "_date": "1976124311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T18:48:50 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T18:48:50", + "_body": "", + "_head": "1601", + "_date": "3270124311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T18:48:50 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T18:48:50", + "_body": "00", + "_head": "331b", + "rate": 0.675, + "_date": "3270124311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T18:45:26 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T18:45:26", + "_body": "", + "_head": "1601", + "_date": "1a6d124311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T18:45:26 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T18:45:26", + "_body": "00", + "_head": "3328", + "rate": 1.0, + "_date": "1a6d124311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T18:34:48 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T18:34:48", + "_body": "", + "_head": "1601", + "_date": "3062124311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T18:34:48 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T18:34:48", + "_body": "00", + "_head": "331b", + "rate": 0.675, + "_date": "3062124311" + }, + { + "programmed": 3.0, + "_type": "Bolus", + "type": "normal", + "_description": "Bolus 2017-01-03T18:30:43 head[4], body[0] op[0x01]", + "duration": 0, + "timestamp": "2017-01-03T18:30:43", + "_body": "", + "_head": "011e1e00", + "amount": 3.0, + "_date": "2b5e520311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T18:20:35 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T18:20:35", + "_body": "", + "_head": "1601", + "_date": "2354124311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T18:20:35 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T18:20:35", + "_body": "00", + "_head": "335f", + "rate": 2.375, + "_date": "2354124311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T18:13:27 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T18:13:27", + "_body": "", + "_head": "1601", + "_date": "1b4d124311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T18:13:27 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T18:13:27", + "_body": "00", + "_head": "3310", + "rate": 0.4, + "_date": "1b4d124311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T18:08:14 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T18:08:14", + "_body": "", + "_head": "1601", + "_date": "0e48124311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T18:08:14 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T18:08:14", + "_body": "00", + "_head": "335f", + "rate": 2.375, + "_date": "0e48124311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T18:07:19 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T18:07:19", + "_body": "", + "_head": "1601", + "_date": "1347124311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T18:07:19 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T18:07:19", + "_body": "00", + "_head": "3322", + "rate": 0.85, + "_date": "1347124311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T17:55:55 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T17:55:55", + "_body": "", + "_head": "1601", + "_date": "3777114311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T17:55:55 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T17:55:55", + "_body": "00", + "_head": "33c6", + "rate": 4.95, + "_date": "3777114311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T17:43:16 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T17:43:16", + "_body": "", + "_head": "1601", + "_date": "106b114311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T17:43:16 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T17:43:16", + "_body": "00", + "_head": "33aa", + "rate": 4.25, + "_date": "106b114311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T17:35:58 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T17:35:58", + "_body": "", + "_head": "1601", + "_date": "3a63114311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T17:35:58 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T17:35:58", + "_body": "00", + "_head": "331b", + "rate": 0.675, + "_date": "3a63114311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T17:18:03 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T17:18:03", + "_body": "", + "_head": "1601", + "_date": "0352114311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T17:18:03 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T17:18:03", + "_body": "00", + "_head": "331b", + "rate": 0.675, + "_date": "0352114311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T17:12:52 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T17:12:52", + "_body": "", + "_head": "1601", + "_date": "344c114311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T17:12:52 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T17:12:52", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "344c114311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T16:55:21 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T16:55:21", + "_body": "", + "_head": "1601", + "_date": "1577104311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T16:55:21 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T16:55:21", + "_body": "00", + "_head": "331b", + "rate": 0.675, + "_date": "1577104311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T16:54:10 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T16:54:10", + "_body": "", + "_head": "1601", + "_date": "0a76104311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T16:54:10 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T16:54:10", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "0a76104311" + }, + { + "_type": "Bolus", + "_description": "Bolus 2017-01-03T16:50:06 head[4], body[0] op[0x01]", + "timestamp": "2017-01-03T16:50:06", + "_body": "", + "appended": [ + { + "_type": "UnabsorbedInsulinBolus", + "_description": "UnabsorbedInsulinBolus unknown head[17], body[0] op[0x5c]", + "data": [ + { + "amount": 3.05, + "age": 41 + }, + { + "amount": 0.95, + "age": 51 + }, + { + "amount": 2.0, + "age": 71 + }, + { + "amount": 3.1, + "age": 161 + }, + { + "amount": 5.9, + "age": 171 + } + ], + "_body": "", + "_head": "5c117a29c02633c05047c07ca1c0ecabc0", + "_date": "" + } + ], + "programmed": 4.5, + "_head": "012d2d00", + "amount": 4.5, + "duration": 0, + "type": "normal", + "_date": "0672500311" + }, + { + "_type": "BolusWizard", + "bg": 111, + "bg_target_high": 90, + "correction_estimate": 0.7, + "unknown_byte[10]": 0, + "_description": "BolusWizard 2017-01-03T16:50:06 head[2], body[13] op[0x5b]", + "timestamp": "2017-01-03T16:50:06", + "_body": "2850091e5a072c000035002c5a", + "carb_input": 40, + "_head": "5b6f", + "unabsorbed_insulin_total": 5.3, + "_byte[5]": 7, + "unabsorbed_insulin_count": "??", + "_byte[7]": 0, + "_date": "0672100311", + "bolus_estimate": 4.4, + "unknown_byte[8]": 0, + "carb_ratio": 9, + "food_estimate": 4.4, + "bg_target_low": 90, + "sensitivity": 30 + }, + { + "_type": "CalBGForPH", + "_description": "CalBGForPH 2017-01-03T16:49:56 head[2], body[0] op[0x0a]", + "timestamp": "2017-01-03T16:49:56", + "_body": "", + "_head": "0a6f", + "amount": 111, + "_date": "3871300311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T16:36:22 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T16:36:22", + "_body": "", + "_head": "1601", + "_date": "1664104311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T16:36:22 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T16:36:22", + "_body": "00", + "_head": "331b", + "rate": 0.675, + "_date": "1664104311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T16:27:52 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T16:27:52", + "_body": "", + "_head": "1601", + "_date": "345b104311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T16:27:52 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T16:27:52", + "_body": "00", + "_head": "3316", + "rate": 0.55, + "_date": "345b104311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T16:11:40 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T16:11:40", + "_body": "", + "_head": "1601", + "_date": "284b104311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T16:11:40 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T16:11:40", + "_body": "00", + "_head": "3316", + "rate": 0.55, + "_date": "284b104311" + }, + { + "programmed": 4.0, + "_type": "Bolus", + "type": "normal", + "_description": "Bolus 2017-01-03T16:08:21 head[4], body[0] op[0x01]", + "duration": 0, + "timestamp": "2017-01-03T16:08:21", + "_body": "", + "_head": "01282800", + "amount": 4.0, + "_date": "1548500311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T16:07:59 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T16:07:59", + "_body": "", + "_head": "1601", + "_date": "3b47104311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T16:07:59 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T16:07:59", + "_body": "00", + "_head": "338d", + "rate": 3.525, + "_date": "3b47104311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T16:02:42 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T16:02:42", + "_body": "", + "_head": "1601", + "_date": "2a42104311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T16:02:42 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T16:02:42", + "_body": "00", + "_head": "3348", + "rate": 1.8, + "_date": "2a42104311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T15:55:23 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T15:55:23", + "_body": "", + "_head": "1601", + "_date": "17770f4311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T15:55:23 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T15:55:23", + "_body": "00", + "_head": "3316", + "rate": 0.55, + "_date": "17770f4311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T15:44:53 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T15:44:53", + "_body": "", + "_head": "1601", + "_date": "356c0f4311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T15:44:53 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T15:44:53", + "_body": "00", + "_head": "3317", + "rate": 0.575, + "_date": "356c0f4311" + }, + { + "programmed": 2.0, + "_type": "Bolus", + "type": "normal", + "_description": "Bolus 2017-01-03T15:42:20 head[4], body[0] op[0x01]", + "duration": 0, + "timestamp": "2017-01-03T15:42:20", + "_body": "", + "_head": "01141400", + "amount": 2.0, + "_date": "146a4f0311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T15:38:37 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T15:38:37", + "_body": "", + "_head": "1601", + "_date": "25660f4311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T15:38:37 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T15:38:37", + "_body": "00", + "_head": "3376", + "rate": 2.95, + "_date": "25660f4311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T15:34:30 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T15:34:30", + "_body": "", + "_head": "1601", + "_date": "1e620f4311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T15:34:30 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T15:34:30", + "_body": "00", + "_head": "3350", + "rate": 2.0, + "_date": "1e620f4311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T15:30:52 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T15:30:52", + "_body": "", + "_head": "1601", + "_date": "345e0f4311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T15:30:52 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T15:30:52", + "_body": "00", + "_head": "3334", + "rate": 1.3, + "_date": "345e0f4311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T15:17:38 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T15:17:38", + "_body": "", + "_head": "1601", + "_date": "26510f4311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T15:17:38 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T15:17:38", + "_body": "00", + "_head": "3314", + "rate": 0.5, + "_date": "26510f4311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T15:13:54 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T15:13:54", + "_body": "", + "_head": "1601", + "_date": "364d0f4311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T15:13:54 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T15:13:54", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "364d0f4311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T15:02:56 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T15:02:56", + "_body": "", + "_head": "1601", + "_date": "38420f4311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T15:02:56 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T15:02:56", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "38420f4311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T14:57:53 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T14:57:53", + "_body": "", + "_head": "1601", + "_date": "35790e4311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T14:57:53 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T14:57:53", + "_body": "00", + "_head": "3312", + "rate": 0.45, + "_date": "35790e4311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T14:47:42 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T14:47:42", + "_body": "", + "_head": "1601", + "_date": "2a6f0e4311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T14:47:42 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T14:47:42", + "_body": "00", + "_head": "3317", + "rate": 0.575, + "_date": "2a6f0e4311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T14:41:21 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T14:41:21", + "_body": "", + "_head": "1601", + "_date": "15690e4311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T14:41:21 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T14:41:21", + "_body": "00", + "_head": "3300", + "rate": 0.0, + "_date": "15690e4311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T14:24:44 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T14:24:44", + "_body": "", + "_head": "1601", + "_date": "2c580e4311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T14:24:44 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T14:24:44", + "_body": "00", + "_head": "3317", + "rate": 0.575, + "_date": "2c580e4311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T14:13:22 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T14:13:22", + "_body": "", + "_head": "1601", + "_date": "164d0e4311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T14:13:22 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T14:13:22", + "_body": "00", + "_head": "3316", + "rate": 0.55, + "_date": "164d0e4311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T14:11:22 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T14:11:22", + "_body": "", + "_head": "1601", + "_date": "164b0e4311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T14:11:22 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T14:11:22", + "_body": "00", + "_head": "332a", + "rate": 1.05, + "_date": "164b0e4311" + }, + { + "_type": "Bolus", + "_description": "Bolus 2017-01-03T14:04:52 head[4], body[0] op[0x01]", + "timestamp": "2017-01-03T14:04:52", + "_body": "", + "appended": [ + { + "_type": "UnabsorbedInsulinBolus", + "_description": "UnabsorbedInsulinBolus unknown head[11], body[0] op[0x5c]", + "data": [ + { + "amount": 2.0, + "age": 315 + }, + { + "amount": 0.85, + "age": 355 + }, + { + "amount": 1.25, + "age": 365 + } + ], + "_body": "", + "_head": "5c0b503bd02263d0326dd1", + "_date": "" + } + ], + "programmed": 9.0, + "_head": "015a5a00", + "amount": 9.0, + "duration": 0, + "type": "normal", + "_date": "34444e0311" + }, + { + "_type": "BolusWizard", + "bg": 130, + "bg_target_high": 90, + "correction_estimate": 1.3, + "unknown_byte[10]": 0, + "_description": "BolusWizard 2017-01-03T14:04:52 head[2], body[13] op[0x5b]", + "timestamp": "2017-01-03T14:04:52", + "_body": "4650091e5a0d4d000000005a5a", + "carb_input": 70, + "_head": "5b82", + "unabsorbed_insulin_total": 0.0, + "_byte[5]": 13, + "unabsorbed_insulin_count": "??", + "_byte[7]": 0, + "_date": "34440e0311", + "bolus_estimate": 9.0, + "unknown_byte[8]": 0, + "carb_ratio": 9, + "food_estimate": 7.7, + "bg_target_low": 90, + "sensitivity": 30 + }, + { + "_type": "CalBGForPH", + "_description": "CalBGForPH 2017-01-03T14:04:35 head[2], body[0] op[0x0a]", + "timestamp": "2017-01-03T14:04:35", + "_body": "", + "_head": "0a82", + "amount": 130, + "_date": "23442e0311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T14:03:56 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T14:03:56", + "_body": "", + "_head": "1601", + "_date": "38430e4311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T14:03:56 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T14:03:56", + "_body": "00", + "_head": "33a6", + "rate": 4.15, + "_date": "38430e4311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T14:03:01 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T14:03:01", + "_body": "", + "_head": "1601", + "_date": "01430e4311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T14:03:01 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T14:03:01", + "_body": "00", + "_head": "3372", + "rate": 2.85, + "_date": "01430e4311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T13:57:33 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T13:57:33", + "_body": "", + "_head": "1601", + "_date": "21790d4311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T13:57:33 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T13:57:33", + "_body": "00", + "_head": "333e", + "rate": 1.55, + "_date": "21790d4311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T13:53:14 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T13:53:14", + "_body": "", + "_head": "1601", + "_date": "0e750d4311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T13:53:14 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T13:53:14", + "_body": "00", + "_head": "3316", + "rate": 0.55, + "_date": "0e750d4311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T13:42:29 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T13:42:29", + "_body": "", + "_head": "1601", + "_date": "1d6a0d4311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T13:42:29 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T13:42:29", + "_body": "00", + "_head": "33d3", + "rate": 5.275, + "_date": "1d6a0d4311" + }, + { + "_type": "TempBasalDuration", + "duration (min)": 30, + "_description": "TempBasalDuration 2017-01-03T13:40:41 head[2], body[0] op[0x16]", + "timestamp": "2017-01-03T13:40:41", + "_body": "", + "_head": "1601", + "_date": "29680d4311" + }, + { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-03T13:40:41 head[2], body[1] op[0x33]", + "timestamp": "2017-01-03T13:40:41", + "_body": "00", + "_head": "33a8", + "rate": 4.2, + "_date": "29680d4311" + } +] \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/settings/settings.json b/app/src/main/java/info/nightscout/sampleData/settings/settings.json new file mode 100644 index 0000000000..5a0fc0dc17 --- /dev/null +++ b/app/src/main/java/info/nightscout/sampleData/settings/settings.json @@ -0,0 +1,27 @@ +{ + "low_reservoir_warn_point": 16, + "keypad_lock_status": 0, + "maxBasal": 6.3, + "temp_basal": { + "percent": 100, + "type": "Units/hour" + }, + "low_reservoir_warn_type": 1, + "insulinConcentration": 100, + "audio_bolus_enable": true, + "variable_bolus_enable": true, + "alarm": { + "volume": -1, + "mode": 1 + }, + "rf_enable": true, + "auto_off_duration_hrs": 15, + "block_enable": false, + "timeformat": 1, + "insulin_action_curve": 3, + "audio_bolus_size": 1.0, + "selected_pattern": 0, + "patterns_enabled": true, + "maxBolus": 12.0, + "paradigm_enabled": 1 +} \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/settings/temptargets.json b/app/src/main/java/info/nightscout/sampleData/settings/temptargets.json new file mode 100644 index 0000000000..0637a088a0 --- /dev/null +++ b/app/src/main/java/info/nightscout/sampleData/settings/temptargets.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/upload/index.html b/app/src/main/java/info/nightscout/sampleData/upload/index.html new file mode 100644 index 0000000000..f331bc3192 --- /dev/null +++ b/app/src/main/java/info/nightscout/sampleData/upload/index.html @@ -0,0 +1 @@ +{"content":"148-21 16:36\n5.2U->-28-16\nTmp: 28m@0.0 at 16:40\nReq: None\nCOB: 0, Dev: -64, BGI: -8.2, ISF: 21, Target: 81; Eventual BG -28 < 81, setting -11.3U/hr, but 28m left and 0 ~ req 0U/hr: no action required\nSched: 0.60U/hr\nmealCOB: 0g\neddie\n","refresh_frequency":1} diff --git a/app/src/main/java/info/nightscout/sampleData/upload/latest-treatments.json b/app/src/main/java/info/nightscout/sampleData/upload/latest-treatments.json new file mode 100644 index 0000000000..a23d48aacb --- /dev/null +++ b/app/src/main/java/info/nightscout/sampleData/upload/latest-treatments.json @@ -0,0 +1,31 @@ +[ + { + "duration": "30", + "raw_duration": { + "_type": "TempBasalDuration", + "_description": "TempBasalDuration 2017-01-04T16:37:57 head[2], body[0] op[0x16]", + "timestamp": "2017-01-04T16:37:57+01:00", + "_body": "", + "_head": "1601", + "duration (min)": 30, + "_date": "3965104411" + }, + "timestamp": "2017-01-04T16:37:57+01:00", + "absolute": "0", + "rate": 0, + "raw_rate": { + "_type": "TempBasal", + "temp": "absolute", + "_description": "TempBasal 2017-01-04T16:37:57 head[2], body[1] op[0x33]", + "timestamp": "2017-01-04T16:37:57+01:00", + "_body": "00", + "_head": "3300", + "rate": 0, + "_date": "3965104411" + }, + "eventType": "Temp Basal", + "medtronic": "mm://openaps/mm-format-ns-treatments/Temp Basal", + "created_at": "2017-01-04T16:37:57+01:00", + "enteredBy": "openaps://medtronic/522" + } +] diff --git a/app/src/main/java/info/nightscout/sampleData/upload/ns-status.json b/app/src/main/java/info/nightscout/sampleData/upload/ns-status.json new file mode 100644 index 0000000000..3e15d231f9 --- /dev/null +++ b/app/src/main/java/info/nightscout/sampleData/upload/ns-status.json @@ -0,0 +1 @@ +{"device":"openaps://eddie","openaps":{"iob":{"iob":5.521,"activity":0.077,"bolussnooze":1.574,"basaliob":1.893,"netbasalinsulin":5.05,"hightempinsulin":5.1,"timestamp":"2017-01-04T15:37:36.000Z"},"suggested":{"temp":"absolute","bg":148,"tick":-21,"eventualBG":-34,"snoozeBG":17,"COB":0,"IOB":5.521,"reason":"COB: 0, Dev: -64, BGI: -8.24, ISF: 21, Target: 81; Eventual BG -34 < 81, setting -11.1U/hr","duration":30,"rate":0,"timestamp":"2017-01-04T15:37:50.000Z"},"enacted":{"bg":148,"temp":"absolute","snoozeBG":17,"recieved":true,"predBGs":{"IOB":[148,128,109,91,75,59,45,39,39,39,39,39,39]},"rate":0,"reason":"COB: 0, Dev: -64, BGI: -8.24, ISF: 21, Target: 81; Eventual BG -34 < 81, setting -11.1U/hr","COB":0,"eventualBG":-34,"timestamp":"2017-01-04T15:37:56.000Z","duration":30,"tick":-21,"IOB":5.521}},"pump":{"clock":"2017-01-04T16:37:36+01:00","battery":{"status":"normal","voltage":1.45},"reservoir":120.5,"status":{"status":"normal","bolusing":false,"suspended":false,"timestamp":"2017-01-04T15:37:43.000Z"}},"mmtune":{"scanDetails":[["868.372",4,-91],["868.384",5,-81],["868.396",5,-78],["868.408",5,-77],["868.420",5,-76],["868.432",5,-76],["868.444",5,-76],["868.456",5,-76],["868.468",5,-75],["868.480",5,-76],["868.492",5,-76],["868.504",5,-77],["868.516",5,-80],["868.528",5,-86]],"setFreq":868.468,"usedDefault":false,"timestamp":"2017-01-04T15:33:30.000Z"},"uploader":{"battery":57,"batteryVoltage":3748}} diff --git a/app/src/main/java/info/nightscout/sampleData/upload/pebble.json b/app/src/main/java/info/nightscout/sampleData/upload/pebble.json new file mode 100644 index 0000000000..f331bc3192 --- /dev/null +++ b/app/src/main/java/info/nightscout/sampleData/upload/pebble.json @@ -0,0 +1 @@ +{"content":"148-21 16:36\n5.2U->-28-16\nTmp: 28m@0.0 at 16:40\nReq: None\nCOB: 0, Dev: -64, BGI: -8.2, ISF: 21, Target: 81; Eventual BG -28 < 81, setting -11.3U/hr, but 28m left and 0 ~ req 0U/hr: no action required\nSched: 0.60U/hr\nmealCOB: 0g\neddie\n","refresh_frequency":1} diff --git a/app/src/main/java/info/nightscout/utils/BolusWizard.java b/app/src/main/java/info/nightscout/utils/BolusWizard.java index 736958a862..80e907bb6f 100644 --- a/app/src/main/java/info/nightscout/utils/BolusWizard.java +++ b/app/src/main/java/info/nightscout/utils/BolusWizard.java @@ -3,10 +3,9 @@ package info.nightscout.utils; import org.json.JSONObject; import info.nightscout.androidaps.MainApp; -import info.nightscout.androidaps.R; import info.nightscout.androidaps.interfaces.TempBasalsInterface; import info.nightscout.androidaps.interfaces.TreatmentsInterface; -import info.nightscout.androidaps.plugins.OpenAPSMA.IobTotal; +import info.nightscout.androidaps.data.IobTotal; import info.nightscout.client.data.NSProfile; /** @@ -16,7 +15,7 @@ import info.nightscout.client.data.NSProfile; public class BolusWizard { // Inputs JSONObject specificProfile = null; - Integer carbs = 0; + public Integer carbs = 0; Double bg = 0d; Double correction; Boolean includeBolusIOB = true; diff --git a/app/src/main/java/info/nightscout/utils/JSONFormatter.java b/app/src/main/java/info/nightscout/utils/JSONFormatter.java index 8d698ef5d0..a37169f061 100644 --- a/app/src/main/java/info/nightscout/utils/JSONFormatter.java +++ b/app/src/main/java/info/nightscout/utils/JSONFormatter.java @@ -17,7 +17,12 @@ public class JSONFormatter { public static Spanned format(final String jsonString) { final JsonVisitor visitor = new JsonVisitor(4, ' '); try { - return Html.fromHtml(visitor.visit(new JSONObject(jsonString), 0)); + if (jsonString.equals("undefined")) + return Html.fromHtml("undefined"); + else if (jsonString.getBytes()[0] == '[') + return Html.fromHtml(visitor.visit(new JSONArray(jsonString), 0)); + else + return Html.fromHtml(visitor.visit(new JSONObject(jsonString), 0)); } catch (JSONException e) { e.printStackTrace(); return Html.fromHtml(""); diff --git a/app/src/main/java/info/nightscout/utils/LogDialog.java b/app/src/main/java/info/nightscout/utils/LogDialog.java new file mode 100644 index 0000000000..0bd4216163 --- /dev/null +++ b/app/src/main/java/info/nightscout/utils/LogDialog.java @@ -0,0 +1,68 @@ +package info.nightscout.utils; + +import android.app.AlertDialog; +import android.content.ClipData; +import android.content.Context; +import android.content.DialogInterface; +import android.content.ClipboardManager; +import android.widget.TextView; + +import com.crashlytics.android.Crashlytics; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; + +import info.nightscout.androidaps.MainApp; +import info.nightscout.androidaps.R; + +/** + * Created by mike on 09.02.2017. + */ + +public class LogDialog { + + public static void showLogcat(Context context) { + String logCat = "no logs"; + final String processId = Integer.toString(android.os.Process.myPid()); + try { + Process process = Runtime.getRuntime().exec("logcat -d " + MainApp.sResources.getString(R.string.app_name) + ":D"); + BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream())); + StringBuilder log = new StringBuilder(); + String line; + + while ((line = bufferedReader.readLine()) != null) { + if (line.contains(processId)) log.append(line + "\n"); + } + logCat = log.toString(); + + } catch (IOException e) { + logCat = e.getLocalizedMessage(); + } finally { + showAlertText(logCat, context); + } + } + + public static void showAlertText(final String msg, final Context context) { + try { + AlertDialog alertDialog = new AlertDialog.Builder(context) + .setMessage(msg) + .setPositiveButton(MainApp.sResources.getString(R.string.copy_to_clipboard), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE); + clipboard.setPrimaryClip(ClipData.newPlainText(null, msg)); + ToastUtils.showToastInUiThread(context, MainApp.sResources.getString(R.string.copied_to_clipboard)); + } + }) + .setNegativeButton(android.R.string.cancel, null) + .show(); + + if (msg.length() > 100) { + TextView textView = (TextView) alertDialog.findViewById(android.R.id.message); + textView.setTextSize(10); + } + } catch (Exception e) { + // crashing on screen rotation + } + } +} diff --git a/app/src/main/java/info/nightscout/utils/PasswordProtection.java b/app/src/main/java/info/nightscout/utils/PasswordProtection.java new file mode 100644 index 0000000000..2b8d7a59c1 --- /dev/null +++ b/app/src/main/java/info/nightscout/utils/PasswordProtection.java @@ -0,0 +1,72 @@ +package info.nightscout.utils; + +import android.app.AlertDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.SharedPreferences; +import android.preference.PreferenceManager; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.EditText; +import android.widget.TextView; + +import info.nightscout.androidaps.MainApp; +import info.nightscout.androidaps.R; + +/** + * Created by mike on 14.02.2017. + */ + +public class PasswordProtection { + static public boolean isLocked(String preference) { + SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); + final String password = SP.getString(preference, ""); + if (password.equals("")) { + return false; + } + return true; + } + + static public void QueryPassword(final Context context, int stringID, String preference, final Runnable ok, final Runnable fail) { + SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); + final String password = SP.getString(preference, ""); + if (password.equals("")) { + if (ok != null) ok.run(); + return; + } + LayoutInflater li = LayoutInflater.from(context); + View promptsView = li.inflate(R.layout.passwordprompt, null); + + AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context); + alertDialogBuilder.setView(promptsView); + + final TextView label = (TextView) promptsView.findViewById(R.id.passwordprompt_text); + label.setText(MainApp.sResources.getString(stringID)); + final EditText userInput = (EditText) promptsView.findViewById(R.id.passwordprompt_pass); + + // set dialog message + alertDialogBuilder + .setCancelable(false) + .setPositiveButton("OK", + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog,int id) { + String enteredPassword = userInput.getText().toString(); + if (password.equals(enteredPassword)) { + if (ok != null) ok.run(); + } else { + ToastUtils.showToastInUiThread(context, MainApp.sResources.getString(R.string.wrongpassword)); + if (fail != null) fail.run(); + } + } + }) + .setNegativeButton("Cancel", + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog,int id) { + dialog.cancel(); + } + }); + + AlertDialog alertDialog = alertDialogBuilder.create(); + alertDialog.show(); + } +} diff --git a/app/src/main/java/info/nightscout/utils/Profiler.java b/app/src/main/java/info/nightscout/utils/Profiler.java new file mode 100644 index 0000000000..99093b238f --- /dev/null +++ b/app/src/main/java/info/nightscout/utils/Profiler.java @@ -0,0 +1,18 @@ +package info.nightscout.utils; + +import org.slf4j.Logger; + +import java.util.Date; + +/** + * Created by mike on 29.01.2017. + */ + +public class Profiler { + public Profiler(){} + + static public void log(Logger log, String function, Date start) { + long msec = new Date().getTime() - start.getTime(); + log.debug(">>> " + function + " <<< executed in " + msec + " miliseconds"); + } +} diff --git a/app/src/main/java/info/nightscout/utils/TimeListEdit.java b/app/src/main/java/info/nightscout/utils/TimeListEdit.java index 811bec61fe..1c4f5d4edd 100644 --- a/app/src/main/java/info/nightscout/utils/TimeListEdit.java +++ b/app/src/main/java/info/nightscout/utils/TimeListEdit.java @@ -2,6 +2,8 @@ package info.nightscout.utils; import android.content.Context; import android.os.Build; +import android.support.v4.content.ContextCompat; +import android.support.v4.widget.TextViewCompat; import android.text.Editable; import android.text.Layout; import android.text.TextWatcher; @@ -73,11 +75,8 @@ public class TimeListEdit { LinearLayout.LayoutParams llp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); llp.setMargins(10, 0, 0, 0); // llp.setMargins(left, top, right, bottom); textlabel.setLayoutParams(llp); - textlabel.setBackgroundColor(MainApp.sResources.getColor(R.color.linearBlockBackground)); - if (Build.VERSION.SDK_INT < 23) - textlabel.setTextAppearance(context, android.R.style.TextAppearance_Medium); - else - textlabel.setTextAppearance(android.R.style.TextAppearance_Medium); + textlabel.setBackgroundColor(ContextCompat.getColor(MainApp.instance(), R.color.linearBlockBackground)); + TextViewCompat.setTextAppearance(textlabel, android.R.style.TextAppearance_Medium); layout.addView(textlabel); for (int i = 0; i < itemsCount(); i++) { diff --git a/app/src/main/java/info/nightscout/utils/Translator.java b/app/src/main/java/info/nightscout/utils/Translator.java index 93194655d7..75ee881c21 100644 --- a/app/src/main/java/info/nightscout/utils/Translator.java +++ b/app/src/main/java/info/nightscout/utils/Translator.java @@ -56,7 +56,7 @@ public class Translator { case "Sensor": return MainApp.sResources.getString(R.string.glucosetype_sensor); case "Manual": - return MainApp.sResources.getString(R.string.glucosetype_manual); + return MainApp.sResources.getString(R.string.manual); } return text; } diff --git a/app/src/main/java/info/nightscout/utils/XdripCalibrations.java b/app/src/main/java/info/nightscout/utils/XdripCalibrations.java new file mode 100644 index 0000000000..338304d790 --- /dev/null +++ b/app/src/main/java/info/nightscout/utils/XdripCalibrations.java @@ -0,0 +1,69 @@ +package info.nightscout.utils; + +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.pm.ResolveInfo; +import android.os.Bundle; +import android.support.v7.app.AlertDialog; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.Date; +import java.util.List; + +import info.nightscout.androidaps.Constants; +import info.nightscout.androidaps.MainApp; +import info.nightscout.androidaps.R; +import info.nightscout.androidaps.Services.Intents; +import info.nightscout.client.data.NSProfile; + +/** + * Created by mike on 10.02.2017. + */ + +public class XdripCalibrations { + private static Logger log = LoggerFactory.getLogger(XdripCalibrations.class); + + public static void confirmAndSendCalibration(final Double bg, Context parentContext) { + if (parentContext != null) { + String confirmMessage = String.format(MainApp.sResources.getString(R.string.send_calibration), bg); + + AlertDialog.Builder builder = new AlertDialog.Builder(parentContext); + builder.setTitle(MainApp.sResources.getString(R.string.confirmation)); + builder.setMessage(confirmMessage); + builder.setPositiveButton(MainApp.sResources.getString(R.string.ok), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + sendIntent(bg); + } + }); + builder.setNegativeButton(MainApp.sResources.getString(R.string.cancel), null); + builder.show(); + } + } + + public static boolean sendIntent(Double bg) { + final NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile(); + + Context context = MainApp.instance().getApplicationContext(); + Bundle bundle = new Bundle(); + bundle.putDouble("glucose_number", bg); + bundle.putString("units", profile.getUnits().equals(Constants.MGDL) ? "mgdl" : "mmol"); + bundle.putLong("timestamp", new Date().getTime()); + Intent intent = new Intent(Intents.ACTION_REMOTE_CALIBRATION); + intent.putExtras(bundle); + intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); + context.sendBroadcast(intent); + List q = MainApp.instance().getApplicationContext().getPackageManager().queryBroadcastReceivers(intent, 0); + if (q.size() < 1) { + ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.sResources.getString(R.string.xdripnotinstalled)); + log.debug(MainApp.sResources.getString(R.string.xdripnotinstalled)); + return false; + } else { + ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.sResources.getString(R.string.calibrationsent)); + log.debug(MainApp.sResources.getString(R.string.calibrationsent)); + return true; + } + } +} diff --git a/app/src/main/res/drawable-mdpi-v11/temptargetborder.xml b/app/src/main/res/drawable-mdpi-v11/temptargetborder.xml new file mode 100644 index 0000000000..8dc85926e2 --- /dev/null +++ b/app/src/main/res/drawable-mdpi-v11/temptargetborder.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-mdpi-v11/temptargetborderdisabled.xml b/app/src/main/res/drawable-mdpi-v11/temptargetborderdisabled.xml new file mode 100644 index 0000000000..60a46f667e --- /dev/null +++ b/app/src/main/res/drawable-mdpi-v11/temptargetborderdisabled.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/initializingborder.xml b/app/src/main/res/drawable/initializingborder.xml new file mode 100644 index 0000000000..7a46a6f1eb --- /dev/null +++ b/app/src/main/res/drawable/initializingborder.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/actions_fragment.xml b/app/src/main/res/layout/actions_fragment.xml index 071fabb527..7eb751ac1d 100644 --- a/app/src/main/res/layout/actions_fragment.xml +++ b/app/src/main/res/layout/actions_fragment.xml @@ -22,6 +22,19 @@ android:text="@string/careportal_profileswitch" android:textColor="@color/colorProfileSwitchButton" /> +