Physical layer functions

 fw v2.12.0 XT2 / Configurator v0.92.50 

Encoder

Энкодер

Данная функция предназначена для обработки сигналов инкрементального  энкодера

Инкрементальный энкодер – это простейший поворотный датчик. 

Выходной сигнал инкрементального энкодера представляет собой 2 импульсных сигнала со скважностью 50% сдвинутых  относительно друг друга на 90°. Сигналы с этих двух каналов (квадратура выхода (обычно A и B)) позволяют определить направление вращения энкодера и величину углового перемещения. Направление вращения определяется опережением или отставанием импульсов одного из каналов относительно второго канала. 

Конструктивно энкодер может разное число фазовых переходов на детент (клик) и ещё может быть совмещен с нажимной кнопкой.


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

Параметры:

Type

Привязка физического типа энкодера

Условные значения 1/4, 2/4, 4/4 - обозначают 1,2,4 фазовых перехода на детент 

Adv - тоже что и 4/4, но с улучшенным алгоритмом обработки пропуска фаз.

Virt - виртуальный энкодер для приема данных с внешних (External) устройств

Обычно пользователю не требуется изменять привязку типа энкодера - она задаётся в заводской конфигурации и соответствует используемым для конкретных устройств.

Fuctionality

Функциональность 


Discrete - использование энкодера как пары кнопок контроллера ( кнопка будет отрабатывать при каждом клике). Первая задаётся параметром But, вторая - как But+1. Какая кнопка будет отрабатываться - зависит от направления вращения энкодера.

Поскольку энкодер может вращаться с высокой скоростью, а игры/симуляторы практически неспособны принимать очень короткие нажатия кнопок контроллера - выдача серии нажатий происходит с таймингом, который задаётся глобальным параметром T_Enc ( в миллисекундах).

Обычно игры вполне способны работать с таймингом 20-30 мс, для гарантированного ввода  рекомендуется 50. Пользователь может скорректировать эту величину для более комфортной работы ( уменьшения времени отработки серии нажатий) для конкретного симулятора

Trimmer - энкодер используется как триммер аналоговой оси ( либо  как ось  ) контроллера.

AxN - номер оси привязки энкодера, второй параметр - относительная скорость изменения оси на один клик. Полная вирт. ось от ноля имеет 8192  значений.

Инкрементальные энкодеры можно использовать в режиме виртуализации (шифтинга) при действии модификаторов.

В качестве модификаторов в "классическом" варианте могут быть использованы SHIFT1/SHIFT2. 

Во время действия соответствующего модификатора в рассматриваемом примере будут активированы пары кнопок 73-74 / 75-76 соответственно вместо стандартных виртуальных кнопок 1-2 . Оба модификатора используют функциональность Discrete.

Возможно использование только одного модификатора.

Начиная с версии fw 2.12.0 XT2 добавлена возможность использовать в качестве модификаторов переключатели Modal Switch (для функциональности Discrete) :

Для коэффициентов MPL ( Trimmer) есть возможность устанавливать любые пользовательские значения ( штатно кэффициенты степени 2)

Для этого надо включить опцию New Opt и заполнить таблицу коэффициентов. Таблица глобальная, т.е. распространяется на все энкодеры.

Также будет доступна привязка и к старшим осям 9...16

с версии 2.17.A доступна привязка энкодера к колесу мыши с параметрами  направления  и скорости 

с версии 2.17.F добавлены параметры T, x10 mS и Mode :

T, x10 mS -  позволяет использовать индивидуальные тайминги (до 150 mS) для кнопок энкодера в режиме Dicrete.

При выборе 0 - используется глобальный параметр T_ENC


Mode:

STD : стандартный энкодер

GT+ : режим с очередью  без пауз - формирует общий импульс равный  текущей длине очереди

GT1 : режим одного импульса, в течение которого очередь обнуляется.