module System.Hardware.Serialport.Types where
import Data.Word
#if defined(mingw32_HOST_OS)
import System.Win32.Types (HANDLE)
#else
import System.Posix.Types (Fd)
#endif
data CommSpeed
= CS110
| CS300
| CS600
| CS1200
| CS2400
| CS4800
| CS9600
| CS19200
| CS38400
| CS57600
| CS115200
deriving (Show)
data StopBits = One | Two
data Parity = Even | Odd | NoParity
data FlowControl = Software | NoFlowControl
data SerialPortSettings = SerialPortSettings {
commSpeed :: CommSpeed,
bitsPerWord :: Word8,
stopb :: StopBits,
parity :: Parity,
flowControl :: FlowControl,
timeout :: Int
}
data SerialPort = SerialPort {
#if defined(mingw32_HOST_OS)
handle :: HANDLE,
#else
fd :: Fd,
#endif
portSettings :: SerialPortSettings
}
defaultSerialSettings :: SerialPortSettings
defaultSerialSettings =
SerialPortSettings CS9600 8 One NoParity NoFlowControl 1