我正在尝试使用 Haskell 的交互模式通过串行端口向 Lego NXT 发送消息,但我无法弄清楚如何正确使用串行端口功能。
我有一条消息应该在 NXT 上播放一种音调ByteString
> let message = pack ([6, 0 ,0, 3, 224, 1, 208, 7]::[Word8])
我可以使用openSerial
.
openSerial :: FilePath -> SerialPortSettings -> IO SerialPort
> let mybrick = openSerial "/dev/tty.NXT-DevB" defaultSerialSettings
但后来我卡住了。我应该如何使用该send
功能?
send :: SerialPort -> B.ByteString -> IO Int
> send mybrick message
这给了我以下错误消息。
<interactive>:31:6:
Couldn't match expected type `SerialPort'
with actual type `IO SerialPort'
In the first argument of `send', namely `mybrick'
In the expression: send mybrick message
In an equation for `it': it = send mybrick message