Compare commits
3 Commits
main
...
dev_getVer
| Author | SHA1 | Date | |
|---|---|---|---|
| 73330467a7 | |||
| 9b000cf06c | |||
| b8438385af |
@ -3,6 +3,8 @@ import time
|
|||||||
import argparse
|
import argparse
|
||||||
from sys import exit
|
from sys import exit
|
||||||
|
|
||||||
|
UPLOADER_VERSION = "0.2.3"
|
||||||
|
|
||||||
TIMEOUT_DEFAULT = 0.1 # sec
|
TIMEOUT_DEFAULT = 0.1 # sec
|
||||||
|
|
||||||
BYTE_COUNT_POS = 0 # индекс счетчика байт данных
|
BYTE_COUNT_POS = 0 # индекс счетчика байт данных
|
||||||
@ -13,6 +15,7 @@ REC_TYPE_EXT_LIN_ADDR = 4 # тип записи - расширенный ад
|
|||||||
|
|
||||||
COMMAND_PACKAGE_SIZE = b'\x30' # Команда размера пакета
|
COMMAND_PACKAGE_SIZE = b'\x30' # Команда размера пакета
|
||||||
COMMAND_SEND_PACKAGE = b'\x60' # Команда отправить пакет
|
COMMAND_SEND_PACKAGE = b'\x60' # Команда отправить пакет
|
||||||
|
COMMAND_GET_VERSION = b'\x90' # Команда получить версию начального загрузчика
|
||||||
COMMAND_FULL_ERASE = 0xBADC0FEE # Команда очистить чип
|
COMMAND_FULL_ERASE = 0xBADC0FEE # Команда очистить чип
|
||||||
|
|
||||||
ACK = 0x0F # МК подтвердил 0b00001111
|
ACK = 0x0F # МК подтвердил 0b00001111
|
||||||
@ -64,6 +67,19 @@ def cmd_send_package(data_package):
|
|||||||
# Если дошли сюда, значит контроллер ответил на команду. Отправить пакет
|
# Если дошли сюда, значит контроллер ответил на команду. Отправить пакет
|
||||||
send_parsel(bytes(data_package))
|
send_parsel(bytes(data_package))
|
||||||
|
|
||||||
|
# Получить версию начального загрузчика
|
||||||
|
def cmd_get_version():
|
||||||
|
# отправить команду получения версии
|
||||||
|
send_parsel(COMMAND_GET_VERSION)
|
||||||
|
|
||||||
|
# Если дошли сюда, значит контроллер ответил на команду. Получить версию загрузчика - 3 байта
|
||||||
|
read_bytes = ser.read(3)
|
||||||
|
if len(read_bytes) == 3:
|
||||||
|
major, minor, patch = read_bytes
|
||||||
|
return f"{major}.{minor}.{patch}" # Возвращаем строку версии
|
||||||
|
else:
|
||||||
|
print("Get incorrect bootloader version")
|
||||||
|
return 0
|
||||||
|
|
||||||
def printProgressBar (iteration, total, prefix = '', suffix = '', decimals = 1, length = 100, fill = '_', printEnd = "\r"):
|
def printProgressBar (iteration, total, prefix = '', suffix = '', decimals = 1, length = 100, fill = '_', printEnd = "\r"):
|
||||||
percent = ("{0:." + str(decimals) + "f}").format(100 * (iteration / float(total)))
|
percent = ("{0:." + str(decimals) + "f}").format(100 * (iteration / float(total)))
|
||||||
@ -124,6 +140,8 @@ parser = createParser()
|
|||||||
namespace = parser.parse_args()
|
namespace = parser.parse_args()
|
||||||
|
|
||||||
if namespace.hexpath:
|
if namespace.hexpath:
|
||||||
|
print(f"Start elbear_uploader v{UPLOADER_VERSION}")
|
||||||
|
|
||||||
# читаем хекс
|
# читаем хекс
|
||||||
with open(f"{namespace.hexpath}", "r", encoding='utf-8') as f:
|
with open(f"{namespace.hexpath}", "r", encoding='utf-8') as f:
|
||||||
hex_lines = f.readlines()
|
hex_lines = f.readlines()
|
||||||
@ -218,6 +236,9 @@ if namespace.hexpath:
|
|||||||
if ping:
|
if ping:
|
||||||
print("Device connected")
|
print("Device connected")
|
||||||
|
|
||||||
|
version_str = cmd_get_version()
|
||||||
|
print("Bootloader version:", version_str)
|
||||||
|
|
||||||
if namespace.fullerase:
|
if namespace.fullerase:
|
||||||
print('Erasing memory')
|
print('Erasing memory')
|
||||||
cmd_full_erase()
|
cmd_full_erase()
|
||||||
@ -225,7 +246,7 @@ if namespace.hexpath:
|
|||||||
|
|
||||||
# перебираем все строчки в прочитанном файле и отправляем
|
# перебираем все строчки в прочитанном файле и отправляем
|
||||||
timestart = time.time()
|
timestart = time.time()
|
||||||
resolution = 1 # секунды - период выплевывани инфы о прогрессе в терминал
|
resolution = 1 # секунды - период выплевывания инфы о прогрессе в терминал
|
||||||
all_showed = False
|
all_showed = False
|
||||||
for line in data_lines:
|
for line in data_lines:
|
||||||
cmd_package_size(len(line))
|
cmd_package_size(len(line))
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user