Exemplo n.º 1
0
    def __init__(self, connection=None):
        if not connection:
            connection = get_connection_auto()

        self.connection = connection
        self.info = {}
        self.devices = {}

        # shorthand fields
        self.button = Button(self)
        self.led = None
        self.amperage = None
        self.voltage = None
        self.motor_A = None
        self.motor_B = None
        self.motor_AB = None
        self.color_distance_sensor = None
        self.tilt_sensor = None
        self.motor_external = None
        self.port_C = None
        self.port_D = None

        self.connection.set_notify_handler(self._notify)

        self._wait_for_devices()
        self._report_status()
Exemplo n.º 2
0
    def __init__(self, connection=None):
        if connection is None:
            connection = get_connection_auto(hub_name=self.DEFAULT_NAME)

        super(ControlPlusHub, self).__init__(connection)
        self.info = {}

        # shorthand fields
        self.button = Button(self)
        self.led = None
        self.current = None
        self.voltage = None
        self.motor_A = None
        self.motor_B = None
        self.motor_C = None
        self.motor_D = None
        self.tilt_sensor = None
        self.accelerometer_A = None
        self.accelerometer_B = None
        self.unknown_A = None
        self.unknown_B = None
        self.unknown_C = None

        self._wait_for_devices()
        self._report_status()
Exemplo n.º 3
0
    def __init__(self, connection=None):
        self._msg_handlers = []
        self.peripherals = {}
        self._sync_request = None
        self._sync_replies = queue.Queue(1)
        self._sync_lock = threading.Lock()

        self.add_message_handler(MsgHubAttachedIO, self._handle_device_change)
        self.add_message_handler(MsgPortValueSingle, self._handle_sensor_data)
        self.add_message_handler(MsgPortValueCombined, self._handle_sensor_data)
        self.add_message_handler(MsgGenericError, self._handle_error)
        self.add_message_handler(MsgHubAction, self._handle_action)

        if not connection:
            connection = get_connection_auto()  # TODO: how to identify the hub?
        self.connection = connection
        self.connection.set_notify_handler(self._notify)
        self.connection.enable_notifications()
Exemplo n.º 4
0
    def __init__(self, connection=None):
        if connection is None:
            connection = get_connection_auto(hub_name=LEGO_TRAIN_HUB)
        super(TrainHub, self).__init__(connection)
        self.info = {}
        
        # shorthand fields
        self.button = Button(self)
        self.led = None
        self.current = None
        self.voltage = None
        self.motor_A = None # TODO
        self.motor_B = None # TODO
        self.vision_sensor = None
        self.motor_external = None

        self._wait_for_devices()
        self._report_status()
Exemplo n.º 5
0
    def __init__(self, connection=None):
        self._comm_lock = threading.RLock()
        if connection is None:
            connection = get_connection_auto(hub_name=self.DEFAULT_NAME)

        super(TrainHub, self).__init__(connection)
    
        self.info = {}

        # shorthand fields
        self.button = Button(self)
        self.port_A = None
        self.port_B = None
        self.led = None
        self.current = None
        self.voltage = None
        self.vision_sensor = None
        self.motor_external = None

        self._wait_for_devices()
        self._report_status()
Exemplo n.º 6
0
    def __init__(self, connection=None):
        if connection is None:
            connection = get_connection_auto(hub_name=self.DEFAULT_NAME)

        super(MoveHub, self).__init__(connection)
        self.info = {}

        # shorthand fields
        self.button = Button(self)
        self.led = None
        self.current = None
        self.voltage = None
        self.motor_A = None
        self.motor_B = None
        self.motor_AB = None
        self.vision_sensor = None
        self.tilt_sensor = None
        self.motor_external = None
        self.port_C = None
        self.port_D = None

        self._wait_for_devices()
        self._report_status()
Exemplo n.º 7
0
        last = self.queue.pop(0)
        if last:
            self.move_to_bucket(last[0])
            res = True

        self.feed()
        return res


if __name__ == '__main__':
    logging.basicConfig(level=logging.INFO)

    try:
        conn = DebugServerConnection()
    except BaseException:
        logging.warning("Failed to use debug server: %s", traceback.format_exc())
        conn = get_connection_auto()

    sorter = ColorSorter(conn)
    empty = 0
    try:
        while True:
            empty += 1
            if sorter.tick():
                empty = 0
            elif empty > 20:
                break

    finally:
        sorter.clear()
Exemplo n.º 8
0
from pylgbst import get_connection_auto
from pylgbst.movehub import MoveHub

conn = get_connection_auto()  # ! don't put this into `try` block
try:
    hub = MoveHub(conn)
finally:
    conn.disconnect()
Exemplo n.º 9
0
 def __init__(self, connection=None):
     if connection is None:
         connection = get_connection_auto(hub_name=self.DEFAULT_NAME)
     super(TrainHub, self).__init__(connection)