stage4/generate_cc/plciec.cc
changeset 0 fb772792efd1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/stage4/generate_cc/plciec.cc	Wed Jan 31 15:32:38 2007 +0100
@@ -0,0 +1,62 @@
+/*
+ * (c) 2003 Mario de Sousa
+ *
+ * Offered to the public under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+ * Public License for more details.
+ *
+ * This code is made available on the understanding that it will not be
+ * used in safety-critical situations without a full and competent review.
+ */
+
+/*
+ * An IEC 61131-3 IL and ST compiler.
+ *
+ * Based on the
+ * FINAL DRAFT - IEC 61131-3, 2nd Ed. (2001-12-10)
+ *
+ */
+
+
+/*
+ * Code to be included into the code generated by the 4th stage.
+ *
+ * This is part of the 4th stage that generates
+ * a c++ source program equivalent to the IL and ST
+ * code.
+ */
+
+
+TIME __CURRENT_TIME;
+
+int main(int argc, char **argv) {
+  struct timespec tp;
+
+  if (plc_init(DEFAULT_MODULE_NAME, argc, argv) < 0) {
+      printf("Error connecting to PLC.\n");
+      exit(EXIT_FAILURE);
+  }
+  __configuration_c config;
+  /* loop... */
+  while (1) {
+    plc_scan_beg();
+    plc_update();
+    if (clock_gettime(CLOCK_REALTIME, &tp) < 0)
+      IEC_error();
+    __CURRENT_TIME = tp;
+    config.run();
+    plc_update();
+    plc_scan_end();
+  } /* while (1) */
+return -1;
+}
+
+
+
+
+