Hallo zusammen,
ich arbeite gerade mit einem USB Modem. Wenn ich es einstecke, ist es
an COM3 ansprechbar.
Jetzt kommt das aber.....
nicht wenn ich es nach dem Neustart mit meiner in VC++ geschriebenen SW anspreche.
Dann ist es erst anzusprechen, wenn ich vorher Hyperterminal oder das mitgelieferte Programm in Betrieb genommen habe. Ab dann ist das Modem an COM3 für meine SW "sichtbar".
Ich habe in VC++ eine Klasse die den port in Betrieb nimmt
//Call CreateFile to open the com port
CString stPort;
stPort.Format(_T("\\\\.\\COM%d"), nPort);
m_hComm = CreateFile(stPort, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, bOverlapped ? FILE_FLAG_OVERLAPPED : 0, NULL);
if (m_hComm == INVALID_HANDLE_VALUE)
{
TRACE(_T("CSerialPort::Open, Failed to open the comms port\n"));
ThrowSerialException();
}
es wird kein Fehler zurückgeliefert, aber ansprechen kann ich das Modem nicht.
Erst nachdem ich Hyperterminal mit Com3 geöffnet und geschlossen habe, funktioniert das writen von Daten.
Muss man den Port irgendwie initiialisiern? Hat jemand schon einmal ein ähnliches Problem gehabt. Die Klasse läuft an einer echten RS232 ohne Probleme.
Gruss
Peter
habe das Problem gefunden. Man muss dem USB Modem ein DTR setzen
port.SetDTR();
port.SetRTS();
Wusste nicht, dass man einem Modem, was keine "festen" Leitungen hat auch
Verbindungen simulieren muss.
Problem gelöst, falls mal jemand draufstossen sollte
Gruss Peter