Доработка. Добавлено ожидание выполнения команды по её коду
This commit is contained in:
@@ -303,24 +303,24 @@ class YaU07 extends unit.Unit:
|
|||||||
if cmd_result != 1: # Команда не выполнена
|
if cmd_result != 1: # Команда не выполнена
|
||||||
return false
|
return false
|
||||||
|
|
||||||
var cmd_code: CmdCode = rx_data[cmd_code_pos] as CmdCode # "код команды"
|
var cmd_code: int = rx_data[cmd_code_pos] # Код команды
|
||||||
var rc: = true
|
|
||||||
if (cmd_code == CmdCode.READ_ISA) or (cmd_code == CmdCode.WRITE_ISA):
|
|
||||||
rc = parse_isa(rx_data, status_len)
|
|
||||||
|
|
||||||
elif (cmd_code == CmdCode.READ_BLOCK) or (cmd_code == CmdCode.WRITE_BLOCK):
|
if (cmd_state == CmdState.WAIT) and (cmd_num_rx == cmd_num_tx) and (cmd_code == cmd_code_tx):
|
||||||
rc = parse_block(rx_data, status_len)
|
cmd_code_rx = cmd_code
|
||||||
|
cmd_state = CmdState.DONE
|
||||||
|
var rc: = true
|
||||||
|
if (cmd_code == CmdCode.READ_ISA) or (cmd_code == CmdCode.WRITE_ISA):
|
||||||
|
rc = parse_isa(rx_data, status_len)
|
||||||
|
elif (cmd_code == CmdCode.READ_BLOCK) or (cmd_code == CmdCode.WRITE_BLOCK):
|
||||||
|
rc = parse_block(rx_data, status_len)
|
||||||
|
elif (cmd_code == CmdCode.ERASE_FLASH) or (cmd_code == CmdCode.WRITE_FLASH) \
|
||||||
|
or (cmd_code == CmdCode.READ_FLASH_MP550) or (cmd_code == CmdCode.WRITE_FLASH_MP550) \
|
||||||
|
or (cmd_code == CmdCode.READ_FLASH) or (cmd_code == CmdCode.LOAD_FLASH):
|
||||||
|
rc = parse_flash(rx_data, status_len, cmd_code)
|
||||||
|
|
||||||
elif (cmd_code == CmdCode.ERASE_FLASH) or (cmd_code == CmdCode.WRITE_FLASH) \
|
if rc:
|
||||||
or (cmd_code == CmdCode.READ_FLASH_MP550) or (cmd_code == CmdCode.WRITE_FLASH_MP550) \
|
|
||||||
or (cmd_code == CmdCode.READ_FLASH) or (cmd_code == CmdCode.LOAD_FLASH):
|
|
||||||
rc = parse_flash(rx_data, status_len, cmd_code)
|
|
||||||
|
|
||||||
if rc:
|
|
||||||
if (cmd_state == CmdState.WAIT) and (cmd_num_rx == cmd_num_tx):
|
|
||||||
cmd_state = CmdState.DONE
|
|
||||||
cmd_code_rx = cmd_code
|
|
||||||
emit_signal('command_done', self)
|
emit_signal('command_done', self)
|
||||||
else:
|
else:
|
||||||
emit_signal('parse_failed', self)
|
emit_signal('parse_failed', self)
|
||||||
|
|
||||||
return true
|
return true
|
||||||
|
|||||||
Reference in New Issue
Block a user