diff --git a/mission/devices/BpxBatteryHandler.cpp b/mission/devices/BpxBatteryHandler.cpp index 6c080b04..115c3b96 100644 --- a/mission/devices/BpxBatteryHandler.cpp +++ b/mission/devices/BpxBatteryHandler.cpp @@ -42,12 +42,13 @@ ReturnValue_t BpxBatteryHandler::buildTransitionDeviceCommand(DeviceCommandId_t* } void BpxBatteryHandler::fillCommandAndReplyMap() { - insertInCommandAndReplyMap(BpxBattery::GET_HK, 1, &hkSet, 23); - insertInCommandAndReplyMap(BpxBattery::PING, 1, nullptr, 3); + using namespace BpxBattery; + insertInCommandAndReplyMap(GET_HK, 1, &hkSet, GET_HK_REPLY_LEN); + insertInCommandAndReplyMap(BpxBattery::PING, 1, nullptr, PING_REPLY_LEN); insertInCommandAndReplyMap(BpxBattery::REBOOT, 1, nullptr, 0); - insertInCommandAndReplyMap(BpxBattery::RESET_COUNTERS, 1, nullptr, 2); - insertInCommandAndReplyMap(BpxBattery::CONFIG_CMD, 1, nullptr, 2); - insertInCommandAndReplyMap(BpxBattery::CONFIG_GET, 1, &cfgSet, 5); + insertInCommandAndReplyMap(BpxBattery::RESET_COUNTERS, 1, nullptr,EMPTY_REPLY_LEN); + insertInCommandAndReplyMap(BpxBattery::CONFIG_CMD, 1, nullptr, EMPTY_REPLY_LEN); + insertInCommandAndReplyMap(BpxBattery::CONFIG_GET, 1, &cfgSet, CONFIG_GET_REPLY_LEN); } ReturnValue_t BpxBatteryHandler::buildCommandFromCommand(DeviceCommandId_t deviceCommand, @@ -140,9 +141,10 @@ ReturnValue_t BpxBatteryHandler::buildCommandFromCommand(DeviceCommandId_t devic ReturnValue_t BpxBatteryHandler::scanForReply(const uint8_t* start, size_t remainingSize, DeviceCommandId_t* foundId, size_t* foundLen) { + using namespace BpxBattery; switch (lastCmd) { case (BpxBattery::GET_HK): { - if (remainingSize != 23) { + if (remainingSize != GET_HK_REPLY_LEN) { return DeviceHandlerIF::LENGTH_MISSMATCH; } break; @@ -150,22 +152,25 @@ ReturnValue_t BpxBatteryHandler::scanForReply(const uint8_t* start, size_t remai case (BpxBattery::PING): case (BpxBattery::MAN_HEAT_ON): case (BpxBattery::MAN_HEAT_OFF): { - if (remainingSize != 3) { + if (remainingSize != PING_REPLY_LEN) { return DeviceHandlerIF::LENGTH_MISSMATCH; } break; } - case (BpxBattery::REBOOT): + case (BpxBattery::REBOOT): { + // Ignore + break; + } case (BpxBattery::RESET_COUNTERS): case (BpxBattery::CONFIG_CMD): case (BpxBattery::CONFIG_SET): { - if (remainingSize != 2) { + if (remainingSize != EMPTY_REPLY_LEN) { return DeviceHandlerIF::LENGTH_MISSMATCH; } break; } case (BpxBattery::CONFIG_GET): { - if (remainingSize != 5) { + if (remainingSize != CONFIG_GET_REPLY_LEN) { return DeviceHandlerIF::LENGTH_MISSMATCH; } @@ -181,7 +186,7 @@ ReturnValue_t BpxBatteryHandler::scanForReply(const uint8_t* start, size_t remai } ReturnValue_t BpxBatteryHandler::interpretDeviceReply(DeviceCommandId_t id, const uint8_t* packet) { - if (packet[1] != 0) { + if (id != BpxBattery::REBOOT and packet[1] != 0) { return DeviceHandlerIF::DEVICE_REPORTED_ERROR; } switch (id) { @@ -237,6 +242,9 @@ ReturnValue_t BpxBatteryHandler::interpretDeviceReply(DeviceCommandId_t id, cons cfgSet.setValidity(true, true); break; } + case(BpxBattery::REBOOT): { + break; + } default: { return DeviceHandlerIF::UNKNOWN_DEVICE_REPLY; } diff --git a/mission/devices/devicedefinitions/BpxBatteryDefinitions.h b/mission/devices/devicedefinitions/BpxBatteryDefinitions.h index dba9fb59..333119f2 100644 --- a/mission/devices/devicedefinitions/BpxBatteryDefinitions.h +++ b/mission/devices/devicedefinitions/BpxBatteryDefinitions.h @@ -45,6 +45,11 @@ static constexpr uint8_t DEFAULT_PING_SENT_BYTE = 0x07; static constexpr uint32_t HK_SET_ID = GET_HK; static constexpr uint32_t CFG_SET_ID = CONFIG_GET; +static constexpr size_t GET_HK_REPLY_LEN = 23; +static constexpr size_t PING_REPLY_LEN = 3; +static constexpr size_t EMPTY_REPLY_LEN = 2; +static constexpr size_t CONFIG_GET_REPLY_LEN = 5; + static constexpr uint8_t PORT_PING = 1; static constexpr uint8_t PORT_REBOOT = 4; static constexpr uint8_t PORT_GET_HK = 9; diff --git a/tmtc b/tmtc index 890a20a0..2b89a7f2 160000 --- a/tmtc +++ b/tmtc @@ -1 +1 @@ -Subproject commit 890a20a07895bc1d06ad49f281a107a042a5dd03 +Subproject commit 2b89a7f2697a21e9fc9101ca320afb7bf49c8e9d