Я работаю над программой, которая интенсивно использует последовательный порт.
В настоящее время это программа только для Windows (к сожалению :-), работающая в Windows XP. Версия TCL - 8.5.1.0 - это может быть или не быть «официальным» TCL, не уверен.
Все работает отлично, пока устройство на другом конце не отправит BREAK (или просто отключит последовательный порт: -).
Как только это происходит, данные по-прежнему принимаются нормально, но отправка данных в порт с помощью «put» не приводит к передаче данных на последовательный порт. На самом деле, когда я отправляю символ, спрашивая fconfigure о последней ошибке, он всегда говорит BREAK. Теперь, я не знаю, это просто остатки от предыдущей ошибки или нет.
В любом случае, КАК в мире кто-то снимает условие 'break' на последовательном порту в TCL?
Спасибо!
Расти
Обновление: вот как мы открываем последовательный порт:
set state(com_port_handle) [open $name r+]
# Configure the COM port.
fconfigure $state(com_port_handle) -mode 115200,n,8,1 \
-blocking 0 \
-buffering none \
-translation binary
fconfigure $state(com_port_handle) -handshake none
Когда мы хотим сделать перерыв с нашей стороны, мы делаем:
fconfigure $state(com_port_handle) -ttycontrol {break 1}
after 100
fconfigure $state(com_port_handle) -ttycontrol {break 0}