From fa4c74fdce4aecd1cc5cc1de83ff50b7ebc778dd Mon Sep 17 00:00:00 2001
From: ddebernardde <diego.debernard@student.uclouvain.be>
Date: Wed, 9 Nov 2022 05:11:24 +0100
Subject: [PATCH] uart ok

---
 uart.cpp | 42 ++++++++++++++++++------------------------
 1 file changed, 18 insertions(+), 24 deletions(-)

diff --git a/uart.cpp b/uart.cpp
index 098e9c6..8846998 100644
--- a/uart.cpp
+++ b/uart.cpp
@@ -5,6 +5,7 @@
 #include <wiringSerial.h>
 #include <wiringPi.h>
 
+#include <conio.h>
 #include <iostream>
 
 using namespace std;
@@ -15,6 +16,9 @@ const char TURN_OFF[] = "Turn Led Off";
 int main(int argc, char const *argv[])
 {
     int fd = serialOpen("/dev/ttyS0", 9600);
+    
+    char buffer[26];
+    int i = 0;
 
     if (fd == -1 || wiringPiSetup() == -1) {
         printf("UART PAS OK\n");
@@ -22,34 +26,24 @@ int main(int argc, char const *argv[])
     }
 
     serialPrintf(fd, TURN_ON);
-    delay(1000);
-    int response;
-
-    while (true) {
-        if (serialDataAvail(fd)) {
-            response = serialGetchar(fd);
-            break;
-        }
-    }
     
-    cout << response << endl;
-    printf("%c\n", response);
+    while (serialDataAvail(fd) > -1) {
+        buffer[i++] = serialGetchar(fd);
+        if (i == 25) break;
+    }
+    buffer[i] = '\0';
+    printf("%s\n", buffer);
+
+    delay(2000);
     serialPrintf(fd, TURN_OFF);
+    
+    while (serialDataAvail(fd) != 26) { }
 
-    delay(200);    
-
-    while (true) {
-        if (serialDataAvail(fd) > 0) {
-            cout << serialDataAvail(fd) << endl;
-            for (int i = 0; i < serialDataAvail(fd); i++)
-            {
-                response = serialGetchar(fd);
-            }
-            break;
-        }
+    for (i = 0; i < 26; i++)
+    {
+        buffer[i] = serialGetchar(fd);
     }
-
-    cout << response << endl;
+    cout << buffer << endl;    
 
     serialClose(fd);
     
-- 
GitLab