Skip to content
Snippets Groups Projects

Scn2asn1

Merged Iulia Dragomir requested to merge scn2asn1 into master
1 file
+ 12
23
Compare changes
  • Side-by-side
  • Inline
@@ -74,8 +74,6 @@ def cleanPredicate(target, observerFile):
flags=[ASN1.AstOnly]
)
#target = target.lower()
visitor = asn2if.TypeVisitor(sys.stderr, ast)
for name, sort in ast.types.items():
visitor.visit(name, sort)
@@ -172,17 +170,15 @@ def parseParamValue(messageValue, functions): #messagevalue '{param1={field1=val
# Postprocess the INPUT and build the datastructure for creating the ASN.1 line
def genASN1(events, functions):
#instances = dict((i,[],) for i in functions)
instances = { 'inputs' : [] }
#print("\n\ndef genASN1")
#print(instances)
messages = []
print("\n\ndef genASN1")
for event in events:
message = {}
messageValue = event.getAttribute("value")
# INFORMAL case
if(event.getAttribute("value")=="input_none"):
#print("genASN1 Hay un event \n")
print("genASN1 Hay un event \n")
message["value_p1"] = ""
message["source"] = None
@@ -221,15 +217,13 @@ def genASN1(events, functions):
#print(instances)
debug_print("\n\ngenASN1 messageBy:" + message["by"] + "\n")
#instances[message["by"].lower()].append(message)
messages.append(message)
instances["inputs"].append(message)
#print("append on " + message["by"] + ": "+ json.dumps(message))
print("append on " + message["by"] + ": "+ json.dumps(message))
debug_print(json.dumps(message))
#print("genASN1 instances: ",instances,"\n")
return instances
print("genASN1 messages: ",messages,"\n")
return messages
def writeHeader(asn1):
asn1.write("asn1document Untitled_Document;\n")
@@ -241,9 +235,10 @@ def writeCloser(asn1):
asn1.write("endasn1document;\n")
asn1.write("endasn1document;\n")
# Writing from the instances the ASN.1 inputs
def writeInstance(instance, messages, asn1, observerFile, outputs, functions):
def dumpASN1file(filename, messages, preffix, observerFile, outputs, functions):
asn1 = open("".join(preffix)+filename[:-4]+".sim", "w")
#asn1.write("/* CIF INSTANCE (" + str(cif_pos) + ", 61) (172, 87) (800, 1000) */\n")
#asn1.write("instance " + instance + ";\n")
for message in messages:
@@ -281,12 +276,6 @@ def writeInstance(instance, messages, asn1, observerFile, outputs, functions):
mainParamName = searchParamName(message["by"], message["interface"], observerFile, message["value_p2"])
asn1.write("input-event: { source " + message["value_p2"] + ", dest " + message["by"]+", event " + message["by"] + " : msg-in : " + message["interface"].replace('_','-') + " : {" + mainParamName + " " + message["value_p1"] +"}}\n")
def dumpASN1file(filename, instances, preffix, observerFile, outputs, functions):
asn1 = open("".join(preffix)+filename[:-4]+".sim", "w")
for instance,message in instances.items():
#asn1.write("/* CIF INSTANCE (" + str(cif_pos) + ", 61) (172, 87) (800, 1000) */\n")
print("line processed:" , instance)
writeInstance(instance, message, asn1, observerFile, outputs, functions)
# builds the list of input events from the scn file
def getSCNEvents(xml_schema):
@@ -306,8 +295,8 @@ def scn2asn1Process(xml_files, functions, preffix, observerFile):
xml_schema = parse(xml_file)
events, outputs = getSCNEvents(xml_schema)
#print(events)
instances=genASN1(events, functions)
dumpASN1file(xml_file, instances, preffix, observerFile, outputs, functions)
messages=genASN1(events, functions)
dumpASN1file(xml_file, messages, preffix, observerFile, outputs, functions)
os.rename(xml_file, preffix +"_"+str(xml_file))
def parseConfig(mcConfig):
Loading