Modbuv.Codec (modbuv v0.1.0)

Copy Markdown View Source

Modbus PDU encoding and decoding. A PDU is <<fc, body::binary>>; slave/unit ids, CRC, and MBAP live in the transport layers.

Summary

Functions

code_to_reason(code)

@spec code_to_reason(0..255) :: atom() | {:unknown_exception, integer()}

pack_exception(fc, reason)

@spec pack_exception(integer(), atom()) :: binary()

pack_request(arg)

@spec pack_request(tuple()) :: binary()

pack_response(arg, values)

@spec pack_response(tuple(), list() | nil) :: binary()

parse_request(slave, pdu, fc_map)

@spec parse_request(0..255, binary(), map()) :: {:ok, tuple()} | {:error, atom()}

parse_response(arg, pdu)

@spec parse_response(tuple(), binary()) :: list() | nil | {:error, term()}

reason_to_code(reason)

@spec reason_to_code(atom()) :: 1..11

response_encodable?(arg1)

@spec response_encodable?(tuple()) :: boolean()