Piccolo

Dependencies:   mbed

Fork of 02_LAB_serial_protocol by ferney alberto beltran molina

Revision:
0:55d11eeb0faf
Child:
1:0bcd96e56022
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Wed Apr 26 18:04:57 2017 +0000
@@ -0,0 +1,83 @@
+#include "mbed.h"
+#include "mbed.h"
+
+Serial command(USBTX, USBRX);
+
+#define DEBUG 1
+
+//*****************************************************************************
+//  COMANDO  MOVER MOTOR
+//  |POS 1|POS 2|POS 3|POS 4| POS 5|
+//  |  <  | #M  |  ,  | #°G |  >   |
+//
+// #M  -> indica el motor que se va a mover
+// #°G -> indica los grados a mover del  servomotor 
+// <,> -> inicio, separdor  y fin de comando 
+//  el inicio de comando no se almacena en el buffer
+//*****************************************************************************
+
+// VARIABLES PARA DEFINIR  EL  COMMANDO
+#define BUFF_SIZE 4
+#define COMM_NUM_MOTOR 0
+#define COMM_SEPARADOR 1
+#define COMM_GRADOS_MOTOR  2
+
+
+uint8_t buffer_command[BUFF_SIZE]={0,0,0,0};
+
+// TODO : TIMEOUT UART SERIAL
+void Read_command()
+{
+    for (uint8_t i=0; i<BUFF_SIZE;i++)
+        buffer_command[i]=command.getc();
+    
+}
+
+void echo_command()
+{
+    for (uint8_t i=0; i<BUFF_SIZE;i++)
+        command.putc(buffer_command[i]);
+      
+}
+
+
+void check_command()
+{
+       if (buffer_command[BUFF_SIZE-1]== '>' && buffer_command[COMM_SEPARADOR]==','){
+        
+        #if DEBUG
+            command.printf("Mover Motor:");
+            command.putc(buffer_command[COMM_NUM_MOTOR]+0x30);
+            command.printf("->");
+            command.putc(buffer_command[COMM_GRADOS_MOTOR]);
+            command.printf(" grados \n");  
+        #endif
+        }else{ 
+        #if DEBUG
+            command.printf("ERROR COMANDO -> ");
+            echo_command();
+        #endif
+        
+        }
+     
+}
+int main() {
+    #if DEBUG
+    command.printf("inicio con debug\n");
+    #else
+    command.printf("inicio sin debug\n");
+    #endif
+    uint8_t val;
+    while(1){
+        val=command.getc();
+        if (val== '<'){
+            Read_command();
+            #if DEBUG
+            echo_command();
+            #endif
+            check_command();
+            
+            }
+    }
+}
+