Настройками поделюсь, а правильно (или неправильно) сделать можно только с участием того, кто разрабатывает локомотив.
Добавлено спустя 6 часов 5 минут 47 секунд:
Выполняю обещание. Лучше один раз показать на скрине, чем копировать много-много кода в xml (лишние поля не скрыть для компактности):
Analog input sensitivity - скорость перемещения рукоятки при управлении мышкой (И КНОПОЧНЫМ ГЕЙМПАДОМ. Ага.)
Digital input sensitivity - скорость перемещения рукоятки при нажатии клавиши клавиатуры.
Соотношение Min/Max value контрола и этих двух параметров и отвечает за "липучесть" и точность установки рукоятки. Если Max value больше единицы, значения sensitivity тоже можно пропорционально увеличивать.
Rest in Notched Position - параметр задает поведение рукоятки при попадании на позицию. Если true, ручка будет стремиться встать в ближайшее положение между двумя соседними. Если false, рукоятка будет двигаться без фиксации, и в этом случае Notches малополезны. Однако, именно они задают логику работы системных контролов. У меня рукоятка крана считывается скриптом, поэтому все позиции безымянные.
Рассчитать положение очень просто - полный угол поворота рукоятки крана машиниста в градусах принимаем за 1.0, затем вычисляем проценты, зная углы каждой позиции. Итого:
0 - отпуск и сверхзарядка
0.32 - поездное
0.45 - перекрыша без питания
0.55 - перекрыша с питанием
0.65 - служебное торможение
1.00 - экстренное торможение и граница шкалы.
На самом деле, на каждой из позиций я смещаю "рабочую точку" скриптом. Например, экстренное торможение начинается на 0.9 хода ручки, а служебное торможение длится от 0.61 до 0.75, причем пропорционально величине изменяется темп разрядки УР. Точки заданы исключительно для фиксации ручки крана.
С данными настройками я уверенно управляю краном машиниста своего тепловоза от клавиатуры.