--- a/py_ext/PythonFileCTNMixin.py Thu Feb 19 00:40:53 2015 +0100
+++ b/py_ext/PythonFileCTNMixin.py Sat Feb 21 10:20:24 2015 +0100
@@ -75,8 +75,11 @@
varinfos = map(lambda variable : {
"name": variable.getname(),
"desc" : repr(variable.getdesc()),
- "onchange" : '"'+variable.getonchange()+"('"+variable.getname()+"')\"" \
- if variable.getonchange() else "",
+ "onchangecode" : '"'+variable.getonchange()+\ + "('"+variable.getname()+"')\"" \ + if variable.getonchange() else '""', + "onchange" : repr(variable.getonchange()) \ + if variable.getonchange() else None, "opts" : repr(variable.getopts()),
"configname" : configname.upper(),
"uppername" : variable.getname().upper(),
@@ -97,8 +100,10 @@
-""" % varinfo for varinfo in varinfos])
+ for varinfo in varinfos]) # Runtime calls (start, stop, init, and cleanup)
@@ -124,6 +129,7 @@
from targets.typemapping import TypeTranslator
_%(pyextname)sGlobalsDesc = []
+__ext_name__ = "%(pyextname)s" PLCGlobalsDesc.append(( "_%(pyextname)s" , _%(pyextname)sGlobalsDesc ))
@@ -133,6 +139,8 @@
## Beremiz python runtime calls
# write generated content to python file
@@ -198,7 +206,7 @@
varinitonchangefmt = """\
__%(name)s_notifier = __GET_GLOBAL_ON%(uppername)sCHANGE();
__SET_VAR(__%(name)s_notifier->,TRIG,,__BOOL_LITERAL(TRUE));
- __SET_VAR(__%(name)s_notifier->,CODE,,__STRING_LITERAL(%(onchangelen)d,%(onchange)s));
+ __SET_VAR(__%(name)s_notifier->,CODE,,__STRING_LITERAL(%(onchangelen)d,%(onchangecode)s)); vardec = "\n".join([(vardecfmt + vardeconchangefmt
if varinfo["onchange"] else vardecfmt)% varinfo
@@ -208,7 +216,7 @@
for varinfo in varinfos])
varinit = "\n".join([varinitonchangefmt % dict(
- onchangelen = len(varinfo["onchange"]),**varinfo)
+ onchangelen = len(varinfo["onchangecode"]),**varinfo) for varinfo in varinfos if varinfo["onchange"]])