summaryrefslogtreecommitdiff
path: root/digital/io-hub/src/apbirthday/robot.cc
diff options
context:
space:
mode:
Diffstat (limited to 'digital/io-hub/src/apbirthday/robot.cc')
-rw-r--r--digital/io-hub/src/apbirthday/robot.cc16
1 files changed, 12 insertions, 4 deletions
diff --git a/digital/io-hub/src/apbirthday/robot.cc b/digital/io-hub/src/apbirthday/robot.cc
index 4464013e..83a9928d 100644
--- a/digital/io-hub/src/apbirthday/robot.cc
+++ b/digital/io-hub/src/apbirthday/robot.cc
@@ -46,19 +46,27 @@ Robot::main_loop ()
// Wait until next cycle.
hardware.wait ();
// Handle communications.
- main_i2c_queue_.sync ();
+ bool sync = main_i2c_queue_.sync ();
+ // Handle events if synchronised.
+ if (sync)
+ fsm_gen_event ();
// Handle commands.
dev_proto.accept ();
zb_proto.accept ();
usb_proto.accept ();
- // Handle events.
- fsm_gen_event ();
}
}
-void
+bool
Robot::fsm_gen_event ()
{
+ if (fsm_queue.poll ())
+ {
+ FsmQueue::Event event = fsm_queue.pop ();
+ if (ANGFSM_HANDLE_VAR (AI, event))
+ return true;
+ }
+ return false;
}
void