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.DotBotBackgroundMapModel(*, data=None)[source]#
Bases:
BaseModelBackground map model.
- Parameters:
data (str | None)
- data: str | None#
- 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)[source]#
Bases:
BaseModelPosition of a DotBot.
- Parameters:
x (float)
y (float)
- model_config: ClassVar[ConfigDict] = {}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- x: float#
- y: float#
- class dotbot.models.DotBotMapSizeModel(*, width, height)[source]#
Bases:
BaseModelMap size model.
- Parameters:
width (int)
height (int)
- height: int#
- model_config: ClassVar[ConfigDict] = {}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- width: int#
- 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=100, position_history=[], calibrated=0, battery=3.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 (int)
battery (float)
- address: str#
- application: ApplicationType#
- battery: float#
- calibrated: int#
- 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.
- NEW_DOTBOT: int = 4#
- 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 | DotBotModel | None)
pin_code (int | None)
- data: DotBotNotificationUpdate | DotBotModel | 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=None, wind_angle=None, rudder_angle=None, sail_angle=None, lh2_position=None, gps_position=None, battery=None, rgb_led=None, lh2_waypoints=None, gps_waypoints=None, waypoints_threshold=None, position_history=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)
rgb_led (DotBotRgbLedCommandModel | None)
lh2_waypoints (List[DotBotLH2Position] | None)
gps_waypoints (List[DotBotGPSPosition] | None)
waypoints_threshold (int | None)
position_history (List[DotBotLH2Position | DotBotGPSPosition] | None)
- address: str#
- battery: float | None#
- direction: int | None#
- gps_position: DotBotGPSPosition | None#
- gps_waypoints: List[DotBotGPSPosition] | None#
- lh2_position: DotBotLH2Position | None#
- lh2_waypoints: List[DotBotLH2Position] | None#
- model_config: ClassVar[ConfigDict] = {}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- position_history: List[DotBotLH2Position | DotBotGPSPosition] | None#
- rgb_led: DotBotRgbLedCommandModel | None#
- rudder_angle: int | None#
- sail_angle: int | None#
- waypoints_threshold: int | None#
- wind_angle: int | None#
- class dotbot.models.DotBotQueryModel(*, limit=None, address=None, application=None, status=None, max_battery=None, min_battery=None, max_positions=None, max_position_x=None, min_position_x=None, max_position_y=None, min_position_y=None)[source]#
Bases:
BaseModelModel class used to filter DotBots.
- Parameters:
limit (int | None)
address (str | None)
application (ApplicationType | None)
status (DotBotStatus | None)
max_battery (float | None)
min_battery (float | None)
max_positions (int)
max_position_x (float | None)
min_position_x (float | None)
max_position_y (float | None)
min_position_y (float | None)
- address: str | None#
- application: ApplicationType | None#
- limit: int | None#
- max_battery: float | None#
- max_position_x: float | None#
- max_position_y: float | None#
- max_positions: int#
- min_battery: float | None#
- min_position_x: float | None#
- min_position_y: float | None#
- model_config: ClassVar[ConfigDict] = {}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- status: DotBotStatus | 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#
- MAP_SIZE: int = 1#
- 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].