добавлено отображение версии самого аплоадера и команда на получение версии бутлоадера
This commit is contained in:
parent
67759c6439
commit
b8438385af
@ -3,6 +3,8 @@ import time
|
||||
import argparse
|
||||
from sys import exit
|
||||
|
||||
UPLOADER_VERSION = "0.2.3"
|
||||
|
||||
TIMEOUT_DEFAULT = 0.1 # sec
|
||||
|
||||
BYTE_COUNT_POS = 0 # индекс счетчика байт данных
|
||||
@ -13,6 +15,7 @@ REC_TYPE_EXT_LIN_ADDR = 4 # тип записи - расширенный ад
|
||||
|
||||
COMMAND_PACKAGE_SIZE = b'\x30' # Команда размера пакета
|
||||
COMMAND_SEND_PACKAGE = b'\x60' # Команда отправить пакет
|
||||
COMMAND_GET_VERSION = b'\x90' # Команда получить версию начального загрузчика
|
||||
COMMAND_FULL_ERASE = 0xBADC0FEE # Команда очистить чип
|
||||
|
||||
ACK = 0x0F # МК подтвердил 0b00001111
|
||||
@ -64,6 +67,22 @@ def cmd_send_package(data_package):
|
||||
# Если дошли сюда, значит контроллер ответил на команду. Отправить пакет
|
||||
send_parsel(bytes(data_package))
|
||||
|
||||
# Получить версию начального загрузчика
|
||||
def cmd_get_version():
|
||||
for attempt in range(10):
|
||||
ser.write(COMMAND_GET_VERSION) # Отправка команды получения версии
|
||||
read_bytes = ser.read(3) # Ожидание ответа от МК, должны получить 3 байта
|
||||
|
||||
if len(read_bytes) == 3:
|
||||
major, minor, patch = read_bytes
|
||||
return f"{major}.{minor}.{patch}" # Возвращаем строку версии
|
||||
else:
|
||||
# ответ на команду не получен
|
||||
pass
|
||||
|
||||
# за 10 раз не получили внятного ответа - устройство не отвечает, выходим
|
||||
print("Device not responding (get_version)")
|
||||
exit()
|
||||
|
||||
def printProgressBar (iteration, total, prefix = '', suffix = '', decimals = 1, length = 100, fill = '_', printEnd = "\r"):
|
||||
percent = ("{0:." + str(decimals) + "f}").format(100 * (iteration / float(total)))
|
||||
@ -124,6 +143,8 @@ parser = createParser()
|
||||
namespace = parser.parse_args()
|
||||
|
||||
if namespace.hexpath:
|
||||
print(f"Start elbear_uploader v{UPLOADER_VERSION}")
|
||||
|
||||
# читаем хекс
|
||||
with open(f"{namespace.hexpath}", "r", encoding='utf-8') as f:
|
||||
hex_lines = f.readlines()
|
||||
@ -218,6 +239,10 @@ if namespace.hexpath:
|
||||
if ping:
|
||||
print("Device connected")
|
||||
|
||||
# todo проверить
|
||||
version_str = cmd_get_version()
|
||||
print("Bootloader version:", version_str)
|
||||
|
||||
if namespace.fullerase:
|
||||
print('Erasing memory')
|
||||
cmd_full_erase()
|
||||
|
||||
Loading…
Reference in New Issue
Block a user