Питоновские скрипты C700_* действительно не завершаются после 30 секунд и висят вечно, питание баофенга вкл.выкл на это не влияет.
Не знаток питона, поэтому чатгпти:
# Open serial port
port = serial.Serial(portName, 115200, timeout=30)
print("Open serial port " + portName)
print("Wait 30 seconds for radio to boot")
start_time = time.time()
while True:
b = port.read(1)
# timeout
if not b:
print("Timeout waiting for data")
break
if b[0] == requestData[requestDataPos]:
requestDataPos += 1
if requestDataPos == len(requestData):
print("Request received")
break
else:
requestDataPos = 0
# общий таймаут цикла
if time.time() - start_time > 30:
print("Overall timeout")
break
port.write(b'\x02\x14\x00\x03')
time.sleep(0.05)
// Главное различие:
// port.timeout = 30 — таймаут одного read
// отдельная проверка через time.time() — таймаут всего ожидания в цикле
// Сейчас у вас цикл бесконечный, потому что while True не имеет условия выхода при отсутствии данных.
p.s. там же у автора в репозитории скрипты dm32_*.py, которые вполне работают с баофенгом.
При чем сразу с включенным, как и CPS, т.е. не надо вкл/выкл и кнопок ни каких зажимать!