rework generator modules and remove fsfwgen deps as submodule
This commit is contained in:
@ -14,7 +14,6 @@ from fsfwgen.returnvalues.returnvalues_parser import (
|
||||
RetvalDictT,
|
||||
)
|
||||
from fsfwgen.utility.sql_writer import SqlWriter
|
||||
from fsfwgen.utility.printer import PrettyPrinter
|
||||
|
||||
from definitions import BspType, DATABASE_NAME, ROOT_DIR, OBSW_ROOT_DIR
|
||||
|
||||
@ -28,33 +27,41 @@ PRINT_TABLES = False
|
||||
FILE_SEPARATOR = ";"
|
||||
MAX_STRING_LENGTH = 32
|
||||
|
||||
BSP_SELECT = BspType.BSP_Q7S
|
||||
BSP_DIR_NAME = BSP_SELECT.value
|
||||
CSV_RETVAL_FILENAME = Path(f"{ROOT_DIR}/{BSP_SELECT.value}_returnvalues.csv")
|
||||
|
||||
class BspConfig:
|
||||
def __init__(self, bps_select: BspType):
|
||||
self.bsp_dir_name = bps_select.value
|
||||
self.csv_retval_filename = Path(
|
||||
f"{ROOT_DIR}/{self.bsp_dir_name}_returnvalues.csv"
|
||||
)
|
||||
self.add_linux_folder = False
|
||||
if bps_select == BspType.BSP_Q7S or bps_select == BspType.BSP_LINUX_BOARD:
|
||||
self.fsfw_config_root = f"{OBSW_ROOT_DIR}/linux/fsfwconfig"
|
||||
self.add_linux_folder = True
|
||||
else:
|
||||
self.fsfw_config_root = f"{OBSW_ROOT_DIR}/{self.bsp_dir_name}/fsfwconfig"
|
||||
self.bsp_path = f"{OBSW_ROOT_DIR}/{self.bsp_dir_name}"
|
||||
self.retval_sources = [
|
||||
f"{OBSW_ROOT_DIR}/mission/",
|
||||
f"{OBSW_ROOT_DIR}/fsfw/",
|
||||
f"{self.bsp_path}",
|
||||
]
|
||||
if self.add_linux_folder:
|
||||
self.retval_sources.append(f"{OBSW_ROOT_DIR}/linux")
|
||||
|
||||
def if_definition_files(self):
|
||||
return [
|
||||
f"{OBSW_ROOT_DIR}/fsfw/src/fsfw/returnvalues/FwClassIds.h",
|
||||
f"{OBSW_ROOT_DIR}/common/config/eive/resultClassIds.h",
|
||||
f"{self.fsfw_config_root}/returnvalues/classIds.h",
|
||||
]
|
||||
|
||||
def retval_sources_as_path(self):
|
||||
return [Path(x) for x in self.retval_sources]
|
||||
|
||||
|
||||
CSV_COPY_DEST = Path(f"{OBSW_ROOT_DIR}/tmtc/eive_tmtc/config/returnvalues.csv")
|
||||
ADD_LINUX_FOLDER = False
|
||||
|
||||
if BSP_SELECT == BspType.BSP_Q7S or BSP_SELECT == BspType.BSP_LINUX_BOARD:
|
||||
FSFW_CONFIG_ROOT = f"{OBSW_ROOT_DIR}/linux/fsfwconfig"
|
||||
ADD_LINUX_FOLDER = True
|
||||
else:
|
||||
FSFW_CONFIG_ROOT = f"{OBSW_ROOT_DIR}/{BSP_DIR_NAME}/fsfwconfig"
|
||||
BSP_PATH = f"{OBSW_ROOT_DIR}/{BSP_DIR_NAME}"
|
||||
|
||||
INTERFACE_DEFINITION_FILES = [
|
||||
f"{OBSW_ROOT_DIR}/fsfw/src/fsfw/returnvalues/FwClassIds.h",
|
||||
f"{OBSW_ROOT_DIR}/common/config/eive/resultClassIds.h",
|
||||
f"{FSFW_CONFIG_ROOT}/returnvalues/classIds.h",
|
||||
]
|
||||
RETURNVALUE_SOURCES = [
|
||||
f"{OBSW_ROOT_DIR}/mission/",
|
||||
f"{OBSW_ROOT_DIR}/fsfw/",
|
||||
f"{BSP_PATH}",
|
||||
]
|
||||
RETVAL_SRCS_AS_PATH = [Path(x) for x in RETURNVALUE_SOURCES]
|
||||
|
||||
if ADD_LINUX_FOLDER:
|
||||
RETURNVALUE_SOURCES.append(f"{OBSW_ROOT_DIR}/linux")
|
||||
|
||||
SQL_DELETE_RETURNVALUES_CMD = """
|
||||
DROP TABLE IF EXISTS Returnvalues
|
||||
@ -77,15 +84,16 @@ VALUES(?,?,?,?,?)
|
||||
"""
|
||||
|
||||
|
||||
def parse_returnvalues():
|
||||
returnvalue_table = generate_returnvalue_table()
|
||||
def parse_returnvalues(bsp_select: BspType):
|
||||
cfg = BspConfig(bsp_select)
|
||||
returnvalue_table = generate_returnvalue_table(cfg)
|
||||
if EXPORT_TO_FILE:
|
||||
ReturnValueParser.export_to_csv(
|
||||
CSV_RETVAL_FILENAME, returnvalue_table, FILE_SEPARATOR
|
||||
cfg.csv_retval_filename, returnvalue_table, FILE_SEPARATOR
|
||||
)
|
||||
if COPY_CSV_FILE:
|
||||
copy_file(
|
||||
filename=CSV_RETVAL_FILENAME,
|
||||
filename=cfg.csv_retval_filename,
|
||||
destination=CSV_COPY_DEST,
|
||||
delete_existing_file=True,
|
||||
)
|
||||
@ -96,13 +104,13 @@ def parse_returnvalues():
|
||||
)
|
||||
|
||||
|
||||
def generate_returnvalue_table():
|
||||
def generate_returnvalue_table(cfg: BspConfig):
|
||||
"""Core function to parse for the return values"""
|
||||
interface_parser = InterfaceParser(
|
||||
file_list=INTERFACE_DEFINITION_FILES, print_table=PRINT_TABLES
|
||||
file_list=cfg.if_definition_files(), print_table=PRINT_TABLES
|
||||
)
|
||||
interfaces = interface_parser.parse_files()
|
||||
header_parser = FileListParser(RETVAL_SRCS_AS_PATH)
|
||||
header_parser = FileListParser(cfg.retval_sources_as_path())
|
||||
header_list = header_parser.parse_header_files(True, "Parsing header file list: ")
|
||||
returnvalue_parser = ReturnValueParser(interfaces, header_list, PRINT_TABLES)
|
||||
returnvalue_parser.obsw_root_path = OBSW_ROOT_DIR
|
||||
|
Reference in New Issue
Block a user