diff --git a/.idea/misc.xml b/.idea/misc.xml index fbb68289f4352bf149aa31a2c9940faa99174224..5d19981032aa01b060f5a568641d7a8840cc90dc 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -37,7 +37,7 @@ <ConfirmationsSetting value="0" id="Add" /> <ConfirmationsSetting value="0" id="Remove" /> </component> - <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK"> + <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK"> <output url="file://$PROJECT_DIR$/build/classes" /> </component> <component name="ProjectType"> diff --git a/.idea/workspace.xml b/.idea/workspace.xml index be96b743e87721847fc8f49d21a56c4711d7abdc..e6fff1feddc53e5698a5a8aa1b403e3951f1faf8 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -10,15 +10,9 @@ </component> <component name="ChangeListManager"> <list default="true" id="ffce6e62-d498-4e17-b121-42833fbda3f5" name="Default" comment=""> - <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/app/640gUploader.iml" /> - <change type="DELETED" beforePath="$PROJECT_DIR$/MedtronicUploader.iml" afterPath="" /> - <change type="DELETED" beforePath="$PROJECT_DIR$/build/intermediates/dex-cache/cache.xml" afterPath="" /> - <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.gitignore" afterPath="$PROJECT_DIR$/.gitignore" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/misc.xml" afterPath="$PROJECT_DIR$/.idea/misc.xml" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" /> - <change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/app.iml" afterPath="$PROJECT_DIR$/app/app.iml" /> - <change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/src/main/assets/logback.xml" afterPath="$PROJECT_DIR$/app/src/main/assets/logback.xml" /> - <change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/src/main/java/com/nightscout/android/medtronic/CommandSenderThread.java" afterPath="$PROJECT_DIR$/app/src/main/java/com/nightscout/android/medtronic/CommandSenderThread.java" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/src/main/java/com/nightscout/android/medtronic/data/CNLConfigDbHelper.java" afterPath="$PROJECT_DIR$/app/src/main/java/com/nightscout/android/medtronic/data/CNLConfigDbHelper.java" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/src/main/java/com/nightscout/android/medtronic/service/MedtronicCNLService.java" afterPath="$PROJECT_DIR$/app/src/main/java/com/nightscout/android/medtronic/service/MedtronicCNLService.java" /> </list> <ignored path="Medtronic640gUploader.iws" /> @@ -50,31 +44,11 @@ </provider> </entry> </file> - <file leaf-file-name="DexcomG4Service.java" pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/app/src/main/java/com/nightscout/android/dexcom/DexcomG4Service.java"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="-7.851852"> - <caret line="133" column="76" selection-start-line="133" selection-start-column="69" selection-end-line="133" selection-end-column="76" /> - <folding /> - </state> - </provider> - </entry> - </file> - <file leaf-file-name="USBPower.java" pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/app/src/main/java/com/nightscout/android/USB/USBPower.java"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.0"> - <caret line="24" column="23" selection-start-line="24" selection-start-column="23" selection-end-line="24" selection-end-column="23" /> - <folding /> - </state> - </provider> - </entry> - </file> <file leaf-file-name="MedtronicCNLService.java" pinned="false" current-in-tab="true"> <entry file="file://$PROJECT_DIR$/app/src/main/java/com/nightscout/android/medtronic/service/MedtronicCNLService.java"> <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.7765568"> - <caret line="185" column="27" selection-start-line="185" selection-start-column="23" selection-end-line="185" selection-end-column="27" /> + <state vertical-scroll-proportion="2.0631971"> + <caret line="102" column="55" selection-start-line="102" selection-start-column="55" selection-end-line="102" selection-end-column="55" /> <folding> <element signature="imports" expanded="true" /> </folding> @@ -85,25 +59,13 @@ <file leaf-file-name="MedtronicCNLReader.java" pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/app/src/main/java/com/nightscout/android/medtronic/MedtronicCNLReader.java"> <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.0"> - <caret line="43" column="13" selection-start-line="43" selection-start-column="13" selection-end-line="43" selection-end-column="13" /> + <state vertical-scroll-proportion="-11.888889"> + <caret line="359" column="97" selection-start-line="359" selection-start-column="71" selection-end-line="359" selection-end-column="97" /> <folding /> </state> </provider> </entry> </file> - <file leaf-file-name="CommandSenderThread.java" pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/app/src/main/java/com/nightscout/android/medtronic/CommandSenderThread.java"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.0"> - <caret line="31" column="22" selection-start-line="31" selection-start-column="22" selection-end-line="31" selection-end-column="22" /> - <folding> - <element signature="imports" expanded="true" /> - </folding> - </state> - </provider> - </entry> - </file> </leaf> </component> <component name="Git.Settings"> @@ -1781,7 +1743,9 @@ <option value="$PROJECT_DIR$/app/build.gradle" /> <option value="$PROJECT_DIR$/app/src/main/java/com/nightscout/android/medtronic/CommandSenderThread.java" /> <option value="$PROJECT_DIR$/app/src/main/java/com/nightscout/android/dexcom/DexcomG4Service.java" /> + <option value="$PROJECT_DIR$/app/src/main/java/com/nightscout/android/medtronic/data/CNLConfigDbHelper.java" /> <option value="$PROJECT_DIR$/app/src/main/assets/logback.xml" /> + <option value="$PROJECT_DIR$/app/src/main/java/com/nightscout/android/medtronic/MedtronicCNLReader.java" /> <option value="$PROJECT_DIR$/app/src/main/java/com/nightscout/android/medtronic/service/MedtronicCNLService.java" /> </list> </option> @@ -1845,6 +1809,60 @@ <option name="myItemId" value="res" /> <option name="myItemType" value="com.android.tools.idea.navigator.nodes.AndroidResFolderNode" /> </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="xml" /> + <option name="myItemType" value="com.android.tools.idea.navigator.nodes.AndroidResFolderTypeNode" /> + </PATH_ELEMENT> + </PATH> + <PATH> + <PATH_ELEMENT> + <option name="myItemId" value="Medtronic640gUploader" /> + <option name="myItemType" value="com.android.tools.idea.navigator.nodes.AndroidViewProjectNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="app" /> + <option name="myItemType" value="com.android.tools.idea.navigator.nodes.AndroidModuleNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="res" /> + <option name="myItemType" value="com.android.tools.idea.navigator.nodes.AndroidResFolderNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="values" /> + <option name="myItemType" value="com.android.tools.idea.navigator.nodes.AndroidResFolderTypeNode" /> + </PATH_ELEMENT> + </PATH> + <PATH> + <PATH_ELEMENT> + <option name="myItemId" value="Medtronic640gUploader" /> + <option name="myItemType" value="com.android.tools.idea.navigator.nodes.AndroidViewProjectNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="app" /> + <option name="myItemType" value="com.android.tools.idea.navigator.nodes.AndroidModuleNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="res" /> + <option name="myItemType" value="com.android.tools.idea.navigator.nodes.AndroidResFolderNode" /> + </PATH_ELEMENT> + </PATH> + <PATH> + <PATH_ELEMENT> + <option name="myItemId" value="Medtronic640gUploader" /> + <option name="myItemType" value="com.android.tools.idea.navigator.nodes.AndroidViewProjectNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="app" /> + <option name="myItemType" value="com.android.tools.idea.navigator.nodes.AndroidModuleNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="res" /> + <option name="myItemType" value="com.android.tools.idea.navigator.nodes.AndroidResFolderNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="layout" /> + <option name="myItemType" value="com.android.tools.idea.navigator.nodes.AndroidResFolderTypeNode" /> + </PATH_ELEMENT> </PATH> <PATH> <PATH_ELEMENT> @@ -1926,6 +1944,32 @@ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> </PATH_ELEMENT> </PATH> + <PATH> + <PATH_ELEMENT> + <option name="myItemId" value="Medtronic640gUploader" /> + <option name="myItemType" value="com.android.tools.idea.navigator.nodes.AndroidViewProjectNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="app" /> + <option name="myItemType" value="com.android.tools.idea.navigator.nodes.AndroidModuleNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="java" /> + <option name="myItemType" value="com.android.tools.idea.navigator.nodes.AndroidSourceTypeNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="android" /> + <option name="myItemType" value="com.android.tools.idea.navigator.nodes.AndroidPsiDirectoryNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="medtronic" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="data" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + </PATH> <PATH> <PATH_ELEMENT> <option name="myItemId" value="Medtronic640gUploader" /> @@ -1946,6 +1990,7 @@ <property name="SearchEverywhereHistoryKey" value="g4	PSI	JAVA://com.nightscout.android.dexcom.DexcomG4Activity cnlread	PSI	JAVA://com.nightscout.android.medtronic.MedtronicCNLReader" /> <property name="android.project.structure.last.selected" value="app" /> <property name="android.project.structure.proportion" value="0.15" /> + <property name="device.picker.selection" value="192.168.0.115:5555" /> </component> <component name="RunManager" selected="Android Application.640gUploader"> <configuration default="true" type="AndroidRunConfigurationType" factoryName="Android Application"> @@ -2160,7 +2205,7 @@ <listeners /> <method /> </configuration> - <configuration default="false" name="640gUploader" type="AndroidRunConfigurationType" factoryName="Android Application"> + <configuration default="false" name="640gUploader" type="AndroidRunConfigurationType" factoryName="Android Application" activateToolWindowBeforeRun="false"> <module name="app" /> <option name="DEPLOY" value="true" /> <option name="ARTIFACT_NAME" value="" /> @@ -2233,7 +2278,8 @@ <window_info id="Palette	" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> <window_info id="Capture Analysis" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" /> - <window_info id="Android Monitor" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.5253256" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> + <window_info id="Android Monitor" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.53111434" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> + <window_info id="Preview" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" /> <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" /> <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3299566" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> @@ -2310,6 +2356,7 @@ <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.09803922"> <caret line="4" column="21" selection-start-line="4" selection-start-column="18" selection-end-line="4" selection-end-column="21" /> + <folding /> </state> </provider> </entry> @@ -2317,6 +2364,7 @@ <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.6103286"> <caret line="26" column="39" selection-start-line="26" selection-start-column="39" selection-end-line="26" selection-end-column="39" /> + <folding /> </state> </provider> </entry> @@ -2338,58 +2386,90 @@ </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/app/src/main/java/com/nightscout/android/USB/USBPower.java"> + <entry file="file://$PROJECT_DIR$/app/build.gradle"> <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.0"> - <caret line="24" column="23" selection-start-line="24" selection-start-column="23" selection-end-line="24" selection-end-column="23" /> + <state vertical-scroll-proportion="0.15837105"> + <caret line="7" column="46" selection-start-line="7" selection-start-column="46" selection-end-line="7" selection-end-column="46" /> <folding /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/app/src/main/java/com/nightscout/android/dexcom/DexcomG4Service.java"> + <entry file="file://$PROJECT_DIR$/app/src/main/java/com/nightscout/android/USB/USBPower.java"> <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="-7.851852"> - <caret line="133" column="76" selection-start-line="133" selection-start-column="69" selection-end-line="133" selection-end-column="76" /> + <state vertical-scroll-proportion="0.33333334"> + <caret line="20" column="24" selection-start-line="20" selection-start-column="24" selection-end-line="20" selection-end-column="24" /> <folding /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/app/build.gradle"> + <entry file="file://$PROJECT_DIR$/app/src/main/res/menu/menu.xml"> <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.15837105"> - <caret line="7" column="46" selection-start-line="7" selection-start-column="46" selection-end-line="7" selection-end-column="46" /> + <state vertical-scroll-proportion="0.0"> + <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> <folding /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/app/src/main/java/com/nightscout/android/dexcom/DexcomG4Activity.java"> + <entry file="file://$PROJECT_DIR$/app/src/main/res/xml/preferences.xml"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> - <caret line="72" column="0" selection-start-line="72" selection-start-column="0" selection-end-line="72" selection-end-column="0" /> + <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> <folding /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/src/main/assets/logback.xml"> <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.11737089"> - <caret line="5" column="44" selection-start-line="5" selection-start-column="44" selection-end-line="5" selection-end-column="44" /> + <state vertical-scroll-proportion="0.7100372"> + <caret line="19" column="20" selection-start-line="19" selection-start-column="20" selection-end-line="19" selection-end-column="20" /> <folding /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/app/src/main/java/com/nightscout/android/medtronic/MedtronicCNLReader.java"> + <entry file="file://$PROJECT_DIR$/app/src/main/java/com/nightscout/android/medtronic/MedtronicCGMService.java"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="0.09653092"> + <caret line="1373" column="13" selection-start-line="1373" selection-start-column="13" selection-end-line="1373" selection-end-column="13" /> + <folding /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/app/src/main/java/com/nightscout/android/medtronic/data/CNLConfigDbHelper.java"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="0.49019608"> + <caret line="119" column="25" selection-start-line="119" selection-start-column="25" selection-end-line="119" selection-end-column="25" /> + <folding /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/app/src/main/java/com/nightscout/android/dexcom/DexcomG4Service.java"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="0.094339624"> + <caret line="104" column="25" selection-start-line="104" selection-start-column="20" selection-end-line="104" selection-end-column="25" /> + <folding /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/app/src/main/java/com/nightscout/android/dexcom/DexcomG4Activity.java"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> - <caret line="43" column="13" selection-start-line="43" selection-start-column="13" selection-end-line="43" selection-end-column="13" /> + <caret line="72" column="0" selection-start-line="72" selection-start-column="0" selection-end-line="72" selection-end-column="0" /> + <folding /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/app/src/main/java/com/nightscout/android/medtronic/MedtronicCNLReader.java"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="-11.888889"> + <caret line="359" column="97" selection-start-line="359" selection-start-column="71" selection-end-line="359" selection-end-column="97" /> <folding /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/src/main/java/com/nightscout/android/medtronic/service/MedtronicCNLService.java"> <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.7765568"> - <caret line="185" column="27" selection-start-line="185" selection-start-column="23" selection-end-line="185" selection-end-column="27" /> + <state vertical-scroll-proportion="2.0631971"> + <caret line="102" column="55" selection-start-line="102" selection-start-column="55" selection-end-line="102" selection-end-column="55" /> <folding> <element signature="imports" expanded="true" /> </folding> diff --git a/app/src/main/java/com/nightscout/android/medtronic/service/MedtronicCNLService.java b/app/src/main/java/com/nightscout/android/medtronic/service/MedtronicCNLService.java index d1e69e6f60b0cb0393e3306617f00bd8b3405406..eb183c188e60de4e06c3b8343396dbe1a6822a60 100644 --- a/app/src/main/java/com/nightscout/android/medtronic/service/MedtronicCNLService.java +++ b/app/src/main/java/com/nightscout/android/medtronic/service/MedtronicCNLService.java @@ -7,7 +7,6 @@ import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; -import android.database.sqlite.SQLiteDatabase; import android.graphics.BitmapFactory; import android.hardware.usb.UsbManager; import android.net.ConnectivityManager; @@ -22,7 +21,6 @@ import android.util.Log; import com.nightscout.android.R; import com.nightscout.android.USB.UsbHidDriver; import com.nightscout.android.dexcom.DexcomG4Activity; -import com.nightscout.android.dexcom.LoginActivity; import com.nightscout.android.medtronic.MedtronicCNLReader; import com.nightscout.android.medtronic.data.CNLConfigDbHelper; import com.nightscout.android.medtronic.message.ChecksumException; @@ -124,6 +122,7 @@ public class MedtronicCNLService extends AbstractService { mHidDevice.open(); } catch (Exception e) { Log.e(TAG, "Unable to open serial device", e); + return; } // Go get the data @@ -150,27 +149,33 @@ public class MedtronicCNLService extends AbstractService { cnlReader.getPumpSession().setKey( MessageUtils.hexStringToByteArray( key ) ); cnlReader.enterControlMode(); - cnlReader.enterPassthroughMode(); - cnlReader.openConnection(); - cnlReader.requestReadInfo(); - byte radioChannel = cnlReader.negotiateChannel(); - if (radioChannel == 0) { - send(Message.obtain(null, DexcomG4Activity.DexcomG4ActivityHandler.MSG_ERROR, "Could not communicate with the 640g. Are you near the pump?")); - Log.e(TAG, "Could not communicate with the 640g. Are you near the pump?"); - } else { - send(Message.obtain(null, DexcomG4Activity.DexcomG4ActivityHandler.MSG_STATUS, String.format("Connected to Contour Next Link on channel %d.", (int) radioChannel))); - Log.d(TAG, String.format("Connected to Contour Next Link on channel %d.", (int) radioChannel)); - cnlReader.beginEHSMSession(); - - cnlReader.getPumpTime(pumpRecord); - cnlReader.getPumpStatus(pumpRecord); - writeData(pumpRecord); - send(Message.obtain(null, DexcomG4Activity.DexcomG4ActivityHandler.MSG_DATA, pumpRecord)); - cnlReader.endEHSMSession(); + try { + cnlReader.enterPassthroughMode(); + cnlReader.openConnection(); + cnlReader.requestReadInfo(); + byte radioChannel = cnlReader.negotiateChannel(); + if (radioChannel == 0) { + send(Message.obtain(null, DexcomG4Activity.DexcomG4ActivityHandler.MSG_ERROR, "Could not communicate with the 640g. Are you near the pump?")); + Log.i(TAG, "Could not communicate with the 640g. Are you near the pump?"); + } else { + send(Message.obtain(null, DexcomG4Activity.DexcomG4ActivityHandler.MSG_STATUS, String.format("Connected to Contour Next Link on channel %d.", (int) radioChannel))); + Log.d(TAG, String.format("Connected to Contour Next Link on channel %d.", (int) radioChannel)); + cnlReader.beginEHSMSession(); + + cnlReader.getPumpTime(pumpRecord); + cnlReader.getPumpStatus(pumpRecord); + writeData(pumpRecord); + send(Message.obtain(null, DexcomG4Activity.DexcomG4ActivityHandler.MSG_DATA, pumpRecord)); + cnlReader.endEHSMSession(); + } + cnlReader.closeConnection(); + } catch (UnexpectedMessageException e) { + Log.e(TAG, "Unexpected Message", e); + send(Message.obtain(null, DexcomG4Activity.DexcomG4ActivityHandler.MSG_ERROR, "Communication Error: " + e.getMessage())); + } finally { + cnlReader.endPassthroughMode(); + cnlReader.endControlMode(); } - cnlReader.closeConnection(); - cnlReader.endPassthroughMode(); - cnlReader.endControlMode(); } catch (IOException e) { Log.e(TAG, "Error getting BGLs", e); send(Message.obtain(null, DexcomG4Activity.DexcomG4ActivityHandler.MSG_ERROR, "Error connecting to Contour Next Link.")); @@ -185,7 +190,7 @@ public class MedtronicCNLService extends AbstractService { send(Message.obtain(null, DexcomG4Activity.DexcomG4ActivityHandler.MSG_ERROR, "Timeout communicating with the Contour Next Link.")); } catch (UnexpectedMessageException e) { Log.e(TAG, "Unexpected Message", e); - send(Message.obtain(null, DexcomG4Activity.DexcomG4ActivityHandler.MSG_ERROR, "Communication Error: " + e.getMessage())); + send(Message.obtain(null, DexcomG4Activity.DexcomG4ActivityHandler.MSG_ERROR, "Could not close connection: " + e.getMessage())); } mUploader.execute(pumpRecord);