Инструменты пользователя

Инструменты сайта


несколько_кнопок_на_одном_входе

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

несколько_кнопок_на_одном_входе [2020/08/08 00:57] (текущий)
Sanch-KK created
Строка 1: Строка 1:
 +Если в обьекте, определяющем вход, обнаружен массив **"act"** и вход является аналоговым, то каждый элемент массива будет рассматриваться как отдельный вход, для которого возможна такая же обработка как для дискретного (то есть определение даблкликов, долгих нажатий и пр)
  
 +При этом анализируется параметр **"map**" у каждого элемента массива, и элемент применяется только если значение аналогового входа находится внутри заданного интервала
 +
 +Это позволяет на один аналоговый вход подключить несколько кнопок через резисторы.
 +
 +Важно: в параметре "T" не надо указывать аналоговый тип входа. Используются дискретные типы 0 и 2
 +
 +Пример: Кнопка выкл/уменьшить яркость подключена к опорному напряжению +10В напрямую, кнопка вкл/увеличить яркость - через резистор 2,2 КОм (на плате должен быть активирован шунт - см [[аналоговые_входы|Общая информация]]
 +
 +<code>
 +"in": {         
 +          "54":{"T":0,"act":
 +                [
 +                           {
 +                            "map":[128,640],
 +                            "click":{"item":"gr_gost3","icmd":"ON"},
 +                            "dclick":{"item":"lampwc3","icmd":"ON"}, 
 +                            "tclick":{"item":"lampbath3","icmd":"ON"}, 
 +                            "rpcmd":{"item":"gr_gost3","icmd":"%+2"}
 +                           },
 +                           {
 +                            "map":[641,1024],
 +                            "click":{"item":"gr_gost3","icmd":"OFF"},
 +                            "dclick":{"item":"lampwc3","icmd":"OFF"}, 
 +                            "tclick":{"item":"lampbath3","icmd":"OFF"}, 
 +                            "rpcmd":{"item":"gr_gost3","icmd":"%-2"}
 +                           }
 +                ]}
 +        }        
 +
 +</code>
 +
 +И тот же самый пример, записанный в новой нотации конфигурирования входов, при которой элемент конфигурации in является массивом, а значит, появилась возможность без костылей настраивать входы, не привязанные напрямую к пинам процессора. Номер пина задается в параметре "#" конфигурации:
 +
 +<code>
 +"in": [        
 +          "{"T":0,"#":54, "act":
 +                [
 +                           {
 +                            "map":[128,640],
 +                            "click":{"item":"gr_gost3","icmd":"ON"},
 +                            "dclick":{"item":"lampwc3","icmd":"ON"}, 
 +                            "tclick":{"item":"lampbath3","icmd":"ON"}, 
 +                            "rpcmd":{"item":"gr_gost3","icmd":"%+2"}
 +                           },
 +                           {
 +                            "map":[641,1024],
 +                            "click":{"item":"gr_gost3","icmd":"OFF"},
 +                            "dclick":{"item":"lampwc3","icmd":"OFF"}, 
 +                            "tclick":{"item":"lampbath3","icmd":"OFF"}, 
 +                            "rpcmd":{"item":"gr_gost3","icmd":"%-2"}
 +                           }
 +                ]}
 +        ]        
 +
 +</code>
 +
 +Работают обе нотации. Если номер пина прописан сразу в двух местах, приоритет имеет параметр "#"
 + 
несколько_кнопок_на_одном_входе.txt · Последнее изменение: 2020/08/08 00:57 — Sanch-KK