ARD-84 #1
@ -3,19 +3,27 @@ import time
|
|||||||
import argparse
|
import argparse
|
||||||
from sys import exit
|
from sys import exit
|
||||||
|
|
||||||
ACK = 0x0F # МК подтвердил 0b00001111
|
TIMEOUT_DEFAULT = 0.1 # sec
|
||||||
NACK = 0xF0 # МК отверг 0b11110000
|
ACK = 0x0F # МК подтвердил 0b00001111
|
||||||
COMMAND_PACKAGE_SIZE = b'\x30' # Команда размера пакета
|
NACK = 0xF0 # МК отверг 0b11110000
|
||||||
COMMAND_SEND_PACKAGE = b'\x60' # Команда отправить пакет
|
COMMAND_PACKAGE_SIZE = b'\x30' # Команда размера пакета
|
||||||
COMMAND_FULL_ERASE = b'\xFE'
|
COMMAND_SEND_PACKAGE = b'\x60' # Команда отправить пакет
|
||||||
|
COMMAND_FULL_ERASE = 0xBADC0FEE # Команда очистить чип
|
||||||
|
|
||||||
|
|
||||||
def cmd_full_erase():
|
def cmd_full_erase():
|
||||||
ser.write(bytes(COMMAND_FULL_ERASE))
|
ser.write(COMMAND_FULL_ERASE.to_bytes(4, "big"))
|
||||||
read_byte = ser.read(1) # Прочесть байт ACK/NACK от контроллера
|
read_byte = ser.read(1) # Прочесть подтверждение получения команды
|
||||||
if int.from_bytes(read_byte, "big") == NACK:
|
if int.from_bytes(read_byte, "big") == NACK:
|
||||||
print("NACK. COMMAND_FULL_ERASE")
|
print("NACK. COMMAND_FULL_ERASE")
|
||||||
exit()
|
exit()
|
||||||
|
ser.timeout = None # Выключить таймаут, чтобы дождаться завершения процесса стирания чипа
|
||||||
|
read_byte = ser.read(1) # Прочесть байт ACK/NACK от контроллера
|
||||||
|
ser.timeout = TIMEOUT_DEFAULT # Включить таймаут обратно
|
||||||
|
|
||||||
|
if int.from_bytes(read_byte, "big") == NACK:
|
||||||
|
print("NACK. FULL_ERASE FAILED")
|
||||||
|
exit()
|
||||||
|
|
||||||
# Задать размер пакета
|
# Задать размер пакета
|
||||||
def cmd_package_size(package_size):
|
def cmd_package_size(package_size):
|
||||||
@ -161,7 +169,7 @@ if namespace.hexpath:
|
|||||||
i -= 1 # текущая строчка удалилась, следующая будет с тем же индексом
|
i -= 1 # текущая строчка удалилась, следующая будет с тем же индексом
|
||||||
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
|
ping = False
|
||||||
for i in range(10): # вместо задержки забрасываем запросами
|
for i in range(10): # вместо задержки забрасываем запросами
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user