diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a163b3729c..b8b5d99d97 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -34,6 +34,10 @@ + + + + () + glucoseValues += CgmSourceTransaction.TransactionGlucoseValue( + timestamp = bundle.getLong(Intents.AIDEX_TIMESTAMP, 0), + value = if (bundle.getString(Intents.AIDEX_BG_TYPE, "mg/dl").equals("mg/dl")) bundle.getDouble(Intents.AIDEX_BG_VALUE, 0.0) else bundle.getDouble(Intents.AIDEX_BG_VALUE, 0.0) * Constants.MMOLL_TO_MGDL, + raw = null, + noise = null, + trendArrow = GlucoseValue.TrendArrow.fromString(bundle.getString(Intents.AIDEX_BG_SLOPE_NAME)), + sourceSensor = GlucoseValue.SourceSensor.AIDEX + ) + repository.runTransactionForResult(CgmSourceTransaction(glucoseValues, emptyList(), null)) + .doOnError { + aapsLogger.error(LTag.DATABASE, "Error while saving values from Xdrip", it) + ret = Result.failure(workDataOf("Error" to it.toString())) + } + .blockingGet() + .also { savedValues -> + savedValues.all().forEach { + aapsLogger.debug(LTag.DATABASE, "Inserted bg $it") + } + } + return ret + } + } +} diff --git a/app/src/main/java/info/nightscout/androidaps/receivers/DataReceiver.kt b/app/src/main/java/info/nightscout/androidaps/receivers/DataReceiver.kt index 6be6a5ad2e..a65c77a569 100644 --- a/app/src/main/java/info/nightscout/androidaps/receivers/DataReceiver.kt +++ b/app/src/main/java/info/nightscout/androidaps/receivers/DataReceiver.kt @@ -67,6 +67,9 @@ open class DataReceiver : DaggerBroadcastReceiver() { Intents.DEXCOM_BG -> OneTimeWorkRequest.Builder(DexcomPlugin.DexcomWorker::class.java) .setInputData(dataWorker.storeInputData(bundle, intent)).build() + Intents.AIDEX_NEW_BG_ESTIMATE -> + OneTimeWorkRequest.Builder(AidexPlugin.AidexWorker::class.java) + .setInputData(dataWorker.storeInputData(bundle, intent)).build() else -> null }?.let { request -> dataWorker.enqueue(request) } } diff --git a/app/src/main/java/info/nightscout/androidaps/services/Intents.kt b/app/src/main/java/info/nightscout/androidaps/services/Intents.kt index bf3a8d3695..87c74bcb47 100644 --- a/app/src/main/java/info/nightscout/androidaps/services/Intents.kt +++ b/app/src/main/java/info/nightscout/androidaps/services/Intents.kt @@ -31,6 +31,29 @@ interface Intents { const val POCTECH_BG = "com.china.poctech.data" const val TOMATO_BG = "com.fanqies.tomatofn.BgEstimate" + // Aidex -> AAPS + var AIDEX_NEW_BG_ESTIMATE = "com.microtechmd.cgms.aidex.BgEstimate" + + // DATA + // DATA + /** + * BG Type: Can be either mmol/l or mg/dl + */ + var AIDEX_BG_TYPE = "com.microtechmd.cgms.aidex.BgType" + var AIDEX_BG_VALUE = "com.microtechmd.cgms.aidex.BgValue" + + /** + * BG Slope Name: following values are valid: + * "DoubleUp", "SingleUp", "FortyFiveUp", "Flat", "FortyFiveDown", "SingleDown", + * "DoubleDown", "NotComputable", "RateOutOfRange" + */ + var AIDEX_BG_SLOPE_NAME = "com.microtechmd.cgms.aidex.BgSlopeName" + var AIDEX_TIMESTAMP = "com.microtechmd.cgms.aidex.Time" // epoch in ms + + var AIDEX_TRANSMITTER_SN = "com.microtechmd.cgms.aidex.TransmitterSerialNumber" + var AIDEX_SENSOR_ID = "com.microtechmd.cgms.aidex.SensorId" + + // Broadcast status const val AAPS_BROADCAST = "info.nightscout.androidaps.status" } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 07bf55f635..438ab04f7f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1222,4 +1222,10 @@ Hide loop Show loop %1$d selected + + GlucoRx Aidex + Aidex + Receive BG values from GlucoRx Aidex CGMS. + + diff --git a/database/src/main/java/info/nightscout/androidaps/database/entities/GlucoseValue.kt b/database/src/main/java/info/nightscout/androidaps/database/entities/GlucoseValue.kt index 241485a254..00979a554c 100644 --- a/database/src/main/java/info/nightscout/androidaps/database/entities/GlucoseValue.kt +++ b/database/src/main/java/info/nightscout/androidaps/database/entities/GlucoseValue.kt @@ -111,6 +111,7 @@ data class GlucoseValue( GLUNOVO_NATIVE("Glunovo"), MM_600_SERIES("MM600Series"), EVERSENSE("Eversense"), + AIDEX("GlucoRx Aidex"), RANDOM("Random"), UNKNOWN("Unknown"),