Перейти к содержанию

Навигация

Wbincludes:Inputs Press Events: различия между версиями

Нет описания правки
Строка 4: Строка 4:


Условия определения нажатий:
Условия определения нажатий:
* Короткое нажатие длилось меньше времени длинного нажатия.
* Короткое (Short)
* Двойное было два нажатия, каждое из которых длилось меньше времени длинного нажатия, а пауза между ними была меньше времени ожидания второго нажатия.
** нажатие длилось меньше времени длинного нажатия
* Длинное нажатие длилось больше времени длинного нажатия.
** за время ожидания второго нажатия кнопка не была нажата
* Короткое, а затем длинное первое нажатие длилось меньше времени длинного нажатия, второе — больше, а пауза между ними была меньше времени ожидания второго нажатия.
* Двойное (Double)
** было два нажатия, каждое из которых длилось меньше времени длинного нажатия
** пауза между ними была меньше времени ожидания второго нажатия
* Длинное (Long)
** нажатие длилось больше времени длинного нажатия
* Короткое, а затем длинное (Shortlong)
** первое нажатие длилось меньше времени длинного нажатия
** второе — больше, а пауза между ними была меньше времени ожидания второго нажатия


Включить опрос счётчиков нажатий, а также изменить параметры «Время длинного нажатия» и «Время ожидания второго нажатия» можно в [[#Настройка |настройках]].
Включить опрос счётчиков нажатий, а также изменить параметры «Время длинного нажатия» и «Время ожидания второго нажатия» можно в [[#Настройка |настройках]].
Нажатия имеют следующие параметры, которые можно настроить через modbus-регистры или web-интерфейс контроллера:
* Время длинного нажатия (Long Press Time) - время в мс, которое разделяет длинные и короткие нажатия. Если нажатие длится больше указанного времени, оно считается длинным, иначе - коротким
* Время ожидания второго нажатия (Second Press Waiting Time) - время в мс, которое создает "окно" указанной длительности после завершения короткого нажатия. Если второе нажатие попадет в это окно - нажатие будет считаться двойным, иначе - одиночным
* Время подавления дребезга (не показано на диаграмме) - время в мс, в течение которого сигнал на входном клеммнике должен иметь неизменный уровень, после чего он будет зафиксирован и обработан алгоритмом распознавания нажатий
Подробнее про время ожидания второго нажатия: с одной стороны, это позволяет детектировать двойные нажатия, с другой - вносит задержку на детектирование одиночных. Например, при настройке по умолчанию (300 мс) событие одиночного нажатия произойдет через 300 мс после отпускания кнопки.
Если вам не нужны двойные и короткие, а затем длинные нажатия, то время ожидания двойного нажатия можно установить на 0 мс. Тогда событие одиночного нажатия будет сразу после отпускания кнопки.
Подробнее про подавление дребезга: распознавание нажатий выполняется после подавления дребезга. Это означает, что при настройке по умолчанию (50 мс) любые нажатия длительностью менее 50 мс будут игнорироваться. Точно так же это влияет на скорость реакции при отпускании кнопки: отпускание будет зафиксировано через 50 мс после фактического отпускания кнопки. Время подавления дребезга следует подбирать к конкретной кнопке таким образом, чтобы вносимая задержка была минимальной, но не было ложных срабатываний (например, двойное нажатие вместо одиночного).


Полезное:
Полезное:
* [[Rule_Examples#press-actions | Пример обработки счётчиков нажатий на wb-rules]].
* [[Rule_Examples#press-actions | Пример обработки счётчиков нажатий на wb-rules]].
* [https://youtu.be/lBGJm6FlS7Q Видео «Обработка нажатий в устройствах Wiren Board»].
* [https://youtu.be/lBGJm6FlS7Q Видео «Обработка нажатий в устройствах Wiren Board»].
wb_editors
353

правки