tests/python/python@py_ext/pyfile.xml
author Edouard Tisserant
Tue, 14 May 2013 18:41:33 +0900
changeset 1132 28f96aa9c070
parent 1125 1b1472e76f07
child 1145 203f4eff3313
permissions -rw-r--r--
Rewrote py_ext and wxglade generators in a clean factored way, added C skeleton for python access to PLC global vars
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<PyFile>
  <variables>
    <variable name="Test_Python_Var" type="INT" initial="0"/>
  </variables>
  <globals>
<![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
    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()
"""
]]>
  </globals>
  <init>
<![CDATA[
global x, y
x = 2
y = 5
print "py_runtime init:", x, ",", y
]]>
  </init>
  <cleanup>
<![CDATA[
print "py_runtime cleanup"
]]>
  </cleanup>
  <start>
<![CDATA[
global x, y
print "py_runtime start", x * x + y * y
]]>
  </start>
  <stop>
<![CDATA[
print "py_runtime stop"
]]>
  </stop>
</PyFile>