# tool/core/protocol.py VERSION = { "min_protocol_version": 1, "max_protocol_version": 1, "current_protocol_version": None } SYNC_SEQ = b'BUZZ' ERRORS = { 0x00: "NONE", 0x01: "INVALID_COMMAND", 0x02: "INVALID_PARAMETERS", 0x03: "MISSING_PARAMETERS", 0x10: "FILE_NOT_FOUND", 0x11: "ALREADY_EXISTS", 0x12: "NOT_A_DIRECTORY", 0x13: "IS_A_DIRECTORY", 0x14: "ACCESS_DENIED", 0x15: "NO_SPACE", 0x16: "FILE_TOO_LARGE", 0x20: "IO_ERROR", 0x21: "TIMEOUT", 0x22: "CRC_MISMATCH", 0x23: "TRANSFER_ABORTED", 0x30: "NOT_SUPPORTED", 0x31: "BUSY", 0x32: "INTERNAL_ERROR", 0x40: "NOT_IMPLEMENTED", } FRAME_TYPE_REQUEST = 0x01 FRAME_TYPE_ACK = 0x10 FRAME_TYPE_RESPONSE = 0x11 FRAME_TYPE_STREAM_START = 0x12 FRAME_TYPE_STREAM_CHUNK = 0x13 FRAME_TYPE_STREAM_END = 0x14 FRAME_TYPE_LIST_START = 0x15 FRAME_TYPE_LIST_CHUNK = 0x16 FRAME_TYPE_LIST_END = 0x17 FRAME_TYPE_ERROR = 0xFF FRAME_TYPES = { 'request': FRAME_TYPE_REQUEST, 'ack': FRAME_TYPE_ACK, 'response': FRAME_TYPE_RESPONSE, 'error': FRAME_TYPE_ERROR, 'stream_start': FRAME_TYPE_STREAM_START, 'stream_chunk': FRAME_TYPE_STREAM_CHUNK, 'stream_end': FRAME_TYPE_STREAM_END, 'list_start': FRAME_TYPE_LIST_START, 'list_chunk': FRAME_TYPE_LIST_CHUNK, 'list_end': FRAME_TYPE_LIST_END } CMD_GET_PROTOCOL_VERSION = 0x00 CMD_GET_FIRMWARE_STATUS = 0x01 CMD_GET_FLASH_INFO = 0x02 CMD_LIST_DIR = 0x10 CMD_CRC_32 = 0x11 CMD_MKDIR = 0x12 CMD_RM = 0x13 CMD_STAT = 0x18 CMD_RENAME = 0x19 CMD_PUT_FILE = 0x20 CMD_PUT_FW = 0x21 CMD_GET_FILE = 0x22 COMMANDS = { 'get_protocol_version': CMD_GET_PROTOCOL_VERSION, 'get_firmware_status': CMD_GET_FIRMWARE_STATUS, 'get_flash_info': CMD_GET_FLASH_INFO, 'list_dir': CMD_LIST_DIR, 'stat': CMD_STAT, 'rm': CMD_RM, 'rename': CMD_RENAME, 'mkdir': CMD_MKDIR, 'crc_32': CMD_CRC_32, 'put_file': CMD_PUT_FILE, 'get_file': CMD_GET_FILE, 'put_fw': CMD_PUT_FW, }