Hallo,
... es gibt mal wieder ein Problem.
Ich habe hier einen USB zu seriell Verteiler, der mittels "virtuellen COM Port Treibern" ins System eingebunden wird.
Ich möchte die dort an den seriellen Ports angeschlossenen Geräte gerne ansprechen. Habe dafür mit den BCB6 ein kleines C++ Programm geschrieben, das aber leider nicht funktioniert.
Werden die Geräte direkt an die COM Ports des Computers angeschlossen funktioniert das Programm allerdings problemlos.
hier mal der enscheidene Codeschnipsel:
Die "INVALID_HANDLE_VALUE"-Message wird mir immer angezeigt, wenn die Geräte an den seriellen Anschlüssen des Verteilers sitzen.
Jemand eine Idee, wodran das liegen könnte?
Thx.
mFS
... es gibt mal wieder ein Problem.
Ich habe hier einen USB zu seriell Verteiler, der mittels "virtuellen COM Port Treibern" ins System eingebunden wird.
Ich möchte die dort an den seriellen Ports angeschlossenen Geräte gerne ansprechen. Habe dafür mit den BCB6 ein kleines C++ Programm geschrieben, das aber leider nicht funktioniert.
Werden die Geräte direkt an die COM Ports des Computers angeschlossen funktioniert das Programm allerdings problemlos.
hier mal der enscheidene Codeschnipsel:
Code:
AnsiString COM_a = "COM";
AnsiString port_a = com_port;
COM_a += port_a;
char *port = COM_a.c_str(); // Casting, für hCom CreateFile
DCB dcb;
hCom = CreateFile ( port,
GENERIC_WRITE | GENERIC_READ,
0,
NULL,
OPEN_EXISTING,
0,
NULL);
dcb.DCBlength = sizeof(DCB); // setzen der Blocklaenge, muss erfolgen
GetCommState (hCom, &dcb); // COM-Einstellungen laden
dcb.BaudRate = 9600; // Baudrate einstellen, hier 9600
dcb.ByteSize = 8; // Datenbits einstellen, hier 8
dcb.Parity = NOPARITY; // Parität einstellen, hier keine Parität
dcb.StopBits = ONESTOPBIT; // Stopbits einstellen, hier 1
SetCommState (hCom, &dcb); // COM-Einstellungen speichern
if (hCom == INVALID_HANDLE_VALUE)
{
Application->MessageBox("Serielle Schnittstelle konnte nicht geöffnet werden\n", COM_a.c_str(), MB_ICONEXCLAMATION);
}
Die "INVALID_HANDLE_VALUE"-Message wird mir immer angezeigt, wenn die Geräte an den seriellen Anschlüssen des Verteilers sitzen.
Jemand eine Idee, wodran das liegen könnte?
Thx.
mFS