bin gerade dabei ein Programm zuschreiben das meine CNC-Fräse steuert. Dafür muss ich dein eingehenden G-Code aufbereiten. Leider hänge ich gerade dabei den String input in einen char* umzuwandeln.
Header
class Terminal {
public:
void inputCommand(String input);
boolean statusCommand(); //Gibt an ob der G-Codebefehl shcon abgearbeitet wurde
private:
// 0.N1, 1.G1, 2.X, 3.Y, 4.Z, 5.A, 6.I, 7.J, 8.F, 9.L Laser,
int commandSplit[12]; //Zwischenspeicherung des G-Codes
char *buf;
char *bufSplit;
char *convert;
int charArrayToInt(char* con);
boolean split(String input); //Bereitet den G-Code auf
};
#endif
cpp Datei
boolean Terminal::split(String input) {
Serial.println("Terminal oben"); //Nur zum Testen
input.toCharArray(buf, input.length());
Serial.println(buf);//Nur zum Testen
convert = strtok(buf, " ");
Serial.println(convert);//Nur zum Testen
wie wäre es mit c_str() - ist eine Methode der Klasse String.
Normal die richtige Wahl, aber das geht nicht mit strtok()
toCharArray() wird von Anfängern oft völlig unnötig verwendet, aber hier ist es richtig. Am besten ist aber von vorne herein auf die String Klasse verzichten
ich möchte eine ganz andere Lösung des Problems vorschlagen:
GRBL benutzen. Das ist eine fertig programmierte Firmware für Arduino zur Ansteuerung von CNC-Fräsen.
Wenn der Spaß genau darin liegt es selbst zu programmieren ist es natürlich etwas anderes.
Noch eine Alternative ist ESTLCAM. Das ist nicht nur eine für ihren Preis von 50 Euro verdammt leistungstarke
CAD-CAM-Software sondern zugleich eine Firmware läuft auch auf Arduino oder Arduino-Mega2560 UND PC-Programm zum ansteuern einer CNC-Fräse mit Endschaltern Spindel/Kühlmittel ein/aus und alles was man so braucht.