serialport-0.2.0: Cross platform serial port library.

System.Hardware.Serialport

Contents

Description

Example usage:

 s <- openSerial "/dev/ttyUSB0" B9600 8 One NoParity NoFlowControl
 
 -- Sending
 forM_ "AT\r" $ sendChar s
 
 -- Receiving, using unfoldM from Control.Monad.Loops
 response <- unfoldM (recvChar s)
 
 print response
 
 closeSerial s

Synopsis

Types

data StopBits Source

Constructors

One 
Two 

data Parity Source

Constructors

Even 
Odd 
NoParity 

Simple, non-portable.

In an perfect world this would be portable but a System.IO.hWaitForInput on Windows is blocking!

hOpenSerialSource

Arguments

:: String

The filename of the serial port, such as /dev/ttyS0 or /dev/ttyUSB0

-> BaudRate 
-> Word8

The number of bits per word, typically 8

-> StopBits

Almost always One unless you're talking to a printer

-> Parity

Error checking

-> FlowControl 
-> IO Handle 

Open and configure a serial port and return a Handle

Portable methods.

openSerialSource

Arguments

:: String

The filename of the serial port, such as /dev/ttyS0 or /dev/ttyUSB0

-> BaudRate 
-> Word8

The number of bits per word, typically 8

-> StopBits

Almost always One unless you're talking to a printer

-> Parity 
-> FlowControl 
-> Int

Receive timeout in milliseconds

-> IO SerialPort 

Open and configure a serial port

sendChar :: SerialPort -> Char -> IO ()Source

Send a character

recvChar :: SerialPort -> IO (Maybe Char)Source

Possibly receive a character unless the timeout given in openSerial is exceeded.

closeSerial :: SerialPort -> IO ()Source

Close the serial port