Seriell-Port wieder schließen - Code aus dem Archiv
Verfasst: 12.06.2006 09:23
Hallo zusammen,
folgenden Code habe ich aus dem Archiv von purearea.net:
Also ich find den Code genial, genau das was ich brauche.
Der einzige Hacken: Ich möchte in einem Fenster den Port auswählbar machen.
So, wenn ich jetzt von Com1 auf Com2 wechsel, soll Com1 für andere Anwendungen wieder verfügbar sein.
Kann mir jemand sagen, wie der Befehl zum Schließen eines Ports für das oben genannte Beispiel lautet?
Analog zu "OpenComPort" wäre ja "CloseComPort", aber der funktioniert nicht.
Gruß
R7mk4
folgenden Code habe ich aus dem Archiv von purearea.net:
Code: Alles auswählen
; English forum: http://purebasic.myforums.net/viewtopic.php?t=6276&highlight=
; Author: paulr
; Date: 27. September 2003
; The following program sends a quick message to the COM1 port, and waits
; 5 secs for a response. I've used it to communicate with a Palm IIIe PDA
; running 'ptelnet' - a terminal program.
Port$ = "COM1:"
*File = OpenComPort(0, Port$)
If *File
SetupComm_(*File, 4096, 4096) ; Set i/o buffers
; Change timeout settings:
ct.COMMTIMEOUTS
ct\ReadIntervalTimeout = #MAXDWORD
ct\ReadTotalTimeoutMultiplier = 0
ct\ReadTotalTimeoutConstant = 0
ct\WriteTotalTimeoutMultiplier = 0
ct\WriteTotalTimeoutConstant = 0
SetCommTimeouts_(*File, ct)
; Get protocol settings:
dcb.DCB
GetCommState_(*File, @dcb)
; Change protocol settings:
dcb\BaudRate = #CBR_9600
dcb\Parity = #NOPARITY
dcb\StopBits = #ONESTOPBIT
dcb\ByteSize = 8
dcb\Fbits = %1000010000011 ; Flags copied from PureFrog (see Microsoft dev site for details)
SetCommState_(*File, @dcb)
; Send message to serial port:
UseFile(0)
WriteString("Serial output")
a$ = " "
String$ = ""
Delay(5000)
UseFile(0)
While ReadData(@a$, 1)
String$ + a$
UseFile(0)
Wend
Debug "String is: "+String$
Else
Debug "Can't open COM port."
EndIf
; ExecutableFormat=Windows
; FirstLine=1
; EOF
Der einzige Hacken: Ich möchte in einem Fenster den Port auswählbar machen.
So, wenn ich jetzt von Com1 auf Com2 wechsel, soll Com1 für andere Anwendungen wieder verfügbar sein.
Kann mir jemand sagen, wie der Befehl zum Schließen eines Ports für das oben genannte Beispiel lautet?
Analog zu "OpenComPort" wäre ja "CloseComPort", aber der funktioniert nicht.

Gruß
R7mk4