package com.nightscout.core.dexcom;
import net.tribe7.common.base.CaseFormat;
import net.tribe7.common.base.Optional;
public enum Command {
NULL(0),
ACK(1),
NAK(2),
INVALID_COMMAND(3),
INVALID_PARAM(4),
INCOMPLETE_PACKET_RECEIVED(5),
RECEIVER_ERROR(6),
INVALID_MODE(7),
PING(10),
READ_FIRMWARE_HEADER(11),
READ_DATABASE_PARTITION_INFO(15),
READ_DATABASE_PAGE_RANGE(16),
READ_DATABASE_PAGES(17),
READ_DATABASE_PAGE_HEADER(18),
READ_TRANSMITTER_ID(25),
WRITE_TRANSMITTER_ID(26),
READ_LANGUAGE(27),
WRITE_LANGUAGE(28),
READ_DISPLAY_TIME_OFFSET(29),
WRITE_DISPLAY_TIME_OFFSET(30),
READ_RTC(31),
RESET_RECEIVER(32),
READ_BATTERY_LEVEL(33),
READ_SYSTEM_TIME(34),
READ_SYSTEM_TIME_OFFSET(35),
WRITE_SYSTEM_TIME(36),
READ_GLUCOSE_UNIT(37),
WRITE_GLUCOSE_UNIT(38),
READ_BLINDED_MODE(39),
WRITE_BLINDED_MODE(40),
READ_CLOCK_MODE(41),
WRITE_CLOCK_MODE(42),
READ_DEVICE_MODE(43),
ERASE_DATABASE(45),
SHUTDOWN_RECEIVER(46),
WRITE_PC_PARAMETERS(47),
READ_BATTERY_STATE(48),
READ_HARDWARE_BOARD_ID(49),
READ_FIRMWARE_SETTINGS(54),
READ_ENABLE_SETUP_WIZARD_FLAG(55),
READ_SETUP_WIZARD_STATE(57),
READ_CHARGER_CURRENT_SETTING(59),
WRITE_CHARGER_CURRENT_SETTING(60);
private byte value;
Command(int command) {
value = (byte) command;
}
public static Optional<Command> getCommandByValue(int value) {
for (Command command : values()) {
if (command.getValue() == value) {
return Optional.of(command);
}
}
return Optional.absent();
}
public byte getValue() {
return value;
}
public String toString() {
return CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.UPPER_CAMEL, this.name()).replace("_", " ");
}
}