[tuxdroid-svn] r844 - daemon/trunk firmware/tuxdefs
Status: Beta
Brought to you by:
ks156
From: Paul_R <c2m...@c2...> - 2008-01-11 14:39:20
|
Author: Paul_R Date: 2008-01-11 15:39:01 +0100 (Fri, 11 Jan 2008) New Revision: 844 Modified: daemon/trunk/movements.c firmware/tuxdefs/defines.h Log: * Added a new final position (FP_STOP) to stop the movements. Modified: daemon/trunk/movements.c =================================================================== --- daemon/trunk/movements.c 2008-01-11 13:06:55 UTC (rev 843) +++ daemon/trunk/movements.c 2008-01-11 14:39:01 UTC (rev 844) @@ -130,6 +130,18 @@ single_movement(motor, final_state); break; } + case (MOT_SPIN_R): + { + if (!(value) && final_state == FP_STOP) + single_movement(motor, final_state); + break; + } + case (MOT_SPIN_L): + { + if (!(value) && final_state == FP_STOP) + single_movement(motor, final_state); + break; + } } return value; } @@ -174,24 +186,38 @@ { case (MOT_EYES): if (final_state == FP_OPEN) - send_usb_tux_cmd(OPEN_EYES_CMD, 0, 0, 0); + send_usb_tux_cmd(OPEN_EYES_CMD, 0, 0, 0); else if (final_state == FP_CLOSE) send_usb_tux_cmd(CLOSE_EYES_CMD, 0, 0, 0); + else if (final_state == FP_STOP) + send_usb_tux_cmd(STOP_EYES_CMD, 0, 0, 0); break; case (MOT_MOUTH): if (final_state == FP_OPEN) - send_usb_tux_cmd(OPEN_MOUTH_CMD, 0, 0, 0); + send_usb_tux_cmd(OPEN_MOUTH_CMD, 0, 0, 0); else if (final_state == FP_CLOSE) send_usb_tux_cmd(CLOSE_MOUTH_CMD, 0, 0, 0); + else if (final_state == FP_STOP) + send_usb_tux_cmd(STOP_MOUTH_CMD, 0, 0, 0); break; case (MOT_FLIPPERS): if (final_state == FP_UP) - send_usb_tux_cmd(RAISE_WINGS_CMD, 0, 0, 0); + send_usb_tux_cmd(RAISE_WINGS_CMD, 0, 0, 0); else if (final_state == FP_DOWN) send_usb_tux_cmd(LOWER_WINGS_CMD, 0, 0, 0); + else if (final_state == FP_STOP) + send_usb_tux_cmd(STOP_WINGS_CMD, 0, 0, 0); break; + case (MOT_SPIN_L): + if (final_state == FP_STOP) + send_usb_tux_cmd(STOP_SPIN_CMD, 0, 0, 0); + break; + case (MOT_SPIN_R): + if (final_state == FP_STOP) + send_usb_tux_cmd(STOP_SPIN_CMD, 0, 0, 0); + break; } } @@ -228,6 +254,10 @@ int ack, value; char type = 0; + if (motor == (MOT_SPIN_L) || motor == (MOT_SPIN_R)) + if (final_state != FP_STOP) + final_state = FP_UNDEFINED; + /* * Refresh has the maximum priority. If it's set, only the command to * refresh the PWM value is sent to Tux Modified: firmware/tuxdefs/defines.h =================================================================== --- firmware/tuxdefs/defines.h 2008-01-11 13:06:55 UTC (rev 843) +++ firmware/tuxdefs/defines.h 2008-01-11 14:39:01 UTC (rev 844) @@ -223,6 +223,7 @@ FP_UP = 1, FP_CLOSE = 2, FP_DOWN = 2, + FP_STOP = 3, } MOT_FINAL_POS_t; /** |