updat:
ich habe jetzt die obige Funktion
void __fastcall TForm1::ComPort1Exception()
wieder komplett rausgenommen, sie hat letztendlich die Stabilität nicht deutlich verbessert.
Aber ich habe die Routinen fürs manuelle Verbinden leicht abgeändert, jetzt lässt sich nach USB-Unterbrechung die Verbindung ohne Störung wiederherstellen, wenn sie existiert, und es blockiert nichts mehr, wenn sie nach wie vor weg ist:
Code:
void __fastcall TForm1::Button1Click(TObject *Sender) // Button press: "Connect"
{
ComPort1->ShowSetupDialog();
try {ComPort1->Open();}
catch(...) { };
if(ComPort1->Connected ) {
// init program variables and widget states
}
}
void __fastcall TForm1::Button2Click(TObject *Sender) // Button press: "Disconnect"
{
if(ComPort1->Connected ) {
// try to send pin-stop msg to Arduino
strcat(msgcstr, "&_ALLPINS_=0;\n" );
ComPort1->WriteStr(msgcstr);
Sleep(100); // safety sleep
try { ComPort1->Close(); }
catch (...) { }
}
}
aktuelle, recht stabile und einigermaßen brauchbare Version:
https://github.com/dsyleixa/Borland-...rduinoCOM_RxTx
Lesezeichen