Как использовать экран в качестве последовательного терминала с эмуляцией клавиш CR + LF автоматический режим

Они - различные базы данных шрифта, используемые другим программным обеспечением и в различных форматах, хотя с перекрытиями.

X11 содержит шрифты, используемые X-оконной системой, конкретно шрифты, которые представляются на сервере. Это - традиционный способ представить шрифты на X. Вы главным образом найдете растровые шрифты в формате PCF, а также несколько векторных шрифтов в формате TrueType или Типе 1.

Тип 1 является форматом шрифтов PostScript. PostScript был стандартом в полиграфии, пока это не было перемещено PDF. Тип 1 хорош для печати, но рендеринг векторных шрифтов в небольших размерах, предоставленных типичным разрешением экрана, имеет тенденцию приводить к более плохим результатам, чем хорошо разработанный растровый шрифт.

TrueType является векторным форматом с дополнительными подсказками рендеринга, которые указывают, как выбрать пиксели в маленьких разрешениях. Таким образом шрифты TrueType масштабируемы (можно использовать их в любом размере, в отличие от этого, растровые шрифты), но дайте хорошие результаты даже в небольших размерах. TrueType разрабатывался Apple и использовался в Microsoft Windows.

Рендеринг шрифта серверной стороны X11 имел некоторые преимущества, главным образом в установках, где компьютер, запускающий большинство программ, был большим в комнате машины где-нибудь, и пользователи были перед X терминалами, выполняющими X-сервер и мало еще. С рендерингом серверной стороны программа отправляет команды как “дисплей, этот текст”, а не “отображают это изображение”, которое требует намного большего количества пропускной способности.

Путь поиска шрифта для шрифтов серверной стороны X11 настроен через xset fp.

Сегодня, X терминалов редки, и сетевая пропускная способность увеличилась много, таким образом, это больше не общее беспокойство. Клиентский рендеринг шрифта стал распространенным главным образом, потому что он позволяет сглаживаться. Сглаживание уровней серого использования для представления частично - на пикселях, который улучшает опрятность изображений с низкой разрешающей способностью, особенно текста. Жидкокристаллические дисплеи, сделанные субпикселем, сглаживающимся возможный, были рычагами рендерера местоположения пикселей для подстраивания сглаживания. Традиционный X-сервер может только представить векторные шрифты в монохромных битовых массивах (из-за внутренней архитектуры X11, текстовый рендерер не знает цвета фона, так не может выполнить сглаживание). Комбинация библиотеки FreeType и Xft стала фактическим стандартом для рендеринга шрифтов со сглаживанием.

Современные X-серверы реализуют расширение Рендеринга, которое выполняет состав серверной стороны изображений с альфа-каналом. Это позволяет клиенту представлять шрифты со сглаживанием и отправлять результат на сервер для состава и дисплей.

FreeType поддерживает TrueType и шрифты Type1, а также расширение OpenType TrueType. Файлы Cmap являются дополнительными таблицами отображения, которые указывают, где изображение (или более точно инструкции по рендерингу) для символа хранится. Его путь поиска шрифта настроен через Fontconfig. Команда fc-list часть Fontconfig. Fontconfig обычно делает все шрифты под /usr/share/fonts доступный. FreeType и Fontconfig могут использоваться приложениями кроме X11, например, для печати.

2
26.10.2015, 23:25
2 ответа

Согласно руководству по экрану , в ТИПЫ ОКН :

Если имя tty (символьное специальное устройство) (например, "/ dev / ttya" ) указывается в качестве первого параметра, тогда окно напрямую подключается к этому устройству. Этот тип окна аналогичен "screen cu -l / dev / ttya" . На узле устройства требуется доступ для чтения и записи, на узле предпринимается попытка монопольного открытия, чтобы пометить линию соединения как занятую. Допускается необязательный параметр, состоящий из разделенного запятыми списка флагов в обозначении, используемом ' stty (1) ':

Далее перечисляются некоторые из возможных флагов, но добавляется

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

Дополнительную информацию можно найти в руководстве stty , потому что screen просто передает эти дополнительные флаги в stty .

Неподходящее поведение, наиболее похожее на ваш вопрос, можно исправить, добавив флаг onlcr , указанный в разделе «Настройки вывода»:

{ {1}}

[-] onlcr
преобразовать новую строку в новую строку возврата каретки

Например:

sudo screen /dev/ttyACM0 9600,cs8,onlcr
3
27.01.2020, 22:04

TLDR :нельзя;Экран переопределяет любые параметры, установленные с помощью stty, когда он запускается. Он не поддерживает параметры ocrnl/onlcr/icrnl/inlcr, необходимые для настройки возврата каретки и перехода на новую строку. Он открывает терминальное устройство в эксклюзивном режиме, поэтому вы не можете использовать stty для изменения этих параметров после запуска экрана. Это верно для версии экрана 4.08.00 (GNU ), 05 -февраля -20.

Полная форма:

Я столкнулся с той же проблемой и просмотрел несколько связанных вопросов и ответов по всему миру обмена стеками. Я вынужден заключить, что Вы не можете заставить экран отправлять перевод строки (LF;\n)вместо возврата каретки (CR; \r), по крайней мере, без изменения чего-либо в исходниках и перекомпиляции.

Этот вопрос спрашивает, как отправить LF вместо CR с экрана. На него еще нет ответа. Этот ответ неверно(stty -F /dev/YOURSERIALDEVICE YOURBAUDRATE rawне изменит настройки экрана для tty ). Этот ответ предлагает использовать picocom, но не отвечает на вопрос, как заставить экран отправлять правильный символ новой строки. Однако это работает :

.
picocom /dev/YOURSERIALDEVICE --baud YOURBAUDRATE --omap crcrlf --echo
# (press Control+a Control+x to exit)

На справочной странице stty есть подсказки, как можно решить эту проблему для экрана . Экран перенаправляет список параметров, разделенных запятыми -, после файла tty на stty, поэтому некоторые из этих параметров могут помочь:

> man stty
# (output abridged..)
Input settings:
       [-]icrnl    translate carriage return to newline
       [-]inlcr    translate newline to carriage return
Output settings:
       [-]ocrnl    translate carriage return to newline
       [-]onlcr    translate newline to carriage return-newline
       [-]onlret   newline performs a carriage return

Однако установка и ввода, и вывода для замены \rна \n, обеспечение того, чтобы \nне было заменено на \r, и обеспечение того, чтобы onlretне было установлено... не делает разница,

screen /dev/YOURSERIALDEVICE YOURBAUDRATE,ocrnl,-onlcr,icrnl,-inlcr,-onlret

ведет себя так же, как и раньше. Я не уверен, почему экран не применяет параметры. Этот ответ на отдаленно похожий вопрос предлагает использовать stty для изменения параметров.

> stty -F /dev/YOURSERIALDEVICE YOURBAUDRATE ocrnl -onlcr icrnl -inlcr -onlret
> screen /dev/YOURSERIALDEVICE

Это ничего не делает, потому что screen сбрасывает все настройки, выполненные stty при его запуске.Этот ответ утверждает, что можно запустить stty после запуска экрана , но когда я это делаю, я получаю сообщение об ошибке Device or resource busy.

В этом ответе также рассматривается проблема с CR/LF на экране. Он относится к разделу Window Types интерактивной документации screen.

  • «на узле предпринята попытка эксклюзивного открытия, чтобы пометить линию соединения как занятую» --, поэтому мы не сможем изменить параметры tty после запуска экрана.

  • Только baud_rate,cs8/cs7(количество битов на байт ), ixon/offи istripявляются задокументированными параметрами. Вероятно, это означает, что ocrnl и т. д. не распознаются/не поддерживаются экраном.

В заключение:Вопрос о том, как заставить экран отправлять LF(\n)вместо CR (\r), задавался несколько раз на различных сайтах обмена стеком -. Ни один из предоставленных ответов не работает, и тщательное чтение документации показывает, что в настоящее время это невозможно.

0
06.10.2021, 09:27

Теги

Похожие вопросы