From 7bab8a86d4b36871c133207c8d2d677525714e50 Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Sun, 7 Apr 2013 01:37:29 +0200 Subject: digital/io-hub/src/common-cc: add follow asserv mode --- digital/io-hub/src/common-cc/asserv.cc | 19 +++++++++++++++++++ digital/io-hub/src/common-cc/asserv.hh | 4 ++++ 2 files changed, 23 insertions(+) diff --git a/digital/io-hub/src/common-cc/asserv.cc b/digital/io-hub/src/common-cc/asserv.cc index c216678f..505c2a6a 100644 --- a/digital/io-hub/src/common-cc/asserv.cc +++ b/digital/io-hub/src/common-cc/asserv.cc @@ -162,6 +162,25 @@ Asserv::push_wall (DirectionConsign direction_consign, int init_x, int init_y, send (buf, sizeof (buf)); } +void +Asserv::follow (DirectionConsign direction_consign) +{ + uint8_t buf[] = { 'o', + direction_consign, + }; + send (buf, sizeof (buf)); +} + +void +Asserv::follow_update (int16_t consign) +{ + uint8_t buf[] = { + ucoo::bytes_unpack (consign, 1), + ucoo::bytes_unpack (consign, 0), + }; + send (buf, sizeof (buf), I2cQueue::TRANSIENT); +} + void Asserv::set_speed (uint16_t linear_hi, uint16_t angular_hi, uint16_t linear_lo, uint16_t angular_lo) diff --git a/digital/io-hub/src/common-cc/asserv.hh b/digital/io-hub/src/common-cc/asserv.hh index 09f364f4..ea6f5ec4 100644 --- a/digital/io-hub/src/common-cc/asserv.hh +++ b/digital/io-hub/src/common-cc/asserv.hh @@ -79,6 +79,10 @@ class Asserv : public I2cQueue::Slave /// unchanged. void push_wall (DirectionConsign direction_consign, int init_x, int init_y, int16_t init_a); + /// Follow external consign. + void follow (DirectionConsign direction_consign); + /// Update external consign. + void follow_update (int16_t consign); /// Set movement speeds. void set_speed (uint16_t linear_hi, uint16_t angular_hi, uint16_t linear_lo, uint16_t angular_lo); -- cgit v1.2.3