com.google.gson.internal.bind.DateTypeAdapter#com.eveningoutpost.dexdrip.Models.Calibration源码实例Demo

下面列出了com.google.gson.internal.bind.DateTypeAdapter#com.eveningoutpost.dexdrip.Models.Calibration 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: xDrip-Experimental   文件: BgGraphBuilder.java
public BgGraphBuilder(Context context, long start, long end, int numValues){
    end_time = end;
    start_time = start;
    bgReadings = BgReading.latestForGraph( numValues, start, end);
    calibrations = Calibration.latestForGraph( numValues, start, end);
    this.context = context;
    this.prefs = PreferenceManager.getDefaultSharedPreferences(context);
    this.highMark = Double.parseDouble(prefs.getString("highValue", "170"));
    this.lowMark = Double.parseDouble(prefs.getString("lowValue", "70"));
    this.doMgdl = (prefs.getString("units", "mgdl").equals("mgdl"));
    defaultMinY = unitized(40);
    defaultMaxY = unitized(250);
    pointSize = isXLargeTablet(context) ? 5 : 3;
    axisTextSize = isXLargeTablet(context) ? 20 : Axis.DEFAULT_TEXT_SIZE_SP;
    previewAxisTextSize = isXLargeTablet(context) ? 12 : 5;
    hoursPreviewStep = isXLargeTablet(context) ? 2 : 1;
}
 
源代码2 项目: xDrip   文件: BgGraphBuilder.java
public BgGraphBuilder(Context context, long start, long end, int numValues){
    end_time = end;
    start_time = start;
    bgReadings = BgReading.latestForGraph( numValues, start, end);
    calibrations = Calibration.latestForGraph( numValues, start, end);
    this.context = context;
    this.prefs = PreferenceManager.getDefaultSharedPreferences(context);
    this.highMark = Double.parseDouble(prefs.getString("highValue", "170"));
    this.lowMark = Double.parseDouble(prefs.getString("lowValue", "70"));
    this.doMgdl = (prefs.getString("units", "mgdl").equals("mgdl"));
    defaultMinY = unitized(40);
    defaultMaxY = unitized(250);
    pointSize = isXLargeTablet(context) ? 5 : 3;
    axisTextSize = isXLargeTablet(context) ? 20 : Axis.DEFAULT_TEXT_SIZE_SP;
    previewAxisTextSize = isXLargeTablet(context) ? 12 : 5;
    hoursPreviewStep = isXLargeTablet(context) ? 2 : 1;
}
 
源代码3 项目: xDrip   文件: BgGraphBuilder.java
private void addBgReadingValues() {
    final boolean show_filtered = prefs.getBoolean("show_filtered_curve", false);

    for (BgReading bgReading : bgReadings) {
        if (bgReading.raw_calculated != 0 && prefs.getBoolean("interpret_raw", false)) {
            rawInterpretedValues.add(new PointValueExtended((float) (bgReading.timestamp / FUZZER), (float) unitized(bgReading.raw_calculated),(float) unitized(bgReading.filtered_calculated_value)));
        } else if (bgReading.calculated_value >= 400) {
            highValues.add(new PointValueExtended((float) (bgReading.timestamp / FUZZER), (float) unitized(400),(float) unitized(bgReading.filtered_calculated_value)));
        } else if (unitized(bgReading.calculated_value) >= highMark) {
            highValues.add(new PointValueExtended((float) (bgReading.timestamp / FUZZER), (float) unitized(bgReading.calculated_value), (float) unitized(bgReading.filtered_calculated_value)));
        } else if (unitized(bgReading.calculated_value) >= lowMark) {
            inRangeValues.add(new PointValueExtended((float) (bgReading.timestamp / FUZZER), (float) unitized(bgReading.calculated_value), (float) unitized(bgReading.filtered_calculated_value)));
        } else if (bgReading.calculated_value >= 40) {
            lowValues.add(new PointValueExtended((float) (bgReading.timestamp / FUZZER), (float) unitized(bgReading.calculated_value),(float) unitized(bgReading.filtered_calculated_value)));
        } else if (bgReading.calculated_value > 13) {
            lowValues.add(new PointValueExtended((float) (bgReading.timestamp / FUZZER), (float) unitized(40), (float) unitized(bgReading.filtered_calculated_value)));
        }

        if ((show_filtered) && (bgReading.filtered_calculated_value > 0) && (bgReading.filtered_calculated_value != bgReading.calculated_value)) {
            filteredValues.add(new PointValueExtended((float) ((bgReading.timestamp - timeshift) / FUZZER), (float) unitized(bgReading.filtered_calculated_value)));
        }
    }
    for (Calibration calibration : calibrations) {
        calibrationValues.add(new PointValueExtended((float) (calibration.timestamp / FUZZER), (float) unitized(calibration.bg)));
    }
}
 
源代码4 项目: xDrip-plus   文件: XDripOriginal.java
@Override
public CalibrationData getCalibrationData(long until) {

    // TODO cache must understand until
    CalibrationData cd = loadDataFromCache(TAG);
    if (cd == null) {
        UserError.Log.d(TAG, "Regenerating Calibration data cache");
        final List<Calibration> calibrationl = Calibration.latestValid(1, until);
        if ((calibrationl != null) && (calibrationl.size() > 0)) {
            final Calibration calibration = calibrationl.get(0); // first and only
            if (calibration != null) {

                // produce the CalibrationData result
                cd = new CalibrationData(calibration.slope, calibration.intercept);

                // saveDataToCache(TAG, cd);
            }
        }
    }
    return cd; // null if invalid
}
 
源代码5 项目: xDrip   文件: XDripOriginal.java
@Override
public CalibrationData getCalibrationData(long until) {

    // TODO cache must understand until
    CalibrationData cd = loadDataFromCache(TAG);
    if (cd == null) {
        UserError.Log.d(TAG, "Regenerating Calibration data cache");
        final List<Calibration> calibrationl = Calibration.latestValid(1, until);
        if ((calibrationl != null) && (calibrationl.size() > 0)) {
            final Calibration calibration = calibrationl.get(0); // first and only
            if (calibration != null) {

                // produce the CalibrationData result
                cd = new CalibrationData(calibration.slope, calibration.intercept);

                // saveDataToCache(TAG, cd);
            }
        }
    }
    return cd; // null if invalid
}
 
源代码6 项目: xDrip   文件: NightscoutUploader.java
public boolean uploadRest(List<BgReading> glucoseDataSets, List<BloodTest> meterRecords, List<Calibration> calRecords) {

        boolean apiStatus = false;

        if (enableRESTUpload) {
            long start = System.currentTimeMillis();
            Log.i(TAG, String.format("Starting upload of %s record using a REST API", glucoseDataSets.size()));
            apiStatus = doRESTUpload(prefs, glucoseDataSets, meterRecords, calRecords);
            Log.i(TAG, String.format("Finished upload of %s record using a REST API in %s ms result: %b", glucoseDataSets.size(), System.currentTimeMillis() - start, apiStatus));

            if (prefs.getBoolean("cloud_storage_api_download_enable", false)) {
                start = System.currentTimeMillis();
                final boolean substatus = doRESTtreatmentDownload(prefs);
                if (substatus) {
                    Home.staticRefreshBGCharts();
                }
                Log.i(TAG, String.format("Finished download using a REST API in %s ms result: %b", System.currentTimeMillis() - start, substatus));
            }
        }
        return apiStatus;
    }
 
源代码7 项目: xDrip   文件: NightscoutUploader.java
private void populateV1APIMeterReadingEntry(JSONArray array, Calibration record) throws Exception {
    if (record == null) {
        Log.e(TAG, "Received null calibration record in populateV1ApiMeterReadingEntry !");
        return;
    }
    JSONObject json = new JSONObject();
    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ", Locale.US);
    format.setTimeZone(TimeZone.getDefault());
    json.put("device", "xDrip-" + prefs.getString("dex_collection_method", "BluetoothWixel"));
    json.put("type", "mbg");
    json.put("date", record.timestamp);
    json.put("dateString", format.format(record.timestamp));
    json.put("mbg", record.bg);
    json.put("sysTime", format.format(record.timestamp));
    array.put(json);
}
 
源代码8 项目: xDrip   文件: InfluxDBUploader.java
private Point createCalibrationPoint(Calibration record) {
    Point.Builder builder = Point.measurement("calibration")
            .time(record.timestamp, TimeUnit.MILLISECONDS)
            .tag("device", "xDrip-" + prefs.getString("dex_collection_method", "BluetoothWixel"))
            .tag("type", "cal");

    if (record.check_in) {
        builder.addField("slope", record.first_slope)
                .addField("intercept", record.first_intercept)
                .addField("scale", record.first_scale);
    } else {
        builder.addField("slope", (1000 / record.slope))
                .addField("intercept", ((record.intercept * -1000) / record.slope))
                .addField("scale", 1);
    }

    return builder.build();
}
 
源代码9 项目: xDrip-plus   文件: BgGraphBuilder.java
public BgGraphBuilder(Context context, long start, long end, int numValues){
    end_time = end;
    start_time = start;
    bgReadings = BgReading.latestForGraph( numValues, start, end);
    calibrations = Calibration.latestForGraph( numValues, start, end);
    this.context = context;
    this.prefs = PreferenceManager.getDefaultSharedPreferences(context);
    this.highMark = Double.parseDouble(prefs.getString("highValue", "170"));
    this.lowMark = Double.parseDouble(prefs.getString("lowValue", "70"));
    this.doMgdl = (prefs.getString("units", "mgdl").equals("mgdl"));
    defaultMinY = unitized(40);
    defaultMaxY = unitized(250);
    pointSize = isXLargeTablet(context) ? 5 : 3;
    axisTextSize = isXLargeTablet(context) ? 20 : Axis.DEFAULT_TEXT_SIZE_SP;
    previewAxisTextSize = isXLargeTablet(context) ? 12 : 5;
    hoursPreviewStep = isXLargeTablet(context) ? 2 : 1;
}
 
源代码10 项目: xDrip-plus   文件: BgGraphBuilder.java
private void addBgReadingValues() {
    final boolean show_filtered = prefs.getBoolean("show_filtered_curve", false);

    for (BgReading bgReading : bgReadings) {
        if (bgReading.raw_calculated != 0 && prefs.getBoolean("interpret_raw", false)) {
            rawInterpretedValues.add(new PointValueExtended((float) (bgReading.timestamp / FUZZER), (float) unitized(bgReading.raw_calculated),(float) unitized(bgReading.filtered_calculated_value)));
        } else if (bgReading.calculated_value >= 400) {
            highValues.add(new PointValueExtended((float) (bgReading.timestamp / FUZZER), (float) unitized(400),(float) unitized(bgReading.filtered_calculated_value)));
        } else if (unitized(bgReading.calculated_value) >= highMark) {
            highValues.add(new PointValueExtended((float) (bgReading.timestamp / FUZZER), (float) unitized(bgReading.calculated_value), (float) unitized(bgReading.filtered_calculated_value)));
        } else if (unitized(bgReading.calculated_value) >= lowMark) {
            inRangeValues.add(new PointValueExtended((float) (bgReading.timestamp / FUZZER), (float) unitized(bgReading.calculated_value), (float) unitized(bgReading.filtered_calculated_value)));
        } else if (bgReading.calculated_value >= 40) {
            lowValues.add(new PointValueExtended((float) (bgReading.timestamp / FUZZER), (float) unitized(bgReading.calculated_value),(float) unitized(bgReading.filtered_calculated_value)));
        } else if (bgReading.calculated_value > 13) {
            lowValues.add(new PointValueExtended((float) (bgReading.timestamp / FUZZER), (float) unitized(40), (float) unitized(bgReading.filtered_calculated_value)));
        }

        if ((show_filtered) && (bgReading.filtered_calculated_value > 0) && (bgReading.filtered_calculated_value != bgReading.calculated_value)) {
            filteredValues.add(new PointValueExtended((float) ((bgReading.timestamp - timeshift) / FUZZER), (float) unitized(bgReading.filtered_calculated_value)));
        }
    }
    for (Calibration calibration : calibrations) {
        calibrationValues.add(new PointValueExtended((float) (calibration.timestamp / FUZZER), (float) unitized(calibration.bg)));
    }
}
 
源代码11 项目: xDrip-Experimental   文件: NightscoutUploader.java
private void populateV1APICalibrationEntry(JSONArray array, Calibration record) throws Exception {

            //do not upload undefined slopes
            if(record.slope == 0d) return;

            JSONObject json = new JSONObject();
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ", Locale.US);
            format.setTimeZone(TimeZone.getDefault());
            json.put("device", "xDrip-" + prefs.getString("dex_collection_method", "BluetoothWixel"));
            json.put("type", "cal");
            json.put("date", record.timestamp);
            json.put("dateString", format.format(record.timestamp));
            json.put("slope", getNightscoutSlope(record));
            json.put("intercept", getNightscoutIntercept(record));
            json.put("scale", getNightscoutScale(record));
            json.put("sysTime", format.format(record.timestamp));
            array.put(json);
        }
 
源代码12 项目: xDrip-plus   文件: GcmActivity.java
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;
}
 
源代码13 项目: xDrip-plus   文件: NightscoutUploader.java
public boolean uploadRest(List<BgReading> glucoseDataSets, List<BloodTest> meterRecords, List<Calibration> calRecords) {

        boolean apiStatus = false;

        if (enableRESTUpload) {
            long start = System.currentTimeMillis();
            Log.i(TAG, String.format("Starting upload of %s record using a REST API", glucoseDataSets.size()));
            apiStatus = doRESTUpload(prefs, glucoseDataSets, meterRecords, calRecords);
            Log.i(TAG, String.format("Finished upload of %s record using a REST API in %s ms result: %b", glucoseDataSets.size(), System.currentTimeMillis() - start, apiStatus));

            if (prefs.getBoolean("cloud_storage_api_download_enable", false)) {
                start = System.currentTimeMillis();
                final boolean substatus = doRESTtreatmentDownload(prefs);
                if (substatus) {
                    Home.staticRefreshBGCharts();
                }
                Log.i(TAG, String.format("Finished download using a REST API in %s ms result: %b", System.currentTimeMillis() - start, substatus));
            }
        }
        return apiStatus;
    }
 
源代码14 项目: xDrip-plus   文件: InfluxDBUploader.java
private Point createCalibrationPoint(Calibration record) {
    Point.Builder builder = Point.measurement("calibration")
            .time(record.timestamp, TimeUnit.MILLISECONDS)
            .tag("device", "xDrip-" + prefs.getString("dex_collection_method", "BluetoothWixel"))
            .tag("type", "cal");

    if (record.check_in) {
        builder.addField("slope", record.first_slope)
                .addField("intercept", record.first_intercept)
                .addField("scale", record.first_scale);
    } else {
        builder.addField("slope", (1000 / record.slope))
                .addField("intercept", ((record.intercept * -1000) / record.slope))
                .addField("scale", 1);
    }

    return builder.build();
}
 
源代码15 项目: xDrip   文件: ListenerService.java
public static DataMap getCalibrations(long startTime) {
    Calibration last = Calibration.last();
    if (last != null) {
        Log.d(TAG, "getCalibrations last.timestamp:" +  JoH.dateTimeText(last.timestamp));
    }
    List<Calibration> graph = Calibration.latestForGraph(60, startTime, Long.MAX_VALUE);
    //calibrations = Calibration.latestForGraph(numValues, start - (3 * Constants.DAY_IN_MS), end);
    if (!graph.isEmpty()) {
        Log.d(TAG, "getCalibrations graph size=" + graph.size());
        final ArrayList<DataMap> dataMaps = new ArrayList<>(graph.size());
        DataMap entries = null;
        //if (last.slope_confidence != 0) entries = dataMapForWatchface(last);
        for (Calibration data : graph) {
            if (data.slope_confidence != 0) {
                if (entries == null) {
                    entries = dataMapForWatchface(data);
                    dataMaps.add(dataMapForWatchface(data));
                }
                else
                    dataMaps.add(dataMapForWatchface(data));
            }
        }
        if (entries != null) {
            entries.putDataMapArrayList("entries", dataMaps);
            Log.d(TAG, "getCalibrations entries=" + entries);
        }
        return entries;
    }
    else return null;
}
 
源代码16 项目: xDrip   文件: CalibrationSendQueue.java
public static void addToQueue(Calibration calibration, Context context) {
    CalibrationSendQueue calibrationSendQueue = new CalibrationSendQueue();
    calibrationSendQueue.calibration = calibration;
    calibrationSendQueue.success = false;
    calibrationSendQueue.mongo_success = false;
    calibrationSendQueue.save();
}
 
源代码17 项目: xDrip   文件: CalibrationDataTable.java
public void bindView(View view, Context context, Calibration calibration) {
    final CalibrationDataCursorAdapterViewHolder tag = (CalibrationDataCursorAdapterViewHolder) view.getTag();
    tag.raw_data_id.setText(Double.toString(calibration.bg));
    tag.raw_data_value.setText(Double.toString(calibration.estimate_raw_at_time_of_calibration));
    tag.raw_data_slope.setText(Double.toString(calibration.slope));
    tag.raw_data_timestamp.setText(Double.toString(calibration.intercept));
}
 
源代码18 项目: xDrip   文件: CalibrationDataTable.java
private void getData() {
    final long startTime = new Date().getTime() - (60000 * 60 * 24 * 3);//3 days
    final List<Calibration> latest = Calibration.latestForGraph(60, startTime);

    CalibrationDataCursorAdapter adapter = new CalibrationDataCursorAdapter(this, latest);
    this.setListAdapter(adapter);

    String msg = "";
    int size = 0;
    if (latest != null) size = latest.size();
    if (size == 0) {
        msg = getResources().getString(R.string.notify_table_size, "Calibration", size);
        JoH.static_toast(xdrip.getAppContext(), msg, Toast.LENGTH_SHORT);
    }
}
 
源代码19 项目: xDrip-Experimental   文件: NightscoutUploader.java
public static double getNightscoutScale(Calibration cal) {
    if(cal.check_in) {
        return  cal.first_scale;
    } else {
        return 1;
    }
}
 
源代码20 项目: xDrip   文件: NightscoutUploader.java
public boolean upload(BgReading glucoseDataSet, Calibration meterRecord, Calibration calRecord) {
    List<BgReading> glucoseDataSets = new ArrayList<BgReading>();
    glucoseDataSets.add(glucoseDataSet);
    List<Calibration> meterRecords = new ArrayList<Calibration>();
    meterRecords.add(meterRecord);
    List<Calibration> calRecords = new ArrayList<Calibration>();
    calRecords.add(calRecord);
    return upload(glucoseDataSets, meterRecords, calRecords);
}
 
源代码21 项目: xDrip   文件: GcmActivity.java
static void upsertSensorCalibratonsFromJson(String json) {
    Log.i(TAG, "upsertSensorCalibratonsFromJson called");
    SensorCalibrations[] sensorCalibrations = getSensorCalibrations(json);
    for (SensorCalibrations SensorCalibration : sensorCalibrations) {
        Sensor.upsertFromMaster(SensorCalibration.sensor);
        for (Calibration calibration : SensorCalibration.calibrations) {
            Log.d(TAG, "upsertSensorCalibratonsFromJson updating calibration " + calibration.uuid);
            Calibration.upsertFromMaster(calibration);
        }
    }
}
 
源代码22 项目: xDrip   文件: UploaderQueue.java
public static UploaderQueue newEntryForWatch(String action, Model obj) {
    UserError.Log.d(TAG, "new entry called for watch");
    final UploaderQueue result = new UploaderQueue();
    result.bitfield_wanted = DEFAULT_UPLOAD_CIRCUITS
            | (Pref.getBooleanDefaultFalse("wear_sync") ? WATCH_WEARAPI : 0);
    if (result.bitfield_wanted == 0) return null; // no queue required
    result.timestamp = JoH.tsl();
    result.reference_id = obj.getId();
    // TODO this probably could be neater
    if (result.reference_uuid == null)
        result.reference_uuid = obj instanceof BgReading ? ((BgReading) obj).uuid : null;
    if (result.reference_uuid == null)
        result.reference_uuid = obj instanceof Treatments ? ((Treatments) obj).uuid : null;
    if (result.reference_uuid == null)
        result.reference_uuid = obj instanceof Calibration ? ((Calibration) obj).uuid : null;
    if (result.reference_uuid == null)
        result.reference_uuid = obj instanceof BloodTest ? ((BloodTest) obj).uuid : null;

    if (result.reference_uuid == null) {
        Log.d(TAG, "reference_uuid was null so refusing to create new entry");
        return null;
    }

    if (result.reference_id < 0) {
        UserError.Log.wtf(TAG, "Watch ERROR ref id was: " + result.reference_id + " for uuid: " + result.reference_uuid + " refusing to create");
        return null;
    }

    result.action = action;

    result.bitfield_complete = 0;
    result.type = obj.getClass().getSimpleName();
    result.saveit();
    if (d) UserError.Log.d(TAG, result.toS());
    last_new_entry = JoH.tsl();
    return result;
}
 
源代码23 项目: xDrip   文件: UndoRedo.java
public static boolean undoNextItem() {
    if (undoListHasItems()) {
        synchronized (queue_lock) {
            final int location = undo_queue.size() - 1;
            Undo_item item = undo_queue.get(location);
            if (item.Treatment_uuid != null) {
                try {
                    item.saved_data = Treatments.byuuid(item.Treatment_uuid).toJSON();
                    item.expires = JoH.ts() + EXPIRY_TIME;
                    redo_queue.add(item);
                    undo_queue.remove(location);
                    Treatments.delete_by_uuid(item.Treatment_uuid,true);
                } catch (NullPointerException e) {
                    UserError.Log.wtf(TAG, "Null pointer exception in undoNext()");
                    undo_queue.remove(location);
                }
                return true;
            } else if (item.Calibration_uuid != null) {
                // TODO try catch
                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 false;
    } else {
        return false;
    }

}
 
源代码24 项目: xDrip   文件: CalibrationSendQueue.java
public static void addToQueue(Calibration calibration, Context context) {

        // TODO support for various insert/update/delete functions

        //  CalibrationSendQueue calibrationSendQueue = new CalibrationSendQueue();
        //  calibrationSendQueue.calibration = calibration;
        //  calibrationSendQueue.success = false;
        //  calibrationSendQueue.mongo_success = false;
        //  calibrationSendQueue.save();
        UploaderQueue.newEntry("create", calibration);
        Log.i(TAG, "calling SensorSendQueue.SendToFollower");
        SensorSendQueue.SendToFollower(Sensor.getByUuid(calibration.sensor_uuid));
    }
 
源代码25 项目: xDrip   文件: NightscoutUploader.java
public boolean uploadMongo(List<BgReading> glucoseDataSets, List<Calibration> meterRecords, List<Calibration> calRecords, List<TransmitterData> transmittersData, List<LibreBlock> libreBlock) {
    boolean mongoStatus = false;


    if (enableMongoUpload) {
        double start = new Date().getTime();
        mongoStatus = doMongoUpload(prefs, glucoseDataSets, meterRecords, calRecords, transmittersData, libreBlock);
        Log.i(TAG, String.format("Finished upload of %s record using a Mongo in %s ms result: %b", 
                glucoseDataSets.size() + meterRecords.size() + calRecords.size() + transmittersData.size() + libreBlock.size(), System.currentTimeMillis() - start, mongoStatus));
    }

    return mongoStatus;
}
 
源代码26 项目: xDrip   文件: NightscoutUploader.java
private void populateV1APICalibrationEntry(JSONArray array, Calibration record) throws Exception {
    if (record == null) {
        Log.e(TAG, "Received null calibration record in populateV1ApiCalibrationEntry !");
        return;
    }
    //do not upload undefined slopes
    if(record.slope == 0d) return;

    JSONObject json = new JSONObject();
    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ", Locale.US);
    format.setTimeZone(TimeZone.getDefault());
    json.put("device", "xDrip-" + prefs.getString("dex_collection_method", "BluetoothWixel"));
    json.put("type", "cal");
    json.put("date", record.timestamp);
    json.put("dateString", format.format(record.timestamp));
    if(record.check_in) {
        json.put("slope", (record.first_slope));
        json.put("intercept", ((record.first_intercept)));
        json.put("scale", record.first_scale);
    } else {
        json.put("slope", (1000/record.slope));
        json.put("intercept", ((record.intercept * -1000) / (record.slope)));
        json.put("scale", 1);
    }
    json.put("sysTime", format.format(record.timestamp));
    array.put(json);
}
 
源代码27 项目: xDrip   文件: Notifications.java
private void calibrationRequest() {
    UserNotification userNotification = UserNotification.lastCalibrationAlert();
    if ((userNotification == null) || (userNotification.timestamp <= ((new Date().getTime()) - (60000 * calibration_snooze)))) {
        if (userNotification != null) {
            userNotification.delete();
        }
        final long calibration_hours = Calibration.msSinceLastCalibration() / (1000 * 60 * 60);
        UserNotification.create(calibration_hours + " hours since last Calibration  (@" + JoH.hourMinuteString() + ")", "calibration_alert", new Date().getTime());
        String title = "Calibration Needed";
        String content = calibration_hours + " hours since last calibration";
        Intent intent = new Intent(mContext, AddCalibration.class);
        calibrationNotificationCreate(title, content, intent, calibrationNotificationId);
    }
}
 
源代码28 项目: xDrip   文件: CalibrationDataTable.java
CalibrationDataCursorAdapter(Context context, List<Calibration> calibrations) {
    this.context = context;
    if(calibrations == null)
        calibrations = new ArrayList<>();

    this.calibrations = calibrations;
}
 
源代码29 项目: xDrip-plus   文件: SystemStatus.java
private void futureDataCheck() {
    futureDataDeleteButton.setVisibility(View.GONE);
    final List<BgReading> futureReadings = BgReading.futureReadings();
    final List<Calibration> futureCalibrations = Calibration.futureCalibrations();
    if((futureReadings != null && futureReadings.size() > 0) || (futureCalibrations != null && futureCalibrations.size() > 0)) {
        notes.append("\n- Your device has future data on it, Please double check the time and timezone on this phone.");
        futureDataDeleteButton.setVisibility(View.VISIBLE);
    }
    futureDataDeleteButton.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            if(futureReadings != null && futureReadings.size() > 0) {
                for (BgReading bgReading : futureReadings) {
                    bgReading.calculated_value = 0;
                    bgReading.raw_data = 0;
                    bgReading.timestamp = 0;
                    bgReading.save();
                }
            }
            if(futureCalibrations != null && futureCalibrations.size() > 0) {
                for (Calibration calibration : futureCalibrations) {
                    calibration.slope_confidence = 0;
                    calibration.sensor_confidence = 0;
                    calibration.timestamp = 0;
                    calibration.save();
                }
            }
        }
    });
}
 
源代码30 项目: xDrip   文件: SystemStatus.java
private void futureDataCheck() {
    futureDataDeleteButton.setVisibility(View.GONE);
    final List<BgReading> futureReadings = BgReading.futureReadings();
    final List<Calibration> futureCalibrations = Calibration.futureCalibrations();
    if((futureReadings != null && futureReadings.size() > 0) || (futureCalibrations != null && futureCalibrations.size() > 0)) {
        notes.append("\n- Your device has future data on it, Please double check the time and timezone on this phone.");
        futureDataDeleteButton.setVisibility(View.VISIBLE);
    }
    futureDataDeleteButton.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            if(futureReadings != null && futureReadings.size() > 0) {
                for (BgReading bgReading : futureReadings) {
                    bgReading.calculated_value = 0;
                    bgReading.raw_data = 0;
                    bgReading.timestamp = 0;
                    bgReading.save();
                }
            }
            if(futureCalibrations != null && futureCalibrations.size() > 0) {
                for (Calibration calibration : futureCalibrations) {
                    calibration.slope_confidence = 0;
                    calibration.sensor_confidence = 0;
                    calibration.timestamp = 0;
                    calibration.save();
                }
            }
        }
    });
}