BB.Error.Invalid.Feetech.UnknownController exception (bb_servo_feetech v0.7.0)

Copy Markdown View Source

An actuator's :controller doesn't name a controller the robot declares.

Raised at startup, before the actuator tries to talk to the bus. Without the check the first call would exit with a bare :noproc from somewhere inside init/1, the actuator would restart until the topology supervisor gave up, and nothing along the way would mention the name that was wrong.

Checked against the DSL rather than the registry, so the message can list the controllers that do exist. Controllers all start before any actuator, so a name that isn't there is a typo rather than a race.

Summary

Types

t()

@type t() :: %BB.Error.Invalid.Feetech.UnknownController{
  __exception__: term(),
  actuator_path: [atom()],
  bread_crumbs: term(),
  class: term(),
  controller: atom(),
  known: [atom()],
  path: term(),
  splode: term(),
  stacktrace: term(),
  vars: term()
}

Functions

exception(args)

@spec exception(opts :: Keyword.t()) :: %BB.Error.Invalid.Feetech.UnknownController{
  __exception__: term(),
  actuator_path: term(),
  bread_crumbs: term(),
  class: term(),
  controller: term(),
  known: term(),
  path: term(),
  splode: term(),
  stacktrace: term(),
  vars: term()
}

Create an Elixir.BB.Error.Invalid.Feetech.UnknownController without raising it.

Keys

  • :controller
  • :actuator_path
  • :known