# GENERAL LEGO_MOVE_HUB = "LEGO Move Hub" DEVICE_NAME = 0x07 MOVE_HUB_HARDWARE_HANDLE = 0x0E MOVE_HUB_HARDWARE_UUID = '00001624-1212-efde-1623-785feabcd123' ENABLE_NOTIFICATIONS_HANDLE = 0x000f ENABLE_NOTIFICATIONS_VALUE = b'\x01\x00' PACKET_VER = 0x01 # PORTS PORT_C = 0x01 PORT_D = 0x02 PORT_LED = 0x32 PORT_A = 0x37 PORT_B = 0x38 PORT_AB = 0x39 PORT_TILT_SENSOR = 0x3a PORT_SOMETHING1 = 0x3B PORT_SOMETHING2 = 0x3C PORTS = { PORT_A: "A", PORT_B: "B", PORT_AB: "AB", PORT_C: "C", PORT_D: "D", PORT_LED: "LED", PORT_TILT_SENSOR: "TILT_SENSOR", PORT_SOMETHING1: "UNK1", PORT_SOMETHING2: "UNK2", } # PACKET TYPES MSG_DEVICE_INFO = 0x01 MSG_DEVICE_SHUTDOWN = 0x02 # sent when hub shuts down by button hold MSG_PING_RESPONSE = 0x03 MSG_PORT_INFO = 0x04 MSG_PORT_CMD_ERROR = 0x05 MSG_SET_PORT_VAL = 0x81 MSG_PORT_STATUS = 0x82 MSG_SENSOR_SUBSCRIBE = 0x41 MSG_SENSOR_SOMETHING1 = 0x42 # it is seen close to sensor subscribe commands. Subscription options? Initial value? MSG_SENSOR_DATA = 0x45 MSG_SENSOR_SUBSCRIBE_ACK = 0x47 # DEVICE TYPES DEV_UNKNOWN1 = 0x15 # one of them is button? DEV_UNKNOWN2 = 0x14 # another is battery? DEV_DCS = 0x25 DEV_IMOTOR = 0x26 DEV_MOTOR = 0x27 DEV_TILT_SENSOR = 0x28 DEV_LED = 0x17 DEVICE_TYPES = { DEV_DCS: "DISTANCE_COLOR_SENSOR", DEV_IMOTOR: "IMOTOR", DEV_MOTOR: "MOTOR", DEV_TILT_SENSOR: "TILT_SENSOR", DEV_LED: "LED", DEV_UNKNOWN1: "UNKNOWN #1", DEV_UNKNOWN2: "UNKNOWN #2", } # NOTIFICATIONS STATUS_STARTED = 0x01 STATUS_CONFLICT = 0x05 STATUS_FINISHED = 0x0a # TILT SENSOR TILT_MODE_2AXIS_FULL = 0x00 TILT_MODE_2AXIS_SIMPLE = 0x01 TILT_MODE_BASIC = 0x02 TILT_MODE_BUMP = 0x03 TILT_MODE_FULL = 0x04 TILT_HORIZONTAL = 0x00 TILT_UP = 0x01 TILT_DOWN = 0x02 TILT_RIGHT = 0x03 TILT_LEFT = 0x04 TILT_FRONT = 0x05 TILT_SOME1 = 0x07 TILT_SOME2 = 0x09 TILT_STATES = { TILT_HORIZONTAL: "HORIZONTAL", TILT_UP: "UP", TILT_DOWN: "DOWN", TILT_RIGHT: "RIGHT", TILT_LEFT: "LEFT", TILT_FRONT: "FRONT", TILT_SOME1: "LEFT1", TILT_SOME2: "SOME2", } # COLOR & DISTANCE SENSOR CDS_MODE_COLOR_ONLY = 0x00 CDS_MODE_DISTANCE_INCHES = 0x01 CDS_MODE_COUNT_2INCH = 0x02 CDS_MODE_DISTANCE_HOW_CLOSE = 0x03 CDS_MODE_DISTANCE_SUBINCH_HOW_CLOSE = 0x04 CDS_MODE_OFF1 = 0x05 CDS_MODE_STREAM_3_VALUES = 0x06 CDS_MODE_OFF2 = 0x07 CDS_MODE_COLOR_DISTANCE_FLOAT = 0x08 CDS_MODE_LUMINOSITY = 0x09 CDS_MODE_SOME_20BYTES = 0x0a # COLORS COLOR_BLACK = 0x00 COLOR_PINK = 0x01 COLOR_PURPLE = 0x02 COLOR_BLUE = 0x03 COLOR_LIGHTBLUE = 0x04 COLOR_CYAN = 0x05 COLOR_GREEN = 0x06 COLOR_YELLOW = 0x07 COLOR_ORANGE = 0x09 COLOR_RED = 0x09 COLOR_WHITE = 0x0a COLOR_NONE = 0xFF COLORS = { COLOR_BLACK: "BLACK", COLOR_PINK: "PINK", COLOR_PURPLE: "PURPLE", COLOR_BLUE: "BLUE", COLOR_LIGHTBLUE: "LIGHTBLUE", COLOR_CYAN: "CYAN", COLOR_GREEN: "GREEN", COLOR_YELLOW: "YELLOW", COLOR_ORANGE: "ORANGE", COLOR_RED: "RED", COLOR_WHITE: "WHITE", COLOR_NONE: "NONE" } # MOTORS MOTOR_MODE_SOMETHING1 = 0x00 MOTOR_MODE_SPEED = 0x01 MOTOR_MODE_ANGLE = 0x02