Checkpoint EEPROM, firmware analysis and instrument protocol updates

This commit is contained in:
2026-10-08 21:51:44 +03:00
parent b0c0c05cfa
commit fe9b5a246e
24 changed files with 848 additions and 62 deletions
+4 -2
View File
@@ -11,7 +11,7 @@
"""
from dataclasses import dataclass, field
import struct
from set_devices.ump_logger import BASE, DATA, LIVE, EMU_CONTROL
from set_devices.ump_logger import BASE, DATA, LIVE, EMU_CONTROL, PROTECTION
MARKER = 0x1F00
MAX_WORDS = 124
@@ -26,10 +26,12 @@ def request_ids(mode):
def build_request(mode, token, function, address, value):
if not 1 <= token <= 255:
raise ValueError('Неверный номер CAN-запроса')
valid = ((function == 3 and ((address == BASE and value == 16) or
valid = ((function == 3 and ((address == PROTECTION and value == 8) or (address == BASE and value == 16) or
(address == DATA and value in (40, 80, 120, 42, 84)) or
(address == LIVE and value == MAX_WORDS) or (address == EMU_CONTROL and value == 4))) or
(function == 6 and ((BASE <= address <= BASE+3 and 0 <= value <= 65535) or
(address == PROTECTION+2 and value in (0, 1, 2, 3)) or
(address == PROTECTION+3 and 1 <= value <= 60000) or
(address == EMU_CONTROL+2 and value in (0, 1)))))
if not valid:
raise ValueError('Недопустимый запрос CAN-логгера')