我正在使用Rebol3 v3.0.99.4.20,它具有/ View和串行功能。讀取Rebol3中的串口
我打開一個端口:
ser: open serial://ttyUSB0/9600
然後,我建立了我的異步處理程序:
ser/awake: func [event /local p][
p: event/port
switch event/type [
lookup [open p]
connect [write p to-binary request]
read [
result: to-string p/data
close p
return true
]
wrote [read event/port]
]
false
]
我現在的問題是,我無法弄清楚如何讀取數據串口。我總是隻回收我在ser/data中寫入串口的最後一條命令。
例如:
>> ser: open serial://ttyUSB0/9600
>> write ser "debug on^/"
>> read ser
== "debug on^/"
這看起來不錯,到目前爲止,但這是怎樣的串口設備使用Linux命令, '屏幕':
我輸入:
debug on
串口設備響應:
Debug messages enabled.
>
但是,我永遠無法閱讀「啓用調試消息」。文本。
>> read ser
== "debug on^/"
>> wait ser
== none
>> read ser
== "debug on^/"
>> copy ser/data
== "debug on^/"
不知道我錯過了什麼。
在Rebol2,它是更直接的,但不是異步:因爲第一個副本清除串行緩衝器
>> system/ports/serial
== [com1 com2 com4]
>> ser: open/no-wait serial://port3/9600/8/none/1
>> insert ser "debug on^/"
>> copy ser
== "debug on^/Debug messages enabled.^/>"
>> copy ser
== ""
位於2副本不返回任何東西。如果數據流式傳輸到串行端口,則額外的「複製命令」會從串行緩衝區返回附加數據。但在Rebol3中這種方式不起作用。