Przycisk/Button z dodatkowymi zdarzeniami (wielokliki, przytrzymanie i inne)

Awatar użytkownika
lukfud
Posty: 2087
Rejestracja: czw lis 23, 2017 11:33 pm
Lokalizacja: Warszawa

klew pisze: czw lis 19, 2020 7:53 am
lukfud pisze: czw lis 19, 2020 7:32 am Nieskromnie przypomnę się odnośnie wielokliku na bistabilnym ;)
Czy chodzi o "ON_CHANGE_AFTER_MULTICLICK" z priva?
Próbuję analizować nasza rozmowę i nie mogę sobie przypomnieć co to miałoby dać ;).
Tak,
Wykonanie akcji po X przełączeniach bez zmian stanu przekaźnika (migania światłem w moim przypadku) :)
https://www.facebook.com/groups/supladiy/
Awatar użytkownika
klew
Posty: 8178
Rejestracja: czw cze 27, 2019 12:16 pm
Lokalizacja: Wrocław

lukfud pisze: czw lis 19, 2020 8:02 am
klew pisze: czw lis 19, 2020 7:53 am
lukfud pisze: czw lis 19, 2020 7:32 am Nieskromnie przypomnę się odnośnie wielokliku na bistabilnym ;)
Czy chodzi o "ON_CHANGE_AFTER_MULTICLICK" z priva?
Próbuję analizować nasza rozmowę i nie mogę sobie przypomnieć co to miałoby dać ;).
Tak,
Wykonanie akcji po X przełączeniach bez zmian stanu przekaźnika (migania światłem w moim przypadku) :)
A czemu nie wystarczyłby ON_CLICK_1 ? Wtedy nie będzie mrugać, przy zliczaniu do ON_CLICK_x, a jak raz klikniesz, to przełączy światło
Widzimy się na Supla Offline Party vol. 2 :!:
Awatar użytkownika
lukfud
Posty: 2087
Rejestracja: czw lis 23, 2017 11:33 pm
Lokalizacja: Warszawa

klew pisze: czw lis 19, 2020 8:11 am A czemu nie wystarczyłby ON_CLICK_1 ? Wtedy nie będzie mrugać, przy zliczaniu do ON_CLICK_x, a jak raz klikniesz, to przełączy światło
Ok, czyli miało by to wyglądać tak ?

Kod: Zaznacz cały

button_[btn_relay_number]->setMulticlickTime(350, true);
button_[btn_relay_number]->addAction(Supla::TOGGLE, *relay_[btn_relay_number], Supla::ON_CLICK_1);
customActionsClass *custBtn = new customActionsClass;
button_[btn_relay_number]->addAction(ACTION_ON_7_CHANGES, *custBtn, Supla::ON_CLICK_7);
https://www.facebook.com/groups/supladiy/
Awatar użytkownika
klew
Posty: 8178
Rejestracja: czw cze 27, 2019 12:16 pm
Lokalizacja: Wrocław

lukfud pisze: czw lis 19, 2020 8:25 am
klew pisze: czw lis 19, 2020 8:11 am A czemu nie wystarczyłby ON_CLICK_1 ? Wtedy nie będzie mrugać, przy zliczaniu do ON_CLICK_x, a jak raz klikniesz, to przełączy światło
Ok, czyli miało by to wyglądać tak ?

Kod: Zaznacz cały

button_[btn_relay_number]->setMulticlickTime(350, true);
button_[btn_relay_number]->addAction(Supla::TOGGLE, *relay_[btn_relay_number], Supla::ON_CLICK_1);
customActionsClass *custBtn = new customActionsClass;
button_[btn_relay_number]->addAction(ACTION_ON_7_CHANGES, *custBtn, Supla::ON_CLICK_7);
Tak.

PS: nie trzeba już dawać * przy środkowym parametrze w addAction. Teraz można podawać wskaźnik lub referencje na obiekt - oba sposoby będą działać
Widzimy się na Supla Offline Party vol. 2 :!:
Awatar użytkownika
lukfud
Posty: 2087
Rejestracja: czw lis 23, 2017 11:33 pm
Lokalizacja: Warszawa

klew pisze: czw lis 19, 2020 8:41 am Tak.

PS: nie trzeba już dawać * przy środkowym parametrze w addAction. Teraz można podawać wskaźnik lub referencje na obiekt - oba sposoby będą działać
Brnąc w innym kierunku nie załapałem, że można zamienić ON_CHANGE na ON_CLICK_1, dzięki :)

Ok, sprawdzę to.
https://www.facebook.com/groups/supladiy/
Awatar użytkownika
klew
Posty: 8178
Rejestracja: czw cze 27, 2019 12:16 pm
Lokalizacja: Wrocław

elmaya pisze: pn lis 16, 2020 10:11 am Button should use IO to read the state of the Pin.
Button classes moved to Supla::Io. BTW. I also added "pinMode" to Supla::Io class.
lukfud pisze: pn lis 16, 2020 9:56 am ON_HOLD się nie wykonuje, tylko samo ON_RELEASE i podczas startu nie trzymam przycisku.
Może połączenie ON_CLICK i ON_RELEASE nie do końca pasuje, sprawdzę to jeszcze dokładnie.
ON_HOLD jest już poprawiony.

Wydzieliłem też SimpleButton z klasy Button.
SimpleButton jest odpowiednikiem starego Buttona. Powstał głównie z myślą o Arduino Mega, gdzie mamy do dyspozycji niewiele pamięci i przy większej ilości rolet, przyciski mogłby zjeść całą pamięć.
Widzimy się na Supla Offline Party vol. 2 :!:
bigthomas
Posty: 234
Rejestracja: pn sie 12, 2019 3:35 pm

A czy jest możliwość aby po jednorazowym naciśnięciu przycisku przekaźnik uruchomił się X razy?
Czyli przycisk wysyłał by akcję włącz/wyłącz X razy do przekaźnika.

:)
Awatar użytkownika
klew
Posty: 8178
Rejestracja: czw cze 27, 2019 12:16 pm
Lokalizacja: Wrocław

bigthomas pisze: czw lis 26, 2020 9:50 pm A czy jest możliwość aby po jednorazowym naciśnięciu przycisku przekaźnik uruchomił się X razy?
Czyli przycisk wysyłał by akcję włącz/wyłącz X razy do przekaźnika.

:)
Raczej nie robiłbym tego w samym przycisku, bo to dość egzotyczne zachowanie. Co dokładnie chcesz osiągnąć?
Widzimy się na Supla Offline Party vol. 2 :!:
bigthomas
Posty: 234
Rejestracja: pn sie 12, 2019 3:35 pm

klew pisze: czw lis 26, 2020 10:50 pm
Żeby po naciśnięciu raz buttona przekaźnik uruchomił się dwa razy z przerwą powiedzmy 1 sekundową :)
Awatar użytkownika
klew
Posty: 8178
Rejestracja: czw cze 27, 2019 12:16 pm
Lokalizacja: Wrocław

bigthomas pisze: czw lis 26, 2020 11:13 pm
klew pisze: czw lis 26, 2020 10:50 pm
Żeby po naciśnięciu raz buttona przekaźnik uruchomił się dwa razy z przerwą powiedzmy 1 sekundową :)
Możesz spróbować użyć klasy BistableButton i ustawić tam włącznik schodowy i czas 1 s
Widzimy się na Supla Offline Party vol. 2 :!:
ODPOWIEDZ

Wróć do „Arduino IDE”