Code for our FYDP -only one IMU works right now -RTOS is working

Dependencies:   mbed

Revision:
0:964eb6a2ef00
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bt_shell/shell/motor_fnt.h	Wed Mar 18 22:23:48 2015 +0000
@@ -0,0 +1,117 @@
+void move_fnt(int argc, char **argv)
+{
+    if(echo)
+        bt.printf("move command called\r\n");
+    
+    if(argc == 1){
+        if(echo){
+            bt.lock();
+            bt.printf("Usage: move [L_speed] [R_speed] [duration_ms]\r\n");
+            bt.unlock();
+        }
+    }else if(argc == 2){
+        if(echo){
+            bt.lock();
+            bt.printf("\r\nInvalid Parameters\r\n");
+            bt.unlock();
+        }
+    }else{
+        
+        int param[3];
+            
+        for(int i = 0; i < 2; i++)
+        {
+            param[i] = tinysh_atoxi(argv[i+1]);
+    
+            if(param[i] > 100)
+                param[i] = 100;
+            else if (param[i] < -100)
+                param[i] = -100;
+        }
+        
+        if(echo){
+            bt.lock();
+            bt.printf("Setting motor speeds Left = %d  Right = %d\r\n" ,param[0],param[1]);
+            bt.unlock();
+        }
+            
+        if(argc == 4)
+        {
+            param[2] = tinysh_atoxi(argv[3]);
+            if( param[2] > 0)
+            {
+                if(echo){
+                    bt.lock();
+                    bt.printf("moving duration: %sms\r\n", argv[3]);
+                    bt.unlock();
+                }
+
+                moveMotors(param[0],param[1],param[2]);
+            }
+            else
+            {
+                if(echo){
+                    bt.lock();                
+                    bt.printf("invalid duration: %sms\r\n", argv[3]);    
+                    bt.unlock();
+                }                
+            }
+        }
+        else
+        {   
+            *motors.Left = param[0];
+            *motors.Right = param[1];
+        }
+    }
+}
+
+//////////////////////////////////////////////////////////////////////////
+void stop_motors_fnt(int argc, char **argv)
+{
+    if(echo){
+        bt.lock();
+        bt.printf("motors stopped\r\n");
+        bt.unlock();
+    }
+    *motors.Left = 0;
+    *motors.Right = 0;
+}
+
+///////////////////////////////////////////////////////////////////////
+void flip_motors_fnt(int argc, char **argv)
+{
+    if(echo){
+        bt.lock();
+        bt.printf("L/R motors swapped\r\n");
+        bt.unlock();
+    }
+    motors.flip();    
+}
+
+void motor_scale_fnt(int argc, char **argv)
+{
+    if(echo){
+        bt.lock();
+        bt.printf("motor scale command called\r\n");
+        bt.unlock();
+    }
+    
+    if(argc == 2){
+        float val = atof(argv[1]);
+        
+        motors.Left->scale = val;
+        motors.Right->scale = val;                 
+        
+        if(echo){
+            bt.lock();
+            bt.printf("Scale set to %s\r\n", argv[1]); 
+            bt.unlock();
+        }
+    }else{
+        if(echo){
+            bt.lock();
+            bt.printf("Usage: scale [value]\r\n");
+            bt.unlock();
+        }
+    }
+}
\ No newline at end of file