From 7e6da9323bc033793c5403a1189debe3fce43371 Mon Sep 17 00:00:00 2001 From: miyeongkim Date: Wed, 5 Jul 2023 10:02:33 +0900 Subject: [PATCH] tempbasal will be applied without confirm(otp) on pump version 3.52 above --- .../nightscout/pump/diaconn/DiaconnG8Pump.kt | 8 +- .../BigAPSMainInfoInquireResponsePacket.kt | 1 + .../BigMainInfoInquireResponsePacket.kt | 1 + .../pump/diaconn/service/DiaconnG8Service.kt | 80 ++++++++++++------- 4 files changed, 60 insertions(+), 30 deletions(-) diff --git a/pump/diaconn/src/main/java/info/nightscout/pump/diaconn/DiaconnG8Pump.kt b/pump/diaconn/src/main/java/info/nightscout/pump/diaconn/DiaconnG8Pump.kt index 9ee19f4c8c..4eceb897f2 100644 --- a/pump/diaconn/src/main/java/info/nightscout/pump/diaconn/DiaconnG8Pump.kt +++ b/pump/diaconn/src/main/java/info/nightscout/pump/diaconn/DiaconnG8Pump.kt @@ -21,13 +21,14 @@ class DiaconnG8Pump @Inject constructor( ) { var isPumpLogUploadFailed: Boolean = false - //var bleResultInfo: Pair = Pair(null, false) var bolusConfirmMessage: Byte = 0 + var isReadyToBolus: Boolean = false var maxBolusePerDay: Double = 0.0 var pumpIncarnationNum: Int = 65536 var isPumpVersionGe2_63: Boolean = false // is pumpVersion higher then 2.63 + var isPumpVersionGe3_53: Boolean = false // is pumpVersion higher then 3.42 var insulinWarningGrade: Int =0 var insulinWarningProcess: Int =0 var insulinWarningRemain: Int =0 @@ -363,6 +364,11 @@ class DiaconnG8Pump @Inject constructor( var otpNumber = 0 + var bolusingSetAmount = 0.0 + var bolusingInjAmount = 0.0 + var bolusingSpeed = 0 + var bolusingInjProgress = 0 + companion object { // User settings const val ALARM = 0 diff --git a/pump/diaconn/src/main/java/info/nightscout/pump/diaconn/packet/BigAPSMainInfoInquireResponsePacket.kt b/pump/diaconn/src/main/java/info/nightscout/pump/diaconn/packet/BigAPSMainInfoInquireResponsePacket.kt index 975e8edade..7e63db4267 100644 --- a/pump/diaconn/src/main/java/info/nightscout/pump/diaconn/packet/BigAPSMainInfoInquireResponsePacket.kt +++ b/pump/diaconn/src/main/java/info/nightscout/pump/diaconn/packet/BigAPSMainInfoInquireResponsePacket.kt @@ -215,6 +215,7 @@ class BigAPSMainInfoInquireResponsePacket( //incarnation no 처리 diaconnG8Pump.isPumpVersionGe2_63 = PumpLogUtil.isPumpVersionGe(sp.getString(rh.gs(R.string.pumpversion), ""), 2, 63) + diaconnG8Pump.isPumpVersionGe3_53 = PumpLogUtil.isPumpVersionGe(sp.getString(rh.gs(R.string.pumpversion), ""), 3, 53) aapsLogger.debug(LTag.PUMPCOMM, "result > " + diaconnG8Pump.result) aapsLogger.debug(LTag.PUMPCOMM, "systemRemainInsulin > " + diaconnG8Pump.systemRemainInsulin) diff --git a/pump/diaconn/src/main/java/info/nightscout/pump/diaconn/packet/BigMainInfoInquireResponsePacket.kt b/pump/diaconn/src/main/java/info/nightscout/pump/diaconn/packet/BigMainInfoInquireResponsePacket.kt index ce67dc789d..1354b1915b 100644 --- a/pump/diaconn/src/main/java/info/nightscout/pump/diaconn/packet/BigMainInfoInquireResponsePacket.kt +++ b/pump/diaconn/src/main/java/info/nightscout/pump/diaconn/packet/BigMainInfoInquireResponsePacket.kt @@ -214,6 +214,7 @@ class BigMainInfoInquireResponsePacket( //incarnation no 처리 diaconnG8Pump.isPumpVersionGe2_63 = PumpLogUtil.isPumpVersionGe(sp.getString(rh.gs(R.string.pumpversion), ""), 2, 63) + diaconnG8Pump.isPumpVersionGe3_53 = PumpLogUtil.isPumpVersionGe(sp.getString(rh.gs(R.string.pumpversion), ""), 3, 53) aapsLogger.debug(LTag.PUMPCOMM, "result > " + diaconnG8Pump.result) aapsLogger.debug(LTag.PUMPCOMM, "systemRemainInsulin > " + diaconnG8Pump.systemRemainInsulin) diff --git a/pump/diaconn/src/main/java/info/nightscout/pump/diaconn/service/DiaconnG8Service.kt b/pump/diaconn/src/main/java/info/nightscout/pump/diaconn/service/DiaconnG8Service.kt index 907b4c90c4..8f4699a196 100644 --- a/pump/diaconn/src/main/java/info/nightscout/pump/diaconn/service/DiaconnG8Service.kt +++ b/pump/diaconn/src/main/java/info/nightscout/pump/diaconn/service/DiaconnG8Service.kt @@ -549,29 +549,39 @@ class DiaconnG8Service : DaggerService() { // temp state check sendMessage(TempBasalInquirePacket(injector)) + val result : DiaconnG8Packet + if(diaconnG8Pump.isPumpVersionGe3_53) { + val tbrPacket = TempBasalSettingPacket(injector, 3, ((durationInHours * 60) / 15).toInt(), ((absoluteRate * 100) + 1000).toInt()) + sendMessage(tbrPacket, 100) + result = tbrPacket + if (!processConfirm(tbrPacket.msgType)) return false + } else { - if (diaconnG8Pump.tbStatus == 1) { - rxBus.send(EventPumpStatusChanged(rh.gs(R.string.stoppingtempbasal))) - val msgPacket = TempBasalSettingPacket(injector, 2, diaconnG8Pump.tbTime, diaconnG8Pump.tbInjectRateRatio) - // tempbasal stop - sendMessage(msgPacket, 100) + if (diaconnG8Pump.tbStatus == 1) { + rxBus.send(EventPumpStatusChanged(rh.gs(R.string.stoppingtempbasal))) + val tbrPacket = TempBasalSettingPacket(injector, 2, diaconnG8Pump.tbTime, diaconnG8Pump.tbInjectRateRatio) + // tempbasal stop + sendMessage(tbrPacket, 100) + // otp process + if (!processConfirm(tbrPacket.msgType)) return false + diaconnG8Pump.tempBasalStart = dateUtil.now() + } + rxBus.send(EventPumpStatusChanged(rh.gs(R.string.settingtempbasal))) + val tbInjectRate = ((absoluteRate * 100) + 1000).toInt() + val tbrPacket = TempBasalSettingPacket(injector, 1, ((durationInHours * 60) / 15).toInt(), tbInjectRate) + sendMessage(tbrPacket, 100) + result = tbrPacket // otp process - if (!processConfirm(msgPacket.msgType)) return false - diaconnG8Pump.tempBasalStart = dateUtil.now() + if (!processConfirm(tbrPacket.msgType)) return false + // pump tempbasal status inquire } - rxBus.send(EventPumpStatusChanged(rh.gs(R.string.settingtempbasal))) - val tbInjectRate = ((absoluteRate * 100) + 1000).toInt() - val msgTBR = TempBasalSettingPacket(injector, 1, ((durationInHours * 60) / 15).toInt(), tbInjectRate) - sendMessage(msgTBR, 100) - // otp process - if (!processConfirm(msgTBR.msgType)) return false - // pump tempbasal status inquire + sendMessage(TempBasalInquirePacket(injector)) loadHistory() val tbr = pumpSync.expectedPumpState().temporaryBasal diaconnG8Pump.fromTemporaryBasal(tbr) rxBus.send(EventPumpStatusChanged(EventPumpStatusChanged.Status.DISCONNECTING)) - return msgTBR.success() + return result.success() } fun tempBasalShortDuration(absoluteRate: Double, durationInMinutes: Int): Boolean { @@ -581,28 +591,40 @@ class DiaconnG8Service : DaggerService() { } // temp state check + val result:DiaconnG8Packet sendMessage(TempBasalInquirePacket(injector)) - if (diaconnG8Pump.tbStatus == 1) { - rxBus.send(EventPumpStatusChanged(rh.gs(R.string.stoppingtempbasal))) - val msgPacket = TempBasalSettingPacket(injector, 2, diaconnG8Pump.tbTime, diaconnG8Pump.tbInjectRateRatio) - // tempbasal stop - sendMessage(msgPacket, 100) + if(diaconnG8Pump.isPumpVersionGe3_53) { + rxBus.send(EventPumpStatusChanged(rh.gs(R.string.settingtempbasal))) + val tbrSettingPacket = TempBasalSettingPacket(injector, 3, 2, ((absoluteRate * 100) + 1000).toInt()) + sendMessage(tbrSettingPacket, 100) + result=tbrSettingPacket // otp process - if (!processConfirm(msgPacket.msgType)) return false - SystemClock.sleep(500) + if (!processConfirm(tbrSettingPacket.msgType)) return false + sendMessage(TempBasalInquirePacket(injector)) + } else { + if (diaconnG8Pump.tbStatus == 1) { + rxBus.send(EventPumpStatusChanged(rh.gs(R.string.stoppingtempbasal))) + val tbrPacket = TempBasalSettingPacket(injector, 2, diaconnG8Pump.tbTime, diaconnG8Pump.tbInjectRateRatio) + // tempbasal stop + sendMessage(tbrPacket, 100) + // otp process + if (!processConfirm(tbrPacket.msgType)) return false + SystemClock.sleep(500) + } + rxBus.send(EventPumpStatusChanged(rh.gs(R.string.settingtempbasal))) + val tbInjectRate = absoluteRate * 100 + 1000 + val msgTBR = TempBasalSettingPacket(injector, 1, 2, tbInjectRate.toInt()) + sendMessage(msgTBR, 100) + result=msgTBR + // otp process + if (!processConfirm(msgTBR.msgType)) return false } - rxBus.send(EventPumpStatusChanged(rh.gs(R.string.settingtempbasal))) - val tbInjectRate = absoluteRate * 100 + 1000 - val msgTBR = TempBasalSettingPacket(injector, 1, 2, tbInjectRate.toInt()) - sendMessage(msgTBR, 100) - // otp process - if (!processConfirm(msgTBR.msgType)) return false sendMessage(TempBasalInquirePacket(injector)) loadHistory() val tbr = pumpSync.expectedPumpState().temporaryBasal diaconnG8Pump.fromTemporaryBasal(tbr) rxBus.send(EventPumpStatusChanged(EventPumpStatusChanged.Status.DISCONNECTING)) - return msgTBR.success() + return result.success() } fun tempBasalStop(): Boolean {