Drone. Error
(ex_drone v0.1.0)
View Source
Error types and helpers for ex_drone.
All errors in ex_drone follow explicit tuple conventions:
{:error, reason}for simple errors{:error, :safety, reason}for safety rejections{:error, :invalid_command, details}for command validation errors
Summary
Functions
Creates an adapter error tuple.
Checks if an error is an adapter error.
Creates an invalid command error tuple.
Checks if an error is an invalid command error.
Extracts the reason from any error tuple.
Creates a safety error tuple.
Checks if an error is a safety error.
Types
@type adapter_reason() ::
:timeout
| :connection_error
| :command_error
| :not_in_sdk_mode
| :not_flying
| :already_flying
| :emergency_active
| :simulated_failure
@type command_reason() ::
:invalid_direction
| :invalid_distance
| :invalid_rotation
| :invalid_degrees
| :invalid_speed
| :invalid_flip_direction
| :invalid_query_type
@type reason() :: safety_reason() | adapter_reason() | command_reason() | term()
@type safety_reason() ::
:command_not_allowed
| :not_in_sdk_mode
| :not_flying
| :already_flying
| :emergency_active
| :max_altitude
| :max_distance
| :low_battery
| :geofence_violation
| :dangerous_without_prop_guards
| :invalid_distance
| :invalid_degrees
| :invalid_speed
| :invalid_seconds
Functions
@spec adapter(adapter_reason()) :: {:error, adapter_reason()}
Creates an adapter error tuple.
Checks if an error is an adapter error.
@spec invalid_command(command_reason()) :: {:error, :invalid_command, command_reason()}
Creates an invalid command error tuple.
Checks if an error is an invalid command error.
@spec reason( {:error, atom()} | {:error, :safety, atom()} | {:error, :invalid_command, atom()} ) :: atom()
Extracts the reason from any error tuple.
@spec safety(safety_reason()) :: {:error, :safety, safety_reason()}
Creates a safety error tuple.
Checks if an error is a safety error.