summaryrefslogtreecommitdiff
path: root/digital/asserv/src/asserv/main.c
diff options
context:
space:
mode:
authorNicolas Schodet2008-04-20 21:29:29 +0200
committerNicolas Schodet2008-04-20 21:29:29 +0200
commitd47046315caff4ce01b3ea39126b476e56ab3703 (patch)
treea86e48bdbdf9806f71e7cb8a82102194bf7a4ac7 /digital/asserv/src/asserv/main.c
parent44b4f0058b31b32bfa26746f0467cf353b373d3b (diff)
* digital/asserv/src/asserv:
- added absolute auxiliary motor position command.
Diffstat (limited to 'digital/asserv/src/asserv/main.c')
-rw-r--r--digital/asserv/src/asserv/main.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/digital/asserv/src/asserv/main.c b/digital/asserv/src/asserv/main.c
index a8d40b08..8be5373f 100644
--- a/digital/asserv/src/asserv/main.c
+++ b/digital/asserv/src/asserv/main.c
@@ -40,6 +40,7 @@
#include "speed.h"
#include "postrack.h"
#include "traj.h"
+#include "aux.h"
#include "twi_proto.h"
#include "eeprom.h"
@@ -132,6 +133,7 @@ main_loop (void)
main_timer[2] = timer_read ();
/* Compute absolute position. */
postrack_update ();
+ aux_pos_update ();
/* Compute trajectory. */
if (state_main.mode >= MODE_TRAJ)
traj_update ();
@@ -160,7 +162,7 @@ main_loop (void)
}
if (main_stat_aux_pos && !--main_stat_aux_pos_cpt)
{
- proto_send1w ('Z', pos_aux0.cur);
+ proto_send1w ('Y', aux0.pos);
main_stat_aux_pos_cpt = main_stat_aux_pos;
}
if (main_stat_speed && !--main_stat_speed_cpt)
@@ -383,6 +385,14 @@ proto_callback (uint8_t cmd, uint8_t size, uint8_t *args)
v8_to_v32 (0, args[8], args[9], 0),
args[10]);
break;
+ case c ('y', 3):
+ /* Auxiliary go to position.
+ * - w: pos, i16.
+ * - b: sequence number. */
+ if (args[2] == state_aux0.sequence)
+ break;
+ aux_traj_goto_start (v8_to_v16 (args[0], args[1]), args[2]);
+ break;
case c ('a', 2):
/* Set both acknoledge.
* - b: main ack sequence number.
@@ -408,7 +418,7 @@ proto_callback (uint8_t cmd, uint8_t size, uint8_t *args)
/* Position stats. */
main_stat_postrack_cpt = main_stat_postrack = args[0];
break;
- case c ('Z', 1):
+ case c ('Y', 1):
/* Auxiliary position stats. */
main_stat_aux_pos_cpt = main_stat_aux_pos = args[0];
break;