- kotlin refactorings - MedtronicDeviceType
This commit is contained in:
parent
921302bdbf
commit
d0f46d6745
13 changed files with 72 additions and 56 deletions
|
@ -209,13 +209,16 @@ class MedtronicFragment : DaggerFragment() {
|
||||||
} ?: "-"
|
} ?: "-"
|
||||||
|
|
||||||
when (medtronicPumpStatus.pumpDeviceState) {
|
when (medtronicPumpStatus.pumpDeviceState) {
|
||||||
PumpDeviceState.Sleeping -> binding.pumpStatusIcon.text = "{fa-bed} " // + pumpStatus.pumpDeviceState.name());
|
PumpDeviceState.Sleeping ->
|
||||||
|
binding.pumpStatusIcon.text = "{fa-bed} " // + pumpStatus.pumpDeviceState.name());
|
||||||
|
|
||||||
PumpDeviceState.NeverContacted,
|
PumpDeviceState.NeverContacted,
|
||||||
PumpDeviceState.WakingUp,
|
PumpDeviceState.WakingUp,
|
||||||
PumpDeviceState.PumpUnreachable,
|
PumpDeviceState.PumpUnreachable,
|
||||||
PumpDeviceState.ErrorWhenCommunicating,
|
PumpDeviceState.ErrorWhenCommunicating,
|
||||||
PumpDeviceState.TimeoutWhenCommunicating,
|
PumpDeviceState.TimeoutWhenCommunicating,
|
||||||
PumpDeviceState.InvalidConfiguration -> binding.pumpStatusIcon.text = " " + resourceHelper.gs(medtronicPumpStatus.pumpDeviceState.resourceId)
|
PumpDeviceState.InvalidConfiguration ->
|
||||||
|
binding.pumpStatusIcon.text = " " + resourceHelper.gs(medtronicPumpStatus.pumpDeviceState.resourceId)
|
||||||
|
|
||||||
PumpDeviceState.Active -> {
|
PumpDeviceState.Active -> {
|
||||||
val cmd = medtronicUtil.getCurrentCommand()
|
val cmd = medtronicUtil.getCurrentCommand()
|
||||||
|
@ -223,10 +226,10 @@ class MedtronicFragment : DaggerFragment() {
|
||||||
binding.pumpStatusIcon.text = " " + resourceHelper.gs(medtronicPumpStatus.pumpDeviceState.resourceId)
|
binding.pumpStatusIcon.text = " " + resourceHelper.gs(medtronicPumpStatus.pumpDeviceState.resourceId)
|
||||||
else {
|
else {
|
||||||
aapsLogger.debug(LTag.PUMP, "Command: $cmd")
|
aapsLogger.debug(LTag.PUMP, "Command: $cmd")
|
||||||
val cmdResourceId = cmd.resourceId!!
|
val cmdResourceId = cmd.resourceId //!!
|
||||||
if (cmd == MedtronicCommandType.GetHistoryData) {
|
if (cmd == MedtronicCommandType.GetHistoryData) {
|
||||||
binding.pumpStatusIcon.text = medtronicUtil.frameNumber?.let {
|
binding.pumpStatusIcon.text = medtronicUtil.frameNumber?.let {
|
||||||
resourceHelper.gs(cmdResourceId, medtronicUtil.pageNumber, medtronicUtil.frameNumber)
|
resourceHelper.gs(cmdResourceId!!, medtronicUtil.pageNumber, medtronicUtil.frameNumber)
|
||||||
}
|
}
|
||||||
?: resourceHelper.gs(R.string.medtronic_cmd_desc_get_history_request, medtronicUtil.pageNumber)
|
?: resourceHelper.gs(R.string.medtronic_cmd_desc_get_history_request, medtronicUtil.pageNumber)
|
||||||
} else {
|
} else {
|
||||||
|
@ -236,7 +239,8 @@ class MedtronicFragment : DaggerFragment() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
else -> aapsLogger.warn(LTag.PUMP, "Unknown pump state: " + medtronicPumpStatus.pumpDeviceState)
|
else ->
|
||||||
|
aapsLogger.warn(LTag.PUMP, "Unknown pump state: " + medtronicPumpStatus.pumpDeviceState)
|
||||||
}
|
}
|
||||||
|
|
||||||
val status = commandQueue.spannedStatus()
|
val status = commandQueue.spannedStatus()
|
||||||
|
|
|
@ -36,8 +36,8 @@ import info.nightscout.androidaps.plugins.pump.common.hw.rileylink.service.tasks
|
||||||
import info.nightscout.androidaps.plugins.pump.common.hw.rileylink.service.tasks.WakeAndTuneTask
|
import info.nightscout.androidaps.plugins.pump.common.hw.rileylink.service.tasks.WakeAndTuneTask
|
||||||
import info.nightscout.androidaps.plugins.pump.common.sync.PumpDbEntryTBR
|
import info.nightscout.androidaps.plugins.pump.common.sync.PumpDbEntryTBR
|
||||||
import info.nightscout.androidaps.plugins.pump.common.sync.PumpSyncEntriesCreator
|
import info.nightscout.androidaps.plugins.pump.common.sync.PumpSyncEntriesCreator
|
||||||
import info.nightscout.androidaps.plugins.pump.common.utils.DateTimeUtil
|
|
||||||
import info.nightscout.androidaps.plugins.pump.common.sync.PumpSyncStorage
|
import info.nightscout.androidaps.plugins.pump.common.sync.PumpSyncStorage
|
||||||
|
import info.nightscout.androidaps.plugins.pump.common.utils.DateTimeUtil
|
||||||
import info.nightscout.androidaps.plugins.pump.medtronic.comm.history.pump.PumpHistoryEntry
|
import info.nightscout.androidaps.plugins.pump.medtronic.comm.history.pump.PumpHistoryEntry
|
||||||
import info.nightscout.androidaps.plugins.pump.medtronic.comm.history.pump.PumpHistoryResult
|
import info.nightscout.androidaps.plugins.pump.medtronic.comm.history.pump.PumpHistoryResult
|
||||||
import info.nightscout.androidaps.plugins.pump.medtronic.data.MedtronicHistoryData
|
import info.nightscout.androidaps.plugins.pump.medtronic.data.MedtronicHistoryData
|
||||||
|
@ -236,7 +236,7 @@ class MedtronicPumpPlugin @Inject constructor(
|
||||||
|
|
||||||
override fun getPumpInfo(): RileyLinkPumpInfo {
|
override fun getPumpInfo(): RileyLinkPumpInfo {
|
||||||
val frequency = resourceHelper.gs(if (medtronicPumpStatus.pumpFrequency == "medtronic_pump_frequency_us_ca") R.string.medtronic_pump_frequency_us_ca else R.string.medtronic_pump_frequency_worldwide)
|
val frequency = resourceHelper.gs(if (medtronicPumpStatus.pumpFrequency == "medtronic_pump_frequency_us_ca") R.string.medtronic_pump_frequency_us_ca else R.string.medtronic_pump_frequency_worldwide)
|
||||||
val model = if (medtronicPumpStatus.medtronicDeviceType == null) "???" else "Medtronic " + medtronicPumpStatus.medtronicDeviceType!!.pumpModel
|
val model = if (!medtronicUtil.isModelSet) "???" else "Medtronic " + medtronicPumpStatus.medtronicDeviceType.pumpModel
|
||||||
val serialNumber = medtronicPumpStatus.serialNumber
|
val serialNumber = medtronicPumpStatus.serialNumber
|
||||||
return RileyLinkPumpInfo(frequency, model, serialNumber)
|
return RileyLinkPumpInfo(frequency, model, serialNumber)
|
||||||
}
|
}
|
||||||
|
@ -417,7 +417,7 @@ class MedtronicPumpPlugin @Inject constructor(
|
||||||
}
|
}
|
||||||
|
|
||||||
// model (once)
|
// model (once)
|
||||||
if (medtronicUtil.medtronicPumpModel == null) {
|
if (!medtronicUtil.isModelSet) {
|
||||||
rileyLinkMedtronicService!!.medtronicUIComm.executeCommand(MedtronicCommandType.PumpModel)
|
rileyLinkMedtronicService!!.medtronicUIComm.executeCommand(MedtronicCommandType.PumpModel)
|
||||||
} else {
|
} else {
|
||||||
if (medtronicPumpStatus.medtronicDeviceType !== medtronicUtil.medtronicPumpModel) {
|
if (medtronicPumpStatus.medtronicDeviceType !== medtronicUtil.medtronicPumpModel) {
|
||||||
|
@ -534,7 +534,6 @@ class MedtronicPumpPlugin @Inject constructor(
|
||||||
return DateTimeUtil.toATechDate(timestamp)
|
return DateTimeUtil.toATechDate(timestamp)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private var bolusDeliveryType = BolusDeliveryType.Idle
|
private var bolusDeliveryType = BolusDeliveryType.Idle
|
||||||
|
|
||||||
private enum class BolusDeliveryType {
|
private enum class BolusDeliveryType {
|
||||||
|
@ -1002,7 +1001,7 @@ class MedtronicPumpPlugin @Inject constructor(
|
||||||
|
|
||||||
val runningTBR = medtronicPumpStatus.runningTBR
|
val runningTBR = medtronicPumpStatus.runningTBR
|
||||||
|
|
||||||
if (runningTBR!=null) {
|
if (runningTBR != null) {
|
||||||
if (medtronicHistoryData.isTBRActive(runningTBR)) {
|
if (medtronicHistoryData.isTBRActive(runningTBR)) {
|
||||||
|
|
||||||
val differenceTime = System.currentTimeMillis() - runningTBR.date
|
val differenceTime = System.currentTimeMillis() - runningTBR.date
|
||||||
|
@ -1018,7 +1017,7 @@ class MedtronicPumpPlugin @Inject constructor(
|
||||||
runningTBR.pumpType,
|
runningTBR.pumpType,
|
||||||
runningTBR.serialNumber)
|
runningTBR.serialNumber)
|
||||||
|
|
||||||
val differenceTimeMin = Math.floor(differenceTime/(60.0*1000.0))
|
val differenceTimeMin = Math.floor(differenceTime / (60.0 * 1000.0))
|
||||||
|
|
||||||
aapsLogger.debug(LTag.PUMP, String.format(Locale.ENGLISH, "canceling running TBR - syncTemporaryBasalWithPumpId [date=%d, pumpId=%d, rate=%.2f U, duration=%d, pumpSerial=%s] - Result: %b",
|
aapsLogger.debug(LTag.PUMP, String.format(Locale.ENGLISH, "canceling running TBR - syncTemporaryBasalWithPumpId [date=%d, pumpId=%d, rate=%.2f U, duration=%d, pumpSerial=%s] - Result: %b",
|
||||||
runningTBR.date, runningTBR.pumpId!!,
|
runningTBR.date, runningTBR.pumpId!!,
|
||||||
|
@ -1175,6 +1174,7 @@ class MedtronicPumpPlugin @Inject constructor(
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
|
||||||
var isBusy = false
|
var isBusy = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -136,8 +136,9 @@ class MedtronicCommunicationManager // This empty constructor must be kept, oth
|
||||||
val dataResponse = medtronicConverter.decodeModel(pumpResponse.rawContent)
|
val dataResponse = medtronicConverter.decodeModel(pumpResponse.rawContent)
|
||||||
val pumpModel = dataResponse as MedtronicDeviceType?
|
val pumpModel = dataResponse as MedtronicDeviceType?
|
||||||
val valid = pumpModel !== MedtronicDeviceType.Unknown_Device
|
val valid = pumpModel !== MedtronicDeviceType.Unknown_Device
|
||||||
if (medtronicUtil.medtronicPumpModel == null && valid) {
|
if (!medtronicUtil.isModelSet && valid) {
|
||||||
medtronicUtil.medtronicPumpModel = pumpModel
|
medtronicUtil.medtronicPumpModel = pumpModel!!
|
||||||
|
medtronicUtil.isModelSet = true
|
||||||
}
|
}
|
||||||
aapsLogger.debug(LTag.PUMPCOMM, String.format(Locale.ENGLISH, "isDeviceReachable. PumpModel is %s - Valid: %b (rssi=%d)", pumpModel!!.name, valid,
|
aapsLogger.debug(LTag.PUMPCOMM, String.format(Locale.ENGLISH, "isDeviceReachable. PumpModel is %s - Valid: %b (rssi=%d)", pumpModel!!.name, valid,
|
||||||
radioResponse.rssi))
|
radioResponse.rssi))
|
||||||
|
|
|
@ -8,8 +8,6 @@ import info.nightscout.androidaps.plugins.pump.common.utils.StringUtil
|
||||||
import info.nightscout.androidaps.plugins.pump.medtronic.data.dto.BasalProfile
|
import info.nightscout.androidaps.plugins.pump.medtronic.data.dto.BasalProfile
|
||||||
import info.nightscout.androidaps.plugins.pump.medtronic.data.dto.BatteryStatusDTO
|
import info.nightscout.androidaps.plugins.pump.medtronic.data.dto.BatteryStatusDTO
|
||||||
import info.nightscout.androidaps.plugins.pump.medtronic.data.dto.PumpSettingDTO
|
import info.nightscout.androidaps.plugins.pump.medtronic.data.dto.PumpSettingDTO
|
||||||
import info.nightscout.androidaps.plugins.pump.medtronic.data.dto.TempBasalPair
|
|
||||||
import info.nightscout.androidaps.plugins.pump.medtronic.defs.MedtronicCommandType
|
|
||||||
import info.nightscout.androidaps.plugins.pump.medtronic.defs.MedtronicDeviceType
|
import info.nightscout.androidaps.plugins.pump.medtronic.defs.MedtronicDeviceType
|
||||||
import info.nightscout.androidaps.plugins.pump.medtronic.defs.PumpConfigurationGroup
|
import info.nightscout.androidaps.plugins.pump.medtronic.defs.PumpConfigurationGroup
|
||||||
import info.nightscout.androidaps.plugins.pump.medtronic.util.MedtronicUtil
|
import info.nightscout.androidaps.plugins.pump.medtronic.util.MedtronicUtil
|
||||||
|
@ -95,6 +93,7 @@ class MedtronicConverter @Inject constructor(
|
||||||
if (pumpModel != MedtronicDeviceType.Unknown_Device) {
|
if (pumpModel != MedtronicDeviceType.Unknown_Device) {
|
||||||
if (!medtronicUtil.isModelSet) {
|
if (!medtronicUtil.isModelSet) {
|
||||||
medtronicUtil.medtronicPumpModel = pumpModel
|
medtronicUtil.medtronicPumpModel = pumpModel
|
||||||
|
medtronicUtil.isModelSet = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return pumpModel
|
return pumpModel
|
||||||
|
@ -129,12 +128,12 @@ class MedtronicConverter @Inject constructor(
|
||||||
public fun decodeRemainingInsulin(rawData: ByteArray?): Double {
|
public fun decodeRemainingInsulin(rawData: ByteArray?): Double {
|
||||||
var startIdx = 0
|
var startIdx = 0
|
||||||
val pumpModel = medtronicUtil.medtronicPumpModel
|
val pumpModel = medtronicUtil.medtronicPumpModel
|
||||||
val strokes = pumpModel?.bolusStrokes ?: 10
|
val strokes = pumpModel.bolusStrokes //?: 10
|
||||||
if (strokes == 40) {
|
if (strokes == 40) {
|
||||||
startIdx = 2
|
startIdx = 2
|
||||||
}
|
}
|
||||||
val reqLength = startIdx + 1
|
val reqLength = startIdx + 1
|
||||||
val value : Double
|
val value: Double
|
||||||
value = if (reqLength >= rawData!!.size) {
|
value = if (reqLength >= rawData!!.size) {
|
||||||
rawData[startIdx] / (1.0 * strokes)
|
rawData[startIdx] / (1.0 * strokes)
|
||||||
} else {
|
} else {
|
||||||
|
@ -208,7 +207,7 @@ class MedtronicConverter @Inject constructor(
|
||||||
rd[settingIndexMaxBasal + 1].toInt())), PumpConfigurationGroup.Basal, map)
|
rd[settingIndexMaxBasal + 1].toInt())), PumpConfigurationGroup.Basal, map)
|
||||||
addSettingToMap("CFG_BASE_CLOCK_MODE", if (rd[settingIndexTimeDisplayFormat].toInt() == 0) "12h" else "24h",
|
addSettingToMap("CFG_BASE_CLOCK_MODE", if (rd[settingIndexTimeDisplayFormat].toInt() == 0) "12h" else "24h",
|
||||||
PumpConfigurationGroup.General, map)
|
PumpConfigurationGroup.General, map)
|
||||||
if (MedtronicDeviceType.isSameDevice(medtronicUtil.medtronicPumpModel!!, MedtronicDeviceType.Medtronic_523andHigher)) {
|
if (MedtronicDeviceType.isSameDevice(medtronicUtil.medtronicPumpModel, MedtronicDeviceType.Medtronic_523andHigher)) {
|
||||||
addSettingToMap("PCFG_INSULIN_CONCENTRATION", "" + if (rd[9].toInt() == 0) 50 else 100, PumpConfigurationGroup.Insulin,
|
addSettingToMap("PCFG_INSULIN_CONCENTRATION", "" + if (rd[9].toInt() == 0) 50 else 100, PumpConfigurationGroup.Insulin,
|
||||||
map)
|
map)
|
||||||
// LOG.debug("Insulin concentration: " + rd[9]);
|
// LOG.debug("Insulin concentration: " + rd[9]);
|
||||||
|
@ -249,7 +248,7 @@ class MedtronicConverter @Inject constructor(
|
||||||
addSettingToMap("PCFG_MM_SRESERVOIR_WARNING_POINT", "" + ByteUtil.asUINT8(rd[19]),
|
addSettingToMap("PCFG_MM_SRESERVOIR_WARNING_POINT", "" + ByteUtil.asUINT8(rd[19]),
|
||||||
PumpConfigurationGroup.Other, map)
|
PumpConfigurationGroup.Other, map)
|
||||||
addSettingToMap("CFG_MM_KEYPAD_LOCKED", parseResultEnable(rd[20].toInt()), PumpConfigurationGroup.Other, map)
|
addSettingToMap("CFG_MM_KEYPAD_LOCKED", parseResultEnable(rd[20].toInt()), PumpConfigurationGroup.Other, map)
|
||||||
if (MedtronicDeviceType.isSameDevice(medtronicUtil.medtronicPumpModel!!, MedtronicDeviceType.Medtronic_523andHigher)) {
|
if (MedtronicDeviceType.isSameDevice(medtronicUtil.medtronicPumpModel, MedtronicDeviceType.Medtronic_523andHigher)) {
|
||||||
addSettingToMap("PCFG_BOLUS_SCROLL_STEP_SIZE", "" + rd[21], PumpConfigurationGroup.Bolus, map)
|
addSettingToMap("PCFG_BOLUS_SCROLL_STEP_SIZE", "" + rd[21], PumpConfigurationGroup.Bolus, map)
|
||||||
addSettingToMap("PCFG_CAPTURE_EVENT_ENABLE", parseResultEnable(rd[22].toInt()), PumpConfigurationGroup.Other, map)
|
addSettingToMap("PCFG_CAPTURE_EVENT_ENABLE", parseResultEnable(rd[22].toInt()), PumpConfigurationGroup.Other, map)
|
||||||
addSettingToMap("PCFG_OTHER_DEVICE_ENABLE", parseResultEnable(rd[23].toInt()), PumpConfigurationGroup.Other, map)
|
addSettingToMap("PCFG_OTHER_DEVICE_ENABLE", parseResultEnable(rd[23].toInt()), PumpConfigurationGroup.Other, map)
|
||||||
|
@ -273,7 +272,7 @@ class MedtronicConverter @Inject constructor(
|
||||||
|
|
||||||
// 512
|
// 512
|
||||||
private fun decodeInsulinActionSetting(ai: ByteArray, map: MutableMap<String, PumpSettingDTO>) {
|
private fun decodeInsulinActionSetting(ai: ByteArray, map: MutableMap<String, PumpSettingDTO>) {
|
||||||
if (MedtronicDeviceType.isSameDevice(medtronicUtil.medtronicPumpModel!!, MedtronicDeviceType.Medtronic_512_712)) {
|
if (MedtronicDeviceType.isSameDevice(medtronicUtil.medtronicPumpModel, MedtronicDeviceType.Medtronic_512_712)) {
|
||||||
addSettingToMap("PCFG_INSULIN_ACTION_TYPE", if (ai[17].toInt() != 0) "Regular" else "Fast",
|
addSettingToMap("PCFG_INSULIN_ACTION_TYPE", if (ai[17].toInt() != 0) "Regular" else "Fast",
|
||||||
PumpConfigurationGroup.Insulin, map)
|
PumpConfigurationGroup.Insulin, map)
|
||||||
} else {
|
} else {
|
||||||
|
@ -308,7 +307,7 @@ class MedtronicConverter @Inject constructor(
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun is523orHigher(): Boolean {
|
private fun is523orHigher(): Boolean {
|
||||||
return MedtronicDeviceType.isSameDevice(medtronicUtil.medtronicPumpModel!!, MedtronicDeviceType.Medtronic_523andHigher)
|
return MedtronicDeviceType.isSameDevice(medtronicUtil.medtronicPumpModel, MedtronicDeviceType.Medtronic_523andHigher)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -44,7 +44,7 @@ abstract class MedtronicHistoryDecoder<T : MedtronicHistoryEntry?> : MedtronicHi
|
||||||
private fun checkPage(page: RawHistoryPage): MutableList<Byte> {
|
private fun checkPage(page: RawHistoryPage): MutableList<Byte> {
|
||||||
//val byteList: MutableList<Byte> = mutableListOf()
|
//val byteList: MutableList<Byte> = mutableListOf()
|
||||||
|
|
||||||
if (medtronicUtil.medtronicPumpModel == null) {
|
if (!medtronicUtil.isModelSet) {
|
||||||
aapsLogger.error(LTag.PUMPCOMM, "Device Type is not defined.")
|
aapsLogger.error(LTag.PUMPCOMM, "Device Type is not defined.")
|
||||||
return mutableListOf()
|
return mutableListOf()
|
||||||
}
|
}
|
||||||
|
|
|
@ -69,7 +69,7 @@ class MedtronicPumpHistoryDecoder @Inject constructor(
|
||||||
}
|
}
|
||||||
val entryType = getByCode(opCode.toByte())
|
val entryType = getByCode(opCode.toByte())
|
||||||
val pe = PumpHistoryEntry()
|
val pe = PumpHistoryEntry()
|
||||||
pe.setEntryType(medtronicUtil.medtronicPumpModel!!, entryType!!)
|
pe.setEntryType(medtronicUtil.medtronicPumpModel, entryType, if (entryType == PumpHistoryEntryType.UnknownBasePacket) opCode.toByte() else null)
|
||||||
pe.offset = counter
|
pe.offset = counter
|
||||||
counter++
|
counter++
|
||||||
if (counter >= 1022) {
|
if (counter >= 1022) {
|
||||||
|
@ -91,7 +91,7 @@ class MedtronicPumpHistoryDecoder @Inject constructor(
|
||||||
}
|
}
|
||||||
special = true
|
special = true
|
||||||
} else {
|
} else {
|
||||||
for (j in 0 until entryType.getTotalLength(medtronicUtil.medtronicPumpModel!!) - 1) {
|
for (j in 0 until entryType.getTotalLength(medtronicUtil.medtronicPumpModel) - 1) {
|
||||||
try {
|
try {
|
||||||
listRawData.add(dataClearInput[counter])
|
listRawData.add(dataClearInput[counter])
|
||||||
counter++
|
counter++
|
||||||
|
@ -111,7 +111,7 @@ class MedtronicPumpHistoryDecoder @Inject constructor(
|
||||||
if (pe.entryType === PumpHistoryEntryType.UnknownBasePacket) {
|
if (pe.entryType === PumpHistoryEntryType.UnknownBasePacket) {
|
||||||
pe.opCode = opCode.toByte()
|
pe.opCode = opCode.toByte()
|
||||||
}
|
}
|
||||||
if (entryType.getHeadLength(medtronicUtil.medtronicPumpModel!!) == 0) special = true
|
if (entryType.getHeadLength(medtronicUtil.medtronicPumpModel) == 0) special = true
|
||||||
pe.setData(listRawData as List<Byte>, special)
|
pe.setData(listRawData as List<Byte>, special)
|
||||||
val decoded = decodeRecord(pe)
|
val decoded = decodeRecord(pe)
|
||||||
if (decoded === RecordDecodeStatus.OK || decoded === RecordDecodeStatus.Ignored) {
|
if (decoded === RecordDecodeStatus.OK || decoded === RecordDecodeStatus.Ignored) {
|
||||||
|
@ -299,7 +299,7 @@ class MedtronicPumpHistoryDecoder @Inject constructor(
|
||||||
val offset = body!![0] * 1000 * 30 * 60
|
val offset = body!![0] * 1000 * 30 * 60
|
||||||
var rate: Float? = null
|
var rate: Float? = null
|
||||||
val index = entry.head!![0].toInt()
|
val index = entry.head!![0].toInt()
|
||||||
if (MedtronicDeviceType.isSameDevice(medtronicUtil.medtronicPumpModel!!, MedtronicDeviceType.Medtronic_523andHigher)) {
|
if (MedtronicDeviceType.isSameDevice(medtronicUtil.medtronicPumpModel, MedtronicDeviceType.Medtronic_523andHigher)) {
|
||||||
rate = body[1] * 0.025f
|
rate = body[1] * 0.025f
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -318,7 +318,7 @@ class MedtronicPumpHistoryDecoder @Inject constructor(
|
||||||
val body = entry.body!!
|
val body = entry.body!!
|
||||||
val dto = BolusWizardDTO()
|
val dto = BolusWizardDTO()
|
||||||
var bolusStrokes = 10.0f
|
var bolusStrokes = 10.0f
|
||||||
if (MedtronicDeviceType.isSameDevice(medtronicUtil.medtronicPumpModel!!, MedtronicDeviceType.Medtronic_523andHigher)) {
|
if (MedtronicDeviceType.isSameDevice(medtronicUtil.medtronicPumpModel, MedtronicDeviceType.Medtronic_523andHigher)) {
|
||||||
// https://github.com/ps2/minimed_rf/blob/master/lib/minimed_rf/log_entries/bolus_wizard.rb#L102
|
// https://github.com/ps2/minimed_rf/blob/master/lib/minimed_rf/log_entries/bolus_wizard.rb#L102
|
||||||
bolusStrokes = 40.0f
|
bolusStrokes = 40.0f
|
||||||
dto.carbs = ((body[1] and 0x0c.toByte()).toInt() shl 6) + body[0]
|
dto.carbs = ((body[1] and 0x0c.toByte()).toInt() shl 6) + body[0]
|
||||||
|
@ -421,9 +421,9 @@ class MedtronicPumpHistoryDecoder @Inject constructor(
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun decodeBolus(entry: PumpHistoryEntry) {
|
private fun decodeBolus(entry: PumpHistoryEntry) {
|
||||||
var bolus: BolusDTO?
|
val bolus: BolusDTO?
|
||||||
val data = entry.head!!
|
val data = entry.head!!
|
||||||
if (MedtronicDeviceType.isSameDevice(medtronicUtil.medtronicPumpModel!!, MedtronicDeviceType.Medtronic_523andHigher)) {
|
if (MedtronicDeviceType.isSameDevice(medtronicUtil.medtronicPumpModel, MedtronicDeviceType.Medtronic_523andHigher)) {
|
||||||
bolus = BolusDTO(atechDateTime = entry.atechDateTime,
|
bolus = BolusDTO(atechDateTime = entry.atechDateTime,
|
||||||
requestedAmount = ByteUtil.toInt(data.get(0), data.get(1)) / 40.0,
|
requestedAmount = ByteUtil.toInt(data.get(0), data.get(1)) / 40.0,
|
||||||
deliveredAmount = ByteUtil.toInt(data.get(2), data.get(3)) / 40.0,
|
deliveredAmount = ByteUtil.toInt(data.get(2), data.get(3)) / 40.0,
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
package info.nightscout.androidaps.plugins.pump.medtronic.comm.history.pump
|
package info.nightscout.androidaps.plugins.pump.medtronic.comm.history.pump
|
||||||
|
|
||||||
import android.util.Log
|
|
||||||
import com.google.gson.annotations.Expose
|
import com.google.gson.annotations.Expose
|
||||||
import info.nightscout.androidaps.plugins.pump.common.utils.ByteUtil
|
import info.nightscout.androidaps.plugins.pump.common.utils.ByteUtil
|
||||||
import info.nightscout.androidaps.plugins.pump.common.utils.StringUtil
|
import info.nightscout.androidaps.plugins.pump.common.utils.StringUtil
|
||||||
|
@ -36,15 +35,16 @@ class PumpHistoryEntry : MedtronicHistoryEntry() {
|
||||||
field = value
|
field = value
|
||||||
}
|
}
|
||||||
|
|
||||||
fun setEntryType(medtronicDeviceType: MedtronicDeviceType, entryType: PumpHistoryEntryType) {
|
fun setEntryType(medtronicDeviceType: MedtronicDeviceType, entryType: PumpHistoryEntryType, opCode: Byte? = null) {
|
||||||
this.entryType = entryType
|
this.entryType = entryType
|
||||||
sizes[0] = entryType.getHeadLength(medtronicDeviceType)
|
sizes[0] = entryType.getHeadLength(medtronicDeviceType)
|
||||||
sizes[1] = entryType.dateLength
|
sizes[1] = entryType.dateLength
|
||||||
sizes[2] = entryType.getBodyLength(medtronicDeviceType)
|
sizes[2] = entryType.getBodyLength(medtronicDeviceType)
|
||||||
if (isEntryTypeSet() && atechDateTime != 0L) pumpId = generatePumpId()
|
if (isEntryTypeSet() && atechDateTime != 0L) pumpId = generatePumpId()
|
||||||
|
this.opCode = opCode
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun generatePumpId() : Long {
|
override fun generatePumpId(): Long {
|
||||||
return entryType.code + atechDateTime * 1000L
|
return entryType.code + atechDateTime * 1000L
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -103,6 +103,7 @@ class PumpHistoryEntry : MedtronicHistoryEntry() {
|
||||||
}
|
}
|
||||||
|
|
||||||
class Comparator : java.util.Comparator<PumpHistoryEntry> {
|
class Comparator : java.util.Comparator<PumpHistoryEntry> {
|
||||||
|
|
||||||
override fun compare(o1: PumpHistoryEntry, o2: PumpHistoryEntry): Int {
|
override fun compare(o1: PumpHistoryEntry, o2: PumpHistoryEntry): Int {
|
||||||
val data = (o2.atechDateTime - o1.atechDateTime).toInt()
|
val data = (o2.atechDateTime - o1.atechDateTime).toInt()
|
||||||
return if (data != 0) data else o2.entryType.code - o1.entryType.code
|
return if (data != 0) data else o2.entryType.code - o1.entryType.code
|
||||||
|
@ -111,7 +112,7 @@ class PumpHistoryEntry : MedtronicHistoryEntry() {
|
||||||
|
|
||||||
override var pumpId: Long = 0L
|
override var pumpId: Long = 0L
|
||||||
get() {
|
get() {
|
||||||
if (field==0L) {
|
if (field == 0L) {
|
||||||
field = generatePumpId()
|
field = generatePumpId()
|
||||||
}
|
}
|
||||||
return field
|
return field
|
||||||
|
@ -120,7 +121,7 @@ class PumpHistoryEntry : MedtronicHistoryEntry() {
|
||||||
field = pumpId
|
field = pumpId
|
||||||
}
|
}
|
||||||
|
|
||||||
fun hasBolusChanged(entry: PumpHistoryEntry) : Boolean {
|
fun hasBolusChanged(entry: PumpHistoryEntry): Boolean {
|
||||||
if (entryType == PumpHistoryEntryType.Bolus) {
|
if (entryType == PumpHistoryEntryType.Bolus) {
|
||||||
val thisOne: BolusDTO = this.decodedData["Object"] as BolusDTO
|
val thisOne: BolusDTO = this.decodedData["Object"] as BolusDTO
|
||||||
|
|
||||||
|
|
|
@ -12,10 +12,11 @@ import java.util.*
|
||||||
* Author: Andy {andy.rozman@gmail.com}
|
* Author: Andy {andy.rozman@gmail.com}
|
||||||
*/
|
*/
|
||||||
enum class PumpHistoryEntryType // implements CodeEnum
|
enum class PumpHistoryEntryType // implements CodeEnum
|
||||||
constructor(opCode: Byte, name: String?, group: PumpHistoryEntryGroup, head: Int = 2, date: Int = 5, body: Int = 0) {
|
constructor(opCode: Byte, name: String?, group: PumpHistoryEntryGroup, head: Int = 2, date: Int = 5, body: Int = 0) {
|
||||||
|
|
||||||
// all commented out are probably not the real items
|
// all commented out are probably not the real items
|
||||||
None(0, "None", PumpHistoryEntryGroup.Unknown, 1, 0, 0), Bolus(0x01, "Bolus", PumpHistoryEntryGroup.Bolus, 4, 5, 0), // 523+[H=8] 9/13
|
None(0, "None", PumpHistoryEntryGroup.Unknown, 1, 0, 0),
|
||||||
|
Bolus(0x01, "Bolus", PumpHistoryEntryGroup.Bolus, 4, 5, 0), // 523+[H=8] 9/13
|
||||||
Prime(0x03, "Prime", PumpHistoryEntryGroup.Prime, 5, 5, 0), //
|
Prime(0x03, "Prime", PumpHistoryEntryGroup.Prime, 5, 5, 0), //
|
||||||
|
|
||||||
// /**/EventUnknown_MM522_0x05((byte) 0x05, "Unknown Event 0x05", PumpHistoryEntryGroup.Unknown, 2, 5, 28), //
|
// /**/EventUnknown_MM522_0x05((byte) 0x05, "Unknown Event 0x05", PumpHistoryEntryGroup.Unknown, 2, 5, 28), //
|
||||||
|
@ -40,6 +41,7 @@ enum class PumpHistoryEntryType // implements CodeEnum
|
||||||
ClearSettings(0x22, "Clear Settings", PumpHistoryEntryGroup.Configuration), //
|
ClearSettings(0x22, "Clear Settings", PumpHistoryEntryGroup.Configuration), //
|
||||||
ChangeChildBlockEnable(0x23, "Change Child Block Enable", PumpHistoryEntryGroup.Configuration), //
|
ChangeChildBlockEnable(0x23, "Change Child Block Enable", PumpHistoryEntryGroup.Configuration), //
|
||||||
ChangeMaxBolus(0x24, "Change Max Bolus", PumpHistoryEntryGroup.Configuration), //
|
ChangeMaxBolus(0x24, "Change Max Bolus", PumpHistoryEntryGroup.Configuration), //
|
||||||
|
|
||||||
// /**/EventUnknown_MM522_0x25(0x25, "Unknown Event 0x25", PumpHistoryEntryGroup.Unknown), // 8?
|
// /**/EventUnknown_MM522_0x25(0x25, "Unknown Event 0x25", PumpHistoryEntryGroup.Unknown), // 8?
|
||||||
EnableDisableRemote(0x26, "Enable/Disable Remote", PumpHistoryEntryGroup.Configuration, 2, 5, 14), // 2, 5, 14 V6:2,5,14
|
EnableDisableRemote(0x26, "Enable/Disable Remote", PumpHistoryEntryGroup.Configuration, 2, 5, 14), // 2, 5, 14 V6:2,5,14
|
||||||
ChangeRemoteId(0x27, "Change Remote ID", PumpHistoryEntryGroup.Configuration), // ??
|
ChangeRemoteId(0x27, "Change Remote ID", PumpHistoryEntryGroup.Configuration), // ??
|
||||||
|
@ -54,6 +56,7 @@ enum class PumpHistoryEntryType // implements CodeEnum
|
||||||
LowReservoir(0x34, "Low Reservoir", PumpHistoryEntryGroup.Notification), //
|
LowReservoir(0x34, "Low Reservoir", PumpHistoryEntryGroup.Notification), //
|
||||||
ChangeAlarmClock(0x35, "Change Alarm Clock", PumpHistoryEntryGroup.Configuration), //
|
ChangeAlarmClock(0x35, "Change Alarm Clock", PumpHistoryEntryGroup.Configuration), //
|
||||||
ChangeMeterId(0x36, "Change Meter ID", PumpHistoryEntryGroup.Configuration), //
|
ChangeMeterId(0x36, "Change Meter ID", PumpHistoryEntryGroup.Configuration), //
|
||||||
|
|
||||||
// /**/EventUnknown_MM512_0x37(0x37, "Unknown Event 0x37", PumpHistoryEntryGroup.Unknown), // V:MM512
|
// /**/EventUnknown_MM512_0x37(0x37, "Unknown Event 0x37", PumpHistoryEntryGroup.Unknown), // V:MM512
|
||||||
// /**/EventUnknown_MM512_0x38(0x38, "Unknown Event 0x38", PumpHistoryEntryGroup.Unknown), //
|
// /**/EventUnknown_MM512_0x38(0x38, "Unknown Event 0x38", PumpHistoryEntryGroup.Unknown), //
|
||||||
BGReceived512(0x39, "BG Received (512)", PumpHistoryEntryGroup.Glucose, 2, 5, 3), //
|
BGReceived512(0x39, "BG Received (512)", PumpHistoryEntryGroup.Glucose, 2, 5, 3), //
|
||||||
|
@ -69,6 +72,7 @@ enum class PumpHistoryEntryType // implements CodeEnum
|
||||||
JournalEntryInsulinMarker(0x42, "Insulin Marker", PumpHistoryEntryGroup.Bolus, 2, 5, 0), // V6 = body(0)/was=1
|
JournalEntryInsulinMarker(0x42, "Insulin Marker", PumpHistoryEntryGroup.Bolus, 2, 5, 0), // V6 = body(0)/was=1
|
||||||
JournalEntryOtherMarker(0x43, "Other Marker", PumpHistoryEntryGroup.Bolus, 2, 5, 1), // V6 = body(1) was=0
|
JournalEntryOtherMarker(0x43, "Other Marker", PumpHistoryEntryGroup.Bolus, 2, 5, 1), // V6 = body(1) was=0
|
||||||
EnableSensorAutoCal(0x44, "Enable Sensor AutoCal", PumpHistoryEntryGroup.Glucose), //
|
EnableSensorAutoCal(0x44, "Enable Sensor AutoCal", PumpHistoryEntryGroup.Glucose), //
|
||||||
|
|
||||||
// /**/EventUnknown_MM522_0x45(0x45, "Unknown Event 0x45", PumpHistoryEntryGroup.Unknown, 2, 5, 1), //
|
// /**/EventUnknown_MM522_0x45(0x45, "Unknown Event 0x45", PumpHistoryEntryGroup.Unknown, 2, 5, 1), //
|
||||||
// /**/EventUnknown_MM522_0x46(0x46, "Unknown Event 0x46", PumpHistoryEntryGroup.Unknown, 2, 5, 1), //
|
// /**/EventUnknown_MM522_0x46(0x46, "Unknown Event 0x46", PumpHistoryEntryGroup.Unknown, 2, 5, 1), //
|
||||||
// /**/EventUnknown_MM522_0x47(0x47, "Unknown Event 0x47", PumpHistoryEntryGroup.Unknown, 2, 5, 1), //
|
// /**/EventUnknown_MM522_0x47(0x47, "Unknown Event 0x47", PumpHistoryEntryGroup.Unknown, 2, 5, 1), //
|
||||||
|
@ -110,6 +114,7 @@ enum class PumpHistoryEntryType // implements CodeEnum
|
||||||
DailyTotals522(0x6d, "Daily Totals (522)", PumpHistoryEntryGroup.Statistic, 1, 2, 41), //
|
DailyTotals522(0x6d, "Daily Totals (522)", PumpHistoryEntryGroup.Statistic, 1, 2, 41), //
|
||||||
DailyTotals523(0x6e, "Daily Totals (523)", PumpHistoryEntryGroup.Statistic, 1, 2, 49), // 1102014-03-17T00:00:00
|
DailyTotals523(0x6e, "Daily Totals (523)", PumpHistoryEntryGroup.Statistic, 1, 2, 49), // 1102014-03-17T00:00:00
|
||||||
ChangeCarbUnits(0x6f.toByte(), "Change Carb Units", PumpHistoryEntryGroup.Configuration), //
|
ChangeCarbUnits(0x6f.toByte(), "Change Carb Units", PumpHistoryEntryGroup.Configuration), //
|
||||||
|
|
||||||
// /**/EventUnknown_MM522_0x70((byte) 0x70, "Unknown Event 0x70", PumpHistoryEntryGroup.Unknown, 2, 5, 1), //
|
// /**/EventUnknown_MM522_0x70((byte) 0x70, "Unknown Event 0x70", PumpHistoryEntryGroup.Unknown, 2, 5, 1), //
|
||||||
BasalProfileStart(0x7b, "Basal Profile Start", PumpHistoryEntryGroup.Basal, 2, 5, 3), // // 722
|
BasalProfileStart(0x7b, "Basal Profile Start", PumpHistoryEntryGroup.Basal, 2, 5, 3), // // 722
|
||||||
ChangeWatchdogEnable(0x7c, "Change Watchdog Enable", PumpHistoryEntryGroup.Configuration), //
|
ChangeWatchdogEnable(0x7c, "Change Watchdog Enable", PumpHistoryEntryGroup.Configuration), //
|
||||||
|
@ -133,6 +138,7 @@ enum class PumpHistoryEntryType // implements CodeEnum
|
||||||
UnknownBasePacket(0xff.toByte(), "Unknown Base Packet", PumpHistoryEntryGroup.Unknown);
|
UnknownBasePacket(0xff.toByte(), "Unknown Base Packet", PumpHistoryEntryGroup.Unknown);
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
|
||||||
private val opCodeMap: MutableMap<Byte, PumpHistoryEntryType?> = HashMap()
|
private val opCodeMap: MutableMap<Byte, PumpHistoryEntryType?> = HashMap()
|
||||||
fun setSpecialRulesForEntryTypes() {
|
fun setSpecialRulesForEntryTypes() {
|
||||||
EndResultTotals.addSpecialRuleBody(SpecialRule(MedtronicDeviceType.Medtronic_523andHigher, 3))
|
EndResultTotals.addSpecialRuleBody(SpecialRule(MedtronicDeviceType.Medtronic_523andHigher, 3))
|
||||||
|
@ -143,9 +149,9 @@ enum class PumpHistoryEntryType // implements CodeEnum
|
||||||
ChangeSensorSetup2.addSpecialRuleBody(SpecialRule(MedtronicDeviceType.Medtronic_523andHigher, 34))
|
ChangeSensorSetup2.addSpecialRuleBody(SpecialRule(MedtronicDeviceType.Medtronic_523andHigher, 34))
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getByCode(opCode: Byte): PumpHistoryEntryType? {
|
fun getByCode(opCode: Byte): PumpHistoryEntryType {
|
||||||
return if (opCodeMap.containsKey(opCode)) {
|
return if (opCodeMap.containsKey(opCode)) {
|
||||||
opCodeMap[opCode]
|
opCodeMap[opCode]!!
|
||||||
} else {
|
} else {
|
||||||
UnknownBasePacket
|
UnknownBasePacket
|
||||||
}
|
}
|
||||||
|
|
|
@ -102,11 +102,15 @@ class MedtronicUIPostprocessor @Inject constructor(
|
||||||
|
|
||||||
MedtronicCommandType.GetBatteryStatus -> {
|
MedtronicCommandType.GetBatteryStatus -> {
|
||||||
val batteryStatusDTO = uiTask.result as BatteryStatusDTO?
|
val batteryStatusDTO = uiTask.result as BatteryStatusDTO?
|
||||||
medtronicPumpStatus.batteryRemaining = batteryStatusDTO!!.getCalculatedPercent(medtronicPumpStatus.batteryType)
|
if (batteryStatusDTO != null) {
|
||||||
|
medtronicPumpStatus.batteryRemaining = batteryStatusDTO.getCalculatedPercent(medtronicPumpStatus.batteryType)
|
||||||
if (batteryStatusDTO.voltage != null) {
|
if (batteryStatusDTO.voltage != null) {
|
||||||
medtronicPumpStatus.batteryVoltage = batteryStatusDTO.voltage
|
medtronicPumpStatus.batteryVoltage = batteryStatusDTO.voltage
|
||||||
}
|
}
|
||||||
aapsLogger.debug(LTag.PUMP, String.format(Locale.ENGLISH, "BatteryStatus: %s", batteryStatusDTO.toString()))
|
aapsLogger.debug(LTag.PUMP, String.format(Locale.ENGLISH, "BatteryStatus: %s", batteryStatusDTO.toString()))
|
||||||
|
} else {
|
||||||
|
medtronicPumpStatus.batteryVoltage = null
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
MedtronicCommandType.PumpModel -> {
|
MedtronicCommandType.PumpModel -> {
|
||||||
|
|
|
@ -946,7 +946,7 @@ class MedtronicHistoryData @Inject constructor(
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getTDDType(): PumpHistoryEntryType {
|
private fun getTDDType(): PumpHistoryEntryType {
|
||||||
return if (medtronicUtil.medtronicPumpModel == null) {
|
return if (!medtronicUtil.isModelSet) {
|
||||||
PumpHistoryEntryType.EndResultTotals
|
PumpHistoryEntryType.EndResultTotals
|
||||||
} else when (medtronicUtil.medtronicPumpModel) {
|
} else when (medtronicUtil.medtronicPumpModel) {
|
||||||
MedtronicDeviceType.Medtronic_515,
|
MedtronicDeviceType.Medtronic_515,
|
||||||
|
@ -1015,7 +1015,7 @@ class MedtronicHistoryData @Inject constructor(
|
||||||
for (pumpHistoryEntry in TBRs_Input) {
|
for (pumpHistoryEntry in TBRs_Input) {
|
||||||
if (map.containsKey(pumpHistoryEntry.DT)) {
|
if (map.containsKey(pumpHistoryEntry.DT)) {
|
||||||
medtronicPumpHistoryDecoder.decodeTempBasal(map[pumpHistoryEntry.DT]!!, pumpHistoryEntry)
|
medtronicPumpHistoryDecoder.decodeTempBasal(map[pumpHistoryEntry.DT]!!, pumpHistoryEntry)
|
||||||
pumpHistoryEntry.setEntryType(medtronicUtil.medtronicPumpModel!!, PumpHistoryEntryType.TempBasalCombined)
|
pumpHistoryEntry.setEntryType(medtronicUtil.medtronicPumpModel, PumpHistoryEntryType.TempBasalCombined)
|
||||||
TBRs.add(pumpHistoryEntry)
|
TBRs.add(pumpHistoryEntry)
|
||||||
map.remove(pumpHistoryEntry.DT)
|
map.remove(pumpHistoryEntry.DT)
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -44,7 +44,7 @@ class MedtronicPumpStatus @Inject constructor(private val resourceHelper: Resour
|
||||||
rxBus.send(EventRileyLinkDeviceStatusChange(pumpDeviceState))
|
rxBus.send(EventRileyLinkDeviceStatusChange(pumpDeviceState))
|
||||||
}
|
}
|
||||||
|
|
||||||
var medtronicDeviceType: MedtronicDeviceType? = null
|
var medtronicDeviceType: MedtronicDeviceType = MedtronicDeviceType.Medtronic_522
|
||||||
var medtronicPumpMap: MutableMap<String, PumpType> = mutableMapOf()
|
var medtronicPumpMap: MutableMap<String, PumpType> = mutableMapOf()
|
||||||
var medtronicDeviceTypeMap: MutableMap<String, MedtronicDeviceType> = mutableMapOf()
|
var medtronicDeviceTypeMap: MutableMap<String, MedtronicDeviceType> = mutableMapOf()
|
||||||
var basalProfileStatus = BasalProfileStatus.NotInitialized
|
var basalProfileStatus = BasalProfileStatus.NotInitialized
|
||||||
|
@ -87,7 +87,6 @@ class MedtronicPumpStatus @Inject constructor(private val resourceHelper: Resour
|
||||||
medtronicPumpMap["754"] = PumpType.MEDTRONIC_554_754_VEO
|
medtronicPumpMap["754"] = PumpType.MEDTRONIC_554_754_VEO
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
val basalProfileForHour: Double
|
val basalProfileForHour: Double
|
||||||
get() {
|
get() {
|
||||||
if (basalsByHour != null) {
|
if (basalsByHour != null) {
|
||||||
|
@ -115,7 +114,6 @@ class MedtronicPumpStatus @Inject constructor(private val resourceHelper: Resour
|
||||||
override val errorInfo: String
|
override val errorInfo: String
|
||||||
get() = if (errorDescription == null) "-" else errorDescription!!
|
get() = if (errorDescription == null) "-" else errorDescription!!
|
||||||
|
|
||||||
|
|
||||||
val tbrRemainingTime: Int?
|
val tbrRemainingTime: Int?
|
||||||
get() {
|
get() {
|
||||||
if (tempBasalStart == null) return null
|
if (tempBasalStart == null) return null
|
||||||
|
|
|
@ -17,6 +17,7 @@ import info.nightscout.androidaps.plugins.pump.medtronic.MedtronicPumpPlugin
|
||||||
import info.nightscout.androidaps.plugins.pump.medtronic.R
|
import info.nightscout.androidaps.plugins.pump.medtronic.R
|
||||||
import info.nightscout.androidaps.plugins.pump.medtronic.comm.MedtronicCommunicationManager
|
import info.nightscout.androidaps.plugins.pump.medtronic.comm.MedtronicCommunicationManager
|
||||||
import info.nightscout.androidaps.plugins.pump.medtronic.comm.ui.MedtronicUIComm
|
import info.nightscout.androidaps.plugins.pump.medtronic.comm.ui.MedtronicUIComm
|
||||||
|
import info.nightscout.androidaps.plugins.pump.medtronic.defs.MedtronicDeviceType
|
||||||
import info.nightscout.androidaps.plugins.pump.medtronic.driver.MedtronicPumpStatus
|
import info.nightscout.androidaps.plugins.pump.medtronic.driver.MedtronicPumpStatus
|
||||||
import info.nightscout.androidaps.plugins.pump.medtronic.util.MedtronicConst
|
import info.nightscout.androidaps.plugins.pump.medtronic.util.MedtronicConst
|
||||||
import info.nightscout.androidaps.plugins.pump.medtronic.util.MedtronicUtil
|
import info.nightscout.androidaps.plugins.pump.medtronic.util.MedtronicUtil
|
||||||
|
@ -109,7 +110,8 @@ class RileyLinkMedtronicService // This empty constructor must be kept, otherwi
|
||||||
val oldId = rileyLinkServiceData.pumpID
|
val oldId = rileyLinkServiceData.pumpID
|
||||||
rileyLinkServiceData.setPumpID(pumpID, pumpIDBytes)
|
rileyLinkServiceData.setPumpID(pumpID, pumpIDBytes)
|
||||||
if (oldId != null && oldId != pumpID) {
|
if (oldId != null && oldId != pumpID) {
|
||||||
medtronicUtil.medtronicPumpModel = null // if we change pumpId, model probably changed too
|
medtronicUtil.medtronicPumpModel = MedtronicDeviceType.Medtronic_522 // if we change pumpId, model probably changed too
|
||||||
|
medtronicUtil.isModelSet = false
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -119,6 +121,7 @@ class RileyLinkMedtronicService // This empty constructor must be kept, otherwi
|
||||||
}
|
}
|
||||||
|
|
||||||
inner class LocalBinder : Binder() {
|
inner class LocalBinder : Binder() {
|
||||||
|
|
||||||
val serviceInstance: RileyLinkMedtronicService
|
val serviceInstance: RileyLinkMedtronicService
|
||||||
get() = this@RileyLinkMedtronicService
|
get() = this@RileyLinkMedtronicService
|
||||||
}
|
}
|
||||||
|
@ -158,7 +161,7 @@ class RileyLinkMedtronicService // This empty constructor must be kept, otherwi
|
||||||
return false
|
return false
|
||||||
} else {
|
} else {
|
||||||
val pumpType = medtronicPumpStatus.medtronicPumpMap[pumpTypePart]
|
val pumpType = medtronicPumpStatus.medtronicPumpMap[pumpTypePart]
|
||||||
medtronicPumpStatus.medtronicDeviceType = medtronicPumpStatus.medtronicDeviceTypeMap[pumpTypePart]
|
medtronicPumpStatus.medtronicDeviceType = medtronicPumpStatus.medtronicDeviceTypeMap[pumpTypePart]!!
|
||||||
medtronicPumpStatus.pumpType = pumpType!!
|
medtronicPumpStatus.pumpType = pumpType!!
|
||||||
medtronicPumpPlugin.pumpType = pumpType
|
medtronicPumpPlugin.pumpType = pumpType
|
||||||
if (pumpTypePart.startsWith("7")) medtronicPumpStatus.reservoirFullUnits = 300 else medtronicPumpStatus.reservoirFullUnits = 176
|
if (pumpTypePart.startsWith("7")) medtronicPumpStatus.reservoirFullUnits = 300 else medtronicPumpStatus.reservoirFullUnits = 176
|
||||||
|
|
|
@ -48,7 +48,6 @@ class MedtronicUtil @Inject constructor(
|
||||||
var pumpTime: ClockDTO? = null
|
var pumpTime: ClockDTO? = null
|
||||||
var gsonInstance = GsonBuilder().excludeFieldsWithoutExposeAnnotation().create()
|
var gsonInstance = GsonBuilder().excludeFieldsWithoutExposeAnnotation().create()
|
||||||
|
|
||||||
|
|
||||||
fun getTimeFrom30MinInterval(interval: Int): LocalTime {
|
fun getTimeFrom30MinInterval(interval: Int): LocalTime {
|
||||||
return if (interval % 2 == 0) {
|
return if (interval % 2 == 0) {
|
||||||
LocalTime(interval / 2, 0)
|
LocalTime(interval / 2, 0)
|
||||||
|
@ -74,7 +73,7 @@ class MedtronicUtil @Inject constructor(
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getBolusStrokes(amount: Double): ByteArray {
|
fun getBolusStrokes(amount: Double): ByteArray {
|
||||||
val strokesPerUnit = medtronicPumpStatus.medtronicDeviceType!!.bolusStrokes
|
val strokesPerUnit = medtronicPumpStatus.medtronicDeviceType.bolusStrokes
|
||||||
val length: Int
|
val length: Int
|
||||||
val scrollRate: Int
|
val scrollRate: Int
|
||||||
if (strokesPerUnit >= 40) {
|
if (strokesPerUnit >= 40) {
|
||||||
|
@ -217,10 +216,10 @@ class MedtronicUtil @Inject constructor(
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
val isModelSet: Boolean
|
var isModelSet: Boolean = false
|
||||||
get() = medtronicPumpStatus.medtronicDeviceType != null
|
// get() = medtronicPumpStatus.medtronicDeviceType != null
|
||||||
|
|
||||||
var medtronicPumpModel: MedtronicDeviceType?
|
var medtronicPumpModel: MedtronicDeviceType
|
||||||
get() = medtronicPumpStatus.medtronicDeviceType
|
get() = medtronicPumpStatus.medtronicDeviceType
|
||||||
set(medtronicPumpModel) {
|
set(medtronicPumpModel) {
|
||||||
medtronicPumpStatus.medtronicDeviceType = medtronicPumpModel
|
medtronicPumpStatus.medtronicDeviceType = medtronicPumpModel
|
||||||
|
@ -248,6 +247,7 @@ class MedtronicUtil @Inject constructor(
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
|
||||||
const val isLowLevelDebug = true
|
const val isLowLevelDebug = true
|
||||||
fun getIntervalFromMinutes(minutes: Int): Int {
|
fun getIntervalFromMinutes(minutes: Int): Int {
|
||||||
return minutes / 30
|
return minutes / 30
|
||||||
|
|
Loading…
Reference in a new issue