Dziękuję, napiszę jak coś mi z tego wyjdzie
Obsługa przycisków w SuplaDevice
Pojawiły się błędy kompilacji po " Extracted cpp for VirtualRelay"
Kod: Zaznacz cały
E:\arduinoSync\Arduino_share\libraries\newSuplaDevice\src\supla\control\virtual_relay.cpp:32:68: error: default argument given for parameter 1 of 'void Supla::Control::VirtualRelay::turnOn(int)' [-fpermissive]
void Supla::Control::VirtualRelay::turnOn(_supla_int_t duration = 0) {
^
In file included from E:\arduinoSync\Arduino_share\libraries\newSuplaDevice\src\supla\control\virtual_relay.cpp:17:0:
E:\arduinoSync\Arduino_share\libraries\newSuplaDevice\src\supla\control\virtual_relay.h:30:8: error: after previous specification in 'virtual void Supla::Control::VirtualRelay::turnOn(int)' [-fpermissive]
void turnOn(_supla_int_t duration = 0);
^
E:\arduinoSync\Arduino_share\libraries\newSuplaDevice\src\supla\control\virtual_relay.cpp:45:69: error: default argument given for parameter 1 of 'void Supla::Control::VirtualRelay::turnOff(int)' [-fpermissive]
void Supla::Control::VirtualRelay::turnOff(_supla_int_t duration = 0) {
^
In file included from E:\arduinoSync\Arduino_share\libraries\newSuplaDevice\src\supla\control\virtual_relay.cpp:17:0:
E:\arduinoSync\Arduino_share\libraries\newSuplaDevice\src\supla\control\virtual_relay.h:31:8: error: after previous specification in 'virtual void Supla::Control::VirtualRelay::turnOff(int)' [-fpermissive]
void turnOff(_supla_int_t duration = 0);
https://www.facebook.com/groups/supladiy/
Coś mi z tego wyszło i nawet działa całkiem przyzwoicie.
Kilka sekund po zmianie funkcji przekaźnika i pierwszym wywołaniu z serwera, urządzenie uruchamia się ponownie ze zmienioną akcją przycisku. Zastanawiam się, czy można to zrobić inaczej / lepiej.
Patrzyłeś może na to co podrzucił Przemek? https://github.com/SUPLA/supla-core/blo ... rpc.h#L263
https://www.facebook.com/groups/supladiy/
Z tego co się orientuję, to to jest do obsługi Digiglass i będzie miało dedykowaną obsługę po stronie serwera. Także tego się nie wykorzystalukfud pisze: ↑wt sty 19, 2021 2:51 pm
Patrzyłeś może na to co podrzucił Przemek? https://github.com/SUPLA/supla-core/blo ... rpc.h#L263
Widzimy się na Supla Offline Party vol. 2
Widzimy się na Supla Offline Party vol. 2
To wiem, ale mi chodzi bardziej o ON_SHORT_HOLD/PRESS i ON_LONG_HOLD/PRESS na jednym przycisku.klew pisze: ↑wt lut 09, 2021 11:37 amKażdy button można osobno skonfigurować:
viewtopic.php?p=80291#p80291
https://www.facebook.com/groups/supladiy/
W zasadzie "ON_CLICK_xx" to jest "ON_SHORT"
Samo "PRESS" nie może być ani LONG ani SHORT. PRESS jest wyzwalane w momencie wciśnięcia. Wtedy nie wiesz czy to będzie krótkie czy długie.
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 .
Natomiast zastanawiałem się nad dodaniem ON_LONG_CLICK_xx. Działałoby to tak, że po dłuższym przytrzymainu mamy alternatywne wielkokliki.
Samo ON_HOLD dostało też niedawno opcję powtarzania (zapomniałem się tym podzielić, poszło tylko na priv do jednego wybrańca ;P ):
Kod: Zaznacz cały
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.
Widzimy się na Supla Offline Party vol. 2