Hallo SlyD,
also mein Programm für die M256 ist nichts anderes als das Beispielprogramm 12 WIFI_Remonte_2 mit einigen Erweiterungen für meinen Roboterarm, die aber nichts an der Funktion ändern. Das sieht so aus:
Code:
//**** Roboterarm fernsteuern ******************************************
// Arm rechtsdrehen
else if (strcmp(receiveBuffer_WIFI,"ar")==0)
{
writeString_P_WIFI("\nArm rechts drehen!\n");
ARM_DREHEN_RE();
}
// Arm links drehen
else if(strcmp(receiveBuffer_WIFI, "al")==0)
{
writeString_P_WIFI("\nArm links drehen!\n");
ARM_DREHEN_LI();
}
// Arm in Mittelstellung drehen
else if(strcmp(receiveBuffer_WIFI, "a0")==0)
{
writeString_P_WIFI("\nArm in Mittelstellung drehen!\n");
ARM_DREHEN_OO();
}
// Arm vor ---------------------------------------------------
else if(strcmp(receiveBuffer_WIFI, "av")==0)
{
writeString_P_WIFI("\nArm vor!\n");
ARM_VOR();
}
// Arm zurück ---------------------------------------------------
else if(strcmp(receiveBuffer_WIFI, "az")==0)
{
writeString_P_WIFI("\nArm zurück!\n");
ARM_ZURUECK();
}
// Arm heben ---------------------------------------------------
else if(strcmp(receiveBuffer_WIFI, "ah")==0)
{
writeString_P_WIFI("\nArm senken!\n");
ARM_HEBEN();
}
// Arm senken ---------------------------------------------------
else if(strcmp(receiveBuffer_WIFI, "as")==0)
{
writeString_P_WIFI("\nArm heben!\n");
ARM_SENKEN();
}
// Hand heben ---------------------------------------------------
else if(strcmp(receiveBuffer_WIFI, "hh")==0)
{
writeString_P_WIFI("\nHand heben!\n");
HAND_HEBEN();
}
// Hand senken ---------------------------------------------------
else if(strcmp(receiveBuffer_WIFI, "hs")==0)
{
writeString_P_WIFI("\nHand senken!\n");
HAND_SENKEN();
}
// Zange schießen -----------------------------------------------
else if(strcmp(receiveBuffer_WIFI, "zz")==0)
{
writeString_P_WIFI("\nZange zu!\n");
ZANGE_ZU();
}
// Zange öffnen -------------------------------------------------
else if(strcmp(receiveBuffer_WIFI, "za")==0)
{
writeString_P_WIFI("\nZange auf!\n");
ZANGE_AUF();
}
// Arm stoppen --------------------------------------------------
else if(strcmp(receiveBuffer_WIFI, "i")==0)
{
ARM_STOP();
}
// Licht an der Zange -------------------------------------------
else if(strcmp(receiveBuffer_WIFI, "zlo")==0)
{
ZLED_ON();
}
else if(strcmp(receiveBuffer_WIFI, "zlf")==0)
{
ZLED_OFF();
Das Ganze funktioniert vom Terminal des RobotLoader recht gut. Die Unterprogrgramme sind in einer extra Datei (Lib).
Jetzt wollte ich ein kleines Programm in Delphi schreiben mit dem ich unabhängig vom RobotLoader den Bot steuern kann.
Netzwerk Verbindung herstellen - klappt,
Programm im Bot starten - start_program\r\n ?
Modus wählen - cmd\r\n ?
und so weiter, das heißt für jede Funktion dann eine Schaltfläche. Gleichzeitig Empfang der Meldungen vom Bot und Auswerten, der Empfang der Meldungen und Daten auf dem PC im Delphi funktioniert übrigens.
Das M256 Modul empfängt den jeweiligen Kommandostring (LED WL1 binkt) , führt ihn aber nicht aus. Deshalb wollte ich wissen, wie der Kommandostring zusammengesetzt sein muss. Da ich das nicht hinbekam und nichts fand was mir weiterhalf, habe dazu auch bereits das Handbuch zum WIFI-Modul bemüht. In den command mode mit $$$ ohne carriage return, komme ich, aber nicht weiter. Es ist das einzige Kommando was tatsächlich ausgeführt wird.
Nun habe ich Delphi im verdacht, und mich bei denen umgeschaut. Noch bin ich mir nicht sicher, aber ich habe offenbar das Trennzeichen zum String so hinzugefügt, so dass es nicht erkannt wird.
Daher bin ich mit meiner Frage wohl auch am falschen Platz.
Bei der ganzen Spielerei habe ich jetzt auch irgendetwas verstellt, so dass ich mich nicht mehr mit dem Bot verbinden kann. Mit Ping erreiche ich den Bot, bekomme aber vom RobotLoader ein Time out. Also ersmal Fehleranalyse und Grundproblem lösen.
Aber trotzdem vielen Dank
Kai
Lesezeichen