Re: ReadSerialPortData verhält sich komisch
Verfasst: 09.04.2013 20:40
Beim Benutzen von WriteSerialPortString() und ReadSerialPortData() habe ich das oben beschrieben Problem. Bisher noch keine Lösung.
Jetzt wollte ich wissen ob bei WriteSerialPortData() und ReadSerialPortData() das Problem auch besteht.
Den code von Nic habe ich versucht zu ändern.. Leider klappt das mit dem pointer nicht so recht... es wid immer eine $00 geschickt anstelle der $3F,$0D
Wo iste der Fehler ?
__________________________________________________
Code-Tags hinzugefügt
09.04.2013
RSBasic
Jetzt wollte ich wissen ob bei WriteSerialPortData() und ReadSerialPortData() das Problem auch besteht.
Den code von Nic habe ich versucht zu ändern.. Leider klappt das mit dem pointer nicht so recht... es wid immer eine $00 geschickt anstelle der $3F,$0D
Wo iste der Fehler ?
Code: Alles auswählen
#SERIAL_TIMEOUT = 100 ;in ms
Dim buf(3)
buf(0) = $3F
buf(1) = $0D
buf(2) = $0
Procedure connect3(Array Mybuf(1))
Protected availableData.i, ascii.a, buffer.s = "", time.i
*MyPtr = @Mybuf
WriteSerialPortData(0, *MyPtr,2)
time = ElapsedMilliseconds()
While ElapsedMilliseconds() < time + #SERIAL_TIMEOUT
availableData = AvailableSerialPortInput(0)
If availableData > 0 ;Es sind Daten da, lies sie aus
While availableData > 0 ;Lies solange ASCII-Zeichen aus bis der Puffer leer ist
availableData - ReadSerialPortData(0, @ascii, 1)
Debug "Wert: " + ascii + " Zeichen:'" + Chr(ascii) + "'"
buffer + Chr(ascii)
Wend
If FindString(buffer, "SL1", 0, #PB_String_NoCase)
ProcedureReturn #True
EndIf
time = ElapsedMilliseconds()
EndIf
Wend
MessageRequester("Fail", "Timout: Serial port error.")
ProcedureReturn #False
EndProcedure
connect3(buf())
Code-Tags hinzugefügt
09.04.2013
RSBasic