Исправить порядок слов BALZAM CAN и добавить поддержку пульта МПУ
This commit is contained in:
@@ -31,12 +31,15 @@ def decode(raw_id: int, data: bytes, *, ide: bool = True,
|
||||
)
|
||||
result = pc.Decoded(pid, len(data), bytes(data), ide=ide, rtr=rtr,
|
||||
protocol="BALZAM 167", device_label=frame.device_name,
|
||||
message_label="BALZAM регистры")
|
||||
message_label=("BALZAM данные" if frame.from_device
|
||||
else "BALZAM команды"))
|
||||
result.summary = frame.summary
|
||||
result.fields = [
|
||||
("Протокол", "BALZAM 167 legacy eCAN"),
|
||||
("Узел", "%d — %s" % (frame.device, frame.device_name)),
|
||||
("Направление", "от устройства" if frame.from_device else "к устройству"),
|
||||
("Направление", frame.route),
|
||||
("Отправитель", frame.device_name if frame.from_device else "ПМ"),
|
||||
("Получатель", "ПМ" if frame.from_device else frame.device_name),
|
||||
("Начальный адрес", "0x%04X" % frame.start_address),
|
||||
("Маска трёх слов", "0b%s" % format(frame.present_mask, "03b")),
|
||||
]
|
||||
@@ -46,6 +49,8 @@ def decode(raw_id: int, data: bytes, *, ide: bool = True,
|
||||
"0x%04X %s" % (item.address, item.name or "регистр"),
|
||||
"0x%04X (%d)" % (item.value, item.signed_value),
|
||||
))
|
||||
if not frame.from_device and item.address == 0x7F:
|
||||
result.fields.append(("Команды ПМ", frame.command_description(item.value)))
|
||||
if frame.present_mask == 0:
|
||||
result.warnings.append("В адресном слове не отмечен ни один регистр")
|
||||
return result
|
||||
|
||||
Reference in New Issue
Block a user