diff --git a/bsp_hosted/fsfwconfig/events/subsystemIdRanges.h b/bsp_hosted/fsfwconfig/events/subsystemIdRanges.h index 98776b6a..7335a804 100644 --- a/bsp_hosted/fsfwconfig/events/subsystemIdRanges.h +++ b/bsp_hosted/fsfwconfig/events/subsystemIdRanges.h @@ -1,7 +1,7 @@ #ifndef CONFIG_EVENTS_SUBSYSTEMIDRANGES_H_ #define CONFIG_EVENTS_SUBSYSTEMIDRANGES_H_ -#include "commonSubsystemId.h" +#include #include /** diff --git a/common/config/commonSubsystemId.h b/common/config/commonSubsystemId.h deleted file mode 100644 index b19fea3a..00000000 --- a/common/config/commonSubsystemId.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef COMMON_CONFIG_COMMONSUBSYSTEMID_H_ -#define COMMON_CONFIG_COMMONSUBSYSTEMID_H_ - -#include - -namespace SUBSYSTEM_ID { -enum: uint8_t { - COMMON_SUBSYSTEM_ID_START = FW_SUBSYSTEM_ID_RANGE, - PUS_SERVICE_2, - PUS_SERVICE_3, - PUS_SERVICE_5, - PUS_SERVICE_6, - PUS_SERVICE_8, - PUS_SERVICE_23, - MGM_LIS3MDL, - MGM_RM3100, - PCDU_HANDLER, - HEATER_HANDLER, - SA_DEPL_HANDLER, - PLOC_HANDLER, - COMMON_SUBSYSTEM_ID_END -}; -} - - -#endif /* COMMON_CONFIG_COMMONSUBSYSTEMID_H_ */ diff --git a/common/config/commonSubsystemIds.h b/common/config/commonSubsystemIds.h new file mode 100644 index 00000000..64ab8173 --- /dev/null +++ b/common/config/commonSubsystemIds.h @@ -0,0 +1,26 @@ +#ifndef COMMON_CONFIG_COMMONSUBSYSTEMIDS_H_ +#define COMMON_CONFIG_COMMONSUBSYSTEMIDS_H_ + +#include + +namespace SUBSYSTEM_ID { +enum: uint8_t { + COMMON_SUBSYSTEM_ID_START = FW_SUBSYSTEM_ID_RANGE, + PUS_SERVICE_2 = 100, + PUS_SERVICE_3 = 101, + PUS_SERVICE_5 = 102, + PUS_SERVICE_6 = 103, + PUS_SERVICE_8 = 104, + PUS_SERVICE_23 = 105, + MGM_LIS3MDL = 106, + MGM_RM3100 = 107, + PCDU_HANDLER = 108, + HEATER_HANDLER = 109, + SA_DEPL_HANDLER = 110, + PLOC_HANDLER = 111, + COMMON_SUBSYSTEM_ID_END +}; +} + + +#endif /* COMMON_CONFIG_COMMONSUBSYSTEMIDS_H_ */ diff --git a/fsfwconfig/events/subsystemIdRanges.h b/fsfwconfig/events/subsystemIdRanges.h index f6f6b161..f728db21 100644 --- a/fsfwconfig/events/subsystemIdRanges.h +++ b/fsfwconfig/events/subsystemIdRanges.h @@ -1,7 +1,7 @@ #ifndef FSFWCONFIG_EVENTS_SUBSYSTEMIDRANGES_H_ #define FSFWCONFIG_EVENTS_SUBSYSTEMIDRANGES_H_ -#include "commonSubsystemId.h" +#include #include #include diff --git a/fsfwconfig/events/translateEvents.cpp b/fsfwconfig/events/translateEvents.cpp index 49e1223a..62ee369c 100644 --- a/fsfwconfig/events/translateEvents.cpp +++ b/fsfwconfig/events/translateEvents.cpp @@ -1,12 +1,10 @@ /** - * @brief Auto-generated event translation file. Contains 80 translations. - * Generated on: 2020-05-02 20:13:41 + * @brief Auto-generated event translation file. Contains 83 translations. + * @details + * Generated on: 2021-05-17 19:38:14 */ -#include +#include "translateEvents.h" -const char *GPS_STARTUP_FAILED_STRING = "GPS_STARTUP_FAILED"; -const char *GPS_FIX_STRING = "GPS_FIX"; -const char *GPS_LOST_FIX_STRING = "GPS_LOST_FIX"; const char *STORE_SEND_WRITE_FAILED_STRING = "STORE_SEND_WRITE_FAILED"; const char *STORE_WRITE_FAILED_STRING = "STORE_WRITE_FAILED"; const char *STORE_SEND_READ_FAILED_STRING = "STORE_SEND_READ_FAILED"; @@ -82,173 +80,185 @@ const char *RF_LOST_STRING = "RF_LOST"; const char *BIT_LOCK_STRING = "BIT_LOCK"; const char *BIT_LOCK_LOST_STRING = "BIT_LOCK_LOST"; const char *FRAME_PROCESSING_FAILED_STRING = "FRAME_PROCESSING_FAILED"; -const char *TEST_EVENT_SERVICE_1_STRING = "TEST_EVENT_SERVICE_1"; -const char *TEST2_STRING = "TEST2"; +const char *CLOCK_SET_STRING = "CLOCK_SET"; +const char *CLOCK_SET_FAILURE_STRING = "CLOCK_SET_FAILURE"; +const char *TEST_STRING = "TEST"; +const char *CHANGE_OF_SETUP_PARAMETER_STRING = "CHANGE_OF_SETUP_PARAMETER"; +const char *MEMORY_READ_RPT_CRC_FAILURE_STRING = "MEMORY_READ_RPT_CRC_FAILURE"; +const char *ACK_FAILURE_STRING = "ACK_FAILURE"; +const char *EXE_FAILURE_STRING = "EXE_FAILURE"; +const char *CRC_FAILURE_EVENT_STRING = "CRC_FAILURE_EVENT"; -const char * translateEvents(Event event){ - switch((event&0xFFFF)){ - case 1000: - return GPS_STARTUP_FAILED_STRING; - case 1001: - return GPS_FIX_STRING; - case 1002: - return GPS_LOST_FIX_STRING; - case 2200: - return STORE_SEND_WRITE_FAILED_STRING; - case 2201: - return STORE_WRITE_FAILED_STRING; - case 2202: - return STORE_SEND_READ_FAILED_STRING; - case 2203: - return STORE_READ_FAILED_STRING; - case 2204: - return UNEXPECTED_MSG_STRING; - case 2205: - return STORING_FAILED_STRING; - case 2206: - return TM_DUMP_FAILED_STRING; - case 2207: - return STORE_INIT_FAILED_STRING; - case 2208: - return STORE_INIT_EMPTY_STRING; - case 2209: - return STORE_CONTENT_CORRUPTED_STRING; - case 2210: - return STORE_INITIALIZE_STRING; - case 2211: - return INIT_DONE_STRING; - case 2212: - return DUMP_FINISHED_STRING; - case 2213: - return DELETION_FINISHED_STRING; - case 2214: - return DELETION_FAILED_STRING; - case 2215: - return AUTO_CATALOGS_SENDING_FAILED_STRING; - case 2600: - return GET_DATA_FAILED_STRING; - case 2601: - return STORE_DATA_FAILED_STRING; - case 2800: - return DEVICE_BUILDING_COMMAND_FAILED_STRING; - case 2801: - return DEVICE_SENDING_COMMAND_FAILED_STRING; - case 2802: - return DEVICE_REQUESTING_REPLY_FAILED_STRING; - case 2803: - return DEVICE_READING_REPLY_FAILED_STRING; - case 2804: - return DEVICE_INTERPRETING_REPLY_FAILED_STRING; - case 2805: - return DEVICE_MISSED_REPLY_STRING; - case 2806: - return DEVICE_UNKNOWN_REPLY_STRING; - case 2807: - return DEVICE_UNREQUESTED_REPLY_STRING; - case 2808: - return INVALID_DEVICE_COMMAND_STRING; - case 2809: - return MONITORING_LIMIT_EXCEEDED_STRING; - case 2810: - return MONITORING_AMBIGUOUS_STRING; - case 4201: - return FUSE_CURRENT_HIGH_STRING; - case 4202: - return FUSE_WENT_OFF_STRING; - case 4204: - return POWER_ABOVE_HIGH_LIMIT_STRING; - case 4205: - return POWER_BELOW_LOW_LIMIT_STRING; - case 4300: - return SWITCH_WENT_OFF_STRING; - case 5000: - return HEATER_ON_STRING; - case 5001: - return HEATER_OFF_STRING; - case 5002: - return HEATER_TIMEOUT_STRING; - case 5003: - return HEATER_STAYED_ON_STRING; - case 5004: - return HEATER_STAYED_OFF_STRING; - case 5200: - return TEMP_SENSOR_HIGH_STRING; - case 5201: - return TEMP_SENSOR_LOW_STRING; - case 5202: - return TEMP_SENSOR_GRADIENT_STRING; - case 5901: - return COMPONENT_TEMP_LOW_STRING; - case 5902: - return COMPONENT_TEMP_HIGH_STRING; - case 5903: - return COMPONENT_TEMP_OOL_LOW_STRING; - case 5904: - return COMPONENT_TEMP_OOL_HIGH_STRING; - case 5905: - return TEMP_NOT_IN_OP_RANGE_STRING; - case 7101: - return FDIR_CHANGED_STATE_STRING; - case 7102: - return FDIR_STARTS_RECOVERY_STRING; - case 7103: - return FDIR_TURNS_OFF_DEVICE_STRING; - case 7201: - return MONITOR_CHANGED_STATE_STRING; - case 7202: - return VALUE_BELOW_LOW_LIMIT_STRING; - case 7203: - return VALUE_ABOVE_HIGH_LIMIT_STRING; - case 7204: - return VALUE_OUT_OF_RANGE_STRING; - case 7301: - return SWITCHING_TM_FAILED_STRING; - case 7400: - return CHANGING_MODE_STRING; - case 7401: - return MODE_INFO_STRING; - case 7402: - return FALLBACK_FAILED_STRING; - case 7403: - return MODE_TRANSITION_FAILED_STRING; - case 7404: - return CANT_KEEP_MODE_STRING; - case 7405: - return OBJECT_IN_INVALID_MODE_STRING; - case 7406: - return FORCING_MODE_STRING; - case 7407: - return MODE_CMD_REJECTED_STRING; - case 7506: - return HEALTH_INFO_STRING; - case 7507: - return CHILD_CHANGED_HEALTH_STRING; - case 7508: - return CHILD_PROBLEMS_STRING; - case 7509: - return OVERWRITING_HEALTH_STRING; - case 7510: - return TRYING_RECOVERY_STRING; - case 7511: - return RECOVERY_STEP_STRING; - case 7512: - return RECOVERY_DONE_STRING; - case 7900: - return RF_AVAILABLE_STRING; - case 7901: - return RF_LOST_STRING; - case 7902: - return BIT_LOCK_STRING; - case 7903: - return BIT_LOCK_LOST_STRING; - case 7905: - return FRAME_PROCESSING_FAILED_STRING; - case 8000: - return TEST_EVENT_SERVICE_1_STRING; - case 9100: - return TEST2_STRING; - default: - return "UNKNOWN_EVENT"; +const char * translateEvents(Event event) { + switch( (event & 0xffff) ) { + case(2200): + return STORE_SEND_WRITE_FAILED_STRING; + case(2201): + return STORE_WRITE_FAILED_STRING; + case(2202): + return STORE_SEND_READ_FAILED_STRING; + case(2203): + return STORE_READ_FAILED_STRING; + case(2204): + return UNEXPECTED_MSG_STRING; + case(2205): + return STORING_FAILED_STRING; + case(2206): + return TM_DUMP_FAILED_STRING; + case(2207): + return STORE_INIT_FAILED_STRING; + case(2208): + return STORE_INIT_EMPTY_STRING; + case(2209): + return STORE_CONTENT_CORRUPTED_STRING; + case(2210): + return STORE_INITIALIZE_STRING; + case(2211): + return INIT_DONE_STRING; + case(2212): + return DUMP_FINISHED_STRING; + case(2213): + return DELETION_FINISHED_STRING; + case(2214): + return DELETION_FAILED_STRING; + case(2215): + return AUTO_CATALOGS_SENDING_FAILED_STRING; + case(2600): + return GET_DATA_FAILED_STRING; + case(2601): + return STORE_DATA_FAILED_STRING; + case(2800): + return DEVICE_BUILDING_COMMAND_FAILED_STRING; + case(2801): + return DEVICE_SENDING_COMMAND_FAILED_STRING; + case(2802): + return DEVICE_REQUESTING_REPLY_FAILED_STRING; + case(2803): + return DEVICE_READING_REPLY_FAILED_STRING; + case(2804): + return DEVICE_INTERPRETING_REPLY_FAILED_STRING; + case(2805): + return DEVICE_MISSED_REPLY_STRING; + case(2806): + return DEVICE_UNKNOWN_REPLY_STRING; + case(2807): + return DEVICE_UNREQUESTED_REPLY_STRING; + case(2808): + return INVALID_DEVICE_COMMAND_STRING; + case(2809): + return MONITORING_LIMIT_EXCEEDED_STRING; + case(2810): + return MONITORING_AMBIGUOUS_STRING; + case(4201): + return FUSE_CURRENT_HIGH_STRING; + case(4202): + return FUSE_WENT_OFF_STRING; + case(4204): + return POWER_ABOVE_HIGH_LIMIT_STRING; + case(4205): + return POWER_BELOW_LOW_LIMIT_STRING; + case(4300): + return SWITCH_WENT_OFF_STRING; + case(5000): + return HEATER_ON_STRING; + case(5001): + return HEATER_OFF_STRING; + case(5002): + return HEATER_TIMEOUT_STRING; + case(5003): + return HEATER_STAYED_ON_STRING; + case(5004): + return HEATER_STAYED_OFF_STRING; + case(5200): + return TEMP_SENSOR_HIGH_STRING; + case(5201): + return TEMP_SENSOR_LOW_STRING; + case(5202): + return TEMP_SENSOR_GRADIENT_STRING; + case(5901): + return COMPONENT_TEMP_LOW_STRING; + case(5902): + return COMPONENT_TEMP_HIGH_STRING; + case(5903): + return COMPONENT_TEMP_OOL_LOW_STRING; + case(5904): + return COMPONENT_TEMP_OOL_HIGH_STRING; + case(5905): + return TEMP_NOT_IN_OP_RANGE_STRING; + case(7101): + return FDIR_CHANGED_STATE_STRING; + case(7102): + return FDIR_STARTS_RECOVERY_STRING; + case(7103): + return FDIR_TURNS_OFF_DEVICE_STRING; + case(7201): + return MONITOR_CHANGED_STATE_STRING; + case(7202): + return VALUE_BELOW_LOW_LIMIT_STRING; + case(7203): + return VALUE_ABOVE_HIGH_LIMIT_STRING; + case(7204): + return VALUE_OUT_OF_RANGE_STRING; + case(7301): + return SWITCHING_TM_FAILED_STRING; + case(7400): + return CHANGING_MODE_STRING; + case(7401): + return MODE_INFO_STRING; + case(7402): + return FALLBACK_FAILED_STRING; + case(7403): + return MODE_TRANSITION_FAILED_STRING; + case(7404): + return CANT_KEEP_MODE_STRING; + case(7405): + return OBJECT_IN_INVALID_MODE_STRING; + case(7406): + return FORCING_MODE_STRING; + case(7407): + return MODE_CMD_REJECTED_STRING; + case(7506): + return HEALTH_INFO_STRING; + case(7507): + return CHILD_CHANGED_HEALTH_STRING; + case(7508): + return CHILD_PROBLEMS_STRING; + case(7509): + return OVERWRITING_HEALTH_STRING; + case(7510): + return TRYING_RECOVERY_STRING; + case(7511): + return RECOVERY_STEP_STRING; + case(7512): + return RECOVERY_DONE_STRING; + case(7900): + return RF_AVAILABLE_STRING; + case(7901): + return RF_LOST_STRING; + case(7902): + return BIT_LOCK_STRING; + case(7903): + return BIT_LOCK_LOST_STRING; + case(7905): + return FRAME_PROCESSING_FAILED_STRING; + case(8900): + return CLOCK_SET_STRING; + case(8901): + return CLOCK_SET_FAILURE_STRING; + case(9700): + return TEST_STRING; + case(10600): + return CHANGE_OF_SETUP_PARAMETER_STRING; + case(11101): + return MEMORY_READ_RPT_CRC_FAILURE_STRING; + case(11102): + return ACK_FAILURE_STRING; + case(11103): + return EXE_FAILURE_STRING; + case(11104): + return CRC_FAILURE_EVENT_STRING; + default: + return "UNKNOWN_EVENT"; } return 0; } diff --git a/fsfwconfig/events/translateEvents.h b/fsfwconfig/events/translateEvents.h index e7a88326..9034dcf2 100644 --- a/fsfwconfig/events/translateEvents.h +++ b/fsfwconfig/events/translateEvents.h @@ -1,10 +1,3 @@ -/* - * translateEvent.h - * - * Created on: 28 May 2019 - * Author: Robin - */ - #ifndef FSFWCONFIG_EVENTS_TRANSLATEEVENTS_H_ #define FSFWCONFIG_EVENTS_TRANSLATEEVENTS_H_ @@ -12,5 +5,4 @@ const char * translateEvents(Event event); - #endif /* FSFWCONFIG_EVENTS_TRANSLATEEVENTS_H_ */ diff --git a/generators/events/event_parser.py b/generators/events/event_parser.py new file mode 100644 index 00000000..bed2c6fd --- /dev/null +++ b/generators/events/event_parser.py @@ -0,0 +1,100 @@ +#! /usr/bin/python3 +""" +@file event_parser.py +@brief Part of the Mission Information Base Exporter for the SOURCE project by KSat. +@details +Event exporter. + +To use MySQLdb, run pip install mysqlclient or install in IDE. +On Windows, Build Tools installation might be necessary +@data 21.11.2019 +""" +import datetime + +from modgen.events.event_parser import handle_csv_export, handle_cpp_export, SubsystemDefinitionParser, EventParser +from modgen.parserbase.file_list_parser import FileListParser +from modgen.utility.printer import PrettyPrinter +from modgen.utility.file_management import copy_file, move_file + +from definitions import BspType + +DATE_TODAY = datetime.datetime.now() +DATE_STRING_FULL = DATE_TODAY.strftime("%Y-%m-%d %H:%M:%S") + +GENERATE_CPP = True +GENERATE_CPP_H = True +GENERATE_CSV = True +COPY_CPP_FILE = True +COPY_CPP_H_FILE = True +MOVE_CSV_FILE = True + +PARSE_HOST_BSP = True + +CSV_FILENAME = "mib_events.csv" +CSV_MOVE_DESTINATION = "../" + +CPP_FILENAME = "translateEvents.cpp" +CPP_H_FILENAME = "translateEvents.h" + +BSP_SELECT = BspType.BSP_Q7S + +BSP_DIR_NAME = BSP_SELECT.value + +if BSP_SELECT == BspType.BSP_Q7S or BSP_SELECT == BspType.BSP_LINUX_BOARD: + FSFW_CONFIG_ROOT = f"../../fsfwconfig" + +else: + FSFW_CONFIG_ROOT = f"../../{BSP_DIR_NAME}/fsfwconfig" + +CPP_COPY_DESTINATION = f"{FSFW_CONFIG_ROOT}/events/" + +FILE_SEPARATOR = ";" +SUBSYSTEM_DEFINITION_DESTINATIONS = [ + f"{FSFW_CONFIG_ROOT}/events/subsystemIdRanges.h", + "../../fsfw/events/fwSubsystemIdRanges.h", + f"../../common/config/commonSubsystemIds.h" +] +HEADER_DEFINITION_DESTINATIONS = ["../../mission/", "../../fsfw/", f"{FSFW_CONFIG_ROOT}", "../../test/"] + + +def main(): + print("EventParser: Parsing events: ") + event_list = parse_events() + if GENERATE_CSV: + handle_csv_export(file_name=CSV_FILENAME, event_list=event_list, file_separator=FILE_SEPARATOR) + if MOVE_CSV_FILE: + move_file(file_name=CSV_FILENAME, destination=CSV_MOVE_DESTINATION) + if GENERATE_CPP: + handle_cpp_export( + event_list=event_list, date_string=DATE_STRING_FULL, file_name=CPP_FILENAME, + generate_header=GENERATE_CPP_H, header_file_name=CPP_H_FILENAME + ) + if COPY_CPP_FILE: + print(f"EventParser: Copying file to {CPP_COPY_DESTINATION}") + copy_file(CPP_FILENAME, CPP_COPY_DESTINATION) + copy_file(CPP_H_FILENAME, CPP_COPY_DESTINATION) + print("") + + +def parse_events(): + subsystem_parser = SubsystemDefinitionParser(SUBSYSTEM_DEFINITION_DESTINATIONS) + subsystem_table = subsystem_parser.parse_files() + print(f"Found {len(subsystem_table)} subsystem definitions.") + PrettyPrinter.pprint(subsystem_table) + event_header_parser = FileListParser(HEADER_DEFINITION_DESTINATIONS) + event_headers = event_header_parser.parse_header_files( + True, "Parsing event header file list:\n", True + ) + # PrettyPrinter.pprint(event_headers) + # myEventList = parseHeaderFiles(subsystem_table, event_headers) + event_parser = EventParser(event_headers, subsystem_table) + event_parser.set_moving_window_mode(moving_window_size=7) + event_table = event_parser.parse_files() + list_items = sorted(event_table.items()) + print(f"Found {len(list_items)} entries:") + PrettyPrinter.pprint(list_items) + return list_items + + +if __name__ == "__main__": + main() diff --git a/generators/events/translateEvents.cpp b/generators/events/translateEvents.cpp new file mode 100644 index 00000000..62ee369c --- /dev/null +++ b/generators/events/translateEvents.cpp @@ -0,0 +1,264 @@ +/** + * @brief Auto-generated event translation file. Contains 83 translations. + * @details + * Generated on: 2021-05-17 19:38:14 + */ +#include "translateEvents.h" + +const char *STORE_SEND_WRITE_FAILED_STRING = "STORE_SEND_WRITE_FAILED"; +const char *STORE_WRITE_FAILED_STRING = "STORE_WRITE_FAILED"; +const char *STORE_SEND_READ_FAILED_STRING = "STORE_SEND_READ_FAILED"; +const char *STORE_READ_FAILED_STRING = "STORE_READ_FAILED"; +const char *UNEXPECTED_MSG_STRING = "UNEXPECTED_MSG"; +const char *STORING_FAILED_STRING = "STORING_FAILED"; +const char *TM_DUMP_FAILED_STRING = "TM_DUMP_FAILED"; +const char *STORE_INIT_FAILED_STRING = "STORE_INIT_FAILED"; +const char *STORE_INIT_EMPTY_STRING = "STORE_INIT_EMPTY"; +const char *STORE_CONTENT_CORRUPTED_STRING = "STORE_CONTENT_CORRUPTED"; +const char *STORE_INITIALIZE_STRING = "STORE_INITIALIZE"; +const char *INIT_DONE_STRING = "INIT_DONE"; +const char *DUMP_FINISHED_STRING = "DUMP_FINISHED"; +const char *DELETION_FINISHED_STRING = "DELETION_FINISHED"; +const char *DELETION_FAILED_STRING = "DELETION_FAILED"; +const char *AUTO_CATALOGS_SENDING_FAILED_STRING = "AUTO_CATALOGS_SENDING_FAILED"; +const char *GET_DATA_FAILED_STRING = "GET_DATA_FAILED"; +const char *STORE_DATA_FAILED_STRING = "STORE_DATA_FAILED"; +const char *DEVICE_BUILDING_COMMAND_FAILED_STRING = "DEVICE_BUILDING_COMMAND_FAILED"; +const char *DEVICE_SENDING_COMMAND_FAILED_STRING = "DEVICE_SENDING_COMMAND_FAILED"; +const char *DEVICE_REQUESTING_REPLY_FAILED_STRING = "DEVICE_REQUESTING_REPLY_FAILED"; +const char *DEVICE_READING_REPLY_FAILED_STRING = "DEVICE_READING_REPLY_FAILED"; +const char *DEVICE_INTERPRETING_REPLY_FAILED_STRING = "DEVICE_INTERPRETING_REPLY_FAILED"; +const char *DEVICE_MISSED_REPLY_STRING = "DEVICE_MISSED_REPLY"; +const char *DEVICE_UNKNOWN_REPLY_STRING = "DEVICE_UNKNOWN_REPLY"; +const char *DEVICE_UNREQUESTED_REPLY_STRING = "DEVICE_UNREQUESTED_REPLY"; +const char *INVALID_DEVICE_COMMAND_STRING = "INVALID_DEVICE_COMMAND"; +const char *MONITORING_LIMIT_EXCEEDED_STRING = "MONITORING_LIMIT_EXCEEDED"; +const char *MONITORING_AMBIGUOUS_STRING = "MONITORING_AMBIGUOUS"; +const char *FUSE_CURRENT_HIGH_STRING = "FUSE_CURRENT_HIGH"; +const char *FUSE_WENT_OFF_STRING = "FUSE_WENT_OFF"; +const char *POWER_ABOVE_HIGH_LIMIT_STRING = "POWER_ABOVE_HIGH_LIMIT"; +const char *POWER_BELOW_LOW_LIMIT_STRING = "POWER_BELOW_LOW_LIMIT"; +const char *SWITCH_WENT_OFF_STRING = "SWITCH_WENT_OFF"; +const char *HEATER_ON_STRING = "HEATER_ON"; +const char *HEATER_OFF_STRING = "HEATER_OFF"; +const char *HEATER_TIMEOUT_STRING = "HEATER_TIMEOUT"; +const char *HEATER_STAYED_ON_STRING = "HEATER_STAYED_ON"; +const char *HEATER_STAYED_OFF_STRING = "HEATER_STAYED_OFF"; +const char *TEMP_SENSOR_HIGH_STRING = "TEMP_SENSOR_HIGH"; +const char *TEMP_SENSOR_LOW_STRING = "TEMP_SENSOR_LOW"; +const char *TEMP_SENSOR_GRADIENT_STRING = "TEMP_SENSOR_GRADIENT"; +const char *COMPONENT_TEMP_LOW_STRING = "COMPONENT_TEMP_LOW"; +const char *COMPONENT_TEMP_HIGH_STRING = "COMPONENT_TEMP_HIGH"; +const char *COMPONENT_TEMP_OOL_LOW_STRING = "COMPONENT_TEMP_OOL_LOW"; +const char *COMPONENT_TEMP_OOL_HIGH_STRING = "COMPONENT_TEMP_OOL_HIGH"; +const char *TEMP_NOT_IN_OP_RANGE_STRING = "TEMP_NOT_IN_OP_RANGE"; +const char *FDIR_CHANGED_STATE_STRING = "FDIR_CHANGED_STATE"; +const char *FDIR_STARTS_RECOVERY_STRING = "FDIR_STARTS_RECOVERY"; +const char *FDIR_TURNS_OFF_DEVICE_STRING = "FDIR_TURNS_OFF_DEVICE"; +const char *MONITOR_CHANGED_STATE_STRING = "MONITOR_CHANGED_STATE"; +const char *VALUE_BELOW_LOW_LIMIT_STRING = "VALUE_BELOW_LOW_LIMIT"; +const char *VALUE_ABOVE_HIGH_LIMIT_STRING = "VALUE_ABOVE_HIGH_LIMIT"; +const char *VALUE_OUT_OF_RANGE_STRING = "VALUE_OUT_OF_RANGE"; +const char *SWITCHING_TM_FAILED_STRING = "SWITCHING_TM_FAILED"; +const char *CHANGING_MODE_STRING = "CHANGING_MODE"; +const char *MODE_INFO_STRING = "MODE_INFO"; +const char *FALLBACK_FAILED_STRING = "FALLBACK_FAILED"; +const char *MODE_TRANSITION_FAILED_STRING = "MODE_TRANSITION_FAILED"; +const char *CANT_KEEP_MODE_STRING = "CANT_KEEP_MODE"; +const char *OBJECT_IN_INVALID_MODE_STRING = "OBJECT_IN_INVALID_MODE"; +const char *FORCING_MODE_STRING = "FORCING_MODE"; +const char *MODE_CMD_REJECTED_STRING = "MODE_CMD_REJECTED"; +const char *HEALTH_INFO_STRING = "HEALTH_INFO"; +const char *CHILD_CHANGED_HEALTH_STRING = "CHILD_CHANGED_HEALTH"; +const char *CHILD_PROBLEMS_STRING = "CHILD_PROBLEMS"; +const char *OVERWRITING_HEALTH_STRING = "OVERWRITING_HEALTH"; +const char *TRYING_RECOVERY_STRING = "TRYING_RECOVERY"; +const char *RECOVERY_STEP_STRING = "RECOVERY_STEP"; +const char *RECOVERY_DONE_STRING = "RECOVERY_DONE"; +const char *RF_AVAILABLE_STRING = "RF_AVAILABLE"; +const char *RF_LOST_STRING = "RF_LOST"; +const char *BIT_LOCK_STRING = "BIT_LOCK"; +const char *BIT_LOCK_LOST_STRING = "BIT_LOCK_LOST"; +const char *FRAME_PROCESSING_FAILED_STRING = "FRAME_PROCESSING_FAILED"; +const char *CLOCK_SET_STRING = "CLOCK_SET"; +const char *CLOCK_SET_FAILURE_STRING = "CLOCK_SET_FAILURE"; +const char *TEST_STRING = "TEST"; +const char *CHANGE_OF_SETUP_PARAMETER_STRING = "CHANGE_OF_SETUP_PARAMETER"; +const char *MEMORY_READ_RPT_CRC_FAILURE_STRING = "MEMORY_READ_RPT_CRC_FAILURE"; +const char *ACK_FAILURE_STRING = "ACK_FAILURE"; +const char *EXE_FAILURE_STRING = "EXE_FAILURE"; +const char *CRC_FAILURE_EVENT_STRING = "CRC_FAILURE_EVENT"; + +const char * translateEvents(Event event) { + switch( (event & 0xffff) ) { + case(2200): + return STORE_SEND_WRITE_FAILED_STRING; + case(2201): + return STORE_WRITE_FAILED_STRING; + case(2202): + return STORE_SEND_READ_FAILED_STRING; + case(2203): + return STORE_READ_FAILED_STRING; + case(2204): + return UNEXPECTED_MSG_STRING; + case(2205): + return STORING_FAILED_STRING; + case(2206): + return TM_DUMP_FAILED_STRING; + case(2207): + return STORE_INIT_FAILED_STRING; + case(2208): + return STORE_INIT_EMPTY_STRING; + case(2209): + return STORE_CONTENT_CORRUPTED_STRING; + case(2210): + return STORE_INITIALIZE_STRING; + case(2211): + return INIT_DONE_STRING; + case(2212): + return DUMP_FINISHED_STRING; + case(2213): + return DELETION_FINISHED_STRING; + case(2214): + return DELETION_FAILED_STRING; + case(2215): + return AUTO_CATALOGS_SENDING_FAILED_STRING; + case(2600): + return GET_DATA_FAILED_STRING; + case(2601): + return STORE_DATA_FAILED_STRING; + case(2800): + return DEVICE_BUILDING_COMMAND_FAILED_STRING; + case(2801): + return DEVICE_SENDING_COMMAND_FAILED_STRING; + case(2802): + return DEVICE_REQUESTING_REPLY_FAILED_STRING; + case(2803): + return DEVICE_READING_REPLY_FAILED_STRING; + case(2804): + return DEVICE_INTERPRETING_REPLY_FAILED_STRING; + case(2805): + return DEVICE_MISSED_REPLY_STRING; + case(2806): + return DEVICE_UNKNOWN_REPLY_STRING; + case(2807): + return DEVICE_UNREQUESTED_REPLY_STRING; + case(2808): + return INVALID_DEVICE_COMMAND_STRING; + case(2809): + return MONITORING_LIMIT_EXCEEDED_STRING; + case(2810): + return MONITORING_AMBIGUOUS_STRING; + case(4201): + return FUSE_CURRENT_HIGH_STRING; + case(4202): + return FUSE_WENT_OFF_STRING; + case(4204): + return POWER_ABOVE_HIGH_LIMIT_STRING; + case(4205): + return POWER_BELOW_LOW_LIMIT_STRING; + case(4300): + return SWITCH_WENT_OFF_STRING; + case(5000): + return HEATER_ON_STRING; + case(5001): + return HEATER_OFF_STRING; + case(5002): + return HEATER_TIMEOUT_STRING; + case(5003): + return HEATER_STAYED_ON_STRING; + case(5004): + return HEATER_STAYED_OFF_STRING; + case(5200): + return TEMP_SENSOR_HIGH_STRING; + case(5201): + return TEMP_SENSOR_LOW_STRING; + case(5202): + return TEMP_SENSOR_GRADIENT_STRING; + case(5901): + return COMPONENT_TEMP_LOW_STRING; + case(5902): + return COMPONENT_TEMP_HIGH_STRING; + case(5903): + return COMPONENT_TEMP_OOL_LOW_STRING; + case(5904): + return COMPONENT_TEMP_OOL_HIGH_STRING; + case(5905): + return TEMP_NOT_IN_OP_RANGE_STRING; + case(7101): + return FDIR_CHANGED_STATE_STRING; + case(7102): + return FDIR_STARTS_RECOVERY_STRING; + case(7103): + return FDIR_TURNS_OFF_DEVICE_STRING; + case(7201): + return MONITOR_CHANGED_STATE_STRING; + case(7202): + return VALUE_BELOW_LOW_LIMIT_STRING; + case(7203): + return VALUE_ABOVE_HIGH_LIMIT_STRING; + case(7204): + return VALUE_OUT_OF_RANGE_STRING; + case(7301): + return SWITCHING_TM_FAILED_STRING; + case(7400): + return CHANGING_MODE_STRING; + case(7401): + return MODE_INFO_STRING; + case(7402): + return FALLBACK_FAILED_STRING; + case(7403): + return MODE_TRANSITION_FAILED_STRING; + case(7404): + return CANT_KEEP_MODE_STRING; + case(7405): + return OBJECT_IN_INVALID_MODE_STRING; + case(7406): + return FORCING_MODE_STRING; + case(7407): + return MODE_CMD_REJECTED_STRING; + case(7506): + return HEALTH_INFO_STRING; + case(7507): + return CHILD_CHANGED_HEALTH_STRING; + case(7508): + return CHILD_PROBLEMS_STRING; + case(7509): + return OVERWRITING_HEALTH_STRING; + case(7510): + return TRYING_RECOVERY_STRING; + case(7511): + return RECOVERY_STEP_STRING; + case(7512): + return RECOVERY_DONE_STRING; + case(7900): + return RF_AVAILABLE_STRING; + case(7901): + return RF_LOST_STRING; + case(7902): + return BIT_LOCK_STRING; + case(7903): + return BIT_LOCK_LOST_STRING; + case(7905): + return FRAME_PROCESSING_FAILED_STRING; + case(8900): + return CLOCK_SET_STRING; + case(8901): + return CLOCK_SET_FAILURE_STRING; + case(9700): + return TEST_STRING; + case(10600): + return CHANGE_OF_SETUP_PARAMETER_STRING; + case(11101): + return MEMORY_READ_RPT_CRC_FAILURE_STRING; + case(11102): + return ACK_FAILURE_STRING; + case(11103): + return EXE_FAILURE_STRING; + case(11104): + return CRC_FAILURE_EVENT_STRING; + default: + return "UNKNOWN_EVENT"; + } + return 0; +} diff --git a/generators/events/translateEvents.h b/generators/events/translateEvents.h new file mode 100644 index 00000000..9034dcf2 --- /dev/null +++ b/generators/events/translateEvents.h @@ -0,0 +1,8 @@ +#ifndef FSFWCONFIG_EVENTS_TRANSLATEEVENTS_H_ +#define FSFWCONFIG_EVENTS_TRANSLATEEVENTS_H_ + +#include + +const char * translateEvents(Event event); + +#endif /* FSFWCONFIG_EVENTS_TRANSLATEEVENTS_H_ */ diff --git a/generators/mib_events.csv b/generators/mib_events.csv new file mode 100644 index 00000000..81459869 --- /dev/null +++ b/generators/mib_events.csv @@ -0,0 +1,83 @@ +2200;STORE_SEND_WRITE_FAILED;LOW; ;../../fsfw/tmstorage/TmStoreBackendIF.h +2201;STORE_WRITE_FAILED;LOW; ;../../fsfw/tmstorage/TmStoreBackendIF.h +2202;STORE_SEND_READ_FAILED;LOW; ;../../fsfw/tmstorage/TmStoreBackendIF.h +2203;STORE_READ_FAILED;LOW; ;../../fsfw/tmstorage/TmStoreBackendIF.h +2204;UNEXPECTED_MSG;LOW; ;../../fsfw/tmstorage/TmStoreBackendIF.h +2205;STORING_FAILED;LOW; ;../../fsfw/tmstorage/TmStoreBackendIF.h +2206;TM_DUMP_FAILED;LOW; ;../../fsfw/tmstorage/TmStoreBackendIF.h +2207;STORE_INIT_FAILED;LOW; ;../../fsfw/tmstorage/TmStoreBackendIF.h +2208;STORE_INIT_EMPTY;INFO; ;../../fsfw/tmstorage/TmStoreBackendIF.h +2209;STORE_CONTENT_CORRUPTED;LOW; ;../../fsfw/tmstorage/TmStoreBackendIF.h +2210;STORE_INITIALIZE;INFO; ;../../fsfw/tmstorage/TmStoreBackendIF.h +2211;INIT_DONE;INFO; ;../../fsfw/tmstorage/TmStoreBackendIF.h +2212;DUMP_FINISHED;INFO; ;../../fsfw/tmstorage/TmStoreBackendIF.h +2213;DELETION_FINISHED;INFO; ;../../fsfw/tmstorage/TmStoreBackendIF.h +2214;DELETION_FAILED;LOW; ;../../fsfw/tmstorage/TmStoreBackendIF.h +2215;AUTO_CATALOGS_SENDING_FAILED;INFO; ;../../fsfw/tmstorage/TmStoreBackendIF.h +2600;GET_DATA_FAILED;LOW; ;../../fsfw/storagemanager/StorageManagerIF.h +2601;STORE_DATA_FAILED;LOW; ;../../fsfw/storagemanager/StorageManagerIF.h +2800;DEVICE_BUILDING_COMMAND_FAILED;LOW; ;../../fsfw/devicehandlers/DeviceHandlerIF.h +2801;DEVICE_SENDING_COMMAND_FAILED;LOW; ;../../fsfw/devicehandlers/DeviceHandlerIF.h +2802;DEVICE_REQUESTING_REPLY_FAILED;LOW; ;../../fsfw/devicehandlers/DeviceHandlerIF.h +2803;DEVICE_READING_REPLY_FAILED;LOW; ;../../fsfw/devicehandlers/DeviceHandlerIF.h +2804;DEVICE_INTERPRETING_REPLY_FAILED;LOW; ;../../fsfw/devicehandlers/DeviceHandlerIF.h +2805;DEVICE_MISSED_REPLY;LOW; ;../../fsfw/devicehandlers/DeviceHandlerIF.h +2806;DEVICE_UNKNOWN_REPLY;LOW; ;../../fsfw/devicehandlers/DeviceHandlerIF.h +2807;DEVICE_UNREQUESTED_REPLY;LOW; ;../../fsfw/devicehandlers/DeviceHandlerIF.h +2808;INVALID_DEVICE_COMMAND;LOW; ;../../fsfw/devicehandlers/DeviceHandlerIF.h +2809;MONITORING_LIMIT_EXCEEDED;LOW; ;../../fsfw/devicehandlers/DeviceHandlerIF.h +2810;MONITORING_AMBIGUOUS;HIGH; ;../../fsfw/devicehandlers/DeviceHandlerIF.h +4201;FUSE_CURRENT_HIGH;LOW; ;../../fsfw/power/Fuse.h +4202;FUSE_WENT_OFF;LOW; ;../../fsfw/power/Fuse.h +4204;POWER_ABOVE_HIGH_LIMIT;LOW; ;../../fsfw/power/Fuse.h +4205;POWER_BELOW_LOW_LIMIT;LOW; ;../../fsfw/power/Fuse.h +4300;SWITCH_WENT_OFF;LOW; ;../../fsfw/power/PowerSwitchIF.h +5000;HEATER_ON;INFO; ;../../fsfw/thermal/Heater.h +5001;HEATER_OFF;INFO; ;../../fsfw/thermal/Heater.h +5002;HEATER_TIMEOUT;LOW; ;../../fsfw/thermal/Heater.h +5003;HEATER_STAYED_ON;LOW; ;../../fsfw/thermal/Heater.h +5004;HEATER_STAYED_OFF;LOW; ;../../fsfw/thermal/Heater.h +5200;TEMP_SENSOR_HIGH;LOW; ;../../fsfw/thermal/AbstractTemperatureSensor.h +5201;TEMP_SENSOR_LOW;LOW; ;../../fsfw/thermal/AbstractTemperatureSensor.h +5202;TEMP_SENSOR_GRADIENT;LOW; ;../../fsfw/thermal/AbstractTemperatureSensor.h +5901;COMPONENT_TEMP_LOW;LOW; ;../../fsfw/thermal/ThermalComponentIF.h +5902;COMPONENT_TEMP_HIGH;LOW; ;../../fsfw/thermal/ThermalComponentIF.h +5903;COMPONENT_TEMP_OOL_LOW;LOW; ;../../fsfw/thermal/ThermalComponentIF.h +5904;COMPONENT_TEMP_OOL_HIGH;LOW; ;../../fsfw/thermal/ThermalComponentIF.h +5905;TEMP_NOT_IN_OP_RANGE;LOW; ;../../fsfw/thermal/ThermalComponentIF.h +7101;FDIR_CHANGED_STATE;INFO; ;../../fsfw/fdir/FailureIsolationBase.h +7102;FDIR_STARTS_RECOVERY;MEDIUM; ;../../fsfw/fdir/FailureIsolationBase.h +7103;FDIR_TURNS_OFF_DEVICE;MEDIUM; ;../../fsfw/fdir/FailureIsolationBase.h +7201;MONITOR_CHANGED_STATE;LOW; ;../../fsfw/monitoring/MonitoringIF.h +7202;VALUE_BELOW_LOW_LIMIT;LOW; ;../../fsfw/monitoring/MonitoringIF.h +7203;VALUE_ABOVE_HIGH_LIMIT;LOW; ;../../fsfw/monitoring/MonitoringIF.h +7204;VALUE_OUT_OF_RANGE;LOW; ;../../fsfw/monitoring/MonitoringIF.h +7301;SWITCHING_TM_FAILED;LOW; ;../../fsfw/datapool/HkSwitchHelper.h +7400;CHANGING_MODE;INFO; ;../../fsfw/modes/HasModesIF.h +7401;MODE_INFO;INFO; ;../../fsfw/modes/HasModesIF.h +7402;FALLBACK_FAILED;HIGH; ;../../fsfw/modes/HasModesIF.h +7403;MODE_TRANSITION_FAILED;LOW; ;../../fsfw/modes/HasModesIF.h +7404;CANT_KEEP_MODE;HIGH; ;../../fsfw/modes/HasModesIF.h +7405;OBJECT_IN_INVALID_MODE;LOW; ;../../fsfw/modes/HasModesIF.h +7406;FORCING_MODE;MEDIUM; ;../../fsfw/modes/HasModesIF.h +7407;MODE_CMD_REJECTED;LOW; ;../../fsfw/modes/HasModesIF.h +7506;HEALTH_INFO;INFO; ;../../fsfw/health/HasHealthIF.h +7507;CHILD_CHANGED_HEALTH;INFO; ;../../fsfw/health/HasHealthIF.h +7508;CHILD_PROBLEMS;LOW; ;../../fsfw/health/HasHealthIF.h +7509;OVERWRITING_HEALTH;LOW; ;../../fsfw/health/HasHealthIF.h +7510;TRYING_RECOVERY;MEDIUM; ;../../fsfw/health/HasHealthIF.h +7511;RECOVERY_STEP;MEDIUM; ;../../fsfw/health/HasHealthIF.h +7512;RECOVERY_DONE;MEDIUM; ;../../fsfw/health/HasHealthIF.h +7900;RF_AVAILABLE;INFO; ;../../fsfw/datalinklayer/DataLinkLayer.h +7901;RF_LOST;INFO; ;../../fsfw/datalinklayer/DataLinkLayer.h +7902;BIT_LOCK;INFO; ;../../fsfw/datalinklayer/DataLinkLayer.h +7903;BIT_LOCK_LOST;INFO; ;../../fsfw/datalinklayer/DataLinkLayer.h +7905;FRAME_PROCESSING_FAILED;LOW; ;../../fsfw/datalinklayer/DataLinkLayer.h +8900;CLOCK_SET;INFO; ;../../fsfw/pus/Service9TimeManagement.h +8901;CLOCK_SET_FAILURE;LOW; ;../../fsfw/pus/Service9TimeManagement.h +9700;TEST;INFO; ;../../fsfw/pus/Service17Test.h +10600;CHANGE_OF_SETUP_PARAMETER;LOW; ;../../mission/devices/MGMHandlerLIS3MDL.h +11101;MEMORY_READ_RPT_CRC_FAILURE;LOW; ;../../mission/devices/PlocHandler.h +11102;ACK_FAILURE;LOW; ;../../mission/devices/PlocHandler.h +11103;EXE_FAILURE;LOW; ;../../mission/devices/PlocHandler.h +11104;CRC_FAILURE_EVENT;LOW; ;../../mission/devices/PlocHandler.h diff --git a/generators/modgen b/generators/modgen index 236aaf71..8016ac97 160000 --- a/generators/modgen +++ b/generators/modgen @@ -1 +1 @@ -Subproject commit 236aaf71ea43d1e6e21e8bdbc4b72e24978ccf04 +Subproject commit 8016ac974530d3ee11f6af0b44f5c7df337c88a3 diff --git a/linux/devices/SusHandler.h b/linux/devices/SusHandler.h index c73cee97..2312d383 100644 --- a/linux/devices/SusHandler.h +++ b/linux/devices/SusHandler.h @@ -1,8 +1,8 @@ #ifndef MISSION_DEVICES_SUSHANDLER_H_ #define MISSION_DEVICES_SUSHANDLER_H_ +#include "devicedefinitions/SusDefinitions.h" #include -#include #include #include diff --git a/mission/devices/devicedefinitions/SusDefinitions.h b/linux/devices/devicedefinitions/SusDefinitions.h similarity index 96% rename from mission/devices/devicedefinitions/SusDefinitions.h rename to linux/devices/devicedefinitions/SusDefinitions.h index 18f33e0d..ba56ec07 100644 --- a/mission/devices/devicedefinitions/SusDefinitions.h +++ b/linux/devices/devicedefinitions/SusDefinitions.h @@ -1,6 +1,11 @@ #ifndef MISSION_DEVICES_DEVICEDEFINITIONS_SUS_H_ #define MISSION_DEVICES_DEVICEDEFINITIONS_SUS_H_ +#include +#include +#include + + namespace SUS { /** diff --git a/mission/devices/devicedefinitions/IMTQHandlerDefinitions.h b/mission/devices/devicedefinitions/IMTQHandlerDefinitions.h index 1cfdf933..76dd85c5 100644 --- a/mission/devices/devicedefinitions/IMTQHandlerDefinitions.h +++ b/mission/devices/devicedefinitions/IMTQHandlerDefinitions.h @@ -98,7 +98,7 @@ public: COIL_Y_CURRENT, this); lp_var_t coilZCurrentmA = lp_var_t(sid.objectId, COIL_Z_CURRENT, this); - /** All temperatures in [°C] */ + /** All temperatures in [�C] */ lp_var_t coilXTemperature = lp_var_t(sid.objectId, COIL_X_TEMPERATURE, this); lp_var_t coilYTemperature = lp_var_t(sid.objectId, @@ -182,9 +182,9 @@ private: /** * @brief Constructor * - * @param xDipole The dipole of the x coil in 10^-4*Am^2 - * @param yDipole The dipole of the y coil in 10^-4*Am^2 - * @param zDipole The dipole of the z coil in 10^-4*Am^2 + * @param xDipole The dipole of the x coil in 10 ^ -4 * Am^2 + * @param yDipole The dipole of the y coil in 10 ^ -4 * Am^2 + * @param zDipole The dipole of the z coil in 10 ^ -4 * Am^2 * @param duration The duration in milliseconds the dipole will be generated by the coils. * When set to 0, the dipole will be generated until a new dipole actuation * command is sent. diff --git a/mission/devices/devicedefinitions/PlocDefinitions.h b/mission/devices/devicedefinitions/PlocDefinitions.h index f5add451..5cc38d5a 100644 --- a/mission/devices/devicedefinitions/PlocDefinitions.h +++ b/mission/devices/devicedefinitions/PlocDefinitions.h @@ -53,7 +53,7 @@ namespace PLOC { * * @details The last two bytes of the packet data field contain a CRC calculated over the whole * space packet. This is the CRC-16-CCITT as specified in - * ECSS-E-ST-70-41C – Telemetry and telecommand packet utilization. + * ECSS-E-ST-70-41C Telemetry and telecommand packet utilization. */ class TcMemRead : public SpacePacket { public: @@ -107,7 +107,7 @@ namespace PLOC { * the PLOC. * @details The last two bytes of the packet data field contain a CRC calculated over the whole * space packet. This is the CRC-16-CCITT as specified in - * ECSS-E-ST-70-41C – Telemetry and telecommand packet utilization. + * ECSS-E-ST-70-41C Telemetry and telecommand packet utilization. */ class TcMemWrite : public SpacePacket { public: