/*
https://forum.arduino.cc/t/integer-to-string-conversion-for-bidirectional-uart-connection-nano-and-esp32-not-working/1263911
*/
typedef struct __attribute__((__packed__)) struct_message {
int16_t desiredMotor1Speed;
int16_t desiredMotor2Speed;
byte desiredDriveMode; // true = autonomous driving
} struct_message;
struct_message responseData;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Hello, ESP32!");
int motor1Speed = -300;
int motor2Speed = -50;
bool driveMode = true;
String dataInputString;
char dataOutputString[8];
sprintf(dataOutputString, "%03d,%03d,%d", (motor1Speed), (motor2Speed), driveMode);
Serial.println(dataOutputString);
dataInputString = dataOutputString;
responseData.desiredMotor1Speed = dataInputString.substring(0, dataInputString.indexOf(',')).toInt();
responseData.desiredMotor2Speed = dataInputString.substring(dataInputString.indexOf(',')+1, dataInputString.lastIndexOf(',')).toInt();
responseData.desiredDriveMode = (dataInputString.substring(dataInputString.lastIndexOf(',')+1).toInt() ==1); // Konvertiere den char in bool
Serial.println("After conversion");
Serial.print("Motor 1:");Serial.println(responseData.desiredMotor1Speed);
Serial.print("Motor 2:");Serial.println(responseData.desiredMotor2Speed);
Serial.print("Mode :");Serial.println(responseData.desiredDriveMode);
}
void loop() {
// put your main code here, to run repeatedly:
delay(10); // this speeds up the simulation
}