# Клавиатура

Библиотека: | Ввод/вывод
Введён в: | 2.2.0
Внешний вид: |

## Поведение

Этот компонент позволяет схеме считывать символы с клавиатуры, если только они представимы в 7-разрядном ASCII коде. После нажатия на компонент с помощью Инструмента Нажатие, пользователь может печатать символы, которые накапливаются в буфере. ASCII значение крайнего левого символа буфера постоянно поступает на крайний правый выход. Когда срабатывает тактовый вход, крайний левый символ исчезает из буфера и новый левый символ поступает на крайний правый выход.

Поддерживаемые для буфера символы включают все печатаемые ASCII символы, а также пробел, символ перехода на новую строку, Backspace и Control-L. В дополнение, клавиши стрелка влево и стрелка вправо перемещают курсор внутри буфера и клавиша Delete удаляет символ справа от курсора (если он есть).

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

## Контакты

Западный край, отмечен треугольником (вход, разрядность равна 1)
  Тактовый вход - когда срабатывает при ненулевом значении контакта разрешения чтения, крайний левый символ буфера удаляется, и выходы обновляются чтобы отразить новое состоянию буфера.
Южный край, левый контакт (вход, разрядность равна 1)
  Разрешение чтения - когда значение равно 1 (или плавающее, или ошибка), срабатывание тактового входа считает левый символ из буфера. Тактовый вход игнорируется, когда значение входа Разрешение чтения - 0.
Южный край, второй контакт слева (вход, разрядность равна 1)
  Очистка - когда значение равно 1, буфер очищается и больше не принимает символов.
Южный край, второй контакт справа (выход, разрядность равна 1)
  Наличие - значение равно 1, когда буфер содержит хотя бы один символ, и 0, когда буфер пуст.
Южный край, правый контакт (выход, разрядность равна 7)
  Данные - 7-битный ASCII код для левого символа в буфере, или 0, если буфер пуст.

## Атрибуты

Длина буфера
  Количество символов, которые буфер может одновременно хранить.
Срабатывание
  Если значение - Передний фронт, то когда значение тактового входа изменяется с 0 на 1, то левый символ считывается (если разрешено входом Разрешение чтения). Если же значение - Задний фронт, то это происходит, когда значение тактового входа меняется с 1 на 0.

## Поведение Инструмента Нажатие

Нажатие кнопки мыши на компоненте даёт ему фокус ввода клавиатуры, и отображается вертикальный курсор.

Каждый введённый символ будет помещаться в буфер, пока буфер не достиг предела вместимости, и если символ - один из поддерживаемых компонентом: печатаемые символы ASCII кода, а также пробел, символ перехода на новую строку, Backspace и Control-L. В дополнение, пользователь может нажимать клавиши стрелка влево и стрелка вправо чтобы переместить курсор внутри буфера и клавишу Delete для удаления символ справа от курсора (если он есть).

## Поведение Инструмента Текст

Нет.

Назад к Справке по библиотеке