BB.Error.Protocol.Ufactory.ConnectionError exception (bb_ufactory v0.1.0)

Copy Markdown View Source

Raised when the controller fails to establish a TCP connection to the xArm.

The controller attempts two connections during init/1:

  • Port 502 — command socket (send register commands, receive responses)
  • Port 30003 — real-time report socket (arm pushes joint state at ~100Hz)

If either connection fails, the controller stops with a ConnectionError containing the target host, port, and the POSIX reason from :gen_tcp.connect/3.

Common :reason values from :gen_tcp:

  • :econnrefused — arm not listening (wrong IP or powered off)
  • :etimedout — network unreachable or firewall dropping packets
  • :nxdomain — hostname not resolvable

Summary

Functions

exception(args)

@spec exception(opts :: Keyword.t()) :: %BB.Error.Protocol.Ufactory.ConnectionError{
  __exception__: term(),
  bread_crumbs: term(),
  class: term(),
  host: term(),
  path: term(),
  port: term(),
  reason: term(),
  splode: term(),
  stacktrace: term(),
  vars: term()
}

Create an Elixir.BB.Error.Protocol.Ufactory.ConnectionError without raising it.

Keys

  • :host
  • :port
  • :reason