tests/python/c_code@c_ext/cfile.xml
branchwxPython4
changeset 3318 aee9e98c856a
parent 3317 ecfa689684c5
child 3320 9fe5b4a04acc
--- a/tests/python/c_code@c_ext/cfile.xml	Mon Sep 13 17:57:47 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,75 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<CFile xmlns:xhtml="http://www.w3.org/1999/xhtml">
-  <includes>
-    <xhtml:p><![CDATA[
-]]></xhtml:p>
-  </includes>
-  <variables>
-    <variable name="TestInput" type="SINT" initial="0"/>
-    <variable name="TestOutput" type="SINT"/>
-  </variables>
-  <globals>
-    <xhtml:p><![CDATA[
-volatile long Lock=0;
-volatile char PtoC=1,CtoP=2;
-
-extern long AtomicCompareExchange(long*,long, long);
-extern char *PLC_ID;
-
-int Simple_C_Call(int val){
-  return val+1;
-}
-
-int Python_to_C_Call(char toC, char *fromC){
-  /* Code called by python should never touch to 
-     variables modified by PLC thread directly
-
-     AtomicCompareExchange comes from 
-     beremiz' runtime implementation */
-
-  int res = 0;
-  if(!AtomicCompareExchange((long*)&Lock, 0, 1)){
-    PtoC=toC;
-    *fromC=CtoP;
-    AtomicCompareExchange((long*)&Lock, 1, 0);
-    res=1;
-  }
-  printf("C code called by Python: toC %d fromC %d\n",toC,*fromC);
-  printf("PLC_ID id %s\n",PLC_ID);
-  return res;
-}
-
-int PLC_C_Call(char fromPLC, char *toPLC){
-  /* PLC also have to be realy carefull not to 
-     conflict with asynchronous python access */
-  if(!AtomicCompareExchange((long*)&Lock, 0, 1)){
-      CtoP = fromPLC;
-      *toPLC = PtoC;
-      AtomicCompareExchange((long*)&Lock, 1, 0);
-      return 1;
-  }
-  return 0;
-}
-]]></xhtml:p>
-  </globals>
-  <initFunction>
-    <xhtml:p><![CDATA[
-]]></xhtml:p>
-  </initFunction>
-  <cleanUpFunction>
-    <xhtml:p><![CDATA[
-]]></xhtml:p>
-  </cleanUpFunction>
-  <retrieveFunction>
-    <xhtml:p><![CDATA[
-]]></xhtml:p>
-  </retrieveFunction>
-  <publishFunction>
-    <xhtml:p><![CDATA[
-if(!AtomicCompareExchange((long*)&Lock, 0, 1)){
-    TestInput = CtoP + PtoC + TestOutput;
-    AtomicCompareExchange((long*)&Lock, 1, 0);
-}
-]]></xhtml:p>
-  </publishFunction>
-</CFile>