updated retval list
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
EIVE/eive-obsw/pipeline/pr-develop This commit looks good

This commit is contained in:
2021-08-02 12:50:36 +02:00
parent 528b3c8610
commit 009234612a
10 changed files with 905 additions and 832 deletions

View File

@ -9,13 +9,15 @@ Returnvalue exporter.
To use MySQLdb, run pip install mysqlclient or install in IDE. On Windows, Build Tools installation might be necessary.
:data: 21.11.2019
"""
from fsfwgen.core import get_console_logger
from fsfwgen.parserbase.file_list_parser import FileListParser
from fsfwgen.returnvalues.returnvalues_parser import InterfaceParser, ReturnValueParser
from fsfwgen.utility.sql_writer import SqlWriter
from fsfwgen.utility.file_management import move_file
from fsfwgen.utility.printer import PrettyPrinter
from definitions import BspType, DATABASE_NAME
from definitions import BspType, DATABASE_NAME, ROOT_DIR, OBSW_ROOT_DIR
LOGGER = get_console_logger()
EXPORT_TO_FILE = True
MOVE_CSV_FILE = True
EXPORT_TO_SQL = True
@ -27,28 +29,28 @@ MAX_STRING_LENGTH = 32
BSP_SELECT = BspType.BSP_Q7S
BSP_DIR_NAME = BSP_SELECT.value
CSV_RETVAL_FILENAME = f"{BSP_SELECT.value}_returnvalues.csv"
CSV_MOVE_DESTINATION = "../"
CSV_RETVAL_FILENAME = f'{BSP_SELECT.value}_returnvalues.csv'
CSV_MOVE_DESTINATION = f'{ROOT_DIR}'
ADD_LINUX_FOLDER = False
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'
ADD_LINUX_FOLDER = True
else:
FSFW_CONFIG_ROOT = f"../../{BSP_DIR_NAME}/fsfwconfig"
BSP_PATH = f"../../{BSP_DIR_NAME}"
FSFW_CONFIG_ROOT = f'{OBSW_ROOT_DIR}/{BSP_DIR_NAME}/fsfwconfig'
BSP_PATH = f"{OBSW_ROOT_DIR}/{BSP_DIR_NAME}"
INTERFACE_DEFINITION_FILES = [
"../../fsfw/returnvalues/FwClassIds.h",
"../../common/config/commonClassIds.h",
f"{FSFW_CONFIG_ROOT}/returnvalues/classIds.h"
f'{OBSW_ROOT_DIR}/fsfw/src/fsfw/returnvalues/FwClassIds.h',
f'{OBSW_ROOT_DIR}/common/config/commonClassIds.h',
f'{FSFW_CONFIG_ROOT}/returnvalues/classIds.h'
]
RETURNVALUE_DESTINATIONS = [
"../../mission/", "../../fsfw/", f"{BSP_PATH}"
RETURNVALUE_SOURCES = [
f'{OBSW_ROOT_DIR}/mission/', f'{OBSW_ROOT_DIR}/fsfw/', f'{BSP_PATH}'
]
if ADD_LINUX_FOLDER:
RETURNVALUE_DESTINATIONS.append("../../linux")
RETURNVALUE_SOURCES.append(f'{OBSW_ROOT_DIR}/linux')
SQL_DELETE_RETURNVALUES_CMD = """
DROP TABLE IF EXISTS Returnvalues
@ -71,42 +73,41 @@ VALUES(?,?,?,?,?)
"""
def main():
returnvalue_table = parse_returnvalues()
print("")
def parse_returnvalues():
returnvalue_table = generate_returnvalue_table()
if EXPORT_TO_FILE:
ReturnValueParser.export_to_file(CSV_RETVAL_FILENAME, returnvalue_table, FILE_SEPARATOR)
if MOVE_CSV_FILE:
move_file(file_name=CSV_RETVAL_FILENAME, destination=CSV_MOVE_DESTINATION)
# if MOVE_CSV_FILE:
# move_file(file_name=CSV_RETVAL_FILENAME, destination=CSV_MOVE_DESTINATION)
if EXPORT_TO_SQL:
print("ReturnvalueParser: Exporting to SQL")
sql_retval_exporter(returnvalue_table=returnvalue_table, db_file_dest=f"../{DATABASE_NAME}")
LOGGER.info('ReturnvalueParser: Exporting to SQL')
sql_retval_exporter(returnvalue_table, db_filename=f"{ROOT_DIR}/{DATABASE_NAME}")
def parse_returnvalues():
def generate_returnvalue_table():
""" Core function to parse for the return values """
interface_parser = InterfaceParser(file_list=INTERFACE_DEFINITION_FILES, print_table=PRINT_TABLES)
interface_parser = InterfaceParser(
file_list=INTERFACE_DEFINITION_FILES, print_table=PRINT_TABLES
)
interfaces = interface_parser.parse_files()
header_parser = FileListParser(RETURNVALUE_DESTINATIONS)
header_parser = FileListParser(RETURNVALUE_SOURCES)
header_list = header_parser.parse_header_files(True, "Parsing header file list: ")
print("")
returnvalue_parser = ReturnValueParser(interfaces, header_list, PRINT_TABLES)
returnvalue_parser.set_moving_window_mode(moving_window_size=7)
returnvalue_table = returnvalue_parser.parse_files(True)
print(f"ReturnvalueParser: Found {len(returnvalue_table)} returnvalues.")
LOGGER.info(f"ReturnvalueParser: Found {len(returnvalue_table)} returnvalues")
return returnvalue_table
def sql_retval_exporter(returnvalue_table, db_file_dest: str):
sql_writer = SqlWriter(db_filename=db_file_dest)
def sql_retval_exporter(returnvalue_table, db_filename: str):
sql_writer = SqlWriter(db_filename=db_filename)
sql_writer.open(SQL_CREATE_RETURNVALUES_CMD)
for entry in returnvalue_table.items():
sql_writer.write_entries(
SQL_INSERT_RETURNVALUES_CMD,
(entry[0], entry[1][2], entry[1][4], entry[1][3], entry[1][1]))
SQL_INSERT_RETURNVALUES_CMD, (entry[0],
entry[1][2],
entry[1][4],
entry[1][3],
entry[1][1]))
sql_writer.commit()
sql_writer.close()
if __name__ == "__main__":
main()