View Source Modbux.Tcp (Modbux v0.3.13)

Tcp message helper, functions that handles TCP responses/requests messages.

Summary

Functions

@spec pack_req(
  {:fc | :phr | :rc | :rhr | :ri | :rir, integer(), integer(),
   maybe_improper_list() | integer()},
  integer()
) :: <<_::48, _::_*8>>
Link to this function

pack_res(cmd, values, transid)

View Source
@spec pack_res(
  {:fc | :phr | :rc | :rhr | :ri | :rir, integer(), any(),
   maybe_improper_list() | integer()},
  any(),
  integer()
) :: <<_::48, _::_*8>>
@spec parse_req(<<_::48, _::_*8>>) ::
  {{:einval | :error | :fc | :phr | :rc | :rhr | :ri | :rir, byte(), char(),
    [any()] | char()}, char()}
Link to this function

parse_res(cmd, wraped, transid)

View Source
@spec parse_res(any(), <<_::48, _::_*8>>, char()) ::
  nil | [any()] | {:error, any()} | {:error, byte(), <<_::104>>}
@spec req_len({:fc | :phr | :rc | :rhr | :ri | :rir, any(), any(), any()}) ::
  integer()
@spec res_len({:fc | :phr | :rc | :rhr | :ri | :rir, any(), any(), any()}) :: number()
@spec unwrap(<<_::48, _::_*8>>) :: {binary(), char()}
@spec unwrap(<<_::48, _::_*8>>, char()) :: nil | binary()
@spec wrap(binary(), integer()) :: <<_::48, _::_*8>>