fix receiving dexcom calibrations
This commit is contained in:
parent
7fe75cf425
commit
af3df53f10
2 changed files with 12 additions and 10 deletions
app/src/main/java/info/nightscout/androidaps/plugins/source
core/src/main/java/info/nightscout/androidaps/interfaces
|
@ -8,7 +8,6 @@ import androidx.work.Worker
|
||||||
import androidx.work.WorkerParameters
|
import androidx.work.WorkerParameters
|
||||||
import androidx.work.workDataOf
|
import androidx.work.workDataOf
|
||||||
import dagger.android.HasAndroidInjector
|
import dagger.android.HasAndroidInjector
|
||||||
import info.nightscout.androidaps.interfaces.Config
|
|
||||||
import info.nightscout.androidaps.R
|
import info.nightscout.androidaps.R
|
||||||
import info.nightscout.androidaps.activities.RequestDexcomPermissionActivity
|
import info.nightscout.androidaps.activities.RequestDexcomPermissionActivity
|
||||||
import info.nightscout.androidaps.database.AppRepository
|
import info.nightscout.androidaps.database.AppRepository
|
||||||
|
@ -18,10 +17,8 @@ import info.nightscout.androidaps.database.entities.UserEntry.Action
|
||||||
import info.nightscout.androidaps.database.entities.UserEntry.Sources
|
import info.nightscout.androidaps.database.entities.UserEntry.Sources
|
||||||
import info.nightscout.androidaps.database.entities.ValueWithUnit
|
import info.nightscout.androidaps.database.entities.ValueWithUnit
|
||||||
import info.nightscout.androidaps.database.transactions.CgmSourceTransaction
|
import info.nightscout.androidaps.database.transactions.CgmSourceTransaction
|
||||||
import info.nightscout.androidaps.interfaces.BgSource
|
import info.nightscout.androidaps.extensions.fromConstant
|
||||||
import info.nightscout.androidaps.interfaces.PluginBase
|
import info.nightscout.androidaps.interfaces.*
|
||||||
import info.nightscout.androidaps.interfaces.PluginDescription
|
|
||||||
import info.nightscout.androidaps.interfaces.PluginType
|
|
||||||
import info.nightscout.androidaps.logging.AAPSLogger
|
import info.nightscout.androidaps.logging.AAPSLogger
|
||||||
import info.nightscout.androidaps.logging.LTag
|
import info.nightscout.androidaps.logging.LTag
|
||||||
import info.nightscout.androidaps.logging.UserEntryLogger
|
import info.nightscout.androidaps.logging.UserEntryLogger
|
||||||
|
@ -126,11 +123,12 @@ class DexcomPlugin @Inject constructor(
|
||||||
meters.getBundle(i.toString())?.let {
|
meters.getBundle(i.toString())?.let {
|
||||||
val timestamp = it.getLong("timestamp") * 1000
|
val timestamp = it.getLong("timestamp") * 1000
|
||||||
val now = dateUtil.now()
|
val now = dateUtil.now()
|
||||||
|
val value = it.getInt("meterValue").toDouble()
|
||||||
if (timestamp > now - T.months(1).msecs() && timestamp < now) {
|
if (timestamp > now - T.months(1).msecs() && timestamp < now) {
|
||||||
calibrations.add(CgmSourceTransaction.Calibration(
|
calibrations.add(CgmSourceTransaction.Calibration(
|
||||||
timestamp = it.getLong("timestamp") * 1000,
|
timestamp = it.getLong("timestamp") * 1000,
|
||||||
value = it.getInt("meterValue").toDouble(),
|
value = value,
|
||||||
glucoseUnit = TherapyEvent.GlucoseUnit.MGDL
|
glucoseUnit = TherapyEvent.GlucoseUnit.fromConstant(Profile.unit(value))
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -165,16 +165,20 @@ interface Profile {
|
||||||
if (units == GlucoseUnit.MGDL) (if (valueInMgdl > 0) "+" else "") + to0Decimal(valueInMgdl)
|
if (units == GlucoseUnit.MGDL) (if (valueInMgdl > 0) "+" else "") + to0Decimal(valueInMgdl)
|
||||||
else (if (valueInMmol > 0) "+" else "") + to1Decimal(valueInMmol)
|
else (if (valueInMmol > 0) "+" else "") + to1Decimal(valueInMmol)
|
||||||
|
|
||||||
|
fun isMgdl(anyBg: Double) = anyBg >= 39
|
||||||
|
fun isMmol(anyBg: Double) = anyBg < 39
|
||||||
|
fun unit(anyBg: Double) = if (isMgdl(anyBg)) GlucoseUnit.MGDL else GlucoseUnit.MMOL
|
||||||
|
|
||||||
fun toCurrentUnits(profileFunction: ProfileFunction, anyBg: Double): Double =
|
fun toCurrentUnits(profileFunction: ProfileFunction, anyBg: Double): Double =
|
||||||
if (anyBg < 32) fromMmolToUnits(anyBg, profileFunction.getUnits())
|
if (isMmol(anyBg)) fromMmolToUnits(anyBg, profileFunction.getUnits())
|
||||||
else fromMgdlToUnits(anyBg, profileFunction.getUnits())
|
else fromMgdlToUnits(anyBg, profileFunction.getUnits())
|
||||||
|
|
||||||
fun toCurrentUnits(units: GlucoseUnit, anyBg: Double): Double =
|
fun toCurrentUnits(units: GlucoseUnit, anyBg: Double): Double =
|
||||||
if (anyBg < 32) fromMmolToUnits(anyBg, units)
|
if (isMmol(anyBg)) fromMmolToUnits(anyBg, units)
|
||||||
else fromMgdlToUnits(anyBg, units)
|
else fromMgdlToUnits(anyBg, units)
|
||||||
|
|
||||||
fun toCurrentUnitsString(profileFunction: ProfileFunction, anyBg: Double): String =
|
fun toCurrentUnitsString(profileFunction: ProfileFunction, anyBg: Double): String =
|
||||||
if (anyBg < 32) toUnitsString(anyBg * Constants.MMOLL_TO_MGDL, anyBg, profileFunction.getUnits())
|
if (isMmol(anyBg)) toUnitsString(anyBg * Constants.MMOLL_TO_MGDL, anyBg, profileFunction.getUnits())
|
||||||
else toUnitsString(anyBg, anyBg * Constants.MGDL_TO_MMOLL, profileFunction.getUnits())
|
else toUnitsString(anyBg, anyBg * Constants.MGDL_TO_MMOLL, profileFunction.getUnits())
|
||||||
|
|
||||||
fun toMgdl(value: Double, units: GlucoseUnit): Double =
|
fun toMgdl(value: Double, units: GlucoseUnit): Double =
|
||||||
|
|
Loading…
Add table
Reference in a new issue