Емельянов Эдуард Владимирович (eddy_em) wrote,
Емельянов Эдуард Владимирович
eddy_em

Терминальчик

На основе найденного на просторах интернета примера, как "подружить" ncurses и readline, переделал tty_term — простенький терминальный клиент. Теперь команды вводить намного удобней: они находятся в отдельной строке и запоминаются readline'ом.

Прокручивать экран сообщений тоже можно "до упора": абсолютно все сообщения запоминаются в связном списке (я решил, что нет смысла его ограничивать: все равно больше нескольких мегабайт накопить не удастся).
Правда, не решил проблему с изменением размера окна: почему-то "на кошках" все работает нормально, но тот же самый код, дополненный работой с последовательным терминалом, "задерживает" сигнал обновления до нажатия какой-либо клавиши! А еще оказалось, что изменение размера экрана посылает сигнал, который превосходно прерывает select() (а я в его обработчике совсем забыл сразу добавить реакцию на EINTR).
Ну и да: мне лень было заморачиваться с прокруткой экрана, чтобы все было красиво и по одной строчке, как бы ни менялся размер окна, поэтому прокрутка производится поэлементно (т.е. квантом является не отображаемая строка, а сохраненная в памяти).
Режим работы пока только текстовый. Если вдруг у меня появится устройство, имеющее бинарный протокол, возможно, добавлю еще представление в виде hex + ввод команд в таком же виде.
Tags: c, всячина
Subscribe

  • Выделение 4-связных компонент на изображении

    Я уже давным-давно писал об этом алгоритме, но когда понадобилось его однозначно и надежно применить, оказалось, что на некоторых тестовых…

  • Нафиг не нужная поделка

    Зашел на одном из форумов спор, что невозможно поднять (N-1) устройство CDC-ACM на микроконтроллере с N концевыми точками (N<=8). ОК, держите…

  • О гидировании Ц-1000 боковым гидом

    Наконец-то дообработал результаты прошлой ночи. Возникли проблемы с solve-field: он ругался на python и отваливался. Я уже и питон удалил старый…

promo eddy_em september 3, 12:13 8
Buy for 10 tokens
Уже больше полугода занимаюсь разработкой, вот, наконец-то в мастерских взялись за меня и начали выдавать первые детали. Сегодня сделал тестовую сборку (как обычно, местами пришлось "доработать напильником"): Пока прибор без названия (да и как-то не лезет в голову ничего, у меня нет…
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic
  • 3 comments