понимание терминалов VT100 / ANSI - PullRequest
2 голосов
/ 23 марта 2012

Я работаю над небольшим серверным приложением на C #, которое должно предоставлять интерфейс терминала VT100 / ANSI (либо через telnet, либо через модем).

Я занимаюсь некоторыми исследованиями VT100 / ANSI иЧем больше я читаю, тем больше я запутываюсь.Я хочу реализовать простой синтаксический анализатор для работы с управляющими последовательностями ANSI, но спецификации содержат много возможных команд.По сути, мои вопросы сводятся к следующему:

1) Какие команды мне следует реализовать, если я имею дело с клиентами на основе telnet (например, putty), или с простой программой набора номера (например, minicom или hyperterminal).Я уверен, что многие escape-последовательности просто не используются или игнорируются в этих приложениях.

2) Нужно ли обрабатывать контрольные символы C0 только в том случае, если перед ними стоит префикс ESC?Или также, когда я сталкиваюсь с ними в обычной текстовой последовательности?Я не могу получить этот важный бит информации из документов.

3) Должен ли я заботиться о частных контрольных последовательностях?

Заранее спасибо,

Йероен.

1 Ответ

2 голосов
/ 23 марта 2012

Вы должны будете обнаружить escape-последовательности в любом случае;однако вам не нужно интерпретировать их все, но, по крайней мере, вы должны их пропустить.

Например, Esc[5m включает режим мигания.Если вы хотите игнорировать этот режим, просто пропустите "Esc[5m".

. Я не думаю, что управляющие символы C0 имеют префикс ESC.

Я никогда не сталкивался с этими частными управляющими последовательностями.Подождите, чтобы увидеть, если они используются.Нет смысла реализовывать то, что никогда не будет использовано.

...