data$, count = ReadSerialData(id, len[, timeout])
id
angegebenen seriellen Schnittstellenverbindung zu lesen.
Die Verbindung der seriellen Schnittstelle muss zuvor mit OpenSerialPort()
geöffnet worden sein. Darüber hinaus können Sie im Argument
timeout
eine Dauer in Millisekunden übergeben, um ein Zeitlimit
für die Leseoperation festzulegen. Wenn der Parameter timeout
angegeben ist, wird ReadSerialData()
niemals länger als die
angegebene Dauer blockieren. Andernfalls wird es ewig auf die
Daten warten.
ReadSerialData()
gibt die von der seriellen Schnittstelle gelesenen
Daten in data$
und die Länge der Daten in Byte in count
zurück.
Beachten Sie, dass diese Länge unter der in len
angegebenen
Länge liegen kann. Wenn ReadSerialData()
weniger Bytes zurückgibt,
als Sie in len
angefordert haben, müssen Sie ReadSerialData()
immer wieder aufrufen, bis Sie alle benötigten Daten erhalten
haben.
Beachten Sie, dass der in count
zurückgegebene Wert immer der
ByteLen() für data$
entspricht. Der einzige
Grund für den Rückgabewert von count
ist eine Leistungssteigerung,
da Sie auf diese Weise nicht ByteLen() aufrufen
müssen, um die Länge von data$
zu berechnen.
Verwenden Sie den Befehl PollSerialQueue(), um die Anzahl der im Lesepuffer befindlichen Bytes abzufragen. Siehe PollSerialQueue für Details.
OpenSerialPort(1, "COM1") Print(ReadSerialData(1, 256))Der obige Code wartet immer auf die Daten vom seriellen Port. Sobald Daten ankommen, werden sie Ausgegeben. Dies kann weniger als 256 Byte sein. Das einzige, was garantiert ist, ist, dass es niemals mehr als 256 Bytes sein wird.