Przy krótkich czasach nie, ale między 5 a 10 s jest wyczuwalna różnica.klew wrote: Tue Feb 09, 2021 11:55 am Implementacja ON_HOLD wyzwala akcje po przekroczeniu czasu trzymania. Dodając ON_SHORTER_HOLD nie wiadomo kiedy wykonać akcje. W zasadzie trzeba by je wykonywać dopiero po puszczeniu przycisku, a wtedy użytkownik nie wie czy trzymał wystarczająco długo, czy nie .
Hm, rozjaśnisz?klew wrote: Tue Feb 09, 2021 11:55 am Natomiast zastanawiałem się nad dodaniem ON_LONG_CLICK_xx. Działałoby to tak, że po dłuższym przytrzymainu mamy alternatywne wielkokliki.
Czemu nie na master ?!klew wrote: Tue Feb 09, 2021 11:55 am Samo ON_HOLD dostało też niedawno opcję powtarzania (zapomniałem się tym podzielić, poszło tylko na priv do jednego wybrańca ;P ):Da to taki efekt, że kliknięcie przycisku będzie przełączało włączony/wyłączony. Natomiast przytrzymanie będzie wysyłalo ON_HOLD co 200 ms (ustawiane repeatOnHoldEvery). Akcja ITERATE_DIM_RGB będzie zmieniała colorBrightness (czyli jasność dla kanału RGB) o 5 (w zakresie 10-100) z lekką pauzą na 10 i 100. Poza ITERATE_DIM_RGB mamy też dostępny wariant ITERATE_DIM_W (jasność kanału białego oraz dimmer) oraz ITERATE_DIM_ALL (jasność kanałów RGB oraz W)Code: Select all
auto b1 = new Supla::Control::Button(...); b1.setMulticlickTime(200); b1.setHoldTime(400); b1.repeatOnHoldEvery(200); auto rgb = new MyRgb(); b1.addAction(Supla::ITERATE_DIM_RGB, rgb, Supla::ON_HOLD); b1.addAction(Supla::TOGGLE_RGB, rgb, Supla::ON_CLICK_1);
Dodatkowo gdy rgb jest wyłączone, to przytrzymanie przycisku uruchomi go z jasnością 10.
https://github.com/klew/supla-arduino/b ... button.cpp