Problem String zu int umzuwandeln

Hallo,

ich habe leider ein Problem mit ein String zur einer Zahl (int)umzuwanden.
ich bekomme über die Serielle Schnittstelle folgen String z,B „.SV22,12“
(.SVx,y wo x und y ein Wert von 1 bis 768 haben kann)

#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

String Zahl1A;
String Zahl2A;
int Zahl1B = 0;
int Zahl2B = 0;

// Einlesen von der Serial Schnittstelle
char character;
while(Serial.available()) {
character = Serial.read();
RX_Read.concat(character);
}

// Auswertung von der Serial Schnittstelle
if (RX_Read != “”) {
if (RX_Read.substring(0,3) == “.SV”) {
Zahl1A = RX_Read.substring(RX_Read.indexOf(‘V’)+1,RX_Read.indexOf(’,’));
Zahl2A = RX_Read.substring(RX_Read.indexOf(’,’)+1);
}

Bei “sscanf(Zahl1A,”%d",&Zahl1B);" bekomme ich die Fehler Meldung

error: cannot convert ‘String’ to ‘const char*’ for argument ‘1’ to ‘int sscanf(const char*, const char*, …)’

das gleiche bekomme ich auch mit “Zahl1B = atoi(Zahl1A);”

error: cannot convert ‘String’ to ‘const char*’ for argument ‘1’ to ‘int atoi(const char*)’

Wenn ich mir den String ausgeben lasse mit
printlm("Zahl 1 ist : " + Zahl1A);
println("Zahl 2 ist : " + Zahl2A);
bekomme ich auch “Zahl 1 ist : 22” und “Zahl 2 ist : 12” ausgegeben

aber ich schaffe es nicht die Strings in zahlen umzuwandeln.

Über eine hilfe würde ich mich sehr freuen,
Vielen Dank auch im Voraus.

Ich würde mir überlegen ob ich überhaut die ganzen String-Funktionalitäten nutzen würde. Das braucht sicher viel Ressourcen und die String-Klasse hat glaube auch ein paar Bugs. Ließ doch einfach Zeichen für Zeichen ein. Die ersten drei kannst du verwerfen. Dann machst du eine while-Schleife bis das Komma kommt:

while(character != ','){
Zahl1 = Zahl1*10+int(character);
character = Serial.read();
}

Dann brauchst du nur noch die zweite Zahl einlesen. Wenn du noch ein paar ifs und whiles drumrum bastelst sollte es ganz gut funktionieren.

Ich würde den String gar nicht erst einlesen sondern direkt beim Empfang umwandel. Z.B. so: Flexible Sweep | Blinkenlight.