- support for Aidex plugins
This commit is contained in:
parent
7502824a1b
commit
5c05a31030
|
@ -109,7 +109,7 @@ android {
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
multiDexEnabled true
|
multiDexEnabled true
|
||||||
versionCode 1500
|
versionCode 1500
|
||||||
version "3.0.0.1-dev-e"
|
version "3.0.0.1-dev-aidex"
|
||||||
buildConfigField "String", "VERSION", '"' + version + '"'
|
buildConfigField "String", "VERSION", '"' + version + '"'
|
||||||
buildConfigField "String", "BUILDVERSION", '"' + generateGitBuild() + '-' + generateDate() + '"'
|
buildConfigField "String", "BUILDVERSION", '"' + generateGitBuild() + '-' + generateDate() + '"'
|
||||||
buildConfigField "String", "REMOTE", '"' + generateGitRemote() + '"'
|
buildConfigField "String", "REMOTE", '"' + generateGitRemote() + '"'
|
||||||
|
|
|
@ -109,6 +109,8 @@
|
||||||
<action android:name="com.china.poctech.data"/>
|
<action android:name="com.china.poctech.data"/>
|
||||||
<!-- Receiver from Tomato -->
|
<!-- Receiver from Tomato -->
|
||||||
<action android:name="com.fanqies.tomatofn.BgEstimate"/>
|
<action android:name="com.fanqies.tomatofn.BgEstimate"/>
|
||||||
|
<!-- Receiver from GlucoRx Aidex -->
|
||||||
|
<action android:name="com.microtechmd.cgms.aidex.action.BgEstimate"/>
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</receiver>
|
</receiver>
|
||||||
|
|
||||||
|
|
|
@ -32,4 +32,5 @@ abstract class WorkersModule {
|
||||||
@ContributesAndroidInjector abstract fun contributesNSClientMbgWorker(): NSClientMbgWorker
|
@ContributesAndroidInjector abstract fun contributesNSClientMbgWorker(): NSClientMbgWorker
|
||||||
@ContributesAndroidInjector abstract fun contributesFoodWorker(): FoodPlugin.FoodWorker
|
@ContributesAndroidInjector abstract fun contributesFoodWorker(): FoodPlugin.FoodWorker
|
||||||
@ContributesAndroidInjector abstract fun contributesCsvExportWorker(): ImportExportPrefsImpl.CsvExportWorker
|
@ContributesAndroidInjector abstract fun contributesCsvExportWorker(): ImportExportPrefsImpl.CsvExportWorker
|
||||||
|
@ContributesAndroidInjector abstract fun contributesAidexWorker(): AidexPlugin.AidexWorker
|
||||||
}
|
}
|
|
@ -21,6 +21,7 @@ import info.nightscout.androidaps.services.Intents
|
||||||
import info.nightscout.androidaps.utils.resources.ResourceHelper
|
import info.nightscout.androidaps.utils.resources.ResourceHelper
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import javax.inject.Singleton
|
import javax.inject.Singleton
|
||||||
|
import kotlin.math.log
|
||||||
|
|
||||||
@Singleton
|
@Singleton
|
||||||
class AidexPlugin @Inject constructor(
|
class AidexPlugin @Inject constructor(
|
||||||
|
@ -32,7 +33,7 @@ class AidexPlugin @Inject constructor(
|
||||||
.fragmentClass(BGSourceFragment::class.java.name)
|
.fragmentClass(BGSourceFragment::class.java.name)
|
||||||
.pluginIcon((R.drawable.ic_blooddrop_48))
|
.pluginIcon((R.drawable.ic_blooddrop_48))
|
||||||
.pluginName(R.string.aidex)
|
.pluginName(R.string.aidex)
|
||||||
.shortName(R.string.randombg_short)
|
.shortName(R.string.aidex_short)
|
||||||
.description(R.string.description_source_aidex),
|
.description(R.string.description_source_aidex),
|
||||||
aapsLogger, rh, injector
|
aapsLogger, rh, injector
|
||||||
), BgSource {
|
), BgSource {
|
||||||
|
@ -76,9 +77,18 @@ class AidexPlugin @Inject constructor(
|
||||||
if (bundle.containsKey(Intents.AIDEX_SENSOR_ID)) aapsLogger.debug(LTag.BGSOURCE, "sensorId: " + bundle.getString(Intents.AIDEX_SENSOR_ID))
|
if (bundle.containsKey(Intents.AIDEX_SENSOR_ID)) aapsLogger.debug(LTag.BGSOURCE, "sensorId: " + bundle.getString(Intents.AIDEX_SENSOR_ID))
|
||||||
|
|
||||||
val glucoseValues = mutableListOf<CgmSourceTransaction.TransactionGlucoseValue>()
|
val glucoseValues = mutableListOf<CgmSourceTransaction.TransactionGlucoseValue>()
|
||||||
|
|
||||||
|
val timestamp = bundle.getLong(Intents.AIDEX_TIMESTAMP, 0)
|
||||||
|
val bgType = bundle.getString(Intents.AIDEX_BG_TYPE, "mg/dl")
|
||||||
|
val bgValue = bundle.getDouble(Intents.AIDEX_BG_VALUE, 0.0)
|
||||||
|
|
||||||
|
val bgValueTarget = if (bgType.equals("mg/dl")) bgValue else bgValue * Constants.MMOLL_TO_MGDL
|
||||||
|
|
||||||
|
aapsLogger.debug(LTag.BGSOURCE, "Received Aidex broadcast [time=$timestamp, bgType=$bgType, value=$bgValue, targetValue=$bgValueTarget")
|
||||||
|
|
||||||
glucoseValues += CgmSourceTransaction.TransactionGlucoseValue(
|
glucoseValues += CgmSourceTransaction.TransactionGlucoseValue(
|
||||||
timestamp = bundle.getLong(Intents.AIDEX_TIMESTAMP, 0),
|
timestamp = timestamp,
|
||||||
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,
|
value = bgValueTarget,
|
||||||
raw = null,
|
raw = null,
|
||||||
noise = null,
|
noise = null,
|
||||||
trendArrow = GlucoseValue.TrendArrow.fromString(bundle.getString(Intents.AIDEX_BG_SLOPE_NAME)),
|
trendArrow = GlucoseValue.TrendArrow.fromString(bundle.getString(Intents.AIDEX_BG_SLOPE_NAME)),
|
||||||
|
|
|
@ -32,28 +32,14 @@ interface Intents {
|
||||||
const val TOMATO_BG = "com.fanqies.tomatofn.BgEstimate"
|
const val TOMATO_BG = "com.fanqies.tomatofn.BgEstimate"
|
||||||
|
|
||||||
// Aidex -> AAPS
|
// Aidex -> AAPS
|
||||||
var AIDEX_NEW_BG_ESTIMATE = "com.microtechmd.cgms.aidex.BgEstimate"
|
var AIDEX_NEW_BG_ESTIMATE = "com.microtechmd.cgms.aidex.action.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_TYPE = "com.microtechmd.cgms.aidex.BgType"
|
||||||
var AIDEX_BG_VALUE = "com.microtechmd.cgms.aidex.BgValue"
|
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_BG_SLOPE_NAME = "com.microtechmd.cgms.aidex.BgSlopeName"
|
||||||
var AIDEX_TIMESTAMP = "com.microtechmd.cgms.aidex.Time" // epoch in ms
|
var AIDEX_TIMESTAMP = "com.microtechmd.cgms.aidex.Time" // epoch in ms
|
||||||
|
|
||||||
var AIDEX_TRANSMITTER_SN = "com.microtechmd.cgms.aidex.TransmitterSerialNumber"
|
var AIDEX_TRANSMITTER_SN = "com.microtechmd.cgms.aidex.TransmitterSerialNumber"
|
||||||
var AIDEX_SENSOR_ID = "com.microtechmd.cgms.aidex.SensorId"
|
var AIDEX_SENSOR_ID = "com.microtechmd.cgms.aidex.SensorId"
|
||||||
|
|
||||||
|
|
||||||
// Broadcast status
|
// Broadcast status
|
||||||
const val AAPS_BROADCAST = "info.nightscout.androidaps.status"
|
const val AAPS_BROADCAST = "info.nightscout.androidaps.status"
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue