-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A cereal-based parser for the Modbus protocol -- -- A cereal-based parser for the Modbus protocol @package haskell-modbus @version 0.3.2 module Data.Digest.CRC16 -- | crc16 calculation crc16 :: [Word8] -> Word16 module Data.Modbus data ModRequest ReadCoils :: ModRegister -> Word16 -> ModRequest readCoilsModReg :: ModRequest -> ModRegister readCoilsCnt :: ModRequest -> Word16 ReadDiscreteInputs :: ModRegister -> Word16 -> ModRequest readDiscreteInputsModReg :: ModRequest -> ModRegister readDiscreteInputsCnt :: ModRequest -> Word16 ReadHoldingRegisters :: ModRegister -> Word16 -> ModRequest readHoldingRegistersModReg :: ModRequest -> ModRegister readHoldingRegistersCnt :: ModRequest -> Word16 ReadInputRegisters :: ModRegister -> Word16 -> ModRequest readInputRegistersModReg :: ModRequest -> ModRegister readInputRegistersCnt :: ModRequest -> Word16 WriteSingleCoil :: ModRegister -> Word16 -> ModRequest writeSingleCoilModReg :: ModRequest -> ModRegister writeSingleCoilCnt :: ModRequest -> Word16 WriteSingleRegister :: ModRegister -> Word16 -> ModRequest writeSingleRegisterModReg :: ModRequest -> ModRegister writeSingleRegister :: ModRequest -> Word16 WriteDiagnosticRegister :: Word16 -> Word16 -> ModRequest writeDiagnosticRegisterSubFcn :: ModRequest -> Word16 writeDiagnosticRegisterDat :: ModRequest -> Word16 WriteMultipleCoils :: ModRegister -> Word16 -> Word8 -> ByteString -> ModRequest writeMultipleCoilsModReg :: ModRequest -> ModRegister writeMultipleCoilsQty :: ModRequest -> Word16 writeMultipleCoilsCnt :: ModRequest -> Word8 qWriteMultipleCoilsVal :: ModRequest -> ByteString WriteMultipleRegisters :: ModRegister -> Word16 -> Word8 -> ByteString -> ModRequest writeMultipleRegistersModReg :: ModRequest -> ModRegister writeMultipleRegistersQty :: ModRequest -> Word16 writeMultipleRegistersCnt :: ModRequest -> Word8 writeMultipleRegistersVal :: ModRequest -> ByteString data ModResponse ReadCoilsResponse :: Word8 -> ByteString -> ModResponse readCoilsResponseCnt :: ModResponse -> Word8 readCoilsResponseVal :: ModResponse -> ByteString ReadDiscreteInputsResponse :: Word8 -> ByteString -> ModResponse readDiscreteInputsResponseCnt :: ModResponse -> Word8 readDiscreteInputsResponseVal :: ModResponse -> ByteString ReadHoldingRegistersResponse :: Word8 -> ByteString -> ModResponse readHoldingRegistersResponseCnt :: ModResponse -> Word8 readHoldingRegistersResponseVal :: ModResponse -> ByteString ReadInputRegistersResponse :: Word8 -> ByteString -> ModResponse readInputRegistersResponseAddr :: ModResponse -> Word8 readInputRegistersResponseVal :: ModResponse -> ByteString WriteSingleCoilResponse :: ModRegister -> Word16 -> ModResponse writeSingleCoilResponseModReg :: ModResponse -> ModRegister writeSingleCoilResponseVal :: ModResponse -> Word16 WriteSingleRegisterResponse :: ModRegister -> Word16 -> ModResponse writeSingleRegisterResponseModReg :: ModResponse -> ModRegister writeSingleRegisterResponseVal :: ModResponse -> Word16 WriteDiagnosticRegisterResponse :: Word16 -> Word16 -> ModResponse writeDiagnosticRegisterResponseSubFcn :: ModResponse -> Word16 writeDiagnosticRegisterResponseDat :: ModResponse -> Word16 WriteMultipleCoilsResponse :: ModRegister -> Word16 -> ModResponse writeMultipleCoilsResponseModReg :: ModResponse -> ModRegister writeMultipleCoilsResponseVal :: ModResponse -> Word16 WriteMultipleRegistersResponse :: ModRegister -> Word16 -> ModResponse writeMultipleRegistersResponseModReg :: ModResponse -> ModRegister writeMultipleRegistersResponseVal :: ModResponse -> Word16 ExceptionResponse :: FunctionCode -> ExceptionCode -> ModResponse UnknownFunctionResponse :: FunctionCode -> ModResponse -- | Record naming scheme | q -> for request | r for response -- -- modR -> mod register data ModRequestFrame ModRequestFrame :: SlaveId -> ModRequest -> ModRequestFrame qSlaveId :: ModRequestFrame -> SlaveId qModRequest :: ModRequestFrame -> ModRequest data ModResponseFrame ModResponseFrame :: SlaveId -> ModResponse -> ModResponseFrame rSlaveId :: ModResponseFrame -> SlaveId qModResponse :: ModResponseFrame -> ModResponse data ExceptionCode IllegalFunction :: ExceptionCode IllegalDataAddress :: ExceptionCode IllegalDataValue :: ExceptionCode SlaveDeviceFailure :: ExceptionCode Acknowledge :: ExceptionCode SlaveDeviceBusy :: ExceptionCode MemoryParityError :: ExceptionCode GatewayPathUnavailable :: ExceptionCode GatewayTargetFailedToRespond :: ExceptionCode UnknownExceptionCode :: Word8 -> ExceptionCode getUnknownException :: ExceptionCode -> Word8 mkException :: SlaveId -> ExceptionCode -> ByteString -- | Check that the given response is appropriate for the given request. matches :: ModRequest -> ModResponse -> Bool type ModRegister = Word16 type SlaveId = Word8 type FunctionCode = Word8 instance Show ModRequest instance Show ModRequestFrame instance Show ExceptionCode instance Show ModResponse instance Show ModResponseFrame instance Serialize ExceptionCode instance Serialize ModResponse instance Serialize ModRequest instance Serialize ModResponseFrame instance Serialize ModRequestFrame