AVModbus (avmodbus v0.1.0)

Copy Markdown View Source

AtomVM 向けの Modbus ライブラリです。

protocol の encode / decode を AtomVM :uart adapter から分離しているため、 通常の BEAM runtime 上でもテストできます。RTU / ASCII client / server、 PDU codec、framing、transport-independent な server handler boundary、 sparse in-memory data model を提供します。

client と server handler は同じ result contract を共有します。device が Modbus exception を返した場合は {:error, {:exception, reason}} です。

Summary

Functions

Modbus exception 名または code を wire code へ変換します。

Modbus exception code を既知の名前へ変換し、未知の code はそのまま返します。

Types

address()

@type address() :: 0..65535

error()

@type error() ::
  {:exception, exception()}
  | :timeout
  | :closed
  | :queue_full
  | {:invalid_response, binary()}

exception()

@type exception() ::
  :illegal_function
  | :illegal_data_address
  | :illegal_data_value
  | :server_device_failure
  | :acknowledge
  | :server_device_busy
  | :memory_parity_error
  | :gateway_path_unavailable
  | :gateway_target_device_failed_to_respond
  | byte()

result()

@type result() :: :ok | {:ok, term()} | {:error, error()}

unit_id()

@type unit_id() :: 0..255

word()

@type word() :: 0..65535

Functions

exception_code(code)

@spec exception_code(exception()) :: byte()

Modbus exception 名または code を wire code へ変換します。

exception_name(code)

@spec exception_name(byte()) :: exception()

Modbus exception code を既知の名前へ変換し、未知の code はそのまま返します。