From 3d0db04628b48bde95d6ad1f262c046cc5b1e446 Mon Sep 17 00:00:00 2001 From: Jack White Date: Sun, 22 Oct 2023 17:31:57 +0200 Subject: [PATCH 1/4] Jack White: Added serialise/representation type to XML loader --- src/fprime_gds/common/loaders/xml_loader.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/fprime_gds/common/loaders/xml_loader.py b/src/fprime_gds/common/loaders/xml_loader.py index 8fd559c5..01a4f02a 100644 --- a/src/fprime_gds/common/loaders/xml_loader.py +++ b/src/fprime_gds/common/loaders/xml_loader.py @@ -49,6 +49,7 @@ class XmlLoader(dict_loader.DictLoader): ENUM_SECT = "enums" ENUM_TYPE_TAG = "type" + ENUM_SERIALIZE_TYPE_TAG = "serialize_type" ENUM_ELEM_NAME_TAG = "name" ENUM_ELEM_VAL_TAG = "value" ENUM_ELEM_DESC_TAG = "description" @@ -218,6 +219,12 @@ def get_enum_type(self, enum_name, xml_obj): for enum in enum_section: # Check enum name if enum.get(self.ENUM_TYPE_TAG) == enum_name: + # Get serialize/representation type, if present + serialize_type = enum.get(self.ENUM_SERIALIZE_TYPE_TAG) + + if not serialize_type: + serialize_type = "I32" + # Go through all possible values of the enum members = {} for item in enum: @@ -225,7 +232,7 @@ def get_enum_type(self, enum_name, xml_obj): item_val = int(item.get(self.ENUM_ELEM_VAL_TAG)) members[item_name] = item_val - enum_obj = EnumType.construct_type(enum_name, members) + enum_obj = EnumType.construct_type(enum_name, members, rep_type=serialize_type) self.enums[enum_name] = enum_obj return enum_obj From 19dafccfe3d7ae76e0d37bde524d2f9c60143760 Mon Sep 17 00:00:00 2001 From: Jack White Date: Mon, 11 Dec 2023 12:50:25 +0100 Subject: [PATCH 2/4] Jack White: Amended new call to EnumType.contruct_type() --- src/fprime_gds/common/loaders/xml_loader.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/fprime_gds/common/loaders/xml_loader.py b/src/fprime_gds/common/loaders/xml_loader.py index 01a4f02a..ed577f27 100644 --- a/src/fprime_gds/common/loaders/xml_loader.py +++ b/src/fprime_gds/common/loaders/xml_loader.py @@ -232,7 +232,7 @@ def get_enum_type(self, enum_name, xml_obj): item_val = int(item.get(self.ENUM_ELEM_VAL_TAG)) members[item_name] = item_val - enum_obj = EnumType.construct_type(enum_name, members, rep_type=serialize_type) + enum_obj = EnumType.construct_type(enum_name, members, serialize_type) self.enums[enum_name] = enum_obj return enum_obj From b78ecfcc962e50f288f267c64bb45626e9034a4a Mon Sep 17 00:00:00 2001 From: Jack White Date: Tue, 12 Dec 2023 10:53:38 +0100 Subject: [PATCH 3/4] Jack White: Replaced explicit check-and-set for default enum serialize type with default value in dict.get() --- src/fprime_gds/common/loaders/xml_loader.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/fprime_gds/common/loaders/xml_loader.py b/src/fprime_gds/common/loaders/xml_loader.py index ed577f27..38ebf2e9 100644 --- a/src/fprime_gds/common/loaders/xml_loader.py +++ b/src/fprime_gds/common/loaders/xml_loader.py @@ -220,10 +220,7 @@ def get_enum_type(self, enum_name, xml_obj): # Check enum name if enum.get(self.ENUM_TYPE_TAG) == enum_name: # Get serialize/representation type, if present - serialize_type = enum.get(self.ENUM_SERIALIZE_TYPE_TAG) - - if not serialize_type: - serialize_type = "I32" + serialize_type = enum.get(self.ENUM_SERIALIZE_TYPE_TAG, "I32") # Go through all possible values of the enum members = {} From 39bbb23252a211458ca213820f917fa253eaae76 Mon Sep 17 00:00:00 2001 From: M Starch Date: Thu, 15 Feb 2024 18:06:51 -0800 Subject: [PATCH 4/4] Bumping fprime-tools version for representation types --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 98b6afd1..bd9efefd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -37,7 +37,7 @@ dependencies = [ "pexpect>=4.8.0", "pytest>=6.2.4", "flask_restful>=0.3.8", - "fprime-tools>=3.1.2a1", + "fprime-tools>=3.4.3", "argcomplete>=1.12.3", "Jinja2>=2.11.3", "openpyxl>=3.0.10",