J'essaie d'envoyer un message via le port série à un Lego NXT en utilisant le mode interactif de Haskell, mais je n'arrive pas à trouver comment utiliser la fonction serialport fonctionne correctement.
J'ai un message qui doit jouer une tonalité sur le NXT qui est de type ByteString
> let message = pack ([6, 0 ,0, 3, 224, 1, 208, 7]::[Word8])
Je peux ouvrir le port série en utilisant openSerial
.
openSerial :: FilePath -> SerialPortSettings -> IO SerialPort
> let mybrick = openSerial "/dev/tty.NXT-DevB" defaultSerialSettings
Mais ensuite, je suis coincé. Comment dois-je utiliser le send
fonction ?
send :: SerialPort -> B.ByteString -> IO Int
> send mybrick message
Cela me donne le message d'erreur suivant.
<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