Обсуждение возможности управления ШД из гипертерминала Windows http://www.owen.ru/forum/showthread.php?t=26553 сподвигло меня на этот проект.
Там я предложил некий гибрид гипертерминала и OSM Programmer http://www.owen.ru/forum/showthread....l=1#post244671
Только решение было неполным. Там нет самого главного - макроса на си, который должен выполнять обмен символами с контроллером. В конечном варианте мнемоники команд должны передаваться в макрос, а он в свою очередь должен отправлять их в порт панели по одному символу и далее принимать из порта по одному символу контроллера и складывать полученные символы(байты) в регистры, которые будут отображаться в окне терминала на экране панели.
Т.к. я в Си "чайник", то решил потренироваться и сделать на Си не достающий макрос. Но потом подумал, а почему бы не попробовать сделать в панели настоящий терминал с возможностями как, например, у гипертерминала Windows,с полноразмерной клавиатурой, с переключением раскладки клавиш с русской на английскую и на оборот, поддержкой клавиш Shift, Ctrl, Caps Lock, Tab, Backspace.
Вот, что у меня получилось. На этот раз никаких ГМ
В проекте один экран
Захват-1.png
четыре окна, на каждом своя раскладка клавиш
Захват-2.png Захват-3.png
Захват-4.png Захват-5.png
и один макрос на Си
Захват-8.png
Запущенный терминал будет выглядеть так
Захват-9.png
Скрытый текст:
В эмуляторе макросы на Си не работают, а снять видео работающей панели мне нечем, по этому не могу показать работу терминала "в деле".
В проекте для связи с удаленным терминалом используется порт PLC, скорость 57600(можно изменить в настройках проекта).
Работу терминала можно протестировать если подключить панель к СОМ порту компьютера (можно и через переходник RS232/USB) простым трехпроводным кабелем
2 <------> 3
3 <------> 2
5 <------> 5
И запустить программу HyperTerminal. Настройки СОМ порта следует сделать такими
Захват-10.png
Важно согласовать параметры приема и передачи
Например так
Захват-6.png <----> Захват-7.png
Назначение переключателя "DEL как / "BS пробел BS" аналогично этим настройкам HyperTerminal
Захват-11.png
Для начала сеанса связи поднять трубки кнопкой на экране панели и кнопкой на панели инструментов HyperTerminal.
Посмотреть как работает вывод символов в окно терминала можно даже и без физического подключения к удаленному терминалу, ни каких сообщений о потере связи и тормозов в реакции панели из-за такого сообщения нет.