diff --git a/scripts/yau07.gd b/scripts/yau07.gd index 54e02478..9c5e2fb8 100644 --- a/scripts/yau07.gd +++ b/scripts/yau07.gd @@ -303,24 +303,24 @@ class YaU07 extends unit.Unit: if cmd_result != 1: # Команда не выполнена return false - var cmd_code: CmdCode = rx_data[cmd_code_pos] as CmdCode # "код команды" - var rc: = true - if (cmd_code == CmdCode.READ_ISA) or (cmd_code == CmdCode.WRITE_ISA): - rc = parse_isa(rx_data, status_len) + var cmd_code: int = rx_data[cmd_code_pos] # Код команды - elif (cmd_code == CmdCode.READ_BLOCK) or (cmd_code == CmdCode.WRITE_BLOCK): - rc = parse_block(rx_data, status_len) + if (cmd_state == CmdState.WAIT) and (cmd_num_rx == cmd_num_tx) and (cmd_code == cmd_code_tx): + 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) \ - 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 + if rc: emit_signal('command_done', self) - else: - emit_signal('parse_failed', self) + else: + emit_signal('parse_failed', self) + return true