--- a/exemples/python/python@py_ext/pyfile.xml Mon Aug 07 18:17:12 2023 +0200
+++ b/exemples/python/python@py_ext/pyfile.xml Thu Sep 28 17:56:03 2023 +0200
@@ -1,69 +1,79 @@
-<?xml version='1.0' encoding='utf-8'?>
-<PyFile xmlns:xhtml="http://www.w3.org/1999/xhtml">
- <variables>
- <variable name="Test_Python_Var" type="INT" initial="4"/>
- <variable name="Second_Python_Var" type="INT" initial="5"/>
- </variables>
- <globals>
- <xhtml:p><![CDATA[
-import time,sys,ctypes
-Python_to_C_Call = PLCBinary.Python_to_C_Call
-Python_to_C_Call.restype = ctypes.c_int
-Python_to_C_Call.argtypes = [ctypes.c_int, ctypes.POINTER(ctypes.c_int)]
-
-def MyPythonFunc(arg):
- i = ctypes.c_int()
- if(Python_to_C_Call(arg, i)):
- res = i.value
- print("toC:", arg, "from C:", res, "FBID:", FBID)
- else:
- print("Failed Python_to_C_Call failed")
- res = None
- print("Python read PLC global :",PLCGlobals.Test_Python_Var)
- print("Python read PLC global Grumpf :",PLCGlobals.Grumpf)
- PLCGlobals.Second_Python_Var = 789
- sys.stdout.flush()
- return res
-
-async_error_test_code = """
-def badaboom():
- tuple()[0]
-
-import wx
-def badaboomwx():
- wx.CallAfter(badaboom)
-
-from threading import Timer
-a = Timer(3, badaboom)
-a.start()
-
-b = Timer(6, badaboomwx)
-b.start()
-"""
-]]></xhtml:p>
- </globals>
- <init>
- <xhtml:p><![CDATA[
-global x, y
-x = 2
-y = 5
-print("py_runtime init:", x, ",", y)
-]]></xhtml:p>
- </init>
- <cleanup>
- <xhtml:p><![CDATA[
-print("py_runtime cleanup")
-]]></xhtml:p>
- </cleanup>
- <start>
- <xhtml:p><![CDATA[
-global x, y
-print("py_runtime start", x * x + y * y)
-]]></xhtml:p>
- </start>
- <stop>
- <xhtml:p><![CDATA[
-print("py_runtime stop")
-]]></xhtml:p>
- </stop>
-</PyFile>
+<?xml version='1.0' encoding='utf-8'?>
+<PyFile xmlns:xhtml="http://www.w3.org/1999/xhtml">
+ <variables>
+ <variable name="Test_Python_Var" type="INT" initial="4"/>
+ <variable name="Second_Python_Var" type="INT" initial="5"/>
+ </variables>
+ <globals>
+ <xhtml:p><![CDATA[
+import time,sys,ctypes
+Python_to_C_Call = PLCBinary.Python_to_C_Call
+Python_to_C_Call.restype = ctypes.c_int
+Python_to_C_Call.argtypes = [ctypes.c_int, ctypes.POINTER(ctypes.c_int)]
+
+
+def MyPrintFunction(msg):
+ if sys.stdout:
+ sys.stdout.write(msg)
+ sys.stdout.flush()
+ else:
+ PLCObject.LogMessage(msg)
+
+def MyPythonFunc(arg):
+ i = ctypes.c_int()
+ if(Python_to_C_Call(arg, i)):
+ res = i.value
+ print("toC:", arg, "from C:", res, "FBID:", FBID)
+ else:
+ print("Failed Python_to_C_Call failed")
+ res = None
+ print("Python read PLC global :",PLCGlobals.Test_Python_Var)
+ print("Python read PLC global Grumpf :",PLCGlobals.Grumpf)
+ PLCGlobals.Second_Python_Var = 789
+
+ if sys.stdout:
+ sys.stdout.flush()
+ return res
+
+async_error_test_code = """
+def badaboom():
+ tuple()[0]
+
+import wx
+def badaboomwx():
+ wx.CallAfter(badaboom)
+
+from threading import Timer
+a = Timer(3, badaboom)
+a.start()
+
+b = Timer(6, badaboomwx)
+b.start()
+"""
+]]></xhtml:p>
+ </globals>
+ <init>
+ <xhtml:p><![CDATA[
+global x, y
+x = 2
+y = 5
+print("py_runtime init:", x, ",", y)
+]]></xhtml:p>
+ </init>
+ <cleanup>
+ <xhtml:p><![CDATA[
+print("py_runtime cleanup")
+]]></xhtml:p>
+ </cleanup>
+ <start>
+ <xhtml:p><![CDATA[
+global x, y
+print("py_runtime start", x * x + y * y)
+]]></xhtml:p>
+ </start>
+ <stop>
+ <xhtml:p><![CDATA[
+print("py_runtime stop")
+]]></xhtml:p>
+ </stop>
+</PyFile>