From 7fca10fe0e7a708bc2bfe05990b1ef01d2c64538 Mon Sep 17 00:00:00 2001 From: bap Date: Thu, 28 Mar 2024 17:35:40 +0100 Subject: [PATCH] feur4 --- main.cpp | 69 +++++++++++++++++++++++++++++++++++++++++++------------- main.h | 4 ++++ 2 files changed, 57 insertions(+), 16 deletions(-) diff --git a/main.cpp b/main.cpp index 335a7dc..ab27ab2 100644 --- a/main.cpp +++ b/main.cpp @@ -1,28 +1,65 @@ -#include "main.h" +#include +#include +#include "serialib.h" +#define SERIAL_PORT "/dev/ttyACM0" +#define MAX_MESSAGE_LEN 64 +#define BAUDS 115200 //vitesse des données (bit/sec) +#define TIME_OUT 2000 +using namespace std; -void read_from_arduino(char * message_output){ - serialib serial; - char errorOpening = serial.openDevice(SERIAL_PORT, BAUDS); - if (errorOpening!=1) exit(errorOpening); - serial.readString(message_output, '\n', MAX_MESSAGE_LEN, TIME_OUT); - serial.closeDevice(); +void my_delay(int i) /*Pause l'application pour i seconds*/ +{ + clock_t start,end; + start=clock(); + while(((end=clock())-start)<=i*CLOCKS_PER_SEC); } -void write_2_arduino(char* message){ +void read_from_arduino(serialib* serial, char * message_output, int nbLines2Rcv){ + strncpy(message_output, "", strlen(message_output)); + char buffer[MAX_MESSAGE_LEN+1] = {0}; + while(nbLines2Rcv-- != 0){ + serial->readString(buffer, '\n', MAX_MESSAGE_LEN, TIME_OUT); + strcat(message_output, buffer); + strncpy(buffer, "", strlen(buffer)); + } +} + +void write_2_arduino(serialib* serial, char* message){ + char myString[MAX_MESSAGE_LEN] = {0}; + strcpy(myString, message); + myString[strlen(myString)] = '\n'; + serial->writeString(myString); +} + +serialib init_serial(){ serialib serial; char errorOpening = serial.openDevice(SERIAL_PORT, BAUDS); if (errorOpening!=1) exit(errorOpening); - serial.writeString(message); - serial.closeDevice(); + return serial; } int main() { - char buffer[MAX_MESSAGE_LEN]; - cout << "Message to send: "; - cin >> buffer; - write_2_arduino(buffer); - read_from_arduino(buffer); - cout << buffer; + char buffer[MAX_MESSAGE_LEN] = {0}; + int nbLines = 2; + serialib serial = init_serial(); + while (1){ + cout << ">> "; + cin >> buffer; + write_2_arduino(&serial, buffer); + read_from_arduino(&serial, buffer, nbLines); + cout << buffer << endl; + //my_delay(nbLines*TIME_OUT); + }/* + write_2_arduino(&serial, "S 1500 500 0"); + read_from_arduino(&serial, buffer, nbLines); + cout << buffer << endl; + write_2_arduino(&serial, "V 200"); + read_from_arduino(&serial, buffer, nbLines); + cout << buffer << endl; + write_2_arduino(&serial, "G 500 1000"); + read_from_arduino(&serial, buffer, nbLines); + cout << buffer << endl;*/ + serial.closeDevice(); return 0; } diff --git a/main.h b/main.h index a0a308f..b93deeb 100644 --- a/main.h +++ b/main.h @@ -11,4 +11,8 @@ using namespace std; +void read_from_arduino(char * message_output); + +void write_2_arduino(char* message); + #endif