313 if pou_type != "program": |
313 if pou_type != "program": |
314 block_infos = {"name" : pou_name, "type" : pou_type, "extensible" : False, |
314 block_infos = {"name" : pou_name, "type" : pou_type, "extensible" : False, |
315 "inputs" : [], "outputs" : [], "comment" : "", |
315 "inputs" : [], "outputs" : [], "comment" : "", |
316 "generate" : generate_block, "initialise" : initialise_block} |
316 "generate" : generate_block, "initialise" : initialise_block} |
317 if pou.getinterface(): |
317 if pou.getinterface(): |
|
318 return_type = pou.interface.getreturnType() |
|
319 if return_type: |
|
320 var_type = return_type.getcontent() |
|
321 if var_type["name"] == "derived": |
|
322 block_infos["outputs"].append(("", var_type["value"].getname(), "none")) |
|
323 elif var_type["name"] in ["string", "wstring"]: |
|
324 block_infos["outputs"].append(("", var_type["name"].upper(), "none")) |
|
325 else: |
|
326 block_infos["outputs"].append(("", var_type["name"], "none")) |
318 for type, varlist in pou.getvars(): |
327 for type, varlist in pou.getvars(): |
319 if type == "InOut": |
328 if type == "InOut": |
320 for var in varlist.getvariable(): |
329 for var in varlist.getvariable(): |
321 var_type = var.type.getcontent() |
330 var_type = var.type.getcontent() |
322 if var_type["name"] == "derived": |
331 if var_type["name"] == "derived": |
344 block_infos["outputs"].append((var.getname(), var_type["value"].getname(), "none")) |
353 block_infos["outputs"].append((var.getname(), var_type["value"].getname(), "none")) |
345 elif var_type["name"] in ["string", "wstring"]: |
354 elif var_type["name"] in ["string", "wstring"]: |
346 block_infos["outputs"].append((var.getname(), var_type["name"].upper(), "none")) |
355 block_infos["outputs"].append((var.getname(), var_type["name"].upper(), "none")) |
347 else: |
356 else: |
348 block_infos["outputs"].append((var.getname(), var_type["name"], "none")) |
357 block_infos["outputs"].append((var.getname(), var_type["name"], "none")) |
349 return_type = pou.interface.getreturnType() |
|
350 if return_type: |
|
351 var_type = return_type.getcontent() |
|
352 if var_type["name"] == "derived": |
|
353 block_infos["outputs"].append(("", var_type["value"].getname(), "none")) |
|
354 elif var_type["name"] in ["string", "wstring"]: |
|
355 block_infos["outputs"].append(("", var_type["name"].upper(), "none")) |
|
356 else: |
|
357 block_infos["outputs"].append(("", var_type["name"], "none")) |
|
358 if pou.getbodyType() in ["FBD","LD","SFC"]: |
358 if pou.getbodyType() in ["FBD","LD","SFC"]: |
359 for instance in pou.getinstances(): |
359 for instance in pou.getinstances(): |
360 if isinstance(instance, PLCOpenClasses.get("commonObjects_comment", None)): |
360 if isinstance(instance, PLCOpenClasses.get("commonObjects_comment", None)): |
361 block_infos["comment"] = instance.getcontentText() |
361 block_infos["comment"] = instance.getcontentText() |
362 self.CustomBlockTypes.append(block_infos) |
362 self.CustomBlockTypes.append(block_infos) |