6 Commits
Author SHA1 Message Date
khristolyubov 29d4fa93b4 папки для сборки 2024-09-10 16:19:22 +07:00
khristolyubov d6afe948cf need different venvs for win and linux 2024-09-10 16:03:07 +07:00
khristolyubov e250512ab1 no venv in build scripts 2024-09-10 16:01:08 +07:00
klassents b2c1557107 ARD-84 (#1)
- изменилась команда full erase
- на время очистки чипа отключается таймаут в serial
2024-09-10 11:52:50 +03:00
khristolyubov b8553c40a1 win chars remove 2024-09-10 10:09:02 +07:00
khristolyubov 3542c33889 скрипт для сборки под linux 2024-08-20 19:50:14 +07:00
4 changed files with 32 additions and 10 deletions

No files matched your search

+6
View File
@@ -0,0 +1,6 @@
venv/
venv_win/
venv_linux/
build/
build_win/
build_linux/
+1 -2
View File
@@ -1,6 +1,5 @@
call .\venv\Scripts\activate.bat
python -m nuitka .\elbear_uploader.py ^
--output-dir=build ^
--output-dir=build_win ^
--output-filename="elbear_uploader.exe" ^
--standalone
+9
View File
@@ -0,0 +1,9 @@
#!/bin/bash
python -m nuitka ./elbear_uploader.py \
--output-dir=build_linux \
--output-filename="elbear_uploader" \
--standalone
cd build_linux
mv elbear_uploader.dist elbear_uploader
tar -czvf elbear_uploader_linux.tar.gz elbear_uploader
+16 -8
View File
@@ -3,19 +3,27 @@ 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"))
read_byte = ser.read(1) # Прочесть подтверждение получения команды
if int.from_bytes(read_byte, "big") == NACK:
print("NACK. COMMAND_FULL_ERASE")
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):
@@ -161,7 +169,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): # вместо задержки забрасываем запросами