From c3459013d5f2849dea93db6bebab3edb08ab93f3 Mon Sep 17 00:00:00 2001 From: klassents Date: Tue, 10 Sep 2024 12:22:36 +0700 Subject: [PATCH] =?UTF-8?q?=D1=83=D0=B2=D0=B5=D0=BB=D0=B8=D1=87=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=BA=D0=BE=D0=BC=D0=B0=D0=BD=D0=B4=D0=B0=20ful?= =?UTF-8?q?l=5Ferase,=20=D0=BD=D0=B0=20=D0=B2=D1=80=D0=B5=D0=BC=D1=8F=20?= =?UTF-8?q?=D0=BE=D1=87=D0=B8=D1=81=D1=82=D0=BA=D0=B8=20=D1=87=D0=B8=D0=BF?= =?UTF-8?q?=D0=B0=20=D1=82=D0=B0=D0=B9=D0=BC=D0=B0=D1=83=D1=82=20serial=20?= =?UTF-8?q?=D0=BE=D1=82=D0=BA=D0=BB=D1=8E=D1=87=D0=B0=D0=B5=D1=82=D1=81?= =?UTF-8?q?=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- elbear_uploader.py | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/elbear_uploader.py b/elbear_uploader.py index d75488b..3f8194f 100644 --- a/elbear_uploader.py +++ b/elbear_uploader.py @@ -3,16 +3,20 @@ import time import argparse from sys import exit -ACK = 0x0F # МК подтвердил 0b00001111 -NACK = 0xF0 # МК отверг 0b11110000 -COMMAND_PACKAGE_SIZE = b'\x30' # Команда размера пакета -COMMAND_SEND_PACKAGE = b'\x60' # Команда отправить пакет -COMMAND_FULL_ERASE = b'\xFE' +TIMEOUT_DEFAULT = 0.1 # sec +ACK = 0x0F # МК подтвердил 0b00001111 +NACK = 0xF0 # МК отверг 0b11110000 +COMMAND_PACKAGE_SIZE = b'\x30' # Команда размера пакета +COMMAND_SEND_PACKAGE = b'\x60' # Команда отправить пакет +COMMAND_FULL_ERASE = 0xBADC0FEE # Команда очистить чип def cmd_full_erase(): - ser.write(bytes(COMMAND_FULL_ERASE)) - read_byte = ser.read(1) # Прочесть байт ACK/NACK от контроллера + ser.write(COMMAND_FULL_ERASE.to_bytes(4, "big")) + ser.timeout = None # Выключить таймаут, чтобы дождаться завершения процесса стирания чипа + read_byte = ser.read(1) # Прочесть байт ACK/NACK от контроллера + ser.timeout = TIMEOUT_DEFAULT # Включить таймаут обратно + if int.from_bytes(read_byte, "big") == NACK: print("NACK. COMMAND_FULL_ERASE") exit() @@ -161,7 +165,7 @@ if namespace.hexpath: i -= 1 # текущая строчка удалилась, следующая будет с тем же индексом i += 1 - ser = serial.Serial(port = namespace.com, baudrate = namespace.baudrate, timeout = 0.1) + ser = serial.Serial(port = namespace.com, baudrate = namespace.baudrate, timeout = TIMEOUT_DEFAULT) ping = False for i in range(10): # вместо задержки забрасываем запросами