From 7b4b9fd0dcb06a130e612a4e610454f986d07afb Mon Sep 17 00:00:00 2001 From: miyeongkim Date: Mon, 15 Nov 2021 16:44:04 +0900 Subject: [PATCH] - Fixed bugs for pump firmware 3.0 - Changing basal limit values for each pump firmware version. - Pump log DB processing modification. --- .../nightscout/androidaps/diaconn/DiaconnG8Pump.kt | 2 +- .../packet/BasalLimitInquireResponsePacket.kt | 14 +++++++++++++- .../packet/BigAPSMainInfoInquireResponsePacket.kt | 5 ++++- .../androidaps/diaconn/service/DiaconnG8Service.kt | 7 +++++-- 4 files changed, 23 insertions(+), 5 deletions(-) diff --git a/diaconn/src/main/java/info/nightscout/androidaps/diaconn/DiaconnG8Pump.kt b/diaconn/src/main/java/info/nightscout/androidaps/diaconn/DiaconnG8Pump.kt index 77739cf9e9..333cc0974b 100644 --- a/diaconn/src/main/java/info/nightscout/androidaps/diaconn/DiaconnG8Pump.kt +++ b/diaconn/src/main/java/info/nightscout/androidaps/diaconn/DiaconnG8Pump.kt @@ -21,7 +21,6 @@ class DiaconnG8Pump @Inject constructor( private val dateUtil: DateUtil ) { - var maxBolusePerDay: Double = 0.0 var pumpIncarnationNum: Int = 65536 var isPumpVersionGe2_63: Boolean = false // is pumpVersion higher then 2.63 @@ -37,6 +36,7 @@ class DiaconnG8Pump @Inject constructor( var injectionBlockGrade: Int = 0 var lastConnection: Long = 0 var lastSettingsRead: Long = 0 + var mealLimitTime: Int = 0 // time private var pumpTime: Long = 0 diff --git a/diaconn/src/main/java/info/nightscout/androidaps/diaconn/packet/BasalLimitInquireResponsePacket.kt b/diaconn/src/main/java/info/nightscout/androidaps/diaconn/packet/BasalLimitInquireResponsePacket.kt index 26bb9a78ab..aeb445cc1c 100644 --- a/diaconn/src/main/java/info/nightscout/androidaps/diaconn/packet/BasalLimitInquireResponsePacket.kt +++ b/diaconn/src/main/java/info/nightscout/androidaps/diaconn/packet/BasalLimitInquireResponsePacket.kt @@ -2,7 +2,12 @@ package info.nightscout.androidaps.diaconn.packet import dagger.android.HasAndroidInjector import info.nightscout.androidaps.diaconn.DiaconnG8Pump +import info.nightscout.androidaps.diaconn.R +import info.nightscout.androidaps.diaconn.pumplog.PumplogUtil import info.nightscout.androidaps.logging.LTag +import info.nightscout.androidaps.utils.StringUtils +import info.nightscout.androidaps.utils.resources.ResourceHelper +import info.nightscout.androidaps.utils.sharedPreferences.SP import javax.inject.Inject /** @@ -11,6 +16,8 @@ import javax.inject.Inject class BasalLimitInquireResponsePacket(injector: HasAndroidInjector) : DiaconnG8Packet(injector ) { @Inject lateinit var diaconnG8Pump: DiaconnG8Pump + @Inject lateinit var sp: SP + @Inject lateinit var rh: ResourceHelper init { msgType = 0x92.toByte() @@ -32,7 +39,12 @@ class BasalLimitInquireResponsePacket(injector: HasAndroidInjector) : DiaconnG8P return } diaconnG8Pump.maxBasalPerHours = getShortToInt(bufferData).toDouble() / 100.0 // not include tempbasal limit - diaconnG8Pump.maxBasal = diaconnG8Pump.maxBasalPerHours * 2 // include tempbasal + val pumpFirmwareVersion = sp.getString(rh.gs(R.string.pumpversion), "") + if(!StringUtils.emptyString(pumpFirmwareVersion) && PumplogUtil.isPumpVersionGe(pumpFirmwareVersion, 3, 0)) { + diaconnG8Pump.maxBasal = diaconnG8Pump.maxBasalPerHours * 2.5 // include tempbasal + } else { + diaconnG8Pump.maxBasal = diaconnG8Pump.maxBasalPerHours * 2.0 // include tempbasal + } aapsLogger.debug(LTag.PUMPCOMM, "Result --> ${diaconnG8Pump.result}") aapsLogger.debug(LTag.PUMPCOMM, "maxBasal --> ${diaconnG8Pump.maxBasal}") diff --git a/diaconn/src/main/java/info/nightscout/androidaps/diaconn/packet/BigAPSMainInfoInquireResponsePacket.kt b/diaconn/src/main/java/info/nightscout/androidaps/diaconn/packet/BigAPSMainInfoInquireResponsePacket.kt index c2c8400048..58334176d0 100644 --- a/diaconn/src/main/java/info/nightscout/androidaps/diaconn/packet/BigAPSMainInfoInquireResponsePacket.kt +++ b/diaconn/src/main/java/info/nightscout/androidaps/diaconn/packet/BigAPSMainInfoInquireResponsePacket.kt @@ -1,5 +1,6 @@ package info.nightscout.androidaps.diaconn.packet +import android.util.Log import dagger.android.HasAndroidInjector import info.nightscout.androidaps.diaconn.DiaconnG8Pump import info.nightscout.androidaps.diaconn.R @@ -167,9 +168,10 @@ class BigAPSMainInfoInquireResponsePacket( // 16. 1hour basal limit diaconnG8Pump.maxBasalPerHours = getShortToInt(bufferData).toDouble() / 100.0 // not include tempbasal limit - diaconnG8Pump.maxBasal = diaconnG8Pump.maxBasalPerHours * 2 // include tempbasal + diaconnG8Pump.maxBasal = diaconnG8Pump.maxBasalPerHours * 2.5 // include tempbasal // 17. snack limit + diaconnG8Pump.mealLimitTime = getByteToInt(bufferData) // mealLimittime diaconnG8Pump.maxBolus = getShortToInt(bufferData).toDouble() / 100 diaconnG8Pump.maxBolusePerDay = getShortToInt(bufferData).toDouble() / 100 @@ -323,6 +325,7 @@ class BigAPSMainInfoInquireResponsePacket( aapsLogger.debug(LTag.PUMPCOMM, "maxBasal > " + diaconnG8Pump.maxBasal) aapsLogger.debug(LTag.PUMPCOMM, "maxBolus > " + diaconnG8Pump.maxBolus) aapsLogger.debug(LTag.PUMPCOMM, "maxBolusePerDay > " + diaconnG8Pump.maxBolusePerDay) + aapsLogger.debug(LTag.PUMPCOMM, "mealLimitTime > " + diaconnG8Pump.mealLimitTime) aapsLogger.debug(LTag.PUMPCOMM, "beepAndAlarm > " + diaconnG8Pump.beepAndAlarm) aapsLogger.debug(LTag.PUMPCOMM, "alarmIntesity > " + diaconnG8Pump.alarmIntesity) aapsLogger.debug(LTag.PUMPCOMM, "lcdOnTimeSec > " + diaconnG8Pump.lcdOnTimeSec) diff --git a/diaconn/src/main/java/info/nightscout/androidaps/diaconn/service/DiaconnG8Service.kt b/diaconn/src/main/java/info/nightscout/androidaps/diaconn/service/DiaconnG8Service.kt index e3ca30c8ea..978bb9eff2 100644 --- a/diaconn/src/main/java/info/nightscout/androidaps/diaconn/service/DiaconnG8Service.kt +++ b/diaconn/src/main/java/info/nightscout/androidaps/diaconn/service/DiaconnG8Service.kt @@ -246,8 +246,8 @@ class DiaconnG8Service : DaggerService() { val apsIncarnationNum = sp.getInt(rh.gs(R.string.apsIncarnationNo), 65536) // aps last log num val pumpSerialNo = sp.getInt(rh.gs(R.string.pumpserialno), 0) - val apsWrappingCount = sp.getInt(rh.gs(R.string.apsWrappingCount), 0) - val apsLastLogNum = sp.getInt(rh.gs(R.string.apslastLogNum), 0) + var apsWrappingCount = sp.getInt(rh.gs(R.string.apsWrappingCount), 0) + var apsLastLogNum = sp.getInt(rh.gs(R.string.apslastLogNum), 0) // if first install app if(apsWrappingCount == 0 && apsLastLogNum == 0 ) { @@ -266,6 +266,9 @@ class DiaconnG8Service : DaggerService() { sp.putInt(rh.gs(R.string.pumpserialno), diaconnG8Pump.serialNo) } + apsWrappingCount = sp.getInt(rh.gs(R.string.apsWrappingCount), 0) + apsLastLogNum = sp.getInt(rh.gs(R.string.apslastLogNum), 0) + val apsLastNum = apsWrappingCount * 10000 + apsLastLogNum if((pumpWrappingCount * 10000 + pumpLastNum) < apsLastLogNum ) { pumpLogDefaultSetting()