update fsfwgen
This commit is contained in:
@ -1,23 +1,18 @@
|
||||
#! /usr/bin/python3
|
||||
"""
|
||||
@file event_parser.py
|
||||
@brief Part of the Mission Information Base Exporter for the SOURCE project by KSat.
|
||||
@details
|
||||
"""Part of the Mission Operation Database Exporter for the EVIE project.
|
||||
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
|
||||
import time
|
||||
|
||||
from fsfwgen.events.event_parser import handle_csv_export, handle_cpp_export, SubsystemDefinitionParser, EventParser
|
||||
from fsfwgen.events.event_parser import handle_csv_export, handle_cpp_export, \
|
||||
SubsystemDefinitionParser, EventParser
|
||||
from fsfwgen.parserbase.file_list_parser import FileListParser
|
||||
from fsfwgen.utility.printer import PrettyPrinter
|
||||
from fsfwgen.utility.file_management import copy_file, move_file
|
||||
from fsfwgen.core import get_console_logger
|
||||
from definitions import BspType, ROOT_DIR, OBSW_ROOT_DIR
|
||||
|
||||
from definitions import BspType
|
||||
|
||||
LOGGER = get_console_logger()
|
||||
DATE_TODAY = datetime.datetime.now()
|
||||
DATE_STRING_FULL = DATE_TODAY.strftime("%Y-%m-%d %H:%M:%S")
|
||||
|
||||
@ -30,56 +25,67 @@ MOVE_CSV_FILE = True
|
||||
|
||||
PARSE_HOST_BSP = True
|
||||
|
||||
CPP_FILENAME = "translateEvents.cpp"
|
||||
CPP_H_FILENAME = "translateEvents.h"
|
||||
CPP_FILENAME = f'{__package__}/translateEvents.cpp'
|
||||
CPP_H_FILENAME = f'{__package__}/translateEvents.h'
|
||||
|
||||
BSP_SELECT = BspType.BSP_Q7S
|
||||
|
||||
BSP_DIR_NAME = BSP_SELECT.value
|
||||
|
||||
CSV_FILENAME = f"{BSP_SELECT.value}_events.csv"
|
||||
CSV_MOVE_DESTINATION = "../"
|
||||
CSV_MOVE_DESTINATION = f'{ROOT_DIR}'
|
||||
|
||||
if BSP_SELECT == BspType.BSP_Q7S or BSP_SELECT == BspType.BSP_LINUX_BOARD:
|
||||
FSFW_CONFIG_ROOT = f"../../linux/fsfwconfig"
|
||||
FSFW_CONFIG_ROOT = f"{OBSW_ROOT_DIR}/linux/fsfwconfig"
|
||||
|
||||
else:
|
||||
FSFW_CONFIG_ROOT = f"../../{BSP_DIR_NAME}/fsfwconfig"
|
||||
FSFW_CONFIG_ROOT = f"{OBSW_ROOT_DIR}/{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"
|
||||
f"{OBSW_ROOT_DIR}/fsfw/src/fsfw/events/fwSubsystemIdRanges.h",
|
||||
f"{OBSW_ROOT_DIR}/common/config/commonSubsystemIds.h"
|
||||
]
|
||||
HEADER_DEFINITION_DESTINATIONS = [
|
||||
f"{OBSW_ROOT_DIR}/mission/", f"{OBSW_ROOT_DIR}/fsfw/", f"{FSFW_CONFIG_ROOT}",
|
||||
f"{OBSW_ROOT_DIR}/test/"
|
||||
]
|
||||
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:
|
||||
def parse_events(
|
||||
generate_csv: bool = True, generate_cpp: bool = True, print_events: bool = True
|
||||
):
|
||||
LOGGER.info("EventParser: Parsing events: ")
|
||||
# Small delay for clean printout
|
||||
time.sleep(0.01)
|
||||
event_list = generate_event_list()
|
||||
if print_events:
|
||||
PrettyPrinter.pprint(event_list)
|
||||
# Delay for clean printout
|
||||
time.sleep(0.1)
|
||||
# xml_test()
|
||||
if generate_csv:
|
||||
handle_csv_export(
|
||||
file_name=CSV_FILENAME, event_list=event_list, file_separator=FILE_SEPARATOR
|
||||
)
|
||||
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}")
|
||||
LOGGER.info(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():
|
||||
def generate_event_list() -> list:
|
||||
subsystem_parser = SubsystemDefinitionParser(SUBSYSTEM_DEFINITION_DESTINATIONS)
|
||||
subsystem_table = subsystem_parser.parse_files()
|
||||
print(f"Found {len(subsystem_table)} subsystem definitions.")
|
||||
LOGGER.info(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(
|
||||
@ -90,11 +96,6 @@ def parse_events():
|
||||
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()
|
||||
event_list = sorted(event_table.items())
|
||||
LOGGER.info(f'Found {len(event_list)} entries')
|
||||
return event_list
|
||||
|
Reference in New Issue
Block a user