summaryrefslogtreecommitdiff
path: root/tools/dfagen/examples/ex2_robot.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/dfagen/examples/ex2_robot.c')
-rw-r--r--tools/dfagen/examples/ex2_robot.c39
1 files changed, 39 insertions, 0 deletions
diff --git a/tools/dfagen/examples/ex2_robot.c b/tools/dfagen/examples/ex2_robot.c
new file mode 100644
index 00000000..93281f1a
--- /dev/null
+++ b/tools/dfagen/examples/ex2_robot.c
@@ -0,0 +1,39 @@
+/* Example 2 extra code. */
+#include "ex2_robot.h"
+
+#include <stdio.h>
+
+int
+main (void)
+{
+ robot_t robot;
+ ex2_init (&robot);
+ robot.bottle = 3;
+ puts ("A glass:");
+ robot.ice = 1;
+ ex2_handle_event (&robot, EX2_EVENT_command);
+ ex2_handle_event (&robot, EX2_EVENT_ice_dropped);
+ ex2_handle_event (&robot, EX2_EVENT_glass_filled);
+ puts ("Another glass:");
+ robot.ice = 0;
+ ex2_handle_event (&robot, EX2_EVENT_command);
+ ex2_handle_event (&robot, EX2_EVENT_glass_filled);
+ puts ("Yet another glass:");
+ robot.ice = 0;
+ ex2_handle_event (&robot, EX2_EVENT_command);
+ ex2_handle_event (&robot, EX2_EVENT_glass_filled);
+ puts ("There is no more liquid:");
+ robot.ice = 0;
+ ex2_handle_event (&robot, EX2_EVENT_command);
+ puts ("Replace bootle:");
+ ex2_handle_event (&robot, EX2_EVENT_replace_bottle);
+ puts ("Another glass:");
+ robot.ice = 1;
+ ex2_handle_event (&robot, EX2_EVENT_command);
+ puts ("Commands are ignore while the robot is fonctionning:");
+ ex2_handle_event (&robot, EX2_EVENT_command);
+ ex2_handle_event (&robot, EX2_EVENT_ice_dropped);
+ ex2_handle_event (&robot, EX2_EVENT_command);
+ ex2_handle_event (&robot, EX2_EVENT_glass_filled);
+ return 0;
+}