diff --git a/app/src/main/java/info/nightscout/android/medtronic/MainActivity.java b/app/src/main/java/info/nightscout/android/medtronic/MainActivity.java index 00775792b97686d923d9c0c6200bcef93307a96b..4b71e4b65b315e8f4d8480858ce1c546615a1c30 100644 --- a/app/src/main/java/info/nightscout/android/medtronic/MainActivity.java +++ b/app/src/main/java/info/nightscout/android/medtronic/MainActivity.java @@ -104,6 +104,14 @@ public class MainActivity extends AppCompatActivity implements OnSharedPreferenc public static short pumpBattery = 0; public static int countUnavailableSGV = 0; + // temporary debug stats for CNL connections + public static int dbgCNL_enterControlMode = 0; + public static int dbgCNL_enterPassthroughMode = 0; + public static int dbgCNL_openConnection = 0; + public static int dbgCNL_beginEHSMSession = 0; + public static int dbgCNL_clearMessage = 0; + public static int dbgCNL_not0x81 = 0; + boolean mEnableCgmService = true; SharedPreferences prefs = null; private PumpInfo mActivePump; diff --git a/app/src/main/java/info/nightscout/android/medtronic/message/ContourNextLinkMessage.java b/app/src/main/java/info/nightscout/android/medtronic/message/ContourNextLinkMessage.java index 86305a33b9cb21f99c88d105b78b2b35a90c7b0a..095c68ca1ab0b24145a7781da6edb1ac09c46bca 100644 --- a/app/src/main/java/info/nightscout/android/medtronic/message/ContourNextLinkMessage.java +++ b/app/src/main/java/info/nightscout/android/medtronic/message/ContourNextLinkMessage.java @@ -8,9 +8,7 @@ import java.nio.ByteBuffer; import java.util.concurrent.TimeoutException; import info.nightscout.android.USB.UsbHidDriver; -import info.nightscout.android.medtronic.exception.ChecksumException; -import info.nightscout.android.medtronic.exception.EncryptionException; -import info.nightscout.android.medtronic.exception.UnexpectedMessageException; +import info.nightscout.android.medtronic.MainActivity; import info.nightscout.android.utils.HexDump; /** @@ -154,6 +152,7 @@ public abstract class ContourNextLinkMessage { if (responseBytes[18] != (byte) 0x81) { doRetry = true; Log.d(TAG, "readMessage0x81: did not get 0x81 response, got " + responseBytes[18]); + MainActivity.dbgCNL_not0x81++; } else { doRetry = false; responseSize = responseBytes.length; @@ -186,6 +185,7 @@ public abstract class ContourNextLinkMessage { if (bytesClear > 0) { Log.d(TAG, "clearMessage: message stream cleared bytes: " + bytesClear); + MainActivity.dbgCNL_clearMessage++; } return bytesClear; diff --git a/app/src/main/java/info/nightscout/android/medtronic/service/MedtronicCnlIntentService.java b/app/src/main/java/info/nightscout/android/medtronic/service/MedtronicCnlIntentService.java index 85d2dbe26daa3f6f3dba5c8a06ae8497fde9d8ce..ed91b04b46066836a27b35d072ab78afadf45513 100644 --- a/app/src/main/java/info/nightscout/android/medtronic/service/MedtronicCnlIntentService.java +++ b/app/src/main/java/info/nightscout/android/medtronic/service/MedtronicCnlIntentService.java @@ -189,10 +189,14 @@ public class MedtronicCnlIntentService extends IntentService { cnlReader.getPumpSession().setStickSerial(info.getSerialNumber()); cnlReader.enterControlMode(); + MainActivity.dbgCNL_enterControlMode += 1; try { cnlReader.enterPassthroughMode(); + MainActivity.dbgCNL_enterPassthroughMode += 1; cnlReader.openConnection(); + MainActivity.dbgCNL_openConnection += 1; + cnlReader.requestReadInfo(); String key = info.getKey(); @@ -245,6 +249,7 @@ public class MedtronicCnlIntentService extends IntentService { MainActivity.timeLastEHSM = timePollStarted; cnlReader.beginEHSMSession(); + MainActivity.dbgCNL_beginEHSMSession += 1; // read pump status PumpStatusEvent pumpRecord = realm.createObject(PumpStatusEvent.class); @@ -265,6 +270,7 @@ public class MedtronicCnlIntentService extends IntentService { cnlReader.updatePumpStatus(pumpRecord); cnlReader.endEHSMSession(); + MainActivity.dbgCNL_beginEHSMSession -= 1; if (pumpRecord.getSgv() != 0) { @@ -322,8 +328,11 @@ public class MedtronicCnlIntentService extends IntentService { } finally { try { cnlReader.closeConnection(); + MainActivity.dbgCNL_openConnection -= 1; cnlReader.endPassthroughMode(); + MainActivity.dbgCNL_enterPassthroughMode -= 1; cnlReader.endControlMode(); + MainActivity.dbgCNL_enterControlMode -= 1; } catch (NoSuchAlgorithmException e) {} } @@ -379,6 +388,11 @@ public class MedtronicCnlIntentService extends IntentService { MedtronicCnlAlarmManager.setAlarm(nextRequestedPollTime); sendStatus("Next poll due at: " + df.format(nextRequestedPollTime)); + // temporary debug stats for CNL connections + if ((MainActivity.dbgCNL_enterControlMode + MainActivity.dbgCNL_enterPassthroughMode + MainActivity.dbgCNL_openConnection + MainActivity.dbgCNL_beginEHSMSession + MainActivity.dbgCNL_clearMessage + MainActivity.dbgCNL_not0x81) > 0) { + sendStatus("CM: " + MainActivity.dbgCNL_enterControlMode + " PT: " + MainActivity.dbgCNL_enterPassthroughMode + " OC: " + MainActivity.dbgCNL_openConnection + " EH: " + MainActivity.dbgCNL_beginEHSMSession + " U: " + MainActivity.dbgCNL_clearMessage + " X: " + MainActivity.dbgCNL_not0x81); + } + MedtronicCnlAlarmReceiver.completeWakefulIntent(intent); } }