From fc7ab6b1f83c25993b1f6672312a99d0046eee57 Mon Sep 17 00:00:00 2001
From: RicardoEA <ricardo.ercoli@fing.edu.uy>
Date: Tue, 24 Jan 2023 22:50:17 -0300
Subject: [PATCH] Send and receive one float via UART

---
 Robotito/include/control.h     |  1 +
 Robotito/src/control/control.c | 13 ++++++-------
 Robotito/src/main.c            |  3 +--
 3 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/Robotito/include/control.h b/Robotito/include/control.h
index 1168f0c..29116c8 100644
--- a/Robotito/include/control.h
+++ b/Robotito/include/control.h
@@ -87,6 +87,7 @@ typedef struct {
 
 static servo_t motors[NMOTORS];
 static odom_t odometry;
+static float float_buffer[6];
 
 esp_err_t omni_init();
 
diff --git a/Robotito/src/control/control.c b/Robotito/src/control/control.c
index 4247566..e615f99 100644
--- a/Robotito/src/control/control.c
+++ b/Robotito/src/control/control.c
@@ -121,20 +121,19 @@ static void callback_odometry(){
     //char* Txdata = (char*) malloc(100);
     //sprintf (Txdata, "Hello world index \r\n");
     //uart_write_bytes(UART_NUM_2, Txdata, strlen(Txdata));
-    float float_buffer[6];
     //float_buffer = o;
-    float_buffer[0] = o->x;
+    float_buffer[0] = PI;
     float_buffer[1] = o->x_dot;
     float_buffer[2] = o->y;
     float_buffer[3] = o->y_dot;
     float_buffer[4] = o->phi;
     float_buffer[5] = o->phi_dot;
     uart_write_bytes(UART_NUM_2, &float_buffer[0], sizeof(float));
-    uart_write_bytes(UART_NUM_2, &float_buffer[1], sizeof(float));
-    uart_write_bytes(UART_NUM_2, &float_buffer[2], sizeof(float));
-    uart_write_bytes(UART_NUM_2, &float_buffer[3], sizeof(float));
-    uart_write_bytes(UART_NUM_2, &float_buffer[4], sizeof(float));
-    uart_write_bytes(UART_NUM_2, &float_buffer[5], sizeof(float));
+    // uart_write_bytes(UART_NUM_2, &float_buffer[1], sizeof(float));
+    // uart_write_bytes(UART_NUM_2, &float_buffer[2], sizeof(float));
+    // uart_write_bytes(UART_NUM_2, &float_buffer[3], sizeof(float));
+    // uart_write_bytes(UART_NUM_2, &float_buffer[4], sizeof(float));
+    // uart_write_bytes(UART_NUM_2, &float_buffer[5], sizeof(float));
     free(v);
 }
 
diff --git a/Robotito/src/main.c b/Robotito/src/main.c
index 1eda5df..37eb3b8 100644
--- a/Robotito/src/main.c
+++ b/Robotito/src/main.c
@@ -50,7 +50,6 @@ static void uart_task(void *pvParameters)
                 len = uart_read_bytes(UART_NUM, data, BUF_SIZE, portMAX_DELAY);
                 if (len == BUF_SIZE){
                     memcpy(&fdata, data , sizeof(fdata));
-                    printf("%s \n",data);
                     for (int i = 0; i < FLOAT_BUF_SIZE; i++)
                     {
                         printf("El dato %d en float es: %f \n",i, fdata[i]);    
@@ -83,7 +82,7 @@ static void init_uart(void)
 
     uart_set_pin(UART_NUM, 5, 4, UART_PIN_NO_CHANGE, UART_PIN_NO_CHANGE);
 
-    uart_driver_install(UART_NUM, BUF_SIZE*2, BUF_SIZE*2, 5, &uart_queue, 0);
+    uart_driver_install(UART_NUM, 1024, 1024, 5, &uart_queue, 0);
     xTaskCreate(uart_task, "uart_task", TASK_MEMORY, NULL, 5, NULL);
 }
 
-- 
GitLab