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

User avatar
lukfud
Posts: 2101
Joined: Thu Nov 23, 2017 11:33 pm
Location: Warszawa

Post

klew wrote: Thu Nov 19, 2020 7:53 am
lukfud wrote: Thu Nov 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/
User avatar
klew
Posts: 8357
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław

Post

lukfud wrote: Thu Nov 19, 2020 8:02 am
klew wrote: Thu Nov 19, 2020 7:53 am
lukfud wrote: Thu Nov 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 :!:
User avatar
lukfud
Posts: 2101
Joined: Thu Nov 23, 2017 11:33 pm
Location: Warszawa

Post

klew wrote: Thu Nov 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 ?

Code: Select all

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/
User avatar
klew
Posts: 8357
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław

Post

lukfud wrote: Thu Nov 19, 2020 8:25 am
klew wrote: Thu Nov 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 ?

Code: Select all

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 :!:
User avatar
lukfud
Posts: 2101
Joined: Thu Nov 23, 2017 11:33 pm
Location: Warszawa

Post

klew wrote: Thu Nov 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/
User avatar
klew
Posts: 8357
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław

Post

elmaya wrote: Mon Nov 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 wrote: Mon Nov 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
Posts: 234
Joined: Mon Aug 12, 2019 3:35 pm

Post

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.

:)
User avatar
klew
Posts: 8357
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław

Post

bigthomas wrote: Thu Nov 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
Posts: 234
Joined: Mon Aug 12, 2019 3:35 pm

Post

klew wrote: Thu Nov 26, 2020 10:50 pm
Żeby po naciśnięciu raz buttona przekaźnik uruchomił się dwa razy z przerwą powiedzmy 1 sekundową :)
User avatar
klew
Posts: 8357
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław

Post

bigthomas wrote: Thu Nov 26, 2020 11:13 pm
klew wrote: Thu Nov 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 :!:

Return to “Arduino IDE”