#!/usr/bin/env python3 """Beken-загрузчик модуля RT-4D: catch -> SetBaudRate(hold) -> read (Linux, /dev/ttyACM0). Фрейминг из DMR Upgrade Tool: preamble 01 E0 FC; short: ; long: FF F4 . SetBaudRate=short CMD 0x0F . Erase=long CMD 0x0F. Read пробуем long CMD 0x09/0x03/0x0a. ТОЛЬКО чтение (никаких erase/write). """ import serial, time, sys, argparse def long_frame(cmd, payload=b""): b=bytes([cmd])+payload; ln=len(b) return bytes([1,0xE0,0xFC,0xFF,0xF4, ln&0xFF,(ln>>8)&0xFF])+b def short_frame(cmd, payload=b""): b=bytes([cmd])+payload; ln=len(b) return bytes([1,0xE0,0xFC, ln&0xFF])+b def le32(v): return bytes([v&0xFF,(v>>8)&0xFF,(v>>16)&0xFF,(v>>24)&0xFF]) def catch(sp, secs): lc=bytes([1,0xE0,0xFC,1,0]); roll=b""; t0=time.time(); banner=False while time.time()-t0