Apply new understandings of beep types

This commit is contained in:
Bart Sopers 2019-09-01 23:30:11 +02:00
parent 5ac0df4b4b
commit d14789cf02
6 changed files with 55 additions and 18 deletions

View file

@ -4,11 +4,11 @@ import org.joda.time.Duration;
import info.nightscout.androidaps.plugins.pump.common.utils.ByteUtil; import info.nightscout.androidaps.plugins.pump.common.utils.ByteUtil;
import info.nightscout.androidaps.plugins.pump.omnipod.comm.message.MessageBlock; import info.nightscout.androidaps.plugins.pump.omnipod.comm.message.MessageBlock;
import info.nightscout.androidaps.plugins.pump.omnipod.defs.BeepType; import info.nightscout.androidaps.plugins.pump.omnipod.defs.BeepConfigType;
import info.nightscout.androidaps.plugins.pump.omnipod.defs.MessageBlockType; import info.nightscout.androidaps.plugins.pump.omnipod.defs.MessageBlockType;
public class BeepConfigCommand extends MessageBlock { public class BeepConfigCommand extends MessageBlock {
private final BeepType beepType; private final BeepConfigType beepType;
private final boolean basalCompletionBeep; private final boolean basalCompletionBeep;
private final Duration basalIntervalBeep; private final Duration basalIntervalBeep;
private final boolean tempBasalCompletionBeep; private final boolean tempBasalCompletionBeep;
@ -16,7 +16,7 @@ public class BeepConfigCommand extends MessageBlock {
private final boolean bolusCompletionBeep; private final boolean bolusCompletionBeep;
private final Duration bolusIntervalBeep; private final Duration bolusIntervalBeep;
public BeepConfigCommand(BeepType beepType, boolean basalCompletionBeep, Duration basalIntervalBeep, public BeepConfigCommand(BeepConfigType beepType, boolean basalCompletionBeep, Duration basalIntervalBeep,
boolean tempBasalCompletionBeep, Duration tempBasalIntervalBeep, boolean tempBasalCompletionBeep, Duration tempBasalIntervalBeep,
boolean bolusCompletionBeep, Duration bolusIntervalBeep) { boolean bolusCompletionBeep, Duration bolusIntervalBeep) {
this.beepType = beepType; this.beepType = beepType;
@ -30,7 +30,7 @@ public class BeepConfigCommand extends MessageBlock {
encode(); encode();
} }
public BeepConfigCommand(BeepType beepType) { public BeepConfigCommand(BeepConfigType beepType) {
this(beepType, false, Duration.ZERO, false, Duration.ZERO, false, Duration.ZERO); this(beepType, false, Duration.ZERO, false, Duration.ZERO, false, Duration.ZERO);
} }

View file

@ -0,0 +1,41 @@
package info.nightscout.androidaps.plugins.pump.omnipod.defs;
// BeepConfigType is used only for the $1E Beep Config Command.
public enum BeepConfigType {
// 0x0 always returns an error response for Beep Config (use 0xF for no beep)
BEEP_BEEP_BEEP_BEEP((byte) 0x01),
BIP_BEEP_BIP_BEEP_BIP_BEEP_BIP_BEEP((byte) 0x02),
BIP_BIP((byte) 0x03),
BEEP((byte) 0x04),
BEEP_BEEP_BEEP((byte) 0x05),
BEEEEEEP((byte) 0x06),
BIP_BIP_BIP_BIP_BIP_BIP((byte) 0x07),
BEEEP_BEEEP((byte) 0x08),
// 0x9 and 0xA always return an error response for Beep Config
BEEP_BEEP((byte) 0xB),
BEEEP((byte) 0xC),
BIP_BEEEEEP((byte) 0xD),
FIVE_SECONDS_BEEP((byte) 0xE), // can only be used if Pod is currently suspended
NO_BEEP((byte) 0xF);
private byte value;
BeepConfigType(byte value) {
this.value = value;
}
public static BeepConfigType fromByte(byte value) {
for (BeepConfigType type : values()) {
if (type.value == value) {
return type;
}
}
throw new IllegalArgumentException("Unknown BeepConfigType: " + value);
}
public byte getValue() {
return value;
}
}

View file

@ -1,5 +1,6 @@
package info.nightscout.androidaps.plugins.pump.omnipod.defs; package info.nightscout.androidaps.plugins.pump.omnipod.defs;
// BeepType is used for the $19 Configure Alerts and $1F Cancel Commands
public enum BeepType { public enum BeepType {
NO_BEEP((byte) 0x00), NO_BEEP((byte) 0x00),
BEEP_BEEP_BEEP_BEEP((byte) 0x01), BEEP_BEEP_BEEP_BEEP((byte) 0x01),
@ -9,12 +10,7 @@ public enum BeepType {
BEEP_BEEP_BEEP((byte) 0x05), BEEP_BEEP_BEEP((byte) 0x05),
BEEEEEEP((byte) 0x06), BEEEEEEP((byte) 0x06),
BIP_BIP_BIP_BIP_BIP_BIP((byte) 0x07), BIP_BIP_BIP_BIP_BIP_BIP((byte) 0x07),
BEEEP_BEEEP((byte) 0x08), BEEEP_BEEEP((byte) 0x08);
BEEP_BEEP((byte) 0xB),
BEEEP((byte) 0xC),
BIP_BEEEEEP((byte) 0xD),
FIVE_SECONDS_BEEP((byte) 0xE),
BEEP_CONFIG_NO_BEEP((byte) 0xF);
private byte value; private byte value;

View file

@ -7,12 +7,12 @@ import org.mockito.ArgumentCaptor;
import org.mockito.Mock; import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner; import org.mockito.junit.MockitoJUnitRunner;
import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.plugins.pump.common.utils.ByteUtil; import info.nightscout.androidaps.plugins.pump.common.utils.ByteUtil;
import info.nightscout.androidaps.plugins.pump.omnipod.comm.OmnipodCommunicationService; import info.nightscout.androidaps.plugins.pump.omnipod.comm.OmnipodCommunicationService;
import info.nightscout.androidaps.plugins.pump.omnipod.comm.message.OmnipodMessage; import info.nightscout.androidaps.plugins.pump.omnipod.comm.message.OmnipodMessage;
import info.nightscout.androidaps.plugins.pump.omnipod.comm.message.response.VersionResponse; import info.nightscout.androidaps.plugins.pump.omnipod.comm.message.response.VersionResponse;
import info.nightscout.androidaps.plugins.pump.omnipod.defs.state.PodSetupState; import info.nightscout.androidaps.plugins.pump.omnipod.defs.state.PodSetupState;
import info.nightscout.androidaps.plugins.pump.omnipod.util.OmnipodConst;
import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
@ -47,7 +47,7 @@ public class PairServiceTest {
VersionResponse versionResponse = new PairService().executeAssignAddressCommand(communicationService, setupState); VersionResponse versionResponse = new PairService().executeAssignAddressCommand(communicationService, setupState);
// verify // verify
verify(communicationService).exchangeMessages(eq(VersionResponse.class), eq(setupState), messageCaptor.capture(), eq(Constants.DEFAULT_ADDRESS), eq(0x1f173217)); verify(communicationService).exchangeMessages(eq(VersionResponse.class), eq(setupState), messageCaptor.capture(), eq(OmnipodConst.DEFAULT_ADDRESS), eq(0x1f173217));
verifyNoMoreInteractions(communicationService); verifyNoMoreInteractions(communicationService);
verifyZeroInteractions(response); verifyZeroInteractions(response);

View file

@ -4,14 +4,14 @@ import org.joda.time.Duration;
import org.junit.Test; import org.junit.Test;
import info.nightscout.androidaps.plugins.pump.common.utils.ByteUtil; import info.nightscout.androidaps.plugins.pump.common.utils.ByteUtil;
import info.nightscout.androidaps.plugins.pump.omnipod.defs.BeepType; import info.nightscout.androidaps.plugins.pump.omnipod.defs.BeepConfigType;
import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertArrayEquals;
public class BeepConfigCommandTest { public class BeepConfigCommandTest {
@Test @Test
public void testConfidenceReminders() { public void testConfidenceReminders() {
BeepConfigCommand beepConfigCommand = new BeepConfigCommand(BeepType.BIP_BEEP_BIP_BEEP_BIP_BEEP_BIP_BEEP, true, BeepConfigCommand beepConfigCommand = new BeepConfigCommand(BeepConfigType.BIP_BEEP_BIP_BEEP_BIP_BEEP_BIP_BEEP, true,
Duration.ZERO, true, Duration.ZERO, Duration.ZERO, true, Duration.ZERO,
true, Duration.ZERO); true, Duration.ZERO);
assertArrayEquals(ByteUtil.fromHexString("1e0402404040"), beepConfigCommand.getRawData()); assertArrayEquals(ByteUtil.fromHexString("1e0402404040"), beepConfigCommand.getRawData());
@ -19,7 +19,7 @@ public class BeepConfigCommandTest {
@Test @Test
public void testProgramReminders() { public void testProgramReminders() {
BeepConfigCommand beepConfigCommand = new BeepConfigCommand(BeepType.BEEP_CONFIG_NO_BEEP, true, BeepConfigCommand beepConfigCommand = new BeepConfigCommand(BeepConfigType.NO_BEEP, true,
Duration.ZERO, false, Duration.standardMinutes(60), Duration.ZERO, false, Duration.standardMinutes(60),
false, Duration.standardMinutes(60)); false, Duration.standardMinutes(60));
assertArrayEquals(ByteUtil.fromHexString("1e040f403c3c"), beepConfigCommand.getRawData()); assertArrayEquals(ByteUtil.fromHexString("1e040f403c3c"), beepConfigCommand.getRawData());

View file

@ -3,10 +3,10 @@ package info.nightscout.androidaps.plugins.pump.omnipod.comm.message.response;
import org.joda.time.Duration; import org.joda.time.Duration;
import org.junit.Test; import org.junit.Test;
import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.plugins.pump.common.utils.ByteUtil; import info.nightscout.androidaps.plugins.pump.common.utils.ByteUtil;
import info.nightscout.androidaps.plugins.pump.omnipod.defs.DeliveryStatus; import info.nightscout.androidaps.plugins.pump.omnipod.defs.DeliveryStatus;
import info.nightscout.androidaps.plugins.pump.omnipod.defs.PodProgressStatus; import info.nightscout.androidaps.plugins.pump.omnipod.defs.PodProgressStatus;
import info.nightscout.androidaps.plugins.pump.omnipod.util.OmnipodConst;
import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
@ -58,9 +58,9 @@ public class StatusResponseTest {
StatusResponse statusResponse = new StatusResponse(bytes); StatusResponse statusResponse = new StatusResponse(bytes);
assertEquals(Duration.standardMinutes(8191).getMillis(), statusResponse.getTimeActive().getMillis()); assertEquals(Duration.standardMinutes(8191).getMillis(), statusResponse.getTimeActive().getMillis());
assertEquals(Constants.POD_PULSE_SIZE * 1023, statusResponse.getInsulinNotDelivered(), 0.000001); assertEquals(OmnipodConst.POD_PULSE_SIZE * 1023, statusResponse.getInsulinNotDelivered(), 0.000001);
assertNull("Reservoir level should be null", statusResponse.getReservoirLevel()); assertNull("Reservoir level should be null", statusResponse.getReservoirLevel());
assertEquals(Constants.POD_PULSE_SIZE * 8191, statusResponse.getInsulin(), 0.0000001); assertEquals(OmnipodConst.POD_PULSE_SIZE * 8191, statusResponse.getInsulin(), 0.0000001);
assertEquals(15, statusResponse.getPodMessageCounter()); assertEquals(15, statusResponse.getPodMessageCounter());
assertEquals(8, statusResponse.getAlerts().getAlertSlots().size()); assertEquals(8, statusResponse.getAlerts().getAlertSlots().size());
} }