Practical Robotics Modular Robot Library

Dependents:   ModularRobot

Revision:
5:6da8daaeb9f7
Parent:
4:c2e933d53bea
--- a/serialcomms.cpp	Mon Jan 02 15:17:22 2017 +0000
+++ b/serialcomms.cpp	Mon Jan 02 22:56:34 2017 +0000
@@ -7,6 +7,7 @@
 char pc_command_message[3];
 char allow_commands = 1;
 Timeout pc_command_timeout;
+char acknowledge_messages = 0;
 
 void SerialComms::setup_serial_interfaces()
 {
@@ -30,7 +31,6 @@
     float dec;
     float l_dec;
     float r_dec;
-    int irp_delay;
     char colour_string[7];
     char ret_message[50];
     char send_message = 0;
@@ -124,32 +124,27 @@
                 motors.set_right_motor_speed(r_dec);
             } else command_status = 2;
             break;
-        
-        // LED COMMANDS
         case 10:
-            strcpy(command,"SET LED STATES");
-            sprintf(subcommand,"G:%s R:%s",_char_to_binary_char(message[1]), _char_to_binary_char(message[2]));
+            strcpy(command,"SET PWM PERIOD");
+            int period = message[1] * 256 + message[2];
+            if(period < 10) period == 10;
+            sprintf(subcommand,"%d uS",period);
             if(allow_commands) {
                 command_status = 1;
-            //    led.set_leds(message[1],message[2]);
+                motors.set_pwm_period(period);
             } else command_status = 2;
             break;
-        case 11:
-            strcpy(command,"SET RED LED STATES");
-            sprintf(subcommand,"%s",_char_to_binary_char(message[1]));
+        // LED COMMANDS
+        case 12:
+            strcpy(command,"SET LED ANIMATION");
+            sprintf(subcommand,"M:%d S:%d",message[1], message[2]);
             if(allow_commands) {
                 command_status = 1;
-             //   led.set_red_leds(message[1]);
+                led.start_animation(message[1],message[2]);
             } else command_status = 2;
             break;
-        case 12:
-            strcpy(command,"SET GREEN LED STATES");
-            sprintf(subcommand,"%s",_char_to_binary_char(message[1]));
-            if(allow_commands) {
-                command_status = 1;
-             //   led.set_green_leds(message[1]);
-            } else command_status = 2;
-            break;
+  
+
         case 13:
             strcpy(command,"SET LED");
             switch(message[2]) {
@@ -305,6 +300,7 @@
         robot.debug("Received %s request message: %s %s [%02x%02x%02x]\nReply: %s [%d ch]\n",iface, command, subcommand,message[0],message[1],message[2],ret_message,message_length);
         }
     } else {
+        if(acknowledge_messages){
         switch(interface) {
             case 0:
                 pc.printf("%c%c",ACKNOWLEDGE_MESSAGE_BYTE,command_status);
@@ -313,6 +309,7 @@
                 bt.printf("%c%c",ACKNOWLEDGE_MESSAGE_BYTE,command_status);
                 break;
         }
+        }
         switch(command_status) {
             case 0:
                 robot.debug("Unrecognised %s command message [%02x%02x%02x]\n",iface,message[0],message[1],message[2]);