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







Zitieren


Lesezeichen