Seite 1 von 1

WriteSerialPortData

Verfasst: 07.04.2011 15:24
von thomas223
Hallo erst einmal!

Ich versuche jetzt schon seit einer weile den Com port über PureBasic an zu sprechen!
leider klapt da nichts!
also ich versuche lediglich 2 Byte zu schicken, ($1B und $03) hiernach sollte ein Industrie Drucker eigendlich einen Neustart machen.
wenn ich das über einen Hyperterminal schicke klapt das auch, nur über PureBasic leider nicht!
Bin absolut Verzweifelt!
Der Code schrumpfte immer weiter zusammen!

Code: Alles auswählen

OpenSerialPort(1,"COM2",9600,#PB_SerialPort_NoParity,8,1,#PB_SerialPort_NoHandshake,1024,1024) 
Delay(170)
;Define.s b
;If IsSerialPort(1)
;  SetSerialPortStatus(1, #PB_SerialPort_RTS, 1)
  
;  Debug "is da"
;EndIf
;b=" S001 DAS "
;Debug b
;Debug AvailableSerialPortOutput(1)

WriteSerialPortData(1,27,1)
Delay(150)
WriteSerialPortData(1,3,1)
Währe für eure Hilfe sehr Dankbar!

Re: WriteSerialPortData

Verfasst: 07.04.2011 15:35
von DarkDragon
Ist die Baudrate korrekt? Und alle anderen Parameter in OpenSerialPort auch?
Wenn ja dann probier mal

Code: Alles auswählen

OpenSerialPort(1, "COM2", 9600, #PB_SerialPort_NoParity, 8, 1, #PB_SerialPort_NoHandshake, 1, 1) 
Dann wird praktisch nichts gepuffert.

Re: WriteSerialPortData

Verfasst: 07.04.2011 15:37
von Kiffi
des weiteren solltest Du den Rückgabewert von OpenSerialPort auswerten:

Code: Alles auswählen

If OpenSerialPort(...
  ; "Success"
  ; [...]
  CloseSerialPort(...
Else
  ; "Failed"
EndIf
Grüße ... Kiffi

Re: WriteSerialPortData

Verfasst: 07.04.2011 15:39
von - chris -
und den Befehl

WriteSerialPortData(1,27,1)

nochmal in der Hilfe nachschauen:

Ergebnis = WriteSerialPortData(#SerialPort, *Puffer, Laenge)

z.B.:

*Puffer = AllocateMemory(1024)

PokeA(*Puffer + 0, $1B)
PokeA(*Puffer + 1, $03)

WriteSerialPortData(1, *Puffer, 2)

Re: WriteSerialPortData

Verfasst: 07.04.2011 15:41
von DarkDragon
- chris - hat geschrieben:und den Befehl

WriteSerialPortData(1,27,1)

nochmal in der Hilfe nachschauen:

Ergebnis = WriteSerialPortData(#SerialPort, *Puffer, Laenge)
:lol: Dass wir (Kiffi und ich) das übersehen konnten...

Re: WriteSerialPortData

Verfasst: 07.04.2011 16:02
von Kiffi
DarkDragon hat geschrieben::lol: Dass wir (Kiffi und ich) das übersehen konnten...
wir sind zu sehr darauf konditioniert, die nicht-offensichtlichen
Fehlerquellen zu entdecken ;-)

Grüße ... Kiffi

Re: WriteSerialPortData

Verfasst: 07.04.2011 16:08
von thomas223
Danke Dank Danke!!!!

Das geht auch wenn ich jetzt erst wieder herraus bekommen muss was ich dort mache!

Denn jetzt will ich ja gerne noch einen kurzen text dazwischen einfügen und das ACK vom Drucker empfangen!

:bounce:

Re: WriteSerialPortData

Verfasst: 07.04.2011 22:01
von thomas223
darf ich noch fragen was das * vor dem Puffer bedeutet?

Re: WriteSerialPortData

Verfasst: 07.04.2011 22:03
von RSBasic
Das ist ein Pointer, weitere Informationen findest du in der PB-Hilfe unter: Zeiger und Speicherzugriff