DanaRS time setting update for protocol #6

This commit is contained in:
Milos Kozak 2019-12-21 16:53:50 +01:00
parent 7176a8654b
commit 33d1d3e82d

View file

@ -181,6 +181,20 @@ public class DanaRSService extends Service {
RxBus.INSTANCE.send(new EventInitializationChanged());
return;
}
long now = System.currentTimeMillis();
if (danaRPump.lastSettingsRead + 60 * 60 * 1000L < now || !pump.isInitialized()) {
RxBus.INSTANCE.send(new EventPumpStatusChanged(MainApp.gs(R.string.gettingpumpsettings)));
bleComm.sendMessage(new DanaRS_Packet_General_Get_Shipping_Information()); // serial no
bleComm.sendMessage(new DanaRS_Packet_General_Get_Pump_Check()); // firmware
bleComm.sendMessage(new DanaRS_Packet_Basal_Get_Profile_Number());
bleComm.sendMessage(new DanaRS_Packet_Bolus_Get_Bolus_Option()); // isExtendedEnabled
bleComm.sendMessage(new DanaRS_Packet_Basal_Get_Basal_Rate()); // basal profile, basalStep, maxBasal
bleComm.sendMessage(new DanaRS_Packet_Bolus_Get_Calculation_Information()); // target
bleComm.sendMessage(new DanaRS_Packet_Bolus_Get_CIR_CF_Array());
bleComm.sendMessage(new DanaRS_Packet_Option_Get_User_Option()); // Getting user options
danaRPump.lastSettingsRead = now;
}
if (L.isEnabled(L.PUMPCOMM))
log.debug("Pump time difference: " + timeDiff + " seconds");
if (Math.abs(timeDiff) > 3) {
@ -200,10 +214,14 @@ public class DanaRSService extends Service {
RxBus.INSTANCE.send(new EventDanaRNewStatus());
RxBus.INSTANCE.send(new EventInitializationChanged());
return;
} else {
if (danaRPump.protocol >= 6) {
bleComm.sendMessage(new DanaRS_Packet_Option_Set_Pump_Time(new Date()));
} else {
waitForWholeMinute(); // Dana can set only whole minute
// add 10sec to be sure we are over minute (will be cutted off anyway)
bleComm.sendMessage(new DanaRS_Packet_Option_Set_Pump_Time(new Date(DateUtil.now() + T.secs(10).msecs())));
}
bleComm.sendMessage(new DanaRS_Packet_Option_Get_Pump_Time());
timeDiff = (danaRPump.pumpTime - System.currentTimeMillis()) / 1000L;
if (L.isEnabled(L.PUMPCOMM))
@ -211,20 +229,6 @@ public class DanaRSService extends Service {
}
}
long now = System.currentTimeMillis();
if (danaRPump.lastSettingsRead + 60 * 60 * 1000L < now || !pump.isInitialized()) {
RxBus.INSTANCE.send(new EventPumpStatusChanged(MainApp.gs(R.string.gettingpumpsettings)));
bleComm.sendMessage(new DanaRS_Packet_General_Get_Shipping_Information()); // serial no
bleComm.sendMessage(new DanaRS_Packet_General_Get_Pump_Check()); // firmware
bleComm.sendMessage(new DanaRS_Packet_Basal_Get_Profile_Number());
bleComm.sendMessage(new DanaRS_Packet_Bolus_Get_Bolus_Option()); // isExtendedEnabled
bleComm.sendMessage(new DanaRS_Packet_Basal_Get_Basal_Rate()); // basal profile, basalStep, maxBasal
bleComm.sendMessage(new DanaRS_Packet_Bolus_Get_Calculation_Information()); // target
bleComm.sendMessage(new DanaRS_Packet_Bolus_Get_CIR_CF_Array());
bleComm.sendMessage(new DanaRS_Packet_Option_Get_User_Option()); // Getting user options
danaRPump.lastSettingsRead = now;
}
loadEvents();
RxBus.INSTANCE.send(new EventDanaRNewStatus());