Здравствуйте.
Уже не первый раз задаю подобные вопросы, почти постиг дзэн Tcl/Tk, но до полного просветления осталось еще несколько шагов. Суть моей задачи приведена вот тут, обновленный каркас приложения (с учетом трассировки переменных) приведен вот тут Все бы хорошо, но есть одна неприятная особенность — если я хочу из процедуры сменить значение переменной $status, то у меня не выходит это сделать. Я подозреваю, что переменная вначале меняется по моему запросу, но затем она снова переустанавливается в старое значение командой
set status "Читать регистры"
в теле обработчика событий для последовательного порта. Поэтому приходится вводить костыли типа глобальной переменной write_request, проверять ее на равенство единице, и только если «запрос на запись» есть — переводить программу в состояние «Запись регистра состояния». Поэтому вопрос — как правильно это реализовать, не прибегая к подобным костылям?