summaryrefslogtreecommitdiff
path: root/n/asserv/src/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'n/asserv/src/main.c')
-rw-r--r--n/asserv/src/main.c27
1 files changed, 26 insertions, 1 deletions
diff --git a/n/asserv/src/main.c b/n/asserv/src/main.c
index fe99acf..e6c2303 100644
--- a/n/asserv/src/main.c
+++ b/n/asserv/src/main.c
@@ -339,6 +339,11 @@ proto_callback (uint8_t cmd, uint8_t size, uint8_t *args)
{
switch (c (args[0], size))
{
+ case c ('x', 1):
+ postrack_x = 0;
+ postrack_y = 0;
+ postrack_a = 0;
+ break;
case c ('x', 5):
/* Set current x position. */
postrack_x = v8_to_v32 (args[1], args[2], args[3], args[4]);
@@ -368,8 +373,14 @@ proto_callback (uint8_t cmd, uint8_t size, uint8_t *args)
case c ('d', 3):
speed_kd = v8_to_v16 (args[1], args[2]);
break;
+ case c ('E', 3):
+ speed_e_sat = v8_to_v16 (args[1], args[2]);
+ break;
case c ('I', 3):
- speed_int_max = v8_to_v16 (args[1], args[2]);
+ speed_int_sat = v8_to_v16 (args[1], args[2]);
+ break;
+ case c ('s', 2):
+ speed_ds = args[1];
break;
case c ('a', 2):
/* Set acceleration. */
@@ -395,6 +406,20 @@ proto_callback (uint8_t cmd, uint8_t size, uint8_t *args)
else
eeprom_clear_params ();
break;
+ case c ('P', 1):
+ /* Print current settings. */
+ proto_send1b ('E', EEPROM_KEY);
+ proto_send1w ('f', postrack_footing);
+ proto_send1b ('a', speed_acc);
+ proto_send1b ('m', speed_max);
+ proto_send1w ('p', speed_kp);
+ proto_send1w ('i', speed_ki);
+ proto_send1w ('d', speed_kd);
+ proto_send1w ('E', speed_e_sat);
+ proto_send1w ('I', speed_int_sat);
+ proto_send1b ('s', speed_ds);
+ proto_send1b ('w', pwm_dir);
+ break;
default:
proto_send0 ('?');
return;