fb:porticula NoPaste
Comport mit WinAPI testen
Uploader: | Volta |
Datum/Zeit: | 13.09.2007 15:57:11 |
#INCLUDE ONCE "windows.bi"
Dim hCom As handle
Dim PortNr As String = "COM1" 'oder COM2 , COM3 usw.
Dim modemStat As dword
'Serielle Schnittstelle öffnen:
hCom = CreateFile(PortNr, GENERIC_READ Or GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL)
'Fehlerbehandlung, falls Öffnen fehlschlägt:
If hCom = INVALID_HANDLE_VALUE Then
MessageBox 0,"Fehler beim Öffnen von " & PortNr,"Fehler:", MB_ICONERROR
End
End If
Screen 16,8 'oder Screen 0
Color 15,1
Cls
Print PortNr; " geoeffnet ";
Color 15,7 : Print "Handle = "; hCom
Locate 8,1
Color 4,15 : Print " Ende mit [Esc] "
'Alle Ausgangsleitungen auf positive Spannung setzen:
EscapeCommFunction(hCom, SETRTS) 'RTS +12V
EscapeCommFunction(hCom, SETDTR) 'DTR +12V
EscapeCommFunction(hCom, SETBREAK) 'TxD +12V (Break)
Color 15,1
Locate 3,1
Print " CTS = "
Print " DSR = "
Print " RING = "
Print " RLSD = "
'Eingangsleitungen per Polling abfragen:
Do
GetCommModemStatus(hCom, @modemStat)
Locate 3,8 : Print Iif (modemStat And MS_CTS_ON ,1,0)
Locate ,8 : Print Iif (modemStat And MS_DSR_ON ,1,0)
Locate ,8 : Print Iif (modemStat And MS_RING_ON,1,0)
Locate ,8 : Print Iif (modemStat And MS_RLSD_ON,1,0)
Loop Until Inkey = Chr(27)
'Alle Ausgangsleitungen auf negative Spannung zurücksetzen:
EscapeCommFunction(hCom, CLRRTS) 'RTS -12V
EscapeCommFunction(hCom, CLRDTR) 'DTR -12V
EscapeCommFunction(hCom, CLRBREAK) 'TxD -12V
'Serielle Schnittstelle schließen:
closeHandle(hCom)