Commit 8a81a9c2 authored by Thanassis Tsiodras's avatar Thanassis Tsiodras
Browse files

Manually merge upgrades from feature_buster.

parent cfca4001
Pipeline #2889 failed with stage
in 34 seconds
...@@ -131,13 +131,13 @@ def DeclareCollection(node: AsnSequenceOrSetOf, name: str, internal: str) -> Non ...@@ -131,13 +131,13 @@ def DeclareCollection(node: AsnSequenceOrSetOf, name: str, internal: str) -> Non
for i in range(0, node._range[-1]): for i in range(0, node._range[-1]):
g_outputFile.write('%s_member_%02d=Simulink.BusElement;\n' % (name, i)) g_outputFile.write('%s_member_%02d=Simulink.BusElement;\n' % (name, i))
# Andreas(ESA) wants them to be called 'element_%02d' # Andreas(ESA) wants them to be called 'element_%02d'
g_outputFile.write("%s_member_%02d.Name='element_%02d';\n" % (name, i, i)) g_outputFile.write("%s_member_%02d.name='element_%02d';\n" % (name, i, i))
g_outputFile.write("%s_member_%02d.DataType='%s';\n" % (name, i, internal)) g_outputFile.write("%s_member_%02d.DataType='%s';\n" % (name, i, internal))
g_outputFile.write("%s_member_%02d.Dimensions=1;\n\n" % (name, i)) g_outputFile.write("%s_member_%02d.dimensions=1;\n\n" % (name, i))
g_outputFile.write('%s_member_length=Simulink.BusElement;\n' % name) g_outputFile.write('%s_member_length=Simulink.BusElement;\n' % name)
g_outputFile.write("%s_member_length.Name='length';\n" % name) g_outputFile.write("%s_member_length.name='length';\n" % name)
g_outputFile.write("%s_member_length.DataType='int32';\n" % name) g_outputFile.write("%s_member_length.DataType='int32';\n" % name)
g_outputFile.write("%s_member_length.Dimensions=1;\n\n" % name) g_outputFile.write("%s_member_length.dimensions=1;\n\n" % name)
g_outputFile.write('%s=Simulink.Bus;\n' % name) g_outputFile.write('%s=Simulink.Bus;\n' % name)
g_outputFile.write("%s.Elements = " % name) g_outputFile.write("%s.Elements = " % name)
g_outputFile.write('[') g_outputFile.write('[')
...@@ -150,9 +150,9 @@ def DeclareCollection(node: AsnSequenceOrSetOf, name: str, internal: str) -> Non ...@@ -150,9 +150,9 @@ def DeclareCollection(node: AsnSequenceOrSetOf, name: str, internal: str) -> Non
def DeclareSimpleCollection(node: Union[AsnString, AsnSequenceOf, AsnSetOf], name: str, internal: str) -> None: def DeclareSimpleCollection(node: Union[AsnString, AsnSequenceOf, AsnSetOf], name: str, internal: str) -> None:
g_outputFile.write('%s_member_data=Simulink.BusElement;\n' % name) g_outputFile.write('%s_member_data=Simulink.BusElement;\n' % name)
g_outputFile.write("%s_member_data.Name='element_data';\n" % name) g_outputFile.write("%s_member_data.name='element_data';\n" % name)
g_outputFile.write("%s_member_data.DataType='%s';\n" % (name, internal)) g_outputFile.write("%s_member_data.DataType='%s';\n" % (name, internal))
g_outputFile.write("%s_member_data.Dimensions=%d;\n\n" % (name, node._range[-1])) g_outputFile.write("%s_member_data.dimensions=%d;\n\n" % (name, node._range[-1]))
bNeedLength = False bNeedLength = False
if len(node._range) > 1 and node._range[0] != node._range[1]: if len(node._range) > 1 and node._range[0] != node._range[1]:
...@@ -160,9 +160,9 @@ def DeclareSimpleCollection(node: Union[AsnString, AsnSequenceOf, AsnSetOf], nam ...@@ -160,9 +160,9 @@ def DeclareSimpleCollection(node: Union[AsnString, AsnSequenceOf, AsnSetOf], nam
if bNeedLength: if bNeedLength:
g_outputFile.write('%s_member_length=Simulink.BusElement;\n' % name) g_outputFile.write('%s_member_length=Simulink.BusElement;\n' % name)
g_outputFile.write("%s_member_length.Name='length';\n" % name) g_outputFile.write("%s_member_length.name='length';\n" % name)
g_outputFile.write("%s_member_length.DataType='int32';\n" % name) g_outputFile.write("%s_member_length.DataType='int32';\n" % name)
g_outputFile.write("%s_member_length.Dimensions=1;\n\n" % name) g_outputFile.write("%s_member_length.dimensions=1;\n\n" % name)
g_outputFile.write('%s=Simulink.Bus;\n' % name) g_outputFile.write('%s=Simulink.Bus;\n' % name)
g_outputFile.write("%s.Elements = " % name) g_outputFile.write("%s.Elements = " % name)
...@@ -216,14 +216,14 @@ def CreateDeclarationForType(nodeTypename: str, names: AST_Lookup, leafTypeDict: ...@@ -216,14 +216,14 @@ def CreateDeclarationForType(nodeTypename: str, names: AST_Lookup, leafTypeDict:
elemNo += 1 elemNo += 1
name = "%s_elem%02d" % (CleanNameAsSimulinkWants(nodeTypename), elemNo) name = "%s_elem%02d" % (CleanNameAsSimulinkWants(nodeTypename), elemNo)
g_outputFile.write(name + "=Simulink.BusElement;\n") g_outputFile.write(name + "=Simulink.BusElement;\n")
g_outputFile.write(name + ".Name='choiceIdx';\n") g_outputFile.write(name + ".name='choiceIdx';\n")
g_outputFile.write(name + ".DataType='uint8';\n") g_outputFile.write(name + ".DataType='uint8';\n")
g_outputFile.write(name + ".Dimensions=1;\n\n") g_outputFile.write(name + ".dimensions=1;\n\n")
for child in node._members: for child in node._members:
elemNo += 1 elemNo += 1
name = "%s_elem%02d" % (CleanNameAsSimulinkWants(nodeTypename), elemNo) name = "%s_elem%02d" % (CleanNameAsSimulinkWants(nodeTypename), elemNo)
g_outputFile.write(name + "=Simulink.BusElement;\n") g_outputFile.write(name + "=Simulink.BusElement;\n")
g_outputFile.write(name + ".Name='%s';\n" % CleanNameAsSimulinkWants(child[0])) g_outputFile.write(name + ".name='%s';\n" % CleanNameAsSimulinkWants(child[0]))
# Since AliasType doesn't work well in the Matlab/Simulink typesystem, # Since AliasType doesn't work well in the Matlab/Simulink typesystem,
# we have to change the simple fields to their native types. # we have to change the simple fields to their native types.
...@@ -262,7 +262,7 @@ def CreateDeclarationForType(nodeTypename: str, names: AST_Lookup, leafTypeDict: ...@@ -262,7 +262,7 @@ def CreateDeclarationForType(nodeTypename: str, names: AST_Lookup, leafTypeDict:
panic("Simulink_A_mapper: Unexpected category of child (%s)" % str(child[1])) # pragma: no cover panic("Simulink_A_mapper: Unexpected category of child (%s)" % str(child[1])) # pragma: no cover
g_outputFile.write(name + ".DataType='%s';\n" % mappedType) g_outputFile.write(name + ".DataType='%s';\n" % mappedType)
# Used to be -1 for strings and metaMembers, but requirements have changed (again :-) # Used to be -1 for strings and metaMembers, but requirements have changed (again :-)
g_outputFile.write(name + ".Dimensions=1;\n\n") g_outputFile.write(name + ".dimensions=1;\n\n")
g_outputFile.write("%s = Simulink.Bus;\n" % CleanNameAsSimulinkWants(nodeTypename)) g_outputFile.write("%s = Simulink.Bus;\n" % CleanNameAsSimulinkWants(nodeTypename))
g_outputFile.write("%s.Elements = " % CleanNameAsSimulinkWants(nodeTypename)) g_outputFile.write("%s.Elements = " % CleanNameAsSimulinkWants(nodeTypename))
......
...@@ -249,7 +249,7 @@ class C_GlueGenerator(ASynchronousToolGlueGenerator): ...@@ -249,7 +249,7 @@ class C_GlueGenerator(ASynchronousToolGlueGenerator):
self.C_SourceFile.write("\nextern OssGlobal *g_world;\n\n") self.C_SourceFile.write("\nextern OssGlobal *g_world;\n\n")
self.C_HeaderFile.write("#include \"%s.h\" // Space certified compiler generated\n\n" % self.C_HeaderFile.write("#include \"%s.h\" // Space certified compiler generated\n\n" %
self.asn_name) self.asn_name)
self.C_HeaderFile.write("#include \"../../build/system_config.h\" // Choose ASN.1 Types to use\n\n") self.C_HeaderFile.write("#include \"../../system_config.h\" // Choose ASN.1 Types to use\n\n")
def Encoder(self, nodeTypename: str, node: AsnNode, leafTypeDict: AST_Leaftypes, names: AST_Lookup, encoding: str) -> None: def Encoder(self, nodeTypename: str, node: AsnNode, leafTypeDict: AST_Leaftypes, names: AST_Lookup, encoding: str) -> None:
if encoding.lower() not in self.supportedEncodings: if encoding.lower() not in self.supportedEncodings:
......
...@@ -445,7 +445,7 @@ class SimulinkGlueGenerator(SynchronousToolGlueGenerator): ...@@ -445,7 +445,7 @@ class SimulinkGlueGenerator(SynchronousToolGlueGenerator):
panicWithCallStack("%s not supported (yet?)\n" % str(param._sourceElement)) # pragma: no cover panicWithCallStack("%s not supported (yet?)\n" % str(param._sourceElement)) # pragma: no cover
return dstSimulink return dstSimulink
def InitializeBlock(self, unused_modelingLanguage: str, unused_asnFile: str, sp: ApLevelContainer, unused_subProgramImplementation: str, maybeFVname: str) -> None: def InitializeBlock(self, unused_modelingLanguage: str, unused_asnFile: str, unused_sp: ApLevelContainer, unused_subProgramImplementation: str, maybeFVname: str) -> None:
self.C_SourceFile.write(" static int initialized = 0;\n") self.C_SourceFile.write(" static int initialized = 0;\n")
self.C_SourceFile.write(" if (!initialized) {\n") self.C_SourceFile.write(" if (!initialized) {\n")
self.C_SourceFile.write(" initialized = 1;\n") self.C_SourceFile.write(" initialized = 1;\n")
......
...@@ -95,9 +95,9 @@ g_adaUses = {} # type: AST_AdaUses ...@@ -95,9 +95,9 @@ g_adaUses = {} # type: AST_AdaUses
g_checkedSoFarForKeywords = {} # type: Dict[str, int] g_checkedSoFarForKeywords = {} # type: Dict[str, int]
g_invalidKeywords = [ g_invalidKeywords = [
"active", "adding", "all", "alternative", "and", "any", "as", "atleast", "axioms", "block", "call", "channel", "comment", "connect", "connection", "constant", "constants", "create", "dcl", "decision", "default", "else", "endalternative", "endblock", "endchannel", "endconnection", "enddecision", "endgenerator", "endmacro", "endnewtype", "endoperator", "endpackage", "endprocedure", "endprocess", "endrefinement", "endselect", "endservice", "endstate", "endsubstructure", "endsyntype", "endsystem", "env", "error", "export", "exported", "external", "fi", "finalized", "for", "fpar", "from", "gate", "generator", "if", "import", "imported", "in", "inherits", "input", "interface", "join", "literal", "literals", "macro", "macrodefinition", "macroid", "map", "mod", "nameclass", "newtype", "nextstate", "nodelay", "noequality", "none", "not", "now", "offspring", "operator", "operators", "or", "ordering", "out", "output", "package", "parent", "priority", "procedure", "process", "provided", "redefined", "referenced", "refinement", "rem", "remote", "reset", "return", "returns", "revealed", "reverse", "save", "select", "self", "sender", "service", "set", "signal", "signallist", "signalroute", "signalset", "spelling", "start", "stop", "struct", "substructure", "synonym", "syntype", "system", "task", "then", "this", "to", "type", "use", "via", "view", "viewed", "virtual", "with", "xor", "end", "i", "j", "auto", "const", "active", "adding", "all", "alternative", "and", "any", "as", "atleast", "axioms", "block", "call", "channel", "comment", "connect", "connection", "constant", "constants", "create", "dcl", "decision", "default", "else", "endalternative", "endblock", "endchannel", "endconnection", "enddecision", "endgenerator", "endmacro", "endnewtype", "endoperator", "endpackage", "endprocedure", "endprocess", "endrefinement", "endselect", "endservice", "endstate", "endsubstructure", "endsyntype", "endsystem", "env", "error", "export", "exported", "external", "fi", "finalized", "for", "fpar", "from", "gate", "generator", "if", "import", "imported", "in", "inherits", "input", "interface", "join", "literal", "literals", "macro", "macrodefinition", "macroid", "map", "mod", "nameclass", "newtype", "nextstate", "nodelay", "noequality", "none", "not", "now", "offspring", "operator", "operators", "or", "ordering", "out", "output", "package", "parent", "priority", "procedure", "process", "provided", "redefined", "referenced", "refinement", "rem", "remote", "reset", "return", "returns", "revealed", "reverse", "save", "select", "self", "sender", "service", "set", "signal", "signallist", "signalroute", "signalset", "spelling", "start", "state", "stop", "struct", "substructure", "synonym", "syntype", "system", "task", "then", "this", "to", "type", "use", "via", "view", "viewed", "virtual", "with", "xor", "end", "i", "j", "auto", "const",
# From Nicolas Gillet/Astrium for SCADE # From Nicolas Gillet/Astrium for SCADE
"abstract", "activate", "and", "assume", "automaton", "bool", "case", "char", "clock", "const", "default", "div", "do", "else", "elsif", "emit", "end", "enum", "every", "false", "fby", "final", "flatten", "fold", "foldi", "foldw", "foldwi", "function", "guarantee", "group", "if", "imported", "initial", "int", "is", "last", "let", "make", "map", "mapfold", "mapi", "mapw", "mapwi", "match", "merge", "mod", "node", "not", "numeric", "of", "onreset", "open", "or", "package", "parameter", "pre", "private", "probe", "public", "real", "restart", "resume", "returns", "reverse", "sensor", "sig", "specialize", "synchro", "tel", "then", "times", "transpose", "true", "type", "unless", "until", "var", "when", "where", "with", "xor", "abstract", "activate", "and", "assume", "automaton", "bool", "case", "char", "clock", "const", "default", "div", "do", "else", "elsif", "emit", "end", "enum", "every", "false", "fby", "final", "flatten", "fold", "foldi", "foldw", "foldwi", "function", "guarantee", "group", "if", "imported", "initial", "int", "is", "last", "let", "make", "map", "mapfold", "mapi", "mapw", "mapwi", "match", "merge", "mod", "node", "not", "numeric", "of", "onreset", "open", "or", "package", "parameter", "pre", "private", "probe", "public", "real", "restart", "resume", "returns", "reverse", "sensor", "sig", "specialize", "state", "synchro", "tel", "then", "times", "transpose", "true", "type", "unless", "until", "var", "when", "where", "with", "xor",
# From Maxime - ESA GNC Team # From Maxime - ESA GNC Team
"open", "close", "flag", "device", "range", "name" "open", "close", "flag", "device", "range", "name"
] ]
...@@ -744,6 +744,8 @@ def CommonSeqSetChoice( ...@@ -744,6 +744,8 @@ def CommonSeqSetChoice(
opti = GetAttr(x, "Optional") opti = GetAttr(x, "Optional")
bAlwaysPresent = GetAttr(x, "bAlwaysPresent") bAlwaysPresent = GetAttr(x, "bAlwaysPresent")
bAlwaysAbsent = GetAttr(x, "bAlwaysAbsent") bAlwaysAbsent = GetAttr(x, "bAlwaysAbsent")
if opti and opti == "True":
utility.warn("OPTIONAL attribute ignored by A/B mappers (for field contained in %s,%s)" % (newModule._asnFilename, lineNo))
enumID = GetAttr(x, "EnumID") enumID = GetAttr(x, "EnumID")
myMembers.append([GetAttr(x, "VarName"), GenericFactory(newModule, GetChild(x, "Type"))]) myMembers.append([GetAttr(x, "VarName"), GenericFactory(newModule, GetChild(x, "Type"))])
myMembers[-1].append(enumID) myMembers[-1].append(enumID)
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment