From 7b548553972412c259ce99161730b0d1d8e118ce Mon Sep 17 00:00:00 2001 From: Jakob Meier Date: Sat, 16 Apr 2022 17:19:32 +0200 Subject: [PATCH] supervisor fixes detected during testing --- bsp_q7s/core/InitMission.cpp | 2 +- bsp_q7s/core/ObjectFactory.cpp | 6 +- common/config/commonObjects.h | 1 - common/config/commonSubsystemIds.h | 2 +- generators/bsp_q7s_events.csv | 42 ++++--- generators/bsp_q7s_objects.csv | 1 - generators/events/translateEvents.cpp | 106 ++++++++++++------ generators/objects/translateObjects.cpp | 7 +- linux/devices/ploc/PlocSupervisorHandler.cpp | 4 +- linux/devices/ploc/PlocSupvHelper.cpp | 36 ++++-- linux/devices/ploc/PlocSupvHelper.h | 5 +- linux/fsfwconfig/events/translateEvents.cpp | 106 ++++++++++++------ linux/fsfwconfig/objects/translateObjects.cpp | 7 +- .../pollingSequenceFactory.cpp | 1 - mission/utility/ProgressPrinter.cpp | 2 +- mission/utility/ProgressPrinter.h | 11 +- tmtc | 2 +- 17 files changed, 218 insertions(+), 123 deletions(-) diff --git a/bsp_q7s/core/InitMission.cpp b/bsp_q7s/core/InitMission.cpp index b6e65eca..52a3495d 100644 --- a/bsp_q7s/core/InitMission.cpp +++ b/bsp_q7s/core/InitMission.cpp @@ -239,7 +239,7 @@ void initmission::initTasks() { acsTask->startTask(); #endif sysTask->startTask(); - + supvHelperTask->startTask(); sif::info << "Tasks started.." << std::endl; } diff --git a/bsp_q7s/core/ObjectFactory.cpp b/bsp_q7s/core/ObjectFactory.cpp index 463df337..8bd2f8d0 100644 --- a/bsp_q7s/core/ObjectFactory.cpp +++ b/bsp_q7s/core/ObjectFactory.cpp @@ -663,12 +663,12 @@ void ObjectFactory::createPayloadComponents(LinuxLibgpioIF* gpioComIF) { gpioComIF->addGpios(supvGpioCookie); auto supervisorCookie = new UartCookie(objects::PLOC_SUPERVISOR_HANDLER, q7s::UART_PLOC_SUPERVSIOR_DEV, UartModes::NON_CANONICAL, - uart::PLOC_SUPERVISOR_BAUD, supv::MAX_PACKET_SIZE * 20); + uart::PLOC_SUPV_BAUD, supv::MAX_PACKET_SIZE * 20); supervisorCookie->setNoFixedSizeReply(); - new PlocSupvHelper(objects::PLOC_SUPERVISOR_HELPER); + auto supvHelper = new PlocSupvHelper(objects::PLOC_SUPERVISOR_HELPER); new PlocSupervisorHandler(objects::PLOC_SUPERVISOR_HANDLER, objects::UART_COM_IF, supervisorCookie, Gpio(gpioIds::ENABLE_SUPV_UART, gpioComIF), - pcduSwitches::PDU1_CH6_PLOC_12V); + pcduSwitches::PDU1_CH6_PLOC_12V, supvHelper); #endif /* OBSW_ADD_PLOC_SUPERVISOR == 1 */ static_cast(consumer); } diff --git a/common/config/commonObjects.h b/common/config/commonObjects.h index a4f3319e..8223a87f 100644 --- a/common/config/commonObjects.h +++ b/common/config/commonObjects.h @@ -87,7 +87,6 @@ enum commonObjects: uint32_t { STAR_TRACKER = 0x44130001, - PLOC_UPDATER = 0x44330000, PLOC_MEMORY_DUMPER = 0x44330001, STR_HELPER = 0x44330002, PLOC_MPSOC_HELPER = 0x44330003, diff --git a/common/config/commonSubsystemIds.h b/common/config/commonSubsystemIds.h index a93986a1..6a4a6b03 100644 --- a/common/config/commonSubsystemIds.h +++ b/common/config/commonSubsystemIds.h @@ -15,7 +15,7 @@ enum: uint8_t { STR_HANDLER = 114, PLOC_SUPERVISOR_HANDLER = 115, FILE_SYSTEM = 116, - PLOC_UPDATER = 117, + PLOC_SUPV_HELPER = 117, PLOC_MEMORY_DUMPER = 118, PDEC_HANDLER = 119, STR_HELPER = 120, diff --git a/generators/bsp_q7s_events.csv b/generators/bsp_q7s_events.csv index 21760c44..7cc4be65 100644 --- a/generators/bsp_q7s_events.csv +++ b/generators/bsp_q7s_events.csv @@ -114,6 +114,21 @@ 11505;0x2cf1;SUPV_HELPER_EXECUTING;LOW;Supervisor helper currently executing a command;linux\devices\ploc\PlocSupervisorHandler.h 11600;0x2d50;SANITIZATION_FAILED;LOW;;bsp_q7s\memory\SdCardManager.h 11601;0x2d51;MOUNTED_SD_CARD;INFO;;bsp_q7s\memory\SdCardManager.h +11700;0x2db4;SUPV_UPDATE_FAILED;LOW;update failed;linux\devices\ploc\PlocSupvHelper.h +11701;0x2db5;SUPV_UPDATE_SUCCESSFUL;LOW;update successful;linux\devices\ploc\PlocSupvHelper.h +11702;0x2db6;TERMINATED_UPDATE_PROCEDURE;LOW;Terminated update procedure by command;linux\devices\ploc\PlocSupvHelper.h +11703;0x2db7;SUPV_EVENT_BUFFER_REQUEST_SUCCESSFUL;LOW;Requesting event buffer was successful;linux\devices\ploc\PlocSupvHelper.h +11704;0x2db8;SUPV_EVENT_BUFFER_REQUEST_FAILED;LOW;Requesting event buffer failed;linux\devices\ploc\PlocSupvHelper.h +11705;0x2db9;SUPV_EVENT_BUFFER_REQUEST_TERMINATED;LOW;Terminated event buffer request by command P1: Number of packets read before process was terminated;linux\devices\ploc\PlocSupvHelper.h +11706;0x2dba;SUPV_SENDING_COMMAND_FAILED;LOW;;linux\devices\ploc\PlocSupvHelper.h +11707;0x2dbb;SUPV_HELPER_REQUESTING_REPLY_FAILED;LOW;Request receive message of communication interface failed P1: Return value returned by the communication interface requestReceiveMessage function P2: Internal state of supervisor helper;linux\devices\ploc\PlocSupvHelper.h +11708;0x2dbc;SUPV_HELPER_READING_REPLY_FAILED;LOW;Reading receive message of communication interface failed P1: Return value returned by the communication interface readingReceivedMessage function P2: Internal state of supervisor helper;linux\devices\ploc\PlocSupvHelper.h +11709;0x2dbd;SUPV_MISSING_ACK;LOW;Did not receive acknowledgement report P1: Number of bytes missing P2: Internal state of MPSoC helper;linux\devices\ploc\PlocSupvHelper.h +11710;0x2dbe;SUPV_MISSING_EXE;LOW;Supervisor did not receive execution report P1: Number of bytes missing P2: Internal state of supervisor helper;linux\devices\ploc\PlocSupvHelper.h +11711;0x2dbf;SUPV_ACK_FAILURE_REPORT;LOW;Supervisor received acknowledgment failure report P1: Internal state of supervisor helper;linux\devices\ploc\PlocSupvHelper.h +11712;0x2dc0;SUPV_EXE_FAILURE_REPORT;LOW;Supervisor received execution failure report P1: Internal state of supervisor;linux\devices\ploc\PlocSupvHelper.h +11713;0x2dc1;SUPV_ACK_INVALID_APID;LOW;Supervisor expected acknowledgment report but received space packet with other apid P1: Apid of received space packet P2: Internal state of supervisor helper;linux\devices\ploc\PlocSupvHelper.h +11714;0x2dc2;SUPV_EXE_INVALID_APID;LOW;Supervisor helper expected execution report but received space packet with other apid P1: Apid of received space packet P2: Internal state of supervisor helper;linux\devices\ploc\PlocSupvHelper.h 11800;0x2e18;SEND_MRAM_DUMP_FAILED;LOW;Failed to send mram dump command to supervisor handler P1: Return value of commandAction function P2: Start address of MRAM to dump with this command;linux\devices\ploc\PlocMemoryDumper.h 11801;0x2e19;MRAM_DUMP_FAILED;LOW;Received completion failure report form PLOC supervisor handler P1: MRAM start address of failing dump command;linux\devices\ploc\PlocMemoryDumper.h 11802;0x2e1a;MRAM_DUMP_FINISHED;LOW;MRAM dump finished successfully;linux\devices\ploc\PlocMemoryDumper.h @@ -138,21 +153,18 @@ 12014;0x2eee;STR_HELPER_FILE_NOT_EXISTS;LOW;Specified file does not exist P1: Internal state of str helper;linux\devices\startracker\StrHelper.h 12015;0x2eef;STR_HELPER_SENDING_PACKET_FAILED;LOW;;linux\devices\startracker\StrHelper.h 12016;0x2ef0;STR_HELPER_REQUESTING_MSG_FAILED;LOW;;linux\devices\startracker\StrHelper.h -12100;0x2f44;SUPV_UPDATE_FAILED;LOW;update failed;linux\devices\ploc\PlocSupvHelper.h -12101;0x2f45;SUPV_UPDATE_SUCCESSFUL;LOW;update successful;linux\devices\ploc\PlocSupvHelper.h -12102;0x2f46;TERMINATED_UPDATE_PROCEDURE;LOW;Terminated update procedure by command;linux\devices\ploc\PlocSupvHelper.h -12103;0x2f47;SUPV_EVENT_BUFFER_REQUEST_SUCCESSFUL;LOW;Requesting event buffer was successful;linux\devices\ploc\PlocSupvHelper.h -12104;0x2f48;SUPV_EVENT_BUFFER_REQUEST_FAILED;LOW;Requesting event buffer failed;linux\devices\ploc\PlocSupvHelper.h -12105;0x2f49;SUPV_EVENT_BUFFER_REQUEST_TERMINATED;LOW;Terminated event buffer request by command P1: Number of packets read before process was terminated;linux\devices\ploc\PlocSupvHelper.h -12106;0x2f4a;SUPV_SENDING_COMMAND_FAILED;LOW;;linux\devices\ploc\PlocSupvHelper.h -12107;0x2f4b;SUPV_HELPER_REQUESTING_REPLY_FAILED;LOW;Request receive message of communication interface failed P1: Return value returned by the communication interface requestReceiveMessage function P2: Internal state of supervisor helper;linux\devices\ploc\PlocSupvHelper.h -12108;0x2f4c;SUPV_HELPER_READING_REPLY_FAILED;LOW;Reading receive message of communication interface failed P1: Return value returned by the communication interface readingReceivedMessage function P2: Internal state of supervisor helper;linux\devices\ploc\PlocSupvHelper.h -12109;0x2f4d;SUPV_MISSING_ACK;LOW;Did not receive acknowledgement report P1: Number of bytes missing P2: Internal state of MPSoC helper;linux\devices\ploc\PlocSupvHelper.h -12110;0x2f4e;SUPV_MISSING_EXE;LOW;Supervisor did not receive execution report P1: Number of bytes missing P2: Internal state of supervisor helper;linux\devices\ploc\PlocSupvHelper.h -12111;0x2f4f;SUPV_ACK_FAILURE_REPORT;LOW;Supervisor received acknowledgment failure report P1: Internal state of supervisor helper;linux\devices\ploc\PlocSupvHelper.h -12112;0x2f50;SUPV_EXE_FAILURE_REPORT;LOW;Supervisor received execution failure report P1: Internal state of supervisor;linux\devices\ploc\PlocSupvHelper.h -12113;0x2f51;SUPV_ACK_INVALID_APID;LOW;Supervisor expected acknowledgment report but received space packet with other apid P1: Apid of received space packet P2: Internal state of supervisor helper;linux\devices\ploc\PlocSupvHelper.h -12114;0x2f52;SUPV_EXE_INVALID_APID;LOW;Supervisor helper expected execution report but received space packet with other apid P1: Apid of received space packet P2: Internal state of supervisor helper;linux\devices\ploc\PlocSupvHelper.h +12100;0x2f44;MPSOC_FLASH_WRITE_FAILED;LOW;Flash write fails;linux\devices\ploc\PlocMPSoCHelper.h +12101;0x2f45;MPSOC_FLASH_WRITE_SUCCESSFUL;LOW;Flash write successful;linux\devices\ploc\PlocMPSoCHelper.h +12102;0x2f46;MPSOC_SENDING_COMMAND_FAILED;LOW;;linux\devices\ploc\PlocMPSoCHelper.h +12103;0x2f47;MPSOC_HELPER_REQUESTING_REPLY_FAILED;LOW;Request receive message of communication interface failed P1: Return value returned by the communication interface requestReceiveMessage function P2: Internal state of MPSoC helper;linux\devices\ploc\PlocMPSoCHelper.h +12104;0x2f48;MPSOC_HELPER_READING_REPLY_FAILED;LOW;Reading receive message of communication interface failed P1: Return value returned by the communication interface readingReceivedMessage function P2: Internal state of MPSoC helper;linux\devices\ploc\PlocMPSoCHelper.h +12105;0x2f49;MPSOC_MISSING_ACK;LOW;Did not receive acknowledgment report P1: Number of bytes missing P2: Internal state of MPSoC helper;linux\devices\ploc\PlocMPSoCHelper.h +12106;0x2f4a;MPSOC_MISSING_EXE;LOW;Did not receive execution report P1: Number of bytes missing P2: Internal state of MPSoC helper;linux\devices\ploc\PlocMPSoCHelper.h +12107;0x2f4b;MPSOC_ACK_FAILURE_REPORT;LOW;Received acknowledgment failure report P1: Internal state of MPSoC;linux\devices\ploc\PlocMPSoCHelper.h +12108;0x2f4c;MPSOC_EXE_FAILURE_REPORT;LOW;Received execution failure report P1: Internal state of MPSoC;linux\devices\ploc\PlocMPSoCHelper.h +12109;0x2f4d;MPSOC_ACK_INVALID_APID;LOW;Expected acknowledgment report but received space packet with other apid P1: Apid of received space packet P2: Internal state of MPSoC;linux\devices\ploc\PlocMPSoCHelper.h +12110;0x2f4e;MPSOC_EXE_INVALID_APID;LOW;Expected execution report but received space packet with other apid P1: Apid of received space packet P2: Internal state of MPSoC;linux\devices\ploc\PlocMPSoCHelper.h +12111;0x2f4f;MPSOC_HELPER_SEQ_CNT_MISMATCH;LOW;Received sequence count does not match expected sequence count P1: Expected sequence count P2: Received sequence count;linux\devices\ploc\PlocMPSoCHelper.h 12200;0x2fa8;TRANSITION_BACK_TO_OFF;MEDIUM;Could not transition properly and went back to ALL OFF;mission\devices\PayloadPcduHandler.h 12201;0x2fa9;NEG_V_OUT_OF_BOUNDS;MEDIUM;P1: 0 -> too low, 1 -> too high P2: Float value;mission\devices\PayloadPcduHandler.h 12202;0x2faa;U_DRO_OUT_OF_BOUNDS;MEDIUM;P1: 0 -> too low, 1 -> too high P2: Float value;mission\devices\PayloadPcduHandler.h diff --git a/generators/bsp_q7s_objects.csv b/generators/bsp_q7s_objects.csv index a19c8e77..98b1453e 100644 --- a/generators/bsp_q7s_objects.csv +++ b/generators/bsp_q7s_objects.csv @@ -37,7 +37,6 @@ 0x44260000;BPX_BATT_HANDLER 0x44300000;PLPCDU_HANDLER 0x443200A5;RAD_SENSOR -0x44330000;PLOC_UPDATER 0x44330001;PLOC_MEMORY_DUMPER 0x44330002;STR_HELPER 0x44330003;PLOC_MPSOC_HELPER diff --git a/generators/events/translateEvents.cpp b/generators/events/translateEvents.cpp index 41070410..842d6979 100644 --- a/generators/events/translateEvents.cpp +++ b/generators/events/translateEvents.cpp @@ -1,7 +1,7 @@ /** - * @brief Auto-generated event translation file. Contains 180 translations. + * @brief Auto-generated event translation file. Contains 192 translations. * @details - * Generated on: 2022-04-13 17:02:22 + * Generated on: 2022-04-14 15:49:05 */ #include "translateEvents.h" @@ -121,6 +121,21 @@ const char *SUPV_CRC_FAILURE_EVENT_STRING = "SUPV_CRC_FAILURE_EVENT"; const char *SUPV_HELPER_EXECUTING_STRING = "SUPV_HELPER_EXECUTING"; const char *SANITIZATION_FAILED_STRING = "SANITIZATION_FAILED"; const char *MOUNTED_SD_CARD_STRING = "MOUNTED_SD_CARD"; +const char *SUPV_UPDATE_FAILED_STRING = "SUPV_UPDATE_FAILED"; +const char *SUPV_UPDATE_SUCCESSFUL_STRING = "SUPV_UPDATE_SUCCESSFUL"; +const char *TERMINATED_UPDATE_PROCEDURE_STRING = "TERMINATED_UPDATE_PROCEDURE"; +const char *SUPV_EVENT_BUFFER_REQUEST_SUCCESSFUL_STRING = "SUPV_EVENT_BUFFER_REQUEST_SUCCESSFUL"; +const char *SUPV_EVENT_BUFFER_REQUEST_FAILED_STRING = "SUPV_EVENT_BUFFER_REQUEST_FAILED"; +const char *SUPV_EVENT_BUFFER_REQUEST_TERMINATED_STRING = "SUPV_EVENT_BUFFER_REQUEST_TERMINATED"; +const char *SUPV_SENDING_COMMAND_FAILED_STRING = "SUPV_SENDING_COMMAND_FAILED"; +const char *SUPV_HELPER_REQUESTING_REPLY_FAILED_STRING = "SUPV_HELPER_REQUESTING_REPLY_FAILED"; +const char *SUPV_HELPER_READING_REPLY_FAILED_STRING = "SUPV_HELPER_READING_REPLY_FAILED"; +const char *SUPV_MISSING_ACK_STRING = "SUPV_MISSING_ACK"; +const char *SUPV_MISSING_EXE_STRING = "SUPV_MISSING_EXE"; +const char *SUPV_ACK_FAILURE_REPORT_STRING = "SUPV_ACK_FAILURE_REPORT"; +const char *SUPV_EXE_FAILURE_REPORT_STRING = "SUPV_EXE_FAILURE_REPORT"; +const char *SUPV_ACK_INVALID_APID_STRING = "SUPV_ACK_INVALID_APID"; +const char *SUPV_EXE_INVALID_APID_STRING = "SUPV_EXE_INVALID_APID"; const char *SEND_MRAM_DUMP_FAILED_STRING = "SEND_MRAM_DUMP_FAILED"; const char *MRAM_DUMP_FAILED_STRING = "MRAM_DUMP_FAILED"; const char *MRAM_DUMP_FINISHED_STRING = "MRAM_DUMP_FINISHED"; @@ -145,21 +160,18 @@ const char *POSITION_MISMATCH_STRING = "POSITION_MISMATCH"; const char *STR_HELPER_FILE_NOT_EXISTS_STRING = "STR_HELPER_FILE_NOT_EXISTS"; const char *STR_HELPER_SENDING_PACKET_FAILED_STRING = "STR_HELPER_SENDING_PACKET_FAILED"; const char *STR_HELPER_REQUESTING_MSG_FAILED_STRING = "STR_HELPER_REQUESTING_MSG_FAILED"; -const char *SUPV_UPDATE_FAILED_STRING = "SUPV_UPDATE_FAILED"; -const char *SUPV_UPDATE_SUCCESSFUL_STRING = "SUPV_UPDATE_SUCCESSFUL"; -const char *TERMINATED_UPDATE_PROCEDURE_STRING = "TERMINATED_UPDATE_PROCEDURE"; -const char *SUPV_EVENT_BUFFER_REQUEST_SUCCESSFUL_STRING = "SUPV_EVENT_BUFFER_REQUEST_SUCCESSFUL"; -const char *SUPV_EVENT_BUFFER_REQUEST_FAILED_STRING = "SUPV_EVENT_BUFFER_REQUEST_FAILED"; -const char *SUPV_EVENT_BUFFER_REQUEST_TERMINATED_STRING = "SUPV_EVENT_BUFFER_REQUEST_TERMINATED"; -const char *SUPV_SENDING_COMMAND_FAILED_STRING = "SUPV_SENDING_COMMAND_FAILED"; -const char *SUPV_HELPER_REQUESTING_REPLY_FAILED_STRING = "SUPV_HELPER_REQUESTING_REPLY_FAILED"; -const char *SUPV_HELPER_READING_REPLY_FAILED_STRING = "SUPV_HELPER_READING_REPLY_FAILED"; -const char *SUPV_MISSING_ACK_STRING = "SUPV_MISSING_ACK"; -const char *SUPV_MISSING_EXE_STRING = "SUPV_MISSING_EXE"; -const char *SUPV_ACK_FAILURE_REPORT_STRING = "SUPV_ACK_FAILURE_REPORT"; -const char *SUPV_EXE_FAILURE_REPORT_STRING = "SUPV_EXE_FAILURE_REPORT"; -const char *SUPV_ACK_INVALID_APID_STRING = "SUPV_ACK_INVALID_APID"; -const char *SUPV_EXE_INVALID_APID_STRING = "SUPV_EXE_INVALID_APID"; +const char *MPSOC_FLASH_WRITE_FAILED_STRING = "MPSOC_FLASH_WRITE_FAILED"; +const char *MPSOC_FLASH_WRITE_SUCCESSFUL_STRING = "MPSOC_FLASH_WRITE_SUCCESSFUL"; +const char *MPSOC_SENDING_COMMAND_FAILED_STRING = "MPSOC_SENDING_COMMAND_FAILED"; +const char *MPSOC_HELPER_REQUESTING_REPLY_FAILED_STRING = "MPSOC_HELPER_REQUESTING_REPLY_FAILED"; +const char *MPSOC_HELPER_READING_REPLY_FAILED_STRING = "MPSOC_HELPER_READING_REPLY_FAILED"; +const char *MPSOC_MISSING_ACK_STRING = "MPSOC_MISSING_ACK"; +const char *MPSOC_MISSING_EXE_STRING = "MPSOC_MISSING_EXE"; +const char *MPSOC_ACK_FAILURE_REPORT_STRING = "MPSOC_ACK_FAILURE_REPORT"; +const char *MPSOC_EXE_FAILURE_REPORT_STRING = "MPSOC_EXE_FAILURE_REPORT"; +const char *MPSOC_ACK_INVALID_APID_STRING = "MPSOC_ACK_INVALID_APID"; +const char *MPSOC_EXE_INVALID_APID_STRING = "MPSOC_EXE_INVALID_APID"; +const char *MPSOC_HELPER_SEQ_CNT_MISMATCH_STRING = "MPSOC_HELPER_SEQ_CNT_MISMATCH"; const char *TRANSITION_BACK_TO_OFF_STRING = "TRANSITION_BACK_TO_OFF"; const char *NEG_V_OUT_OF_BOUNDS_STRING = "NEG_V_OUT_OF_BOUNDS"; const char *U_DRO_OUT_OF_BOUNDS_STRING = "U_DRO_OUT_OF_BOUNDS"; @@ -416,6 +428,36 @@ const char *translateEvents(Event event) { return SANITIZATION_FAILED_STRING; case (11601): return MOUNTED_SD_CARD_STRING; + case (11700): + return SUPV_UPDATE_FAILED_STRING; + case (11701): + return SUPV_UPDATE_SUCCESSFUL_STRING; + case (11702): + return TERMINATED_UPDATE_PROCEDURE_STRING; + case (11703): + return SUPV_EVENT_BUFFER_REQUEST_SUCCESSFUL_STRING; + case (11704): + return SUPV_EVENT_BUFFER_REQUEST_FAILED_STRING; + case (11705): + return SUPV_EVENT_BUFFER_REQUEST_TERMINATED_STRING; + case (11706): + return SUPV_SENDING_COMMAND_FAILED_STRING; + case (11707): + return SUPV_HELPER_REQUESTING_REPLY_FAILED_STRING; + case (11708): + return SUPV_HELPER_READING_REPLY_FAILED_STRING; + case (11709): + return SUPV_MISSING_ACK_STRING; + case (11710): + return SUPV_MISSING_EXE_STRING; + case (11711): + return SUPV_ACK_FAILURE_REPORT_STRING; + case (11712): + return SUPV_EXE_FAILURE_REPORT_STRING; + case (11713): + return SUPV_ACK_INVALID_APID_STRING; + case (11714): + return SUPV_EXE_INVALID_APID_STRING; case (11800): return SEND_MRAM_DUMP_FAILED_STRING; case (11801): @@ -465,35 +507,29 @@ const char *translateEvents(Event event) { case (12016): return STR_HELPER_REQUESTING_MSG_FAILED_STRING; case (12100): - return SUPV_UPDATE_FAILED_STRING; + return MPSOC_FLASH_WRITE_FAILED_STRING; case (12101): - return SUPV_UPDATE_SUCCESSFUL_STRING; + return MPSOC_FLASH_WRITE_SUCCESSFUL_STRING; case (12102): - return TERMINATED_UPDATE_PROCEDURE_STRING; + return MPSOC_SENDING_COMMAND_FAILED_STRING; case (12103): - return SUPV_EVENT_BUFFER_REQUEST_SUCCESSFUL_STRING; + return MPSOC_HELPER_REQUESTING_REPLY_FAILED_STRING; case (12104): - return SUPV_EVENT_BUFFER_REQUEST_FAILED_STRING; + return MPSOC_HELPER_READING_REPLY_FAILED_STRING; case (12105): - return SUPV_EVENT_BUFFER_REQUEST_TERMINATED_STRING; + return MPSOC_MISSING_ACK_STRING; case (12106): - return SUPV_SENDING_COMMAND_FAILED_STRING; + return MPSOC_MISSING_EXE_STRING; case (12107): - return SUPV_HELPER_REQUESTING_REPLY_FAILED_STRING; + return MPSOC_ACK_FAILURE_REPORT_STRING; case (12108): - return SUPV_HELPER_READING_REPLY_FAILED_STRING; + return MPSOC_EXE_FAILURE_REPORT_STRING; case (12109): - return SUPV_MISSING_ACK_STRING; + return MPSOC_ACK_INVALID_APID_STRING; case (12110): - return SUPV_MISSING_EXE_STRING; + return MPSOC_EXE_INVALID_APID_STRING; case (12111): - return SUPV_ACK_FAILURE_REPORT_STRING; - case (12112): - return SUPV_EXE_FAILURE_REPORT_STRING; - case (12113): - return SUPV_ACK_INVALID_APID_STRING; - case (12114): - return SUPV_EXE_INVALID_APID_STRING; + return MPSOC_HELPER_SEQ_CNT_MISMATCH_STRING; case (12200): return TRANSITION_BACK_TO_OFF_STRING; case (12201): diff --git a/generators/objects/translateObjects.cpp b/generators/objects/translateObjects.cpp index 5f8fa397..a67bae74 100644 --- a/generators/objects/translateObjects.cpp +++ b/generators/objects/translateObjects.cpp @@ -1,8 +1,8 @@ /** * @brief Auto-generated object translation file. * @details - * Contains 117 translations. - * Generated on: 2022-04-13 17:02:27 + * Contains 116 translations. + * Generated on: 2022-04-14 15:49:10 */ #include "translateObjects.h" @@ -45,7 +45,6 @@ const char *ACU_HANDLER_STRING = "ACU_HANDLER"; const char *BPX_BATT_HANDLER_STRING = "BPX_BATT_HANDLER"; const char *PLPCDU_HANDLER_STRING = "PLPCDU_HANDLER"; const char *RAD_SENSOR_STRING = "RAD_SENSOR"; -const char *PLOC_UPDATER_STRING = "PLOC_UPDATER"; const char *PLOC_MEMORY_DUMPER_STRING = "PLOC_MEMORY_DUMPER"; const char *STR_HELPER_STRING = "STR_HELPER"; const char *PLOC_MPSOC_HELPER_STRING = "PLOC_MPSOC_HELPER"; @@ -204,8 +203,6 @@ const char *translateObject(object_id_t object) { return PLPCDU_HANDLER_STRING; case 0x443200A5: return RAD_SENSOR_STRING; - case 0x44330000: - return PLOC_UPDATER_STRING; case 0x44330001: return PLOC_MEMORY_DUMPER_STRING; case 0x44330002: diff --git a/linux/devices/ploc/PlocSupervisorHandler.cpp b/linux/devices/ploc/PlocSupervisorHandler.cpp index 09c4c61b..e8a2163e 100644 --- a/linux/devices/ploc/PlocSupervisorHandler.cpp +++ b/linux/devices/ploc/PlocSupervisorHandler.cpp @@ -72,7 +72,7 @@ void PlocSupervisorHandler::performOperationHook() { handleEvent(&event); break; default: - sif::debug << "PlocMPSoCHandler::performOperationHook: Did not subscribe to this event" + sif::debug << "PlocSupervisorHandler::performOperationHook: Did not subscribe to this event" << " message" << std::endl; break; } @@ -160,6 +160,8 @@ ReturnValue_t PlocSupervisorHandler::buildCommandFromCommand(DeviceCommandId_t d ReturnValue_t result = RETURN_FAILED; switch (deviceCommand) { case GET_HK_REPORT: { + sif::warning << "PlocSupervisorHandler::buildCommandFromCommand: Housekeeping report is " + << "faulty. Needs to be fixed in vorago software" << std::endl; prepareEmptyCmd(APID_GET_HK_REPORT); result = RETURN_OK; break; diff --git a/linux/devices/ploc/PlocSupvHelper.cpp b/linux/devices/ploc/PlocSupvHelper.cpp index b003241f..2e78149a 100644 --- a/linux/devices/ploc/PlocSupvHelper.cpp +++ b/linux/devices/ploc/PlocSupvHelper.cpp @@ -6,12 +6,13 @@ #include "OBSWConfig.h" #ifdef XIPHOS_Q7S #include "bsp_q7s/memory/FilesystemHelper.h" +#include "bsp_q7s/memory/SDCardManager.h" #endif -#include "bsp_q7s/memory/FilesystemHelper.h" #include "fsfw/globalfunctions/CRC.h" -#include "mission/utility/Timestamp.h" #include "mission/utility/Filenaming.h" +#include "mission/utility/ProgressPrinter.h" +#include "mission/utility/Timestamp.h" PlocSupvHelper::PlocSupvHelper(object_id_t objectId) : SystemObject(objectId) {} @@ -57,8 +58,7 @@ ReturnValue_t PlocSupvHelper::performOperation(uint8_t operationCode) { } else if (result == PROCESS_TERMINATED) { // Event already triggered break; - } - else { + } else { triggerEvent(SUPV_EVENT_BUFFER_REQUEST_FAILED, result); } internalState = InternalState::IDLE; @@ -91,11 +91,11 @@ ReturnValue_t PlocSupvHelper::startUpdate(std::string file, uint8_t memoryId, sif::warning << "PlocSupvHelper::startUpdate: File " << file << " does not exist" << std::endl; return result; } - result = FileSytemHelper::fileExists(file); + result = FilesystemHelper::fileExists(file); if (result != RETURN_OK) { sif::warning << "PlocSupvHelper::startUpdate: The file " << file << " does not exist" << std::endl; - reurn result; + return result; } #endif #ifdef TE0720_1CFA @@ -148,6 +148,10 @@ ReturnValue_t PlocSupvHelper::performUpdate() { if (result != RETURN_OK) { return result; } +#if OBSW_DEBUG_PLOC_SUPERVISOR == 1 + ProgressPrinter progressPrinter("Supervisor update: ", update.length, + ProgressPrinter::ONE_PERCENT); +#endif /* OBSW_DEBUG_PLOC_SUPERVISOR == 1 */ uint8_t tempData[supv::WriteMemory::CHUNK_MAX]; std::ifstream file(update.file, std::ifstream::binary); size_t remainingSize = update.length; @@ -185,8 +189,10 @@ ReturnValue_t PlocSupvHelper::performUpdate() { return result; } bytesWritten += dataLength; +#if OBSW_DEBUG_PLOC_SUPERVISOR == 1 + progressPrinter.print(bytesWritten); } - +#endif /* OBSW_DEBUG_PLOC_SUPERVISOR == 1 */ result = handleCheckMemoryCommand(); if (result != RETURN_OK) { return result; @@ -340,7 +346,7 @@ ReturnValue_t PlocSupvHelper::handleTmReception(supv::TmPacket* tmPacket, size_t } if (remainingBytes != 0) { sif::warning << "PlocSupvHelper::handleTmReception: Failed to read " << remainingBytes - << " bytes" << std::endl; + << " bytes" << std::endl; return RETURN_FAILED; } result = tmPacket->checkCrc(); @@ -435,13 +441,15 @@ ReturnValue_t PlocSupvHelper::handleCheckMemoryCommand() { uint32_t PlocSupvHelper::getFileSize(std::string filename) { std::ifstream file(filename, std::ifstream::binary); file.seekg(0, file.end); - return file.tellg(); + uint32_t size = file.tellg(); + file.close(); + return size; } ReturnValue_t PlocSupvHelper::handleEventBufferReception() { ReturnValue_t result = RETURN_OK; - std::string filename = Filenaming::generateAbsoluteFilename(eventBufferReq.path, - eventBufferReq.filename, timestamping); + std::string filename = Filenaming::generateAbsoluteFilename( + eventBufferReq.path, eventBufferReq.filename, timestamping); std::ofstream file(filename, std::ios_base::app | std::ios_base::out); uint32_t packetsRead = 0; size_t requestLen = 0; @@ -460,7 +468,7 @@ ReturnValue_t PlocSupvHelper::handleEventBufferReception() { result = handleTmReception(&tmPacket, requestLen); if (result != RETURN_OK) { sif::debug << "PlocSupvHelper::handleEventBufferReception: Failed while trying to read packet" - << " " << packetsRead + 1 << std::endl; + << " " << packetsRead + 1 << std::endl; file.close(); return result; } @@ -476,3 +484,7 @@ ReturnValue_t PlocSupvHelper::handleEventBufferReception() { } return result; } + +//ReturnValue_t PlocSupervisorHandler::parseStatusCode(std::string* meaning) { +// +//} diff --git a/linux/devices/ploc/PlocSupvHelper.h b/linux/devices/ploc/PlocSupvHelper.h index 0fe99cff..80ab4aeb 100644 --- a/linux/devices/ploc/PlocSupvHelper.h +++ b/linux/devices/ploc/PlocSupvHelper.h @@ -3,6 +3,7 @@ #include +#include "OBSWConfig.h" #include "fsfw/devicehandlers/CookieIF.h" #include "fsfw/objectmanager/SystemObject.h" #include "fsfw/osal/linux/BinarySemaphore.h" @@ -21,7 +22,7 @@ */ class PlocSupvHelper : public SystemObject, public ExecutableObjectIF, public HasReturnvaluesIF { public: - static const uint8_t SUBSYSTEM_ID = SUBSYSTEM_ID::PLOC_MPSOC_HELPER; + static const uint8_t SUBSYSTEM_ID = SUBSYSTEM_ID::PLOC_SUPV_HELPER; //! [EXPORT] : [COMMENT] update failed static const Event SUPV_UPDATE_FAILED = MAKE_EVENT(0, severity::LOW); @@ -116,7 +117,7 @@ class PlocSupvHelper : public SystemObject, public ExecutableObjectIF, public Ha // Maximum number of times the communication interface retries polling data from the reply // buffer - static const int RETRIES = 10000; + static const int RETRIES = 20000; static const uint16_t CRC16_INIT = 0xFFFF; // Event buffer reply will carry 24 space packets with 1016 bytes and one space packet with // 192 bytes diff --git a/linux/fsfwconfig/events/translateEvents.cpp b/linux/fsfwconfig/events/translateEvents.cpp index 41070410..842d6979 100644 --- a/linux/fsfwconfig/events/translateEvents.cpp +++ b/linux/fsfwconfig/events/translateEvents.cpp @@ -1,7 +1,7 @@ /** - * @brief Auto-generated event translation file. Contains 180 translations. + * @brief Auto-generated event translation file. Contains 192 translations. * @details - * Generated on: 2022-04-13 17:02:22 + * Generated on: 2022-04-14 15:49:05 */ #include "translateEvents.h" @@ -121,6 +121,21 @@ const char *SUPV_CRC_FAILURE_EVENT_STRING = "SUPV_CRC_FAILURE_EVENT"; const char *SUPV_HELPER_EXECUTING_STRING = "SUPV_HELPER_EXECUTING"; const char *SANITIZATION_FAILED_STRING = "SANITIZATION_FAILED"; const char *MOUNTED_SD_CARD_STRING = "MOUNTED_SD_CARD"; +const char *SUPV_UPDATE_FAILED_STRING = "SUPV_UPDATE_FAILED"; +const char *SUPV_UPDATE_SUCCESSFUL_STRING = "SUPV_UPDATE_SUCCESSFUL"; +const char *TERMINATED_UPDATE_PROCEDURE_STRING = "TERMINATED_UPDATE_PROCEDURE"; +const char *SUPV_EVENT_BUFFER_REQUEST_SUCCESSFUL_STRING = "SUPV_EVENT_BUFFER_REQUEST_SUCCESSFUL"; +const char *SUPV_EVENT_BUFFER_REQUEST_FAILED_STRING = "SUPV_EVENT_BUFFER_REQUEST_FAILED"; +const char *SUPV_EVENT_BUFFER_REQUEST_TERMINATED_STRING = "SUPV_EVENT_BUFFER_REQUEST_TERMINATED"; +const char *SUPV_SENDING_COMMAND_FAILED_STRING = "SUPV_SENDING_COMMAND_FAILED"; +const char *SUPV_HELPER_REQUESTING_REPLY_FAILED_STRING = "SUPV_HELPER_REQUESTING_REPLY_FAILED"; +const char *SUPV_HELPER_READING_REPLY_FAILED_STRING = "SUPV_HELPER_READING_REPLY_FAILED"; +const char *SUPV_MISSING_ACK_STRING = "SUPV_MISSING_ACK"; +const char *SUPV_MISSING_EXE_STRING = "SUPV_MISSING_EXE"; +const char *SUPV_ACK_FAILURE_REPORT_STRING = "SUPV_ACK_FAILURE_REPORT"; +const char *SUPV_EXE_FAILURE_REPORT_STRING = "SUPV_EXE_FAILURE_REPORT"; +const char *SUPV_ACK_INVALID_APID_STRING = "SUPV_ACK_INVALID_APID"; +const char *SUPV_EXE_INVALID_APID_STRING = "SUPV_EXE_INVALID_APID"; const char *SEND_MRAM_DUMP_FAILED_STRING = "SEND_MRAM_DUMP_FAILED"; const char *MRAM_DUMP_FAILED_STRING = "MRAM_DUMP_FAILED"; const char *MRAM_DUMP_FINISHED_STRING = "MRAM_DUMP_FINISHED"; @@ -145,21 +160,18 @@ const char *POSITION_MISMATCH_STRING = "POSITION_MISMATCH"; const char *STR_HELPER_FILE_NOT_EXISTS_STRING = "STR_HELPER_FILE_NOT_EXISTS"; const char *STR_HELPER_SENDING_PACKET_FAILED_STRING = "STR_HELPER_SENDING_PACKET_FAILED"; const char *STR_HELPER_REQUESTING_MSG_FAILED_STRING = "STR_HELPER_REQUESTING_MSG_FAILED"; -const char *SUPV_UPDATE_FAILED_STRING = "SUPV_UPDATE_FAILED"; -const char *SUPV_UPDATE_SUCCESSFUL_STRING = "SUPV_UPDATE_SUCCESSFUL"; -const char *TERMINATED_UPDATE_PROCEDURE_STRING = "TERMINATED_UPDATE_PROCEDURE"; -const char *SUPV_EVENT_BUFFER_REQUEST_SUCCESSFUL_STRING = "SUPV_EVENT_BUFFER_REQUEST_SUCCESSFUL"; -const char *SUPV_EVENT_BUFFER_REQUEST_FAILED_STRING = "SUPV_EVENT_BUFFER_REQUEST_FAILED"; -const char *SUPV_EVENT_BUFFER_REQUEST_TERMINATED_STRING = "SUPV_EVENT_BUFFER_REQUEST_TERMINATED"; -const char *SUPV_SENDING_COMMAND_FAILED_STRING = "SUPV_SENDING_COMMAND_FAILED"; -const char *SUPV_HELPER_REQUESTING_REPLY_FAILED_STRING = "SUPV_HELPER_REQUESTING_REPLY_FAILED"; -const char *SUPV_HELPER_READING_REPLY_FAILED_STRING = "SUPV_HELPER_READING_REPLY_FAILED"; -const char *SUPV_MISSING_ACK_STRING = "SUPV_MISSING_ACK"; -const char *SUPV_MISSING_EXE_STRING = "SUPV_MISSING_EXE"; -const char *SUPV_ACK_FAILURE_REPORT_STRING = "SUPV_ACK_FAILURE_REPORT"; -const char *SUPV_EXE_FAILURE_REPORT_STRING = "SUPV_EXE_FAILURE_REPORT"; -const char *SUPV_ACK_INVALID_APID_STRING = "SUPV_ACK_INVALID_APID"; -const char *SUPV_EXE_INVALID_APID_STRING = "SUPV_EXE_INVALID_APID"; +const char *MPSOC_FLASH_WRITE_FAILED_STRING = "MPSOC_FLASH_WRITE_FAILED"; +const char *MPSOC_FLASH_WRITE_SUCCESSFUL_STRING = "MPSOC_FLASH_WRITE_SUCCESSFUL"; +const char *MPSOC_SENDING_COMMAND_FAILED_STRING = "MPSOC_SENDING_COMMAND_FAILED"; +const char *MPSOC_HELPER_REQUESTING_REPLY_FAILED_STRING = "MPSOC_HELPER_REQUESTING_REPLY_FAILED"; +const char *MPSOC_HELPER_READING_REPLY_FAILED_STRING = "MPSOC_HELPER_READING_REPLY_FAILED"; +const char *MPSOC_MISSING_ACK_STRING = "MPSOC_MISSING_ACK"; +const char *MPSOC_MISSING_EXE_STRING = "MPSOC_MISSING_EXE"; +const char *MPSOC_ACK_FAILURE_REPORT_STRING = "MPSOC_ACK_FAILURE_REPORT"; +const char *MPSOC_EXE_FAILURE_REPORT_STRING = "MPSOC_EXE_FAILURE_REPORT"; +const char *MPSOC_ACK_INVALID_APID_STRING = "MPSOC_ACK_INVALID_APID"; +const char *MPSOC_EXE_INVALID_APID_STRING = "MPSOC_EXE_INVALID_APID"; +const char *MPSOC_HELPER_SEQ_CNT_MISMATCH_STRING = "MPSOC_HELPER_SEQ_CNT_MISMATCH"; const char *TRANSITION_BACK_TO_OFF_STRING = "TRANSITION_BACK_TO_OFF"; const char *NEG_V_OUT_OF_BOUNDS_STRING = "NEG_V_OUT_OF_BOUNDS"; const char *U_DRO_OUT_OF_BOUNDS_STRING = "U_DRO_OUT_OF_BOUNDS"; @@ -416,6 +428,36 @@ const char *translateEvents(Event event) { return SANITIZATION_FAILED_STRING; case (11601): return MOUNTED_SD_CARD_STRING; + case (11700): + return SUPV_UPDATE_FAILED_STRING; + case (11701): + return SUPV_UPDATE_SUCCESSFUL_STRING; + case (11702): + return TERMINATED_UPDATE_PROCEDURE_STRING; + case (11703): + return SUPV_EVENT_BUFFER_REQUEST_SUCCESSFUL_STRING; + case (11704): + return SUPV_EVENT_BUFFER_REQUEST_FAILED_STRING; + case (11705): + return SUPV_EVENT_BUFFER_REQUEST_TERMINATED_STRING; + case (11706): + return SUPV_SENDING_COMMAND_FAILED_STRING; + case (11707): + return SUPV_HELPER_REQUESTING_REPLY_FAILED_STRING; + case (11708): + return SUPV_HELPER_READING_REPLY_FAILED_STRING; + case (11709): + return SUPV_MISSING_ACK_STRING; + case (11710): + return SUPV_MISSING_EXE_STRING; + case (11711): + return SUPV_ACK_FAILURE_REPORT_STRING; + case (11712): + return SUPV_EXE_FAILURE_REPORT_STRING; + case (11713): + return SUPV_ACK_INVALID_APID_STRING; + case (11714): + return SUPV_EXE_INVALID_APID_STRING; case (11800): return SEND_MRAM_DUMP_FAILED_STRING; case (11801): @@ -465,35 +507,29 @@ const char *translateEvents(Event event) { case (12016): return STR_HELPER_REQUESTING_MSG_FAILED_STRING; case (12100): - return SUPV_UPDATE_FAILED_STRING; + return MPSOC_FLASH_WRITE_FAILED_STRING; case (12101): - return SUPV_UPDATE_SUCCESSFUL_STRING; + return MPSOC_FLASH_WRITE_SUCCESSFUL_STRING; case (12102): - return TERMINATED_UPDATE_PROCEDURE_STRING; + return MPSOC_SENDING_COMMAND_FAILED_STRING; case (12103): - return SUPV_EVENT_BUFFER_REQUEST_SUCCESSFUL_STRING; + return MPSOC_HELPER_REQUESTING_REPLY_FAILED_STRING; case (12104): - return SUPV_EVENT_BUFFER_REQUEST_FAILED_STRING; + return MPSOC_HELPER_READING_REPLY_FAILED_STRING; case (12105): - return SUPV_EVENT_BUFFER_REQUEST_TERMINATED_STRING; + return MPSOC_MISSING_ACK_STRING; case (12106): - return SUPV_SENDING_COMMAND_FAILED_STRING; + return MPSOC_MISSING_EXE_STRING; case (12107): - return SUPV_HELPER_REQUESTING_REPLY_FAILED_STRING; + return MPSOC_ACK_FAILURE_REPORT_STRING; case (12108): - return SUPV_HELPER_READING_REPLY_FAILED_STRING; + return MPSOC_EXE_FAILURE_REPORT_STRING; case (12109): - return SUPV_MISSING_ACK_STRING; + return MPSOC_ACK_INVALID_APID_STRING; case (12110): - return SUPV_MISSING_EXE_STRING; + return MPSOC_EXE_INVALID_APID_STRING; case (12111): - return SUPV_ACK_FAILURE_REPORT_STRING; - case (12112): - return SUPV_EXE_FAILURE_REPORT_STRING; - case (12113): - return SUPV_ACK_INVALID_APID_STRING; - case (12114): - return SUPV_EXE_INVALID_APID_STRING; + return MPSOC_HELPER_SEQ_CNT_MISMATCH_STRING; case (12200): return TRANSITION_BACK_TO_OFF_STRING; case (12201): diff --git a/linux/fsfwconfig/objects/translateObjects.cpp b/linux/fsfwconfig/objects/translateObjects.cpp index 5f8fa397..a67bae74 100644 --- a/linux/fsfwconfig/objects/translateObjects.cpp +++ b/linux/fsfwconfig/objects/translateObjects.cpp @@ -1,8 +1,8 @@ /** * @brief Auto-generated object translation file. * @details - * Contains 117 translations. - * Generated on: 2022-04-13 17:02:27 + * Contains 116 translations. + * Generated on: 2022-04-14 15:49:10 */ #include "translateObjects.h" @@ -45,7 +45,6 @@ const char *ACU_HANDLER_STRING = "ACU_HANDLER"; const char *BPX_BATT_HANDLER_STRING = "BPX_BATT_HANDLER"; const char *PLPCDU_HANDLER_STRING = "PLPCDU_HANDLER"; const char *RAD_SENSOR_STRING = "RAD_SENSOR"; -const char *PLOC_UPDATER_STRING = "PLOC_UPDATER"; const char *PLOC_MEMORY_DUMPER_STRING = "PLOC_MEMORY_DUMPER"; const char *STR_HELPER_STRING = "STR_HELPER"; const char *PLOC_MPSOC_HELPER_STRING = "PLOC_MPSOC_HELPER"; @@ -204,8 +203,6 @@ const char *translateObject(object_id_t object) { return PLPCDU_HANDLER_STRING; case 0x443200A5: return RAD_SENSOR_STRING; - case 0x44330000: - return PLOC_UPDATER_STRING; case 0x44330001: return PLOC_MEMORY_DUMPER_STRING; case 0x44330002: diff --git a/linux/fsfwconfig/pollingsequence/pollingSequenceFactory.cpp b/linux/fsfwconfig/pollingsequence/pollingSequenceFactory.cpp index fdd4897e..5e683a89 100644 --- a/linux/fsfwconfig/pollingsequence/pollingSequenceFactory.cpp +++ b/linux/fsfwconfig/pollingsequence/pollingSequenceFactory.cpp @@ -472,7 +472,6 @@ ReturnValue_t pst::pstUart(FixedTimeslotTaskIF *thisSequence) { #endif #ifdef XIPHOS_Q7S - thisSequence->addSlot(objects::PLOC_UPDATER, length * 0, DeviceHandlerIF::PERFORM_OPERATION); thisSequence->addSlot(objects::PLOC_MEMORY_DUMPER, length * 0, DeviceHandlerIF::PERFORM_OPERATION); #endif diff --git a/mission/utility/ProgressPrinter.cpp b/mission/utility/ProgressPrinter.cpp index 16a0f148..1161c1f3 100644 --- a/mission/utility/ProgressPrinter.cpp +++ b/mission/utility/ProgressPrinter.cpp @@ -2,7 +2,7 @@ #include "fsfw/serviceinterface/ServiceInterfaceStream.h" -ProgressPrinter::ProgressPrinter(std::string name, uint32_t numSteps) +ProgressPrinter::ProgressPrinter(std::string name, uint32_t numSteps, uint32_t percentageResolution) : name(name), numSteps(numSteps) {} ProgressPrinter::~ProgressPrinter() {} diff --git a/mission/utility/ProgressPrinter.h b/mission/utility/ProgressPrinter.h index 593526ba..4889c567 100644 --- a/mission/utility/ProgressPrinter.h +++ b/mission/utility/ProgressPrinter.h @@ -10,13 +10,18 @@ */ class ProgressPrinter { public: + + static const uint32_t ONE_PERCENT = 1; + /** * @brief Constructor * - * @param name Name of the process to monitor - * @param numSteps Number of steps to execute + * @param name Name of the process to monitor + * @param numSteps Number of steps to execute + * @param percentageResolution Distance between printed percentage steps. E.g. 5 means that + * a printout will be generated after 0%, 5%, 10% etc. */ - ProgressPrinter(std::string name, uint32_t numSteps); + ProgressPrinter(std::string name, uint32_t numSteps, uint32_t percentageResolution = FIVE_PERCENT); virtual ~ProgressPrinter(); /** diff --git a/tmtc b/tmtc index a3d9e83d..edee0c1a 160000 --- a/tmtc +++ b/tmtc @@ -1 +1 @@ -Subproject commit a3d9e83dc6aa378d92f0d97dfe734ab67f705805 +Subproject commit edee0c1aa38c7a07eb82cd358cd7e921536d075e