TComPort zeigt nix an
-
Hi. Ich habe auch heute die Komponente TComPort Beta 4 geladen und wollte diese mal testen, allerdings passiert bei der garnichts.
Ich habe eine Testkabel am Testlaptop. Dort läuft oc-console und ein externes Tool. oc-console sendet einen String über COM6(USB) und das externe Tool empfängt auch diesen über COM5(USB).
Ich habe in meiner VCL Form
ComPort;
ComLed;
ComComboBox für Port auswählen und einen TButton sowie TMemo für das empfangen des Textes.//--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { if (ComPort->Connected) ComPort->Close(); else ComPort->Open(); } //--------------------------------------------------------------------------- void __fastcall TForm1::ComPortRxChar(TObject *Sender, int Count) { AnsiString Str; ComPort->ReadStr(Str, Count); Memo->Text = Str; } //--------------------------------------------------------------------------- void __fastcall TForm1::ComPortError(TObject *Sender, TComErrors Errors) { ShowMessage("Error"); } //--------------------------------------------------------------------------- void __fastcall TForm1::ComPortAfterOpen(TObject *Sender) { Button1->Caption = "Close"; } //--------------------------------------------------------------------------- void __fastcall TForm1::ComPortAfterClose(TObject *Sender) { Button1->Caption = "Open"; } //---------------------------------------------------------------------------
Ich habe ComLed1 drin auf ComPort gesetzt und LedSignal auf "IsConn" gesetzt, aber die anzeige leuchtet nie auf.
Ich verstehe nicht wo der Fehler sein soll.Das externe Tool arbeitet so:
DCB dcbCommPort; Baudrate96->Checked = Config&0x0020; LabelConfig->Caption = AnsiString(Config); // OPEN THE COMM PORT. hComm = CreateFile("COM3", GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0); // IF THE PORT CANNOT BE OPENED, BAIL OUT. if(hComm == INVALID_HANDLE_VALUE) Application->Terminate(); // SET THE COMM TIMEOUTS. GetCommTimeouts(hComm,&ctmoOld); ctmoNew.ReadTotalTimeoutConstant = 100; ctmoNew.ReadTotalTimeoutMultiplier = 0; ctmoNew.WriteTotalTimeoutMultiplier = 0; ctmoNew.WriteTotalTimeoutConstant = 0; SetCommTimeouts(hComm, &ctmoNew); // SET BAUD RATE, PARITY, WORD SIZE, AND STOP BITS. // THERE ARE OTHER WAYS OF DOING SETTING THESE BUT THIS IS THE EASIEST. // IF YOU WANT TO LATER ADD CODE FOR OTHER BAUD RATES, REMEMBER // THAT THE ARGUMENT FOR BuildCommDCB MUST BE A POINTER TO A STRING. // ALSO NOTE THAT BuildCommDCB() DEFAULTS TO NO HANDSHAKING. dcbCommPort.DCBlength = sizeof(DCB); GetCommState(hComm, &dcbCommPort); BuildCommDCB("9600,N,8,1", &dcbCommPort); SetCommState(hComm, &dcbCommPort);
Jemand eine Idee warum TComPort nicht reagiert und warum die "Leuchte" nicht leuchtet?
-
Hat sich erledigt
Ist wohl etwas verbugt die gute Komponente. Man darf nicht die mitgelieferten Comboboxen, zum einstellen, nutzen. Verändern nämlich nichts.