private static String sensorAndCalibrationsToJson(Sensor sensor, int limit) { SensorCalibrations[] sensorCalibrations = new SensorCalibrations[1]; sensorCalibrations[0] = new SensorCalibrations(); sensorCalibrations[0].sensor = sensor; sensorCalibrations[0].calibrations = Calibration.getCalibrationsForSensor(sensor, limit); if (d) Log.d(TAG, "calibrations size " + sensorCalibrations[0].calibrations.size()); Gson gson = new GsonBuilder() .excludeFieldsWithoutExposeAnnotation() .registerTypeAdapter(Date.class, new DateTypeAdapter()) .serializeSpecialFloatingPointValues() .create(); String output = gson.toJson(sensorCalibrations); if (d) Log.d(TAG, "sensorAndCalibrationsToJson created the string " + output); return output; }
public static void adjustRecentBgReadings() {// This just adjust the last 30 bg readings transition from one calibration point to the next adjustRecentBgReadings(30); }
public static void clear_all_existing_calibrations() { CalibrationRequest.clearAll(); List<Calibration> pastCalibrations = Calibration.allForSensor(); if (pastCalibrations != null) { for (Calibration calibration : pastCalibrations) { calibration.slope_confidence = 0; calibration.sensor_confidence = 0; calibration.save(); //KS newFingerStickData(); } } }
public void rawValueOverride(double rawValue, Context context) { estimate_raw_at_time_of_calibration = rawValue; save(); calculate_w_l_s(); CalibrationSendQueue.addToQueue(this, context); }
public static synchronized void invalidateAllForSensor() { final List<Calibration> cals = allForSensorLimited(9999999); if (cals != null) { for (Calibration cal : cals) { cal.invalidate(); } } String msg = "Deleted all calibrations for sensor"; Log.ueh(TAG, msg); JoH.static_toast_long(msg); }
final SlopeParameters sParams = getSlopeParameters(); ActiveAndroid.clearCache(); List<Calibration> calibrations = allForSensorInLastFourDays(); //5 days was a bit much, dropped this to 4 if ((ccount < 5) && extended) { ActiveAndroid.clearCache(); calibrations = allForSensorLimited(5); if (calibrations.size() > ccount) { Home.toaststaticnext("Calibrated using data beyond last 4 days"); final Calibration calibration = Calibration.last(); ActiveAndroid.clearCache(); calibration.slope = 1; calibration.intercept = calibration.bg - (calibration.raw_value * calibration.slope); calibration.save(); CalibrationRequest.createOffset(calibration.bg, 25); w = calibration.calculateWeight(); l += (w); m += (w * calibration.estimate_raw_at_time_of_calibration); final Calibration last_calibration = Calibration.last(); if (last_calibration != null) { ActiveAndroid.clearCache(); w = (last_calibration.calculateWeight() * (calibrations.size() * 0.14)); l += (w); m += (w * last_calibration.estimate_raw_at_time_of_calibration); final Calibration calibration = Calibration.last();
if (sensor != null) { for (int i = 0; i < firstCalRecord.getCalSubrecords().length - 1; i++) { if (((firstCalRecord.getCalSubrecords()[i] != null && Calibration.is_new(firstCalRecord.getCalSubrecords()[i], addativeOffset))) || (i == 0 && override)) { CalSubrecord calSubrecord = firstCalRecord.getCalSubrecords()[i]; Calibration calibration = new Calibration(); calibration.bg = calSubrecord.getCalBGL(); calibration.timestamp = calSubrecord.getDateEntered().getTime() + addativeOffset; calibration.second_intercept = secondCalRecord.getIntercept(); calibration.save(); CalibrationSendQueue.addToQueue(calibration, context); Calibration.requestCalibrationIfRangeTooNarrow(); if (Calibration.latest(2).size() == 1) { Calibration.create(calRecords, context, true, 0);
final Calibration calibration = new Calibration(); Sensor sensor = Sensor.currentSensor(); calibration.save(); BgSendQueue.handleNewBgReading(bgReading, "update", context); calculate_w_l_s(prefs.getBoolean("infrequent_calibration", false)); adjustRecentBgReadings(adjustPast ? 30 : 2); CalibrationSendQueue.addToQueue(calibration, context); context.startService(new Intent(context, Notifications.class)); Calibration.requestCalibrationIfRangeTooNarrow(); Log.d("CALIBRATION", "No sensor, cant save!"); return Calibration.last();
clear_all_existing_calibrations(); Calibration higherCalibration = new Calibration(); Calibration lowerCalibration = new Calibration(); Sensor sensor = Sensor.currentSensor(); List<BgReading> bgReadings = BgReading.latest_by_size(2); higherCalibration.raw_value = highBgReading.raw_data; higherCalibration.raw_timestamp = highBgReading.timestamp; higherCalibration.save(); highBgReading.calibration = higherCalibration; highBgReading.save(); higherCalibration.save(); lowerCalibration.raw_value = lowBgReading.raw_data; lowerCalibration.raw_timestamp = lowBgReading.timestamp; lowerCalibration.save(); lowBgReading.calibration = lowerCalibration; lowBgReading.save(); lowerCalibration.save(); calibration.save(); calculate_w_l_s(); adjustRecentBgReadings(5); CalibrationRequest.createOffset(lowerCalibration.bg, 35);
@Test public void initialCalibration_fallingBg_OK() { // :: Setup // Add mock sensor Sensor mockSensor = new Sensor(); mockSensor.started_at = System.currentTimeMillis() - (1000 * 60 * 20); mockSensor.uuid = UUID.randomUUID().toString(); mockSensor.save(); // Add mock bg readings addMockBgReading(135, 11, mockSensor); addMockBgReading(130, 6, mockSensor); addMockBgReading(125, 1, mockSensor); // :: Act Calibration.initialCalibration(145, 140, RuntimeEnvironment.application); // :: Verify List<Calibration> calibrations = Calibration.getCalibrationsForSensor(Sensor.currentSensor(), 3); assertThat(calibrations).hasSize(2); Calibration calibration1 = calibrations.get(0); assertThat(calibration1.bg).isWithin(0.01).of(145); assertThat(calibration1.raw_value).isWithin(0.01).of(130); assertThat(calibration1.slope).isWithin(0.001).of(1); assertThat(calibration1.intercept).isWithin(0.001).of(14.9); Calibration calibration2 = calibrations.get(1); assertThat(calibration2.bg).isWithin(0.01).of(140); assertThat(calibration2.raw_value).isWithin(0.01).of(125); assertThat(calibration2.slope).isWithin(0.001).of(1); assertThat(calibration2.intercept).isWithin(0.001).of(15); }
Log.d(TAG, "sendWearCalibrationData"); final Sensor sensor = Sensor.currentSensor(); final Calibration last = list != null && list.size() > 0 ? list.get(0) : Calibration.last(); latest = list; else if (startTime != 0) latest = Calibration.latestForGraphSensor(count, startTime, Long.MAX_VALUE); else if (lastBgReading != null && lastBgReading.calibration != null && lastBgReading.calibration_flag == true) { Log.d(TAG, "sendWearCalibrationData lastBgReading.calibration_flag=" + lastBgReading.calibration_flag + " lastBgReading.timestamp: " + lastBgReading.timestamp + " lastBgReading.calibration.timestamp: " + lastBgReading.calibration.timestamp); latest = Calibration.allForSensor(); } else { latest = Calibration.latest(count);
JoH.static_toast_long(getString(R.string.calibration_out_of_range)); } else { Calibration.initialCalibration(calValue_1, calValue_2, getApplicationContext());
public static void clear_byuuid(String uuid, boolean from_interactive) { if (uuid == null) return; Calibration calibration = byuuid(uuid); if (calibration != null) { calibration.invalidate(); CalibrationSendQueue.addToQueue(calibration, xdrip.getAppContext()); //KS newFingerStickData(); //KS if (from_interactive) { //KS GcmActivity.clearLastCalibration(); //KS } } }
List<Calibration> calibrations = Calibration.allForSensor(); List<Line> greyLines = getCalibrationsLine(calibrations, Color.parseColor("#66FFFFFF")); calibrations = Calibration.allForSensorInLastFourDays(); List<Line> blueLines = getCalibrationsLine(calibrations, ChartUtils.COLOR_BLUE); Calibration calibration = Calibration.lastValid(); if (calibration != null) {
} else if (item.Calibration_uuid != null) { Calibration calibration = Calibration.byuuid(item.Calibration_uuid); if(calibration != null) { item.saved_data = calibration.toS(); item.expires = JoH.ts() + EXPIRY_TIME; redo_queue.add(item); undo_queue.remove(location); Calibration.clear_byuuid(item.Calibration_uuid, true); // from interactive return true;
return; Calibration existingCalibration = byuuid(jsonCalibration.uuid); if (existingCalibration == null) { Log.d(TAG, "saving new calibration record. sensor uuid =" + jsonCalibration.sensor_uuid + " calibration uuid = " + jsonCalibration.uuid); jsonCalibration.sensor = sensor; jsonCalibration.save(); } else { Log.d(TAG, "updating existing calibration record: " + jsonCalibration.uuid); existingCalibration.second_scale = jsonCalibration.second_scale; existingCalibration.save();
private static void FixCalibration(BgReading bgr) { if (bgr.calibration_uuid == null || "".equals(bgr.calibration_uuid)) { Log.d(TAG, "Bgr with no calibration, doing nothing"); return; } Calibration calibration = Calibration.byuuid(bgr.calibration_uuid); if (calibration == null) { Log.i(TAG, "received Unknown calibration: " + bgr.calibration_uuid + " asking for sensor upate..."); GcmActivity.requestSensorCalibrationsUpdate(); } else { bgr.calibration = calibration; } }
private synchronized static void calculate_w_l_s() { calculate_w_l_s(false); }
final List<Calibration> calibrations = Calibration.allForSensorLimited(3); if (bgReadings == null || bgReadings.size() < 3) { return unclearReading;
final SlopeParameters sParams = getSlopeParameters(); ActiveAndroid.clearCache(); List<Calibration> calibrations = allForSensorInLastFourDays(); //5 days was a bit much, dropped this to 4 if ((ccount < 5) && extended) { ActiveAndroid.clearCache(); calibrations = allForSensorLimited(5); if (calibrations.size() > ccount) { Home.toaststaticnext("Calibrated using data beyond last 4 days"); final Calibration calibration = Calibration.last(); ActiveAndroid.clearCache(); calibration.slope = 1; calibration.intercept = calibration.bg - (calibration.raw_value * calibration.slope); calibration.save(); CalibrationRequest.createOffset(calibration.bg, 25); newFingerStickData(); } else { for (Calibration calibration : calibrations) { w = calibration.calculateWeight(); l += (w); m += (w * calibration.estimate_raw_at_time_of_calibration); final Calibration last_calibration = Calibration.last(); if (last_calibration != null) { ActiveAndroid.clearCache(); w = (last_calibration.calculateWeight() * (calibrations.size() * 0.14)); l += (w); m += (w * last_calibration.estimate_raw_at_time_of_calibration);