User Tools

Site Tools


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

Если в обьекте, определяющем вход, обнаружен массив “act” и вход является аналоговым, то каждый элемент массива будет рассматриваться как отдельный вход, для которого возможна такая же обработка как для дискретного (то есть определение даблкликов, долгих нажатий и пр)

При этом анализируется параметр “map” у каждого элемента массива, и элемент применяется только если значение аналогового входа находится внутри заданного интервала

Это позволяет на один аналоговый вход подключить несколько кнопок через резисторы.

Важно: в параметре “T” не надо указывать аналоговый тип входа. Используются дискретные типы 0 и 2

Пример: Кнопка выкл/уменьшить яркость подключена к опорному напряжению +10В напрямую, кнопка вкл/увеличить яркость - через резистор 2,2 КОм (на плате должен быть активирован шунт - см Общая информация

"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"}
                           }
                ]}
        }        

И тот же самый пример, записанный в новой нотации конфигурирования входов, при которой элемент конфигурации in является массивом, а значит, появилась возможность без костылей настраивать входы, не привязанные напрямую к пинам процессора. Номер пина задается в параметре “#” конфигурации:

"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"}
                           }
                ]}
        ]        

Работают обе нотации. Если номер пина прописан сразу в двух местах, приоритет имеет параметр “#”

несколько_кнопок_на_одном_входе.txt · Last modified: 2020/08/08 00:57 by Sanch-KK