dotbot.keyboard module#

Module implementing a keyboard Dotbot controller.

class dotbot.keyboard.KeyboardController(rest_client, dotbot_address, application)[source]#

Bases: object

Dotbot controller for a keyboard interface.

async fetch_active_dotbots()[source]#
async refresh_speeds()[source]#

Refresh the motor speeds and send an update if needed.

speeds_from_keys()[source]#

Computes the left/right wheels speeds from current key pressed.

async start()[source]#

Starts to continuously listen on keyboard key press/release events.

async update_active_keys()[source]#

Coroutine used to handle keyboard events asynchronously.

property selected_dotbot#
class dotbot.keyboard.KeyboardEvent(type_, key)[source]#

Bases: object

Data class that handles data of a keyboard event.

Parameters:
key: <MagicMock name='mock.Key' id='124853548676048'>#
type_: KeyboardEventType#
class dotbot.keyboard.KeyboardEventType(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]#

Bases: Enum

Supported types of keyboard events.

PRESSED = 0#
RELEASED = 1#
class dotbot.keyboard.MotorSpeeds(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]#

Bases: Enum

Levels used for motor speeds.

BOOST = 100#
NORMAL = 84#
SUPERBOOST = 127#
async dotbot.keyboard.cli(hostname, port, https, dotbot_address, application, log_level)[source]#
dotbot.keyboard.rgb_from_key(key)[source]#

Compute the RGB values from a key.

>>> rgb_from_key("r")
[255, 0, 0]
>>> rgb_from_key("g")
[0, 255, 0]
>>> rgb_from_key("b")
[0, 0, 255]
>>> rgb_from_key("y")
[255, 255, 0]
>>> rgb_from_key("p")
[255, 0, 255]
>>> rgb_from_key("w")
[255, 255, 255]
>>> rgb_from_key("n")
[0, 0, 0]
>>> rgb_from_key("a")
[0, 0, 0]
>>> rgb_from_key("-")
[0, 0, 0]