88 lines
2.0 KiB
Python
88 lines
2.0 KiB
Python
# 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,
|
|
} |