dotbot.protocol module#

Module for the Dotbot protocol API.

class dotbot.protocol.ApplicationType(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]#

Bases: IntEnum

Types of DotBot applications.

DotBot = 0#
Freebot = 2#
LH2_mini_mote = 4#
SailBot = 1#
XGO = 3#
class dotbot.protocol.ControlModeType(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]#

Bases: IntEnum

Types of DotBot control modes.

AUTO = 1#
MANUAL = 0#
class dotbot.protocol.PayloadAdvertisement(metadata=<factory>, application=ApplicationType.DotBot)[source]#

Bases: Payload

Dataclass that holds an advertisement (emtpy).

Parameters:
application: ApplicationType = 0#
metadata: list[PayloadFieldMetadata]#
class dotbot.protocol.PayloadCommandMoveRaw(metadata=<factory>, left_x=0, left_y=0, right_x=0, right_y=0)[source]#

Bases: Payload

Dataclass that holds move raw command data fields.

Parameters:
  • metadata (list[PayloadFieldMetadata])

  • left_x (int)

  • left_y (int)

  • right_x (int)

  • right_y (int)

left_x: int = 0#
left_y: int = 0#
metadata: list[PayloadFieldMetadata]#
right_x: int = 0#
right_y: int = 0#
class dotbot.protocol.PayloadCommandRgbLed(metadata=<factory>, red=0, green=0, blue=0)[source]#

Bases: Payload

Dataclass that holds a complete rgb led command fields.

Parameters:
  • metadata (list[PayloadFieldMetadata])

  • red (int)

  • green (int)

  • blue (int)

blue: int = 0#
green: int = 0#
metadata: list[PayloadFieldMetadata]#
red: int = 0#
class dotbot.protocol.PayloadCommandXgoAction(metadata=<factory>, action=0)[source]#

Bases: Payload

Dataclass that holds an XGO action.

Parameters:
  • metadata (list[PayloadFieldMetadata])

  • action (int)

action: int = 0#
metadata: list[PayloadFieldMetadata]#
class dotbot.protocol.PayloadControlMode(metadata=<factory>, mode=ControlModeType.MANUAL)[source]#

Bases: Payload

Dataclass that holds a control mode message.

Parameters:
metadata: list[PayloadFieldMetadata]#
mode: ControlModeType = 0#
class dotbot.protocol.PayloadDotBotAdvertisement(metadata=<factory>, calibrated=False, direction=65535, pos_x=4294967295, pos_y=4294967295, pos_z=4294967295, battery=0)[source]#

Bases: Payload

Dataclass that holds a dotbot advertisement packet.

Parameters:
  • metadata (list[PayloadFieldMetadata])

  • calibrated (bool)

  • direction (int)

  • pos_x (int)

  • pos_y (int)

  • pos_z (int)

  • battery (int)

battery: int = 0#
calibrated: bool = False#
direction: int = 65535#
metadata: list[PayloadFieldMetadata]#
pos_x: int = 4294967295#
pos_y: int = 4294967295#
pos_z: int = 4294967295#
class dotbot.protocol.PayloadDotBotSimulatorData(metadata=<factory>, theta=65535, pos_x=0, pos_y=0)[source]#

Bases: Payload

Dataclass that holds direction and GPS data and heading from SailBot application.

Parameters:
  • metadata (list[PayloadFieldMetadata])

  • theta (int)

  • pos_x (int)

  • pos_y (int)

metadata: list[PayloadFieldMetadata]#
pos_x: int = 0#
pos_y: int = 0#
theta: int = 65535#
class dotbot.protocol.PayloadGPSPosition(metadata=<factory>, latitude=0, longitude=0)[source]#

Bases: Payload

Dataclass that holds GPS positions.

Parameters:
  • metadata (list[PayloadFieldMetadata])

  • latitude (int)

  • longitude (int)

latitude: int = 0#
longitude: int = 0#
metadata: list[PayloadFieldMetadata]#
class dotbot.protocol.PayloadGPSWaypoints(metadata=<factory>, threshold=0, count=0, waypoints=<factory>)[source]#

Bases: Payload

Dataclass that holds a list of GPS waypoints.

Parameters:
  • metadata (list[PayloadFieldMetadata])

  • threshold (int)

  • count (int)

  • waypoints (list[PayloadGPSPosition])

count: int = 0#
metadata: list[PayloadFieldMetadata]#
threshold: int = 0#
waypoints: list[PayloadGPSPosition]#
class dotbot.protocol.PayloadLH2Location(metadata=<factory>, pos_x=0, pos_y=0, pos_z=0)[source]#

Bases: Payload

Dataclass that holds LH2 computed location data.

Parameters:
  • metadata (list[PayloadFieldMetadata])

  • pos_x (int)

  • pos_y (int)

  • pos_z (int)

metadata: list[PayloadFieldMetadata]#
pos_x: int = 0#
pos_y: int = 0#
pos_z: int = 0#
class dotbot.protocol.PayloadLH2Waypoints(metadata=<factory>, threshold=0, count=0, waypoints=<factory>)[source]#

Bases: Payload

Dataclass that holds a list of LH2 waypoints.

Parameters:
  • metadata (list[PayloadFieldMetadata])

  • threshold (int)

  • count (int)

  • waypoints (list[PayloadLH2Location])

count: int = 0#
metadata: list[PayloadFieldMetadata]#
threshold: int = 0#
waypoints: list[PayloadLH2Location]#
class dotbot.protocol.PayloadLh2CalibrationHomography(metadata=<factory>, index=0, homography_matrix=<factory>)[source]#

Bases: Payload

Dataclass that holds computed LH2 homography for a basestation indicated by index.

Parameters:
  • metadata (list[PayloadFieldMetadata])

  • index (int)

  • homography_matrix (bytes)

homography_matrix: bytes#
index: int = 0#
metadata: list[PayloadFieldMetadata]#
class dotbot.protocol.PayloadLh2ProcessedLocation(metadata=<factory>, polynomial_index=0, lfsr_index=0, timestamp_us=0)[source]#

Bases: Payload

Dataclass that holds LH2 processed location data.

Parameters:
  • metadata (list[PayloadFieldMetadata])

  • polynomial_index (int)

  • lfsr_index (int)

  • timestamp_us (int)

lfsr_index: int = 0#
metadata: list[PayloadFieldMetadata]#
polynomial_index: int = 0#
timestamp_us: int = 0#
class dotbot.protocol.PayloadRawData(metadata=<factory>, count=0, data=<factory>)[source]#

Bases: Payload

Dataclass that holds raw bytes data.

Parameters:
  • metadata (list[PayloadFieldMetadata])

  • count (int)

  • data (bytes)

count: int = 0#
data: bytes#
metadata: list[PayloadFieldMetadata]#
class dotbot.protocol.PayloadSailBotData(metadata=<factory>, direction=65535, latitude=0, longitude=0, wind_angle=65535, rudder_angle=0, sail_angle=0)[source]#

Bases: Payload

Dataclass that holds SailBot data from SailBot application.

Parameters:
  • metadata (list[PayloadFieldMetadata])

  • direction (int)

  • latitude (int)

  • longitude (int)

  • wind_angle (int)

  • rudder_angle (int)

  • sail_angle (int)

direction: int = 65535#
latitude: int = 0#
longitude: int = 0#
metadata: list[PayloadFieldMetadata]#
rudder_angle: int = 0#
sail_angle: int = 0#
wind_angle: int = 65535#
class dotbot.protocol.PayloadType(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]#

Bases: IntEnum

Types of DotBot payload types.

ADVERTISEMENT = 4#
CMD_MOVE_RAW = 0#
CMD_RGB_LED = 1#
CMD_XGO_ACTION = 11#
CONTROL_MODE = 7#
DOTBOT_ADVERTISEMENT = 6#
DOTBOT_SIMULATOR_DATA = 250#
GPS_POSITION = 5#
GPS_WAYPOINTS = 9#
LH2_CALIBRATION_HOMOGRAPHY = 14#
LH2_PROCESSED_DATA = 12#
LH2_WAYPOINTS = 8#
RAW_DATA = 16#
SAILBOT_DATA = 10#