| Safe Haskell | Safe-Infered |
|---|
System.Hardware.Serialport
Description
This module provides the serial port interface.
import qualified Data.ByteString.Char8 as B
import System.Hardware.Serialport
let port = "COM3" -- Windows
let port = "/dev/ttyUSB0" -- Linux
s <- openSerial port defaultSerialSettings { commSpeed = CS2400 }
send s $ B.pack "AT\r"
recv s 10 >>= print
closeSerial s
- data CommSpeed
- data StopBits
- data Parity
- data FlowControl
- data SerialPort
- data SerialPortSettings = SerialPortSettings {
- commSpeed :: CommSpeed
- bitsPerWord :: Word8
- stopb :: StopBits
- parity :: Parity
- flowControl :: FlowControl
- timeout :: Int
- defaultSerialSettings :: SerialPortSettings
- setSerialSettings :: SerialPort -> SerialPortSettings -> IO SerialPort
- getSerialSettings :: SerialPort -> SerialPortSettings
- openSerial :: FilePath -> SerialPortSettings -> IO SerialPort
- closeSerial :: SerialPort -> IO ()
- withSerial :: String -> SerialPortSettings -> (SerialPort -> IO a) -> IO a
- send :: SerialPort -> ByteString -> IO Int
- recv :: SerialPort -> Int -> IO ByteString
- flush :: SerialPort -> IO ()
- setDTR :: SerialPort -> Bool -> IO ()
- setRTS :: SerialPort -> Bool -> IO ()
Types
Supported baudrates
data FlowControl Source
Constructors
| Software | |
| NoFlowControl |
data SerialPort Source
Configure port
You don't need the get or set functions, they are used by openSerial
data SerialPortSettings Source
Constructors
| SerialPortSettings | |
Fields
| |
defaultSerialSettings :: SerialPortSettingsSource
Most commonly used configuration
- 9600 baud
- 8 data bits
- 1 stop bit
- no parity
- no flow control
- 0.1 second receive timeout
Arguments
| :: SerialPort | The currently opened serial port |
| -> SerialPortSettings | The new settings |
| -> IO SerialPort | New serial port |
Configure the serial port
getSerialSettings :: SerialPort -> SerialPortSettingsSource
Get configuration from serial port
Serial methods
Device
Arguments
| :: FilePath | Serial port, such as |
| -> SerialPortSettings | |
| -> IO SerialPort |
Open and configure a serial port
closeSerial :: SerialPort -> IO ()Source
Close the serial port
withSerial :: String -> SerialPortSettings -> (SerialPort -> IO a) -> IO aSource
Safer device function, so you don't forget to close the device
Sending & receiving
recv :: SerialPort -> Int -> IO ByteStringSource
Receive bytes, given the maximum number
flush :: SerialPort -> IO ()Source
Flush buffers