summaryrefslogtreecommitdiff
path: root/digital/asserv/src/asserv/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'digital/asserv/src/asserv/main.c')
-rw-r--r--digital/asserv/src/asserv/main.c53
1 files changed, 28 insertions, 25 deletions
diff --git a/digital/asserv/src/asserv/main.c b/digital/asserv/src/asserv/main.c
index 36cd2219..97d0b1c7 100644
--- a/digital/asserv/src/asserv/main.c
+++ b/digital/asserv/src/asserv/main.c
@@ -181,10 +181,10 @@ main_loop (void)
#endif
if (main_stat_speed && !--main_stat_speed_cpt)
{
- proto_sendb ('S', cs_main.speed_theta.cur >> 8,
- cs_main.speed_alpha.cur >> 8
- AUX_IF (, cs_aux[0].speed.cur >> 8,
- cs_aux[1].speed.cur >> 8));
+ proto_sendw ('S', cs_main.speed_theta.cur_f >> 8,
+ cs_main.speed_alpha.cur_f >> 8
+ AUX_IF (, cs_aux[0].speed.cur_f >> 8,
+ cs_aux[1].speed.cur_f >> 8));
main_stat_speed_cpt = main_stat_speed;
}
if (main_stat_pos && !--main_stat_pos_cpt)
@@ -327,21 +327,23 @@ proto_callback (uint8_t cmd, uint8_t size, uint8_t *args)
speed_control_set_speed (&cs_main.speed_alpha, 0);
control_state_set_mode (&cs_main.state, CS_MODE_SPEED_CONTROL, 0);
break;
- case c ('s', 2):
+ case c ('s', 4):
/* Set speed.
- * - b: theta speed.
- * - b: alpha speed. */
- speed_control_set_speed (&cs_main.speed_theta, args[0]);
- speed_control_set_speed (&cs_main.speed_alpha, args[1]);
+ * - w: theta speed.
+ * - w: alpha speed. */
+ speed_control_set_speed (&cs_main.speed_theta,
+ v8_to_v16 (args[0], args[1]));
+ speed_control_set_speed (&cs_main.speed_alpha,
+ v8_to_v16 (args[2], args[3]));
control_state_set_mode (&cs_main.state, CS_MODE_SPEED_CONTROL, 0);
break;
#if AC_ASSERV_AUX_NB
- case c ('S', 2):
+ case c ('S', 3):
/* Set auxiliary speed.
* - b: aux index.
- * - b: speed. */
+ * - w: speed. */
if (!auxp) { proto_send0 ('?'); return; }
- speed_control_set_speed (speed, args[1]);
+ speed_control_set_speed (speed, v8_to_v16 (args[1], args[2]));
control_state_set_mode (state, CS_MODE_SPEED_CONTROL, 0);
break;
#endif
@@ -484,18 +486,19 @@ proto_callback (uint8_t cmd, uint8_t size, uint8_t *args)
break;
aux_traj_goto_start (auxp, v8_to_v16 (args[1], args[2]));
break;
- case c ('y', 3):
+ case c ('Y', 4):
/* Auxiliary find zero.
* - b: aux index.
- * - b: speed.
+ * - w: speed.
* - b: sequence number. */
if (!auxp) { proto_send0 ('?'); return; }
- if (!seq_start (seq, args[2]))
+ if (!seq_start (seq, args[3]))
break;
if (args[0] == 0)
- aux_traj_find_limit_start (auxp, args[1]);
+ aux_traj_find_limit_start (auxp, v8_to_v16 (args[1], args[2]));
else
- aux_traj_find_zero_reverse_start (auxp, args[1]);
+ aux_traj_find_zero_reverse_start (auxp,
+ v8_to_v16 (args[1], args[2]));
break;
case c ('a', 3):
/* Set all acknoledge.
@@ -634,16 +637,16 @@ proto_callback (uint8_t cmd, uint8_t size, uint8_t *args)
* - b: index.
* - w: acceleration. */
if (!speed) { proto_send0 ('?'); return; }
- speed->acc = v8_to_v16 (args[2], args[3]);
+ speed->acc_f = v8_to_v16 (args[2], args[3]);
break;
- case c ('s', 4):
+ case c ('s', 6):
/* Set maximum and slow speed.
* - b: index.
- * - b: max speed.
- * - b: slow speed. */
+ * - w: max speed.
+ * - w: slow speed. */
if (!speed) { proto_send0 ('?'); return; }
- speed->max = args[2];
- speed->slow = args[3];
+ speed->max = v8_to_v16 (args[2], args[3]);
+ speed->slow = v8_to_v16 (args[4], args[5]);
break;
case c ('p', 4):
/* Set proportional coefficient.
@@ -746,8 +749,8 @@ proto_callback (uint8_t cmd, uint8_t size, uint8_t *args)
* - b: index. */
if (!pos) { proto_send0 ('?'); return; }
proto_send2b ('E', EEPROM_KEY, eeprom_loaded);
- proto_send1w ('a', speed->acc);
- proto_send2b ('s', speed->max, speed->slow);
+ proto_send1w ('a', speed->acc_f);
+ proto_send2w ('s', speed->max, speed->slow);
proto_send3w ('b', bd->error_limit, bd->speed_limit,
bd->counter_limit);
proto_send1w ('p', pos->kp);