summaryrefslogtreecommitdiffhomepage
path: root/digital/io-hub
diff options
context:
space:
mode:
Diffstat (limited to 'digital/io-hub')
-rw-r--r--digital/io-hub/src/apbirthday/robot.cc21
-rw-r--r--digital/io-hub/src/common-cc/beacon.cc2
2 files changed, 10 insertions, 13 deletions
diff --git a/digital/io-hub/src/apbirthday/robot.cc b/digital/io-hub/src/apbirthday/robot.cc
index 4b822f1a..ca9d6a64 100644
--- a/digital/io-hub/src/apbirthday/robot.cc
+++ b/digital/io-hub/src/apbirthday/robot.cc
@@ -112,24 +112,21 @@ Robot::main_loop ()
// Wait until next cycle.
hardware.wait ();
// Update IO modules.
- if (zb_i2c_queue_.sync ())
- {
- Position robot_pos;
- asserv.get_position (robot_pos);
- beacon.send_position (robot_pos.v);
- }
- if (usdist_control_.update ())
- {
- Position robot_pos;
- asserv.get_position (robot_pos);
- radar_.update (robot_pos, obstacles);
- }
obstacles.update ();
pressure.update ();
jack.update ();
outputs_set_.update ();
// Handle communications.
bool sync = main_i2c_queue_.sync ();
+ zb_i2c_queue_.sync ();
+ Position robot_pos;
+ asserv.get_position (robot_pos);
+ beacon.send_position (robot_pos.v);
+ // Look for obstacles.
+ if (usdist_control_.update ())
+ {
+ radar_.update (robot_pos, obstacles);
+ }
// Handle events if synchronised.
if (sync && fsm_debug_state_ != FSM_DEBUG_STOP)
{
diff --git a/digital/io-hub/src/common-cc/beacon.cc b/digital/io-hub/src/common-cc/beacon.cc
index 4a1b0f02..64d0ac88 100644
--- a/digital/io-hub/src/common-cc/beacon.cc
+++ b/digital/io-hub/src/common-cc/beacon.cc
@@ -59,6 +59,6 @@ Beacon::send_position (const vect_t &pos)
ucoo::bytes_unpack (pos.y, 1),
ucoo::bytes_unpack (pos.y, 0),
};
- send (buf, sizeof (buf));
+ send (buf, sizeof (buf), I2cQueue::TRANSIENT);
}