Schnittstellen - Seriell unter Win 2000
-
Hallo
auch unter SourceCode da ganz links oben gibt es etwas unter RS 232
Bitte schaut doch erstmal bevor ihr andere etwas nervt
Sorry wenn ich etwas genervt klingeMfG
Klaus
-
Hallo nochmals,
ich habe das mit dem Befehl CreateFile unter Win 2000 auprobiert, bekomm allerdings die Schnittstelle nicht geöffnet und kann deswegen keine Änderungen von z.B. der Baudrate vornehmen.
Woran kann das liegen?Snypoo
-
versuchs mal so:
DCB dcbCommPort; // open comm port hComm = CreateFile("COM2", GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0); // beenden wenn port nicht geöffnet werden kann if(hComm == INVALID_HANDLE_VALUE) Application->Terminate(); // set comm timeouts GetCommTimeouts(hComm,&ctmoOld); ctmoNew.ReadTotalTimeoutConstant = 100; ctmoNew.ReadTotalTimeoutMultiplier = 0; ctmoNew.WriteTotalTimeoutMultiplier = 0; ctmoNew.WriteTotalTimeoutConstant = 0; SetCommTimeouts(hComm, &ctmoNew); // settings dcbCommPort.DCBlength = sizeof(DCB); GetCommState(hComm, &dcbCommPort); BuildCommDCB("9600,N,8,1", &dcbCommPort); SetCommState(hComm, &dcbCommPort);
-
Da stellt sich die Frage ob du CreateFIle richtig verwendet hast... ...code?
-junix
-
Hallo roN,
wenn ich das ganze so versuche, wie Du es vorgeschlagen hast, kann immernoch nicht die Schnittstelle angesprochen werden.
Worann kann das Liegen?Snypoo
-
Gibts eine Fehlermeldung? Wie sprichst du denn die Schnittstelle an? Würdest du meine Fragen vielleicht auch mal beantworten?
-junix
-
junix hat recht, erzähl mal WAS nicht funktioniert. Fehlermeldungen usw.
-
Ich Spreche die Schnittstelle mittels
hComm = CreateFile("COM1"
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
0,
NULL);an, wie roN es auch Schon vorgeschlagen hat und bekomme dann schon direckt "INVALID_HANDLE_VALUE" wieder.
Durch "if(hComm == INVALID_HANDLE_VALUE) Application->Terminate();"
wird meine Anwendung sofort wieder geschlossen. Alle weiteren Befehle kann ich garnicht erst anwenden, da das Programm garnicht erst soweit Läuft.Snypoo
-
...okay, das hilft doch schon einiges weiter.
hast du eine anwendung offen die ebenfalls auf die serielle schnittstelle zugreift? (hyperterminal usw.?)
-
Das einzige was ich zur zeit Offen habe ist der Borland C++ Builder 5 und die Win32 Developer´s References.
-
Na endlich mal was konkretes. Nun gut.
Folgende Frage:
Hast du unter W2k auch die Rechte um auf den ComPort zugreifen zu können?-junix
-
Ich weiß nicht ob ich Die rechte habe, wo kann ich das denn erfahren?
-
..hömm...kann man das überhaupt sperren? *g*
ich hab' keine ahnung wie du das nachsehen kannst.
ähm, du kannst mittels GetLastError erfahren was für ein Fehler das es ist. schau mal unter msdn.microsoft.com/library auschau nach der funktion
-
Hallo,
ich habe jetzt rausgefunden, das ich den Zugriff auf die Serielle Schnittstelle so nur dann vornehmen kann, wenn das Service Pack 2 installiert worden ist.
Snypoo
-
dann funktioniert jetzt alles?!?
-
Ja und nochmals Danke für die Hinweise!
Snypoo