Seite 1 von 1

Seriell-Port wieder schließen - Code aus dem Archiv

Verfasst: 12.06.2006 09:23
von r7mk4
Hallo zusammen,

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
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

Verfasst: 15.06.2006 00:13
von ABBKlaus

Code: Alles auswählen

  CloseFile(0)  
aber Ich würde empfehlen die MVCom-Library von Marc vitry zu benutzen.
http://www.purearea.net/pb/download/use ... ARYV12.zip

MfG Klaus