dotbot.models module#
Pydantic models used by the controller and server application.
- class dotbot.models.DotBotAddressModel(*, address)[source]#
Bases:
BaseModelSimple model to hold a DotBot address.
- Parameters:
address (str)
- address: str#
- model_config: ClassVar[ConfigDict] = {}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class dotbot.models.DotBotControlModeModel(*, mode)[source]#
Bases:
BaseModelMode of a DotBot.
- Parameters:
mode (ControlModeType)
- mode: ControlModeType#
- model_config: ClassVar[ConfigDict] = {}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class dotbot.models.DotBotGPSPosition(*, latitude, longitude)[source]#
Bases:
BaseModelGPS position of a DotBot, usually running a SailBot application.
- Parameters:
latitude (float)
longitude (float)
- latitude: float#
- longitude: float#
- model_config: ClassVar[ConfigDict] = {}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class dotbot.models.DotBotLH2Position(*, x, y, z)[source]#
Bases:
BaseModelPosition of a DotBot.
- Parameters:
x (float)
y (float)
z (float)
- model_config: ClassVar[ConfigDict] = {}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- x: float#
- y: float#
- z: float#
- class dotbot.models.DotBotModel(*, address, application=ApplicationType.DotBot, swarm='0000', status=DotBotStatus.ACTIVE, mode=ControlModeType.MANUAL, last_seen, direction=None, wind_angle=None, rudder_angle=None, sail_angle=None, move_raw=None, rgb_led=None, lh2_position=None, gps_position=None, waypoints=[], waypoints_threshold=40, position_history=[], calibrated=False, battery=0.0)[source]#
Bases:
BaseModelModel class that defines a DotBot.
- Parameters:
address (str)
application (ApplicationType)
swarm (str)
status (DotBotStatus)
mode (ControlModeType)
last_seen (float)
direction (int | None)
wind_angle (int | None)
rudder_angle (int | None)
sail_angle (int | None)
move_raw (DotBotMoveRawCommandModel | None)
rgb_led (DotBotRgbLedCommandModel | None)
lh2_position (DotBotLH2Position | None)
gps_position (DotBotGPSPosition | None)
waypoints (List[DotBotLH2Position | DotBotGPSPosition])
waypoints_threshold (int)
position_history (List[DotBotLH2Position | DotBotGPSPosition])
calibrated (bool)
battery (float)
- address: str#
- application: ApplicationType#
- battery: float#
- calibrated: bool#
- direction: int | None#
- gps_position: DotBotGPSPosition | None#
- last_seen: float#
- lh2_position: DotBotLH2Position | None#
- mode: ControlModeType#
- model_config: ClassVar[ConfigDict] = {}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- move_raw: DotBotMoveRawCommandModel | None#
- position_history: List[DotBotLH2Position | DotBotGPSPosition]#
- rgb_led: DotBotRgbLedCommandModel | None#
- rudder_angle: int | None#
- sail_angle: int | None#
- status: DotBotStatus#
- swarm: str#
- waypoints: List[DotBotLH2Position | DotBotGPSPosition]#
- waypoints_threshold: int#
- wind_angle: int | None#
- class dotbot.models.DotBotMoveRawCommandModel(*, left_x, left_y, right_x, right_y)[source]#
Bases:
BaseModelModel class that defines a move raw command.
- Parameters:
left_x (int)
left_y (int)
right_x (int)
right_y (int)
- left_x: int#
- left_y: int#
- model_config: ClassVar[ConfigDict] = {}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- right_x: int#
- right_y: int#
- class dotbot.models.DotBotNotificationCommand(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]#
Bases:
IntEnumNotification command of a DotBot.
- NONE: int = 0#
- PIN_CODE_UPDATE: int = 3#
- RELOAD: int = 1#
- UPDATE: int = 2#
- class dotbot.models.DotBotNotificationModel(*, cmd, data=None, pin_code=None)[source]#
Bases:
BaseModelModel class used to send controller notifications.
- Parameters:
data (DotBotNotificationUpdate | None)
pin_code (int | None)
- data: DotBotNotificationUpdate | None#
- model_config: ClassVar[ConfigDict] = {}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- pin_code: int | None#
- class dotbot.models.DotBotNotificationUpdate(*, address, direction, wind_angle, rudder_angle, sail_angle, lh2_position=None, gps_position=None, battery=None)[source]#
Bases:
BaseModelUpdate notification model.
- Parameters:
address (str)
direction (int | None)
wind_angle (int | None)
rudder_angle (int | None)
sail_angle (int | None)
lh2_position (DotBotLH2Position | None)
gps_position (DotBotGPSPosition | None)
battery (float | None)
- address: str#
- battery: float | None#
- direction: int | None#
- gps_position: DotBotGPSPosition | None#
- lh2_position: DotBotLH2Position | None#
- model_config: ClassVar[ConfigDict] = {}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- rudder_angle: int | None#
- sail_angle: int | None#
- wind_angle: int | None#
- class dotbot.models.DotBotQueryModel(*, max_positions=1000, application=None, mode=None, status=None, swarm=None)[source]#
Bases:
BaseModelModel class used to filter DotBots.
- Parameters:
max_positions (int)
application (ApplicationType | None)
mode (ControlModeType | None)
status (DotBotStatus | None)
swarm (str | None)
- application: ApplicationType | None#
- max_positions: int#
- mode: ControlModeType | None#
- model_config: ClassVar[ConfigDict] = {}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- status: DotBotStatus | None#
- swarm: str | None#
- class dotbot.models.DotBotReplyModel(*, request, data)[source]#
Bases:
BaseModelModel class used to handle controller replies.
- Parameters:
request (DotBotRequestType)
data (Any)
- data: Any#
- model_config: ClassVar[ConfigDict] = {}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- request: DotBotRequestType#
- class dotbot.models.DotBotRequestModel(*, request, reply)[source]#
Bases:
BaseModelModel class used to handle controller request.
- Parameters:
request (DotBotRequestType)
reply (str)
- model_config: ClassVar[ConfigDict] = {}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- reply: str#
- request: DotBotRequestType#
- class dotbot.models.DotBotRequestType(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]#
Bases:
IntEnumRequest received from MQTT client.
- DOTBOTS: int = 0#
- class dotbot.models.DotBotRgbLedCommandModel(*, red, green, blue)[source]#
Bases:
BaseModelModel class that defines an RGB LED command.
- Parameters:
red (int)
green (int)
blue (int)
- blue: int#
- green: int#
- model_config: ClassVar[ConfigDict] = {}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- red: int#
- class dotbot.models.DotBotStatus(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]#
Bases:
IntEnumStatus of a DotBot.
- ACTIVE: int = 0#
- INACTIVE: int = 1#
- LOST: int = 2#
- class dotbot.models.DotBotWaypoints(*, threshold, waypoints)[source]#
Bases:
BaseModelWaypoints model.
- Parameters:
threshold (int)
waypoints (List[DotBotLH2Position | DotBotGPSPosition])
- model_config: ClassVar[ConfigDict] = {}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- threshold: int#
- waypoints: List[DotBotLH2Position | DotBotGPSPosition]#
- class dotbot.models.DotBotXGOActionCommandModel(*, action)[source]#
Bases:
BaseModelModel class that defines an XGO action command.
- Parameters:
action (int)
- action: int#
- model_config: ClassVar[ConfigDict] = {}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class dotbot.models.MqttPinCodeModel(*, pin)[source]#
Bases:
BaseModelPin code used to derive crypto keys for MQTT.
- Parameters:
pin (int)
- model_config: ClassVar[ConfigDict] = {}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- pin: int#
- class dotbot.models.WSBase(*, cmd, address, application)[source]#
Bases:
BaseModel- Parameters:
cmd (str)
address (str)
application (ApplicationType)
- address: str#
- application: ApplicationType#
- cmd: str#
- model_config: ClassVar[ConfigDict] = {}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class dotbot.models.WSMoveRaw(*, cmd, address, application, data)[source]#
Bases:
WSBase- Parameters:
cmd (Literal['move_raw'])
address (str)
application (ApplicationType)
data (DotBotMoveRawCommandModel)
- cmd: Literal['move_raw']#
- model_config: ClassVar[ConfigDict] = {}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class dotbot.models.WSRgbLed(*, cmd, address, application, data)[source]#
Bases:
WSBase- Parameters:
cmd (Literal['rgb_led'])
address (str)
application (ApplicationType)
data (DotBotRgbLedCommandModel)
- cmd: Literal['rgb_led']#
- model_config: ClassVar[ConfigDict] = {}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class dotbot.models.WSWaypoints(*, cmd, address, application, data)[source]#
Bases:
WSBase- Parameters:
cmd (Literal['waypoints'])
address (str)
application (ApplicationType)
data (DotBotWaypoints)
- cmd: Literal['waypoints']#
- data: DotBotWaypoints#
- model_config: ClassVar[ConfigDict] = {}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].