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
Create an Elixir.BB.Error.Protocol.Ufactory.ConnectionError without raising it.
Functions
@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