ich habe ein kleines Problem und weiß nicht weiter.....
Ich sende dem Arduino einen String per Telnet.
Diese will ich zerlegen::
byte Sp =(byte) InStr.substring(2,4).toInt();
byte Zu =(byte) InStr.substring(4,6).toInt();
byte Be =(byte) InStr.substring(6,8).toInt();
unsigned long ID = atol(InStr.substring(8));
Leider funktioniert das mit dem unsigned long nicht.....Hat jemand einen Tip wie man das macht?
Das ist aber für C Strings gedacht (also Null-terminierte char Arrays)! Nicht für die schrottige Arduino String Klasse. Das sind zwei verschiedene Dinge. Du kannst kein String Objekt an strtoul() oder atol() übergeben. Also am besten gleich C Strings verwenden. Oder c_str() wenn es unbedingt die String Klasse sein muss:
C Strings kann man schön und sehr speichersparend mit strtok() entlang eines Delimiters splitten. Oder du da anscheinend die Länge genau kennst, einfach etwas Zeiger-Arithmetik verwenden.
z.B.: