Skip to content

Commit 694b75f

Browse files
committed
Add more types and fix a SD loading issue
1 parent 2d0a3d5 commit 694b75f

File tree

5 files changed

+17
-7
lines changed

5 files changed

+17
-7
lines changed

examples/generator/data_types/gen_type_defs_array.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
from autosar.model import ImplementationModel
88
import autosar.generator
99

10-
1110
def main():
1211
"""
1312
Create workspace and print type header to stdout

examples/template/demo_system/factory.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ def create(self,
3939
size=self.bit_size,
4040
encoding=self.encoding,
4141
native_declaration=self.native_declaration)
42-
4342
return elem
4443

4544

examples/template/demo_system/platform.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,11 @@ class ImplementationTypes:
3030

3131
_boolean_constraint = factory.DataConstraintInternalTemplate("boolean_DataConstr", NAMESPACE, 0, 1)
3232
_uint8_constraint = factory.DataConstraintInternalTemplate("uint8_DataConstr", NAMESPACE, 0, 255)
33+
_sint8_constraint = factory.DataConstraintInternalTemplate("sint8_DataConstr", NAMESPACE, -128, 127)
3334
_uint16_constraint = factory.DataConstraintInternalTemplate("uint16_DataConstr", NAMESPACE, 0, 65535)
35+
_sint16_constraint = factory.DataConstraintInternalTemplate("sint16_DataConstr", NAMESPACE, -32768, 32767)
3436
_uint32_constraint = factory.DataConstraintInternalTemplate("uint32_DataConstr", NAMESPACE, 0, 4294967295)
37+
_sint32_constraint = factory.DataConstraintInternalTemplate("sint32_DataConstr", NAMESPACE, -2147483648, 2147483647)
3538
_uint64_constraint = factory.DataConstraintInternalTemplate("uint64_DataConstr", NAMESPACE,
3639
0, 18446744073709551615)
3740
_boolean_compumethod = factory.CompuMethodEnumTemplate("boolean_CompuMethod", NAMESPACE, ["FALSE", "TRUE"])
@@ -40,9 +43,15 @@ class ImplementationTypes:
4043
_boolean_compumethod, type_emitter="Platform_Type")
4144
uint8 = factory.ImplementationValueTypeTemplate("uint8", NAMESPACE, BaseTypes.uint8, _uint8_constraint,
4245
type_emitter="Platform_Type")
46+
sint8 = factory.ImplementationValueTypeTemplate("sint8", NAMESPACE, BaseTypes.sint8, _sint8_constraint,
47+
type_emitter="Platform_Type")
4348
uint16 = factory.ImplementationValueTypeTemplate("uint16", NAMESPACE, BaseTypes.uint16, _uint16_constraint,
4449
type_emitter="Platform_Type")
50+
sint16 = factory.ImplementationValueTypeTemplate("sint16", NAMESPACE, BaseTypes.sint16, _sint16_constraint,
51+
type_emitter="Platform_Type")
4552
uint32 = factory.ImplementationValueTypeTemplate("uint32", NAMESPACE, BaseTypes.uint32, _uint32_constraint,
4653
type_emitter="Platform_Type")
54+
sint32 = factory.ImplementationValueTypeTemplate("sint32", NAMESPACE, BaseTypes.sint32, _sint32_constraint,
55+
type_emitter="Platform_Type")
4756
uint64 = factory.ImplementationValueTypeTemplate("uint64", NAMESPACE, BaseTypes.uint64, _uint64_constraint,
4857
type_emitter="Platform_Type")

src/autosar/generator/type_generator.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ def _create_code_sequence(self) -> cfile.core.Sequence:
4848
code.append(C.ifndef(include_guard))
4949
code.append(C.define(include_guard))
5050
code.append(C.blank())
51-
code.append(C.ifndef("__cplusplus"))
51+
code.append(C.ifdef("__cplusplus"))
5252
code.append(C.line(C.extern("C")))
5353
code.append(C.line("{"))
5454
code.append(C.endif())
@@ -60,7 +60,7 @@ def _create_code_sequence(self) -> cfile.core.Sequence:
6060
code.append(C.blank())
6161
code.extend(self._gen_type_defs(self.gen_data_type_creation_order()))
6262
code.append(C.blank())
63-
code.append(C.ifndef("__cplusplus"))
63+
code.append(C.ifdef("__cplusplus"))
6464
code.append(C.line("}"))
6565
code.append([C.endif(), C.line_comment(" __cplusplus")])
6666
code.append([C.endif(), C.line_comment(" " + include_guard)])

src/autosar/xml/reader.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -572,9 +572,12 @@ def _read_admin_data_sd(self, xml_element: ElementTree.Element) -> dict[str, str
572572
"""
573573
Reads Complex-type AR:SD
574574
"""
575-
key = xml_element.attrib['GID']
576-
value = xml_element.text
577-
return {key: value}
575+
if 'GID' in xml_element.attrib:
576+
key = xml_element.attrib['GID']
577+
value = xml_element.text
578+
return {key: value}
579+
else:
580+
return xml_element.text
578581

579582
# --- AUTOSAR Document
580583

0 commit comments

Comments
 (0)