Java Code Examples for com.eveningoutpost.dexdrip.Services.DexCollectionService

The following examples show how to use com.eveningoutpost.dexdrip.Services.DexCollectionService. These examples are extracted from open source projects. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source Project: xDrip   Source File: Blukon.java    License: GNU General Public License v3.0 6 votes vote down vote up
private static synchronized void processNewTransmitterData(TransmitterData transmitterData) {
    if (transmitterData == null) {
        Log.e(TAG, "Got duplicated data! Last BG at " + JoH.dateTimeText(m_timeLastBg));
        return;
    }

    final Sensor sensor = Sensor.currentSensor();
    if (sensor == null) {
        Log.i(TAG, "processNewTransmitterData: No Active Sensor, Data only stored in Transmitter Data");
        return;
    }

    DexCollectionService.last_transmitter_Data = transmitterData;
    Log.d(TAG, "BgReading.create: new BG reading at " + transmitterData.timestamp);
    BgReading.create(transmitterData.raw_data, transmitterData.filtered_data, xdrip.getAppContext(), transmitterData.timestamp);
}
 
Example 2
Source Project: xDrip   Source File: Blukon.java    License: GNU General Public License v3.0 6 votes vote down vote up
private static synchronized void processNewTransmitterData(TransmitterData transmitterData) {
    if (transmitterData == null) {
        Log.e(TAG, "Got duplicated data! Last BG at " + JoH.dateTimeText(m_timeLastBg));
        return;
    }

    final Sensor sensor = Sensor.currentSensor();
    if (sensor == null) {
        Log.i(TAG, "processNewTransmitterData: No Active Sensor, Data only stored in Transmitter Data");
        return;
    }

    DexCollectionService.last_transmitter_Data = transmitterData;
    Log.d(TAG, "BgReading.create: new BG reading at " + transmitterData.timestamp);
    BgReading.create(transmitterData.raw_data, transmitterData.filtered_data, xdrip.getAppContext(), transmitterData.timestamp);
}
 
Example 3
Source Project: xDrip-plus   Source File: Blukon.java    License: GNU General Public License v3.0 6 votes vote down vote up
private static synchronized void processNewTransmitterData(TransmitterData transmitterData) {
    if (transmitterData == null) {
        Log.e(TAG, "Got duplicated data! Last BG at " + JoH.dateTimeText(m_timeLastBg));
        return;
    }

    final Sensor sensor = Sensor.currentSensor();
    if (sensor == null) {
        Log.i(TAG, "processNewTransmitterData: No Active Sensor, Data only stored in Transmitter Data");
        return;
    }

    DexCollectionService.last_transmitter_Data = transmitterData;
    Log.d(TAG, "BgReading.create: new BG reading at " + transmitterData.timestamp);
    BgReading.create(transmitterData.raw_data, transmitterData.filtered_data, xdrip.getAppContext(), transmitterData.timestamp);
}
 
Example 4
Source Project: xDrip-plus   Source File: Blukon.java    License: GNU General Public License v3.0 6 votes vote down vote up
private static synchronized void processNewTransmitterData(TransmitterData transmitterData) {
    if (transmitterData == null) {
        Log.e(TAG, "Got duplicated data! Last BG at " + JoH.dateTimeText(m_timeLastBg));
        return;
    }

    final Sensor sensor = Sensor.currentSensor();
    if (sensor == null) {
        Log.i(TAG, "processNewTransmitterData: No Active Sensor, Data only stored in Transmitter Data");
        return;
    }

    DexCollectionService.last_transmitter_Data = transmitterData;
    Log.d(TAG, "BgReading.create: new BG reading at " + transmitterData.timestamp);
    BgReading.create(transmitterData.raw_data, transmitterData.filtered_data, xdrip.getAppContext(), transmitterData.timestamp);
}
 
Example 5
public void startBtWixelService() {//private
    Log.d(TAG, "starting bt wixel service");
    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN_MR2) {
        Log.d(TAG, "SDK_INT >=JELLY_BEAN_MR2");
        PersistentStore.setBoolean(pref_run_wear_collector, true);
        this.mContext.startService(new Intent(this.mContext, DexCollectionService.class));
        Log.d(TAG, "After startService");
    }
    Log.d(TAG, "exit");
}
 
Example 6
Source Project: xDrip   Source File: BlueReaderTest.java    License: GNU General Public License v3.0 5 votes vote down vote up
@Test
public void processNewTransmitterData_NormalBg_FullBattery() {
    // Setup
    String message = "150000 4300";
    Sensor mockSensor = createMockSensor();

    addMockBgReading(150, 15, mockSensor);
    addMockBgReading(150, 10, mockSensor);
    addMockBgReading(150, 5, mockSensor);
    Calibration.initialCalibration(150, 150, RuntimeEnvironment.application.getApplicationContext());

    // Act
    byte[] bytes = blueReader.decodeblueReaderPacket(message.getBytes(), message.length());

    // Verify
    assertThat(bytes).isNull();
    assertThat(PersistentStore.getLong("blueReader_Full_Battery")).isEqualTo(4300);
    assertThat(PersistentStore.getString("bridge_battery_days")).isEqualTo("6.1");
    assertThat(Pref.getInt("bridge_battery", -1)).isEqualTo(100);
    assertThat(getLogs()).contains("BgReading.create: new BG reading at ");

    assertThat(Sensor.currentSensor().latest_battery_level).isEqualTo(100);

    TransmitterData lastTransmitterData = DexCollectionService.last_transmitter_Data;
    assertThat(lastTransmitterData.filtered_data).isEqualTo(150000.0);
    assertThat(lastTransmitterData.raw_data).isEqualTo(150000.0);
    assertThat(lastTransmitterData.sensor_battery_level).isEqualTo(4300);

    BgReading lastBgReading = BgReading.last();
    assertThat(lastBgReading.raw_data).isEqualTo(150.0d);
    assertThat(lastBgReading.filtered_data).isEqualTo(150.0d);
}
 
Example 7
Source Project: xDrip   Source File: BlueReaderTest.java    License: GNU General Public License v3.0 5 votes vote down vote up
@Test
public void processNewTransmitterData_NormalBg_SomeBattery() {
    // Setup
    String message = "150000 3900";
    Sensor mockSensor = createMockSensor();
    addMockBgReading(150, 15, mockSensor);
    addMockBgReading(150, 10, mockSensor);
    addMockBgReading(150, 5, mockSensor);
    Calibration.initialCalibration(150, 150, RuntimeEnvironment.application.getApplicationContext());

    // Act
    byte[] bytes = blueReader.decodeblueReaderPacket(message.getBytes(), message.length());

    // Verify
    assertThat(bytes).isNull();
    assertThat(PersistentStore.getLong("blueReader_Full_Battery")).isEqualTo(4100);
    assertThat(PersistentStore.getString("bridge_battery_days")).isEqualTo("5.5");
    assertThat(Pref.getInt("bridge_battery", -1)).isEqualTo(75);
    assertThat(getLogs()).contains("BgReading.create: new BG reading at ");

    assertThat(Sensor.currentSensor().latest_battery_level).isEqualTo(75);

    TransmitterData lastTransmitterData = DexCollectionService.last_transmitter_Data;
    assertThat(lastTransmitterData.filtered_data).isEqualTo(150000.0);
    assertThat(lastTransmitterData.raw_data).isEqualTo(150000.0);
    assertThat(lastTransmitterData.sensor_battery_level).isEqualTo(3900);

    BgReading lastBgReading = BgReading.last();
    assertThat(lastBgReading.raw_data).isEqualTo(150.0d);
    assertThat(lastBgReading.filtered_data).isEqualTo(150.0d);
}
 
Example 8
Source Project: xDrip   Source File: BlueReaderTest.java    License: GNU General Public License v3.0 5 votes vote down vote up
@Test
public void processNewTransmitterData_NormalBg_LowBattery() {
    // Setup
    Pref.setBoolean("blueReader_turn_off", false);
    String message = "150000 3300";
    Sensor mockSensor = createMockSensor();
    addMockBgReading(150, 15, mockSensor);
    addMockBgReading(150, 10, mockSensor);
    addMockBgReading(150, 5, mockSensor);
    Calibration.initialCalibration(150, 150, RuntimeEnvironment.application.getApplicationContext());

    // Act
    byte[] bytes = blueReader.decodeblueReaderPacket(message.getBytes(), message.length());

    // Verify
    assertThat(bytes).isNull();
    assertThat(PersistentStore.getLong("blueReader_Full_Battery")).isEqualTo(4100);
    assertThat(PersistentStore.getString("bridge_battery_days")).isEqualTo("0.1");
    assertThat(Pref.getInt("bridge_battery", -1)).isEqualTo(0);
    assertThat(getLogs()).contains("BgReading.create: new BG reading at ");

    assertThat(Sensor.currentSensor().latest_battery_level).isEqualTo(0);

    TransmitterData lastTransmitterData = DexCollectionService.last_transmitter_Data;
    assertThat(lastTransmitterData.filtered_data).isEqualTo(150000.0);
    assertThat(lastTransmitterData.raw_data).isEqualTo(150000.0);
    assertThat(lastTransmitterData.sensor_battery_level).isEqualTo(3300);

    BgReading lastBgReading = BgReading.last();
    assertThat(lastBgReading.raw_data).isEqualTo(150.0d);
    assertThat(lastBgReading.filtered_data).isEqualTo(150.0d);
}
 
Example 9
public void startBtWixelService() {//private
    Log.d(TAG, "starting bt wixel service");
    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN_MR2) {
        Log.d(TAG, "SDK_INT >=JELLY_BEAN_MR2");
        PersistentStore.setBoolean(pref_run_wear_collector, true);
        this.mContext.startService(new Intent(this.mContext, DexCollectionService.class));
        Log.d(TAG, "After startService");
    }
    Log.d(TAG, "exit");
}
 
Example 10
Source Project: xDrip-plus   Source File: BlueReaderTest.java    License: GNU General Public License v3.0 5 votes vote down vote up
@Test
public void processNewTransmitterData_NormalBg_FullBattery() {
    // Setup
    String message = "150000 4300";
    Sensor mockSensor = createMockSensor();

    addMockBgReading(150, 15, mockSensor);
    addMockBgReading(150, 10, mockSensor);
    addMockBgReading(150, 5, mockSensor);
    Calibration.initialCalibration(150, 150, RuntimeEnvironment.application.getApplicationContext());

    // Act
    byte[] bytes = blueReader.decodeblueReaderPacket(message.getBytes(), message.length());

    // Verify
    assertThat(bytes).isNull();
    assertThat(PersistentStore.getLong("blueReader_Full_Battery")).isEqualTo(4300);
    assertThat(PersistentStore.getString("bridge_battery_days")).isEqualTo("6.1");
    assertThat(Pref.getInt("bridge_battery", -1)).isEqualTo(100);
    assertThat(getLogs()).contains("BgReading.create: new BG reading at ");

    assertThat(Sensor.currentSensor().latest_battery_level).isEqualTo(100);

    TransmitterData lastTransmitterData = DexCollectionService.last_transmitter_Data;
    assertThat(lastTransmitterData.filtered_data).isEqualTo(150000.0);
    assertThat(lastTransmitterData.raw_data).isEqualTo(150000.0);
    assertThat(lastTransmitterData.sensor_battery_level).isEqualTo(4300);

    BgReading lastBgReading = BgReading.last();
    assertThat(lastBgReading.raw_data).isEqualTo(150.0d);
    assertThat(lastBgReading.filtered_data).isEqualTo(150.0d);
}
 
Example 11
Source Project: xDrip-plus   Source File: BlueReaderTest.java    License: GNU General Public License v3.0 5 votes vote down vote up
@Test
public void processNewTransmitterData_NormalBg_SomeBattery() {
    // Setup
    String message = "150000 3900";
    Sensor mockSensor = createMockSensor();
    addMockBgReading(150, 15, mockSensor);
    addMockBgReading(150, 10, mockSensor);
    addMockBgReading(150, 5, mockSensor);
    Calibration.initialCalibration(150, 150, RuntimeEnvironment.application.getApplicationContext());

    // Act
    byte[] bytes = blueReader.decodeblueReaderPacket(message.getBytes(), message.length());

    // Verify
    assertThat(bytes).isNull();
    assertThat(PersistentStore.getLong("blueReader_Full_Battery")).isEqualTo(4100);
    assertThat(PersistentStore.getString("bridge_battery_days")).isEqualTo("5.5");
    assertThat(Pref.getInt("bridge_battery", -1)).isEqualTo(75);
    assertThat(getLogs()).contains("BgReading.create: new BG reading at ");

    assertThat(Sensor.currentSensor().latest_battery_level).isEqualTo(75);

    TransmitterData lastTransmitterData = DexCollectionService.last_transmitter_Data;
    assertThat(lastTransmitterData.filtered_data).isEqualTo(150000.0);
    assertThat(lastTransmitterData.raw_data).isEqualTo(150000.0);
    assertThat(lastTransmitterData.sensor_battery_level).isEqualTo(3900);

    BgReading lastBgReading = BgReading.last();
    assertThat(lastBgReading.raw_data).isEqualTo(150.0d);
    assertThat(lastBgReading.filtered_data).isEqualTo(150.0d);
}
 
Example 12
Source Project: xDrip-plus   Source File: BlueReaderTest.java    License: GNU General Public License v3.0 5 votes vote down vote up
@Test
public void processNewTransmitterData_NormalBg_LowBattery() {
    // Setup
    Pref.setBoolean("blueReader_turn_off", false);
    String message = "150000 3300";
    Sensor mockSensor = createMockSensor();
    addMockBgReading(150, 15, mockSensor);
    addMockBgReading(150, 10, mockSensor);
    addMockBgReading(150, 5, mockSensor);
    Calibration.initialCalibration(150, 150, RuntimeEnvironment.application.getApplicationContext());

    // Act
    byte[] bytes = blueReader.decodeblueReaderPacket(message.getBytes(), message.length());

    // Verify
    assertThat(bytes).isNull();
    assertThat(PersistentStore.getLong("blueReader_Full_Battery")).isEqualTo(4100);
    assertThat(PersistentStore.getString("bridge_battery_days")).isEqualTo("0.1");
    assertThat(Pref.getInt("bridge_battery", -1)).isEqualTo(0);
    assertThat(getLogs()).contains("BgReading.create: new BG reading at ");

    assertThat(Sensor.currentSensor().latest_battery_level).isEqualTo(0);

    TransmitterData lastTransmitterData = DexCollectionService.last_transmitter_Data;
    assertThat(lastTransmitterData.filtered_data).isEqualTo(150000.0);
    assertThat(lastTransmitterData.raw_data).isEqualTo(150000.0);
    assertThat(lastTransmitterData.sensor_battery_level).isEqualTo(3300);

    BgReading lastBgReading = BgReading.last();
    assertThat(lastBgReading.raw_data).isEqualTo(150.0d);
    assertThat(lastBgReading.filtered_data).isEqualTo(150.0d);
}
 
Example 13
Source Project: xDrip   Source File: blueReader.java    License: GNU General Public License v3.0 4 votes vote down vote up
private static synchronized void processNewTransmitterData(TransmitterData transmitterData, long timestamp) {
    if (transmitterData == null) {
        return;
    }

    final Sensor sensor = Sensor.currentSensor();
    if (sensor == null) {
        Log.i(TAG, "setSerialDataToTransmitterRawData: No Active Sensor, Data only stored in Transmitter Data");
        return;
    }

    if(PersistentStore.getLong("blueReader_Full_Battery") <3000 )
        PersistentStore.setLong("blueReader_Full_Battery", 4100);

    double blueReaderDays =0;
    if (transmitterData.sensor_battery_level > PersistentStore.getLong("blueReader_Full_Battery")) {
        PersistentStore.setLong("blueReader_Full_Battery", transmitterData.sensor_battery_level);
        Log.i(TAG, "blueReader_Full_Battery set to: " + transmitterData.sensor_battery_level) ;
    }
    int localBridgeBattery =((transmitterData.sensor_battery_level - 3300) * 100 / (((int) (long) PersistentStore.getLong("blueReader_Full_Battery"))-3300));
    Pref.setInt("bridge_battery", localBridgeBattery);
    sensor.latest_battery_level = localBridgeBattery;
    blueReaderDays = 6.129200670865791d / (1d + Math.pow(((double)transmitterData.sensor_battery_level/3763.700630306379d),(-61.04241888028577d))); //todo compare with test-formular, and new Data of batterylog
    if (transmitterData.sensor_battery_level < 3600) {
        blueReaderDays=blueReaderDays + 0.1d;
    }
    blueReaderDays = ((Math.round((blueReaderDays)*10d)/10d));

    PersistentStore.setString("bridge_battery_days", String.valueOf(blueReaderDays));
    sensor.save();
    if (Pref.getBooleanDefaultFalse("blueReader_writebatterylog")) {
        final String dir = getExternalDir();
        makeSureDirectoryExists(dir);
        writeLog(dir + BatLog,
                DateFormat.format("yyyyMMdd-kkmmss", System.currentTimeMillis()).toString() + "|" +
                        PersistentStore.getLong("blueReader_Full_Battery") + "|" +
                        transmitterData.sensor_battery_level + "|" +
                        sensor.latest_battery_level + "|" +
                        blueReaderDays
        );
    }
    DexCollectionService.last_transmitter_Data = transmitterData;
    Log.d(TAG, "BgReading.create: new BG reading at " + timestamp + " with a timestamp of " + transmitterData.timestamp);
    BgReading.create(transmitterData.raw_data, transmitterData.filtered_data, xdrip.getAppContext(), transmitterData.timestamp);

}
 
Example 14
Source Project: xDrip   Source File: ListenerService.java    License: GNU General Public License v3.0 4 votes vote down vote up
private void sendCollectorStatus (Context context, String path) {
    String msg;
    //long last_timestamp = 0;
    DataMap dataMap = new DataMap();
    switch (DexCollectionType.getDexCollectionType()) {
        case DexcomG5:

            if (DexCollectionType.getCollectorServiceClass() == G5CollectionService.class) {
                dataMap = G5CollectionService.getWatchStatus();//msg, last_timestamp
            } else {
                dataMap = Ob1G5CollectionService.getWatchStatus();//msg, last_timestamp
            }
            break;
        case DexcomShare://TODO getLastState() in non-G5 Services
            BluetoothManager mBluetoothManager = (BluetoothManager) context.getSystemService(Context.BLUETOOTH_SERVICE);
            ActiveBluetoothDevice activeBluetoothDevice = ActiveBluetoothDevice.first();
            boolean connected = false;
            if (mBluetoothManager != null && activeBluetoothDevice != null) {
                for (BluetoothDevice bluetoothDevice : mBluetoothManager.getConnectedDevices(BluetoothProfile.GATT)) {
                    if (bluetoothDevice.getAddress().compareTo(activeBluetoothDevice.address) == 0) {
                        connected = true;
                    }
                }
            }
            if (connected) {
                msg = "Connected on watch";
            } else {
                msg = "Not Connected";
            }
            dataMap.putString("lastState", msg);
            break;
        default:
            dataMap = DexCollectionService.getWatchStatus();
            break;
    }
    if (dataMap != null) {
        dataMap.putString("action_path", path);
    }

    //sendReplyMsg (msg, last_timestamp, path, false);
    sendData(WEARABLE_REPLYMSG_PATH, dataMap.toByteArray());
}
 
Example 15
public void stopBtWixelService() {//private
    Log.d(TAG, "stopping bt wixel service");
    this.mContext.stopService(new Intent(this.mContext, DexCollectionService.class));
}
 
Example 16
Source Project: xDrip   Source File: blueReader.java    License: GNU General Public License v3.0 4 votes vote down vote up
private static synchronized void processNewTransmitterData(TransmitterData transmitterData, long timestamp) {
    if (transmitterData == null) {
        return;
    }

    final Sensor sensor = Sensor.currentSensor();
    if (sensor == null) {
        Log.i(TAG, "setSerialDataToTransmitterRawData: No Active Sensor, Data only stored in Transmitter Data");
        return;
    }

    if(PersistentStore.getLong("blueReader_Full_Battery") <3000 )
        PersistentStore.setLong("blueReader_Full_Battery", 4100);

    double blueReaderDays =0;
    if (transmitterData.sensor_battery_level > PersistentStore.getLong("blueReader_Full_Battery")) {
        PersistentStore.setLong("blueReader_Full_Battery", transmitterData.sensor_battery_level);
        Log.i(TAG, "blueReader_Full_Battery set to: " + transmitterData.sensor_battery_level) ;
    }
    int localBridgeBattery =((transmitterData.sensor_battery_level - 3300) * 100 / (((int) (long) PersistentStore.getLong("blueReader_Full_Battery"))-3300));
    Pref.setInt("bridge_battery", localBridgeBattery);
    sensor.latest_battery_level = localBridgeBattery;
    blueReaderDays = 6.129200670865791d / (1d + Math.pow(((double)transmitterData.sensor_battery_level/3763.700630306379d),(-61.04241888028577d))); //todo compare with test-formular, and new Data of batterylog
    if (transmitterData.sensor_battery_level < 3600) {
        blueReaderDays=blueReaderDays + 0.1d;
    }
    blueReaderDays = ((Math.round((blueReaderDays)*10d)/10d));

    PersistentStore.setString("bridge_battery_days", String.valueOf(blueReaderDays));
    sensor.save();
    if (Pref.getBooleanDefaultFalse("blueReader_writebatterylog")) {
        final String dir = getExternalDir();
        makeSureDirectoryExists(dir);
        writeLog(dir + BatLog,
                DateFormat.format("yyyyMMdd-kkmmss", System.currentTimeMillis()).toString() + "|" +
                        PersistentStore.getLong("blueReader_Full_Battery") + "|" +
                        transmitterData.sensor_battery_level + "|" +
                        sensor.latest_battery_level + "|" +
                        blueReaderDays
        );
    }
    DexCollectionService.last_transmitter_Data = transmitterData;
    Log.d(TAG, "BgReading.create: new BG reading at " + timestamp + " with a timestamp of " + transmitterData.timestamp);
    BgReading.create(transmitterData.raw_data, transmitterData.filtered_data, xdrip.getAppContext(), transmitterData.timestamp);

}
 
Example 17
private void startBtWixelService() {
    Log.d(TAG, "starting bt wixel service");
    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN_MR2) {
        startServiceCompat(new Intent(this.mContext, DexCollectionService.class));
    }
}
 
Example 18
private void stopBtWixelService() {
    Log.d(TAG, "stopping bt wixel service");
    this.mContext.stopService(new Intent(this.mContext, DexCollectionService.class));
}
 
Example 19
Source Project: xDrip   Source File: NightscoutUploader.java    License: GNU General Public License v3.0 4 votes vote down vote up
private void postDeviceStatus(NightscoutService nightscoutService, String apiSecret) throws Exception {

        // TODO optimize based on changes avoiding stale marker issues
        final boolean always_send_battery = true; // nightscout doesn't currently display device device status if it thinks its stale
        final List<String> batteries = new ArrayList<>();
        batteries.add("Phone");
        if ((DexCollectionType.hasBattery() && (Pref.getBoolean("send_bridge_battery_to_nightscout", true)))
                || (Home.get_forced_wear() && DexCollectionType.getDexCollectionType().equals(DexCollectionType.DexcomG5))) {
            batteries.add("Bridge");
        }
        if (DexCollectionType.hasWifi()) batteries.add("Parakeet");

        for (String battery : batteries) {

            int battery_level;
            String battery_name = "";
            switch (battery) {
                case "Phone":
                    battery_level = getBatteryLevel();
                    battery_name = Build.MANUFACTURER + " " + Build.MODEL;
                    break;
                case "Bridge":
                    battery_level = Pref.getInt("bridge_battery", -1);
                    battery_name = DexCollectionService.getBestLimitterHardwareName();
                    break;
                case "Parakeet":
                    battery_level = Pref.getInt("parakeet_battery", -1);
                    battery_name = "Parakeet";
                    break;
                default:
                    battery_level = -1;
                    break;
            }
            final long last_battery_level = PersistentStore.getLong(LAST_NIGHTSCOUT_BATTERY_LEVEL);

            final JSONArray array = new JSONArray();
            final JSONObject json = new JSONObject();
            final JSONObject uploader = new JSONObject();

            if ((battery_level > 0) && (battery_level != last_battery_level || always_send_battery)) {
                PersistentStore.setLong(LAST_NIGHTSCOUT_BATTERY_LEVEL, battery_level);
                // UserError.Log.d(TAG, "Uploading battery detail: " + battery_level);
                // json.put("uploaderBattery", battery_level); // old style

                uploader.put("battery", battery_level);
                json.put("device", battery_name);
                json.put("uploader", uploader);

                array.put(json);

                // example
                //{
                //    "device": "openaps://ediscout2.local",
                //        "uploader": {
                //    "battery": 60,
                //            "batteryVoltage": 3783,
                //            "temperature": "+51.0°C"
                //}
                //}


                final RequestBody body = RequestBody.create(MediaType.parse("application/json"), json.toString());
                Response<ResponseBody> r;
                if (apiSecret != null) {
                    r = nightscoutService.uploadDeviceStatus(apiSecret, body).execute();
                } else
                    r = nightscoutService.uploadDeviceStatus(body).execute();
                if (!r.isSuccessful()) throw new UploaderException(r.message(), r.code());
                // } else {
                //     UserError.Log.d(TAG, "Battery level is same as previous - not uploading: " + battery_level);
                checkGzipSupport(r);
            }
        }
    }
 
Example 20
Source Project: xDrip   Source File: MegaStatus.java    License: GNU General Public License v3.0 4 votes vote down vote up
private static void populate(MegaStatusListAdapter la, String section) {
    if ((la == null) || (section == null)) {
        UserError.Log.e(TAG, "Adapter or Section were null in populate()");
        return;
    }

    la.clear(false);
    switch (section) {

        case G4_STATUS:
            la.addRows(DexCollectionService.megaStatus());
            break;
        case G5_STATUS:
            if (Pref.getBooleanDefaultFalse(Ob1G5CollectionService.OB1G5_PREFS)) {
                la.addRows(Ob1G5CollectionService.megaStatus());
            } else {
                la.addRows(G5CollectionService.megaStatus());
            }
            break;
        case MEDTRUM_STATUS:
            la.addRows(MedtrumCollectionService.megaStatus());
            break;
        case IP_COLLECTOR:
            la.addRows(WifiCollectionService.megaStatus(mActivity));
            break;
        case XDRIP_PLUS_SYNC:
            la.addRows(DoNothingService.megaStatus());
            la.addRows(GcmListenerSvc.megaStatus());
            la.addRows(DesertSync.megaStatus());
            la.addRows(RollCall.megaStatus());
            break;
        case UPLOADERS:
            la.addRows(UploaderQueue.megaStatus());
            break;
        case LEFUN_STATUS:
            la.addRows(LeFunService.megaStatus());
            break;
        case MIBAND_STATUS:
            la.addRows(MiBandService.megaStatus());
            break;
        case BLUEJAY_STATUS:
            la.addRows(BlueJayService.megaStatus());
            break;
        case INPEN_STATUS:
            la.addRows(InPenService.megaStatus());
            break;
        case NIGHTSCOUT_FOLLOW:
            la.addRows(NightscoutFollowService.megaStatus());
            break;
        case SHARE_FOLLOW:
            la.addRows(ShareFollowService.megaStatus());
            break;
        case XDRIP_LIBRE2:
            la.addRows(LibreReceiver.megaStatus());
            break;
    }
    la.changed();
}
 
Example 21
Source Project: xDrip   Source File: SystemStatusFragment.java    License: GNU General Public License v3.0 4 votes vote down vote up
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    super.onCreateView(inflater, container, savedInstanceState);
    //Injectors.getMicroStatusComponent().inject(this);
    requestWearCollectorStatus();
    serviceDataReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context ctx, Intent intent) {
            final String action = intent.getAction();
            //final String msg = intent.getStringExtra("data");
            Bundle bundle = intent.getBundleExtra("data");
            if (bundle != null) {
                DataMap dataMap = DataMap.fromBundle(bundle);
                String lastState = dataMap.getString("lastState", "");
                long last_timestamp = dataMap.getLong("timestamp", 0);
                UserError.Log.d(TAG, "serviceDataReceiver onReceive:" + action + " :: " + lastState + " last_timestamp :: " + last_timestamp);
                switch (action) {
                    case WatchUpdaterService.ACTION_BLUETOOTH_COLLECTION_SERVICE_UPDATE:
                        switch (DexCollectionType.getDexCollectionType()) {
                            case DexcomG5:
                                G5CollectionService.setWatchStatus(dataMap);//msg, last_timestamp
                                break;
                            case DexcomShare:
                                if (lastState != null && !lastState.isEmpty()) {
                                    setConnectionStatus(lastState);//TODO getLastState() in non-G5 Services
                                }
                                break;
                            default:
                                DexCollectionService.setWatchStatus(dataMap);//msg, last_timestamp
                                if (lastState != null && !lastState.isEmpty()) {
                                    setConnectionStatus(lastState);
                                }
                                break;
                        }
                        break;
                }
            }
        }
    };
    final ActivitySystemStatusBinding binding = DataBindingUtil.inflate(
            inflater, R.layout.activity_system_status, container, false);
    microStatus = new MicroStatusImpl();
    binding.setMs(microStatus);
    return binding.getRoot();
}
 
Example 22
Source Project: xDrip-plus   Source File: blueReader.java    License: GNU General Public License v3.0 4 votes vote down vote up
private static synchronized void processNewTransmitterData(TransmitterData transmitterData, long timestamp) {
    if (transmitterData == null) {
        return;
    }

    final Sensor sensor = Sensor.currentSensor();
    if (sensor == null) {
        Log.i(TAG, "setSerialDataToTransmitterRawData: No Active Sensor, Data only stored in Transmitter Data");
        return;
    }

    if(PersistentStore.getLong("blueReader_Full_Battery") <3000 )
        PersistentStore.setLong("blueReader_Full_Battery", 4100);

    double blueReaderDays =0;
    if (transmitterData.sensor_battery_level > PersistentStore.getLong("blueReader_Full_Battery")) {
        PersistentStore.setLong("blueReader_Full_Battery", transmitterData.sensor_battery_level);
        Log.i(TAG, "blueReader_Full_Battery set to: " + transmitterData.sensor_battery_level) ;
    }
    int localBridgeBattery =((transmitterData.sensor_battery_level - 3300) * 100 / (((int) (long) PersistentStore.getLong("blueReader_Full_Battery"))-3300));
    Pref.setInt("bridge_battery", localBridgeBattery);
    sensor.latest_battery_level = localBridgeBattery;
    blueReaderDays = 6.129200670865791d / (1d + Math.pow(((double)transmitterData.sensor_battery_level/3763.700630306379d),(-61.04241888028577d))); //todo compare with test-formular, and new Data of batterylog
    if (transmitterData.sensor_battery_level < 3600) {
        blueReaderDays=blueReaderDays + 0.1d;
    }
    blueReaderDays = ((Math.round((blueReaderDays)*10d)/10d));

    PersistentStore.setString("bridge_battery_days", String.valueOf(blueReaderDays));
    sensor.save();
    if (Pref.getBooleanDefaultFalse("blueReader_writebatterylog")) {
        final String dir = getExternalDir();
        makeSureDirectoryExists(dir);
        writeLog(dir + BatLog,
                DateFormat.format("yyyyMMdd-kkmmss", System.currentTimeMillis()).toString() + "|" +
                        PersistentStore.getLong("blueReader_Full_Battery") + "|" +
                        transmitterData.sensor_battery_level + "|" +
                        sensor.latest_battery_level + "|" +
                        blueReaderDays
        );
    }
    DexCollectionService.last_transmitter_Data = transmitterData;
    Log.d(TAG, "BgReading.create: new BG reading at " + timestamp + " with a timestamp of " + transmitterData.timestamp);
    BgReading.create(transmitterData.raw_data, transmitterData.filtered_data, xdrip.getAppContext(), transmitterData.timestamp);

}
 
Example 23
Source Project: xDrip-plus   Source File: ListenerService.java    License: GNU General Public License v3.0 4 votes vote down vote up
private void sendCollectorStatus (Context context, String path) {
    String msg;
    //long last_timestamp = 0;
    DataMap dataMap = new DataMap();
    switch (DexCollectionType.getDexCollectionType()) {
        case DexcomG5:

            if (DexCollectionType.getCollectorServiceClass() == G5CollectionService.class) {
                dataMap = G5CollectionService.getWatchStatus();//msg, last_timestamp
            } else {
                dataMap = Ob1G5CollectionService.getWatchStatus();//msg, last_timestamp
            }
            break;
        case DexcomShare://TODO getLastState() in non-G5 Services
            BluetoothManager mBluetoothManager = (BluetoothManager) context.getSystemService(Context.BLUETOOTH_SERVICE);
            ActiveBluetoothDevice activeBluetoothDevice = ActiveBluetoothDevice.first();
            boolean connected = false;
            if (mBluetoothManager != null && activeBluetoothDevice != null) {
                for (BluetoothDevice bluetoothDevice : mBluetoothManager.getConnectedDevices(BluetoothProfile.GATT)) {
                    if (bluetoothDevice.getAddress().compareTo(activeBluetoothDevice.address) == 0) {
                        connected = true;
                    }
                }
            }
            if (connected) {
                msg = "Connected on watch";
            } else {
                msg = "Not Connected";
            }
            dataMap.putString("lastState", msg);
            break;
        default:
            dataMap = DexCollectionService.getWatchStatus();
            break;
    }
    if (dataMap != null) {
        dataMap.putString("action_path", path);
    }

    //sendReplyMsg (msg, last_timestamp, path, false);
    sendData(WEARABLE_REPLYMSG_PATH, dataMap.toByteArray());
}
 
Example 24
public void stopBtWixelService() {//private
    Log.d(TAG, "stopping bt wixel service");
    this.mContext.stopService(new Intent(this.mContext, DexCollectionService.class));
}
 
Example 25
Source Project: xDrip-plus   Source File: blueReader.java    License: GNU General Public License v3.0 4 votes vote down vote up
private static synchronized void processNewTransmitterData(TransmitterData transmitterData, long timestamp) {
    if (transmitterData == null) {
        return;
    }

    final Sensor sensor = Sensor.currentSensor();
    if (sensor == null) {
        Log.i(TAG, "setSerialDataToTransmitterRawData: No Active Sensor, Data only stored in Transmitter Data");
        return;
    }

    if(PersistentStore.getLong("blueReader_Full_Battery") <3000 )
        PersistentStore.setLong("blueReader_Full_Battery", 4100);

    double blueReaderDays =0;
    if (transmitterData.sensor_battery_level > PersistentStore.getLong("blueReader_Full_Battery")) {
        PersistentStore.setLong("blueReader_Full_Battery", transmitterData.sensor_battery_level);
        Log.i(TAG, "blueReader_Full_Battery set to: " + transmitterData.sensor_battery_level) ;
    }
    int localBridgeBattery =((transmitterData.sensor_battery_level - 3300) * 100 / (((int) (long) PersistentStore.getLong("blueReader_Full_Battery"))-3300));
    Pref.setInt("bridge_battery", localBridgeBattery);
    sensor.latest_battery_level = localBridgeBattery;
    blueReaderDays = 6.129200670865791d / (1d + Math.pow(((double)transmitterData.sensor_battery_level/3763.700630306379d),(-61.04241888028577d))); //todo compare with test-formular, and new Data of batterylog
    if (transmitterData.sensor_battery_level < 3600) {
        blueReaderDays=blueReaderDays + 0.1d;
    }
    blueReaderDays = ((Math.round((blueReaderDays)*10d)/10d));

    PersistentStore.setString("bridge_battery_days", String.valueOf(blueReaderDays));
    sensor.save();
    if (Pref.getBooleanDefaultFalse("blueReader_writebatterylog")) {
        final String dir = getExternalDir();
        makeSureDirectoryExists(dir);
        writeLog(dir + BatLog,
                DateFormat.format("yyyyMMdd-kkmmss", System.currentTimeMillis()).toString() + "|" +
                        PersistentStore.getLong("blueReader_Full_Battery") + "|" +
                        transmitterData.sensor_battery_level + "|" +
                        sensor.latest_battery_level + "|" +
                        blueReaderDays
        );
    }
    DexCollectionService.last_transmitter_Data = transmitterData;
    Log.d(TAG, "BgReading.create: new BG reading at " + timestamp + " with a timestamp of " + transmitterData.timestamp);
    BgReading.create(transmitterData.raw_data, transmitterData.filtered_data, xdrip.getAppContext(), transmitterData.timestamp);

}
 
Example 26
private void startBtWixelService() {
    Log.d(TAG, "starting bt wixel service");
    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN_MR2) {
        startServiceCompat(new Intent(this.mContext, DexCollectionService.class));
    }
}
 
Example 27
private void stopBtWixelService() {
    Log.d(TAG, "stopping bt wixel service");
    this.mContext.stopService(new Intent(this.mContext, DexCollectionService.class));
}
 
Example 28
private void postDeviceStatus(NightscoutService nightscoutService, String apiSecret) throws Exception {

        // TODO optimize based on changes avoiding stale marker issues
        final boolean always_send_battery = true; // nightscout doesn't currently display device device status if it thinks its stale
        final List<String> batteries = new ArrayList<>();
        batteries.add("Phone");
        if ((DexCollectionType.hasBattery() && (Pref.getBoolean("send_bridge_battery_to_nightscout", true)))
                || (Home.get_forced_wear() && DexCollectionType.getDexCollectionType().equals(DexCollectionType.DexcomG5))) {
            batteries.add("Bridge");
        }
        if (DexCollectionType.hasWifi()) batteries.add("Parakeet");

        for (String battery : batteries) {

            int battery_level;
            String battery_name = "";
            switch (battery) {
                case "Phone":
                    battery_level = getBatteryLevel();
                    battery_name = Build.MANUFACTURER + " " + Build.MODEL;
                    break;
                case "Bridge":
                    battery_level = Pref.getInt("bridge_battery", -1);
                    battery_name = DexCollectionService.getBestLimitterHardwareName();
                    break;
                case "Parakeet":
                    battery_level = Pref.getInt("parakeet_battery", -1);
                    battery_name = "Parakeet";
                    break;
                default:
                    battery_level = -1;
                    break;
            }
            final long last_battery_level = PersistentStore.getLong(LAST_NIGHTSCOUT_BATTERY_LEVEL);

            final JSONArray array = new JSONArray();
            final JSONObject json = new JSONObject();
            final JSONObject uploader = new JSONObject();

            if ((battery_level > 0) && (battery_level != last_battery_level || always_send_battery)) {
                PersistentStore.setLong(LAST_NIGHTSCOUT_BATTERY_LEVEL, battery_level);
                // UserError.Log.d(TAG, "Uploading battery detail: " + battery_level);
                // json.put("uploaderBattery", battery_level); // old style

                uploader.put("battery", battery_level);
                json.put("device", battery_name);
                json.put("uploader", uploader);

                array.put(json);

                // example
                //{
                //    "device": "openaps://ediscout2.local",
                //        "uploader": {
                //    "battery": 60,
                //            "batteryVoltage": 3783,
                //            "temperature": "+51.0°C"
                //}
                //}


                final RequestBody body = RequestBody.create(MediaType.parse("application/json"), json.toString());
                Response<ResponseBody> r;
                if (apiSecret != null) {
                    r = nightscoutService.uploadDeviceStatus(apiSecret, body).execute();
                } else
                    r = nightscoutService.uploadDeviceStatus(body).execute();
                if (!r.isSuccessful()) throw new UploaderException(r.message(), r.code());
                // } else {
                //     UserError.Log.d(TAG, "Battery level is same as previous - not uploading: " + battery_level);
                checkGzipSupport(r);
            }
        }
    }
 
Example 29
Source Project: xDrip-plus   Source File: MegaStatus.java    License: GNU General Public License v3.0 4 votes vote down vote up
private static void populate(MegaStatusListAdapter la, String section) {
    if ((la == null) || (section == null)) {
        UserError.Log.e(TAG, "Adapter or Section were null in populate()");
        return;
    }

    la.clear(false);
    switch (section) {

        case G4_STATUS:
            la.addRows(DexCollectionService.megaStatus());
            break;
        case G5_STATUS:
            if (Pref.getBooleanDefaultFalse(Ob1G5CollectionService.OB1G5_PREFS)) {
                la.addRows(Ob1G5CollectionService.megaStatus());
            } else {
                la.addRows(G5CollectionService.megaStatus());
            }
            break;
        case MEDTRUM_STATUS:
            la.addRows(MedtrumCollectionService.megaStatus());
            break;
        case IP_COLLECTOR:
            la.addRows(WifiCollectionService.megaStatus(mActivity));
            break;
        case XDRIP_PLUS_SYNC:
            la.addRows(DoNothingService.megaStatus());
            la.addRows(GcmListenerSvc.megaStatus());
            la.addRows(DesertSync.megaStatus());
            la.addRows(RollCall.megaStatus());
            break;
        case UPLOADERS:
            la.addRows(UploaderQueue.megaStatus());
            break;
        case LEFUN_STATUS:
            la.addRows(LeFunService.megaStatus());
            break;
        case MIBAND_STATUS:
            la.addRows(MiBandService.megaStatus());
            break;
        case BLUEJAY_STATUS:
            la.addRows(BlueJayService.megaStatus());
            break;
        case INPEN_STATUS:
            la.addRows(InPenService.megaStatus());
            break;
        case NIGHTSCOUT_FOLLOW:
            la.addRows(NightscoutFollowService.megaStatus());
            break;
        case SHARE_FOLLOW:
            la.addRows(ShareFollowService.megaStatus());
            break;
        case XDRIP_LIBRE2:
            la.addRows(LibreReceiver.megaStatus());
            break;
    }
    la.changed();
}
 
Example 30
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    super.onCreateView(inflater, container, savedInstanceState);
    //Injectors.getMicroStatusComponent().inject(this);
    requestWearCollectorStatus();
    serviceDataReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context ctx, Intent intent) {
            final String action = intent.getAction();
            //final String msg = intent.getStringExtra("data");
            Bundle bundle = intent.getBundleExtra("data");
            if (bundle != null) {
                DataMap dataMap = DataMap.fromBundle(bundle);
                String lastState = dataMap.getString("lastState", "");
                long last_timestamp = dataMap.getLong("timestamp", 0);
                UserError.Log.d(TAG, "serviceDataReceiver onReceive:" + action + " :: " + lastState + " last_timestamp :: " + last_timestamp);
                switch (action) {
                    case WatchUpdaterService.ACTION_BLUETOOTH_COLLECTION_SERVICE_UPDATE:
                        switch (DexCollectionType.getDexCollectionType()) {
                            case DexcomG5:
                                G5CollectionService.setWatchStatus(dataMap);//msg, last_timestamp
                                break;
                            case DexcomShare:
                                if (lastState != null && !lastState.isEmpty()) {
                                    setConnectionStatus(lastState);//TODO getLastState() in non-G5 Services
                                }
                                break;
                            default:
                                DexCollectionService.setWatchStatus(dataMap);//msg, last_timestamp
                                if (lastState != null && !lastState.isEmpty()) {
                                    setConnectionStatus(lastState);
                                }
                                break;
                        }
                        break;
                }
            }
        }
    };
    final ActivitySystemStatusBinding binding = DataBindingUtil.inflate(
            inflater, R.layout.activity_system_status, container, false);
    microStatus = new MicroStatusImpl();
    binding.setMs(microStatus);
    return binding.getRoot();
}