Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 30 sty 2026, o 00:49


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 11 ] 
Autor Wiadomość
PostNapisane: 23 lut 2015, o 18:45 
Offline
Użytkownik

Dołączył(a): 19 gru 2012
Posty: 712
Lokalizacja: Opole
Pomógł: 23

Witam

pracuje nad pewnym projektem służącym do włączania i wyłączania światła w zależności od czasu przytrzymania przycisku. Jedno klikniecie zwiększa ilość zapalonych lamp natomaist aby zgasić światło należy przytrzymać klawisz dłużej. Dzięki funkcji SuperDebounce wszystko działa super, z tym że z tego co przeanalizowałem funkcję ona reaguje na naciśnięcie przycisku co powoduje u mnie przy próbie zgaszenia wszystkich świateł chwilowe zapalenie większej ich ilości.

Podejrzewam ze należało by przebudować warunki odpowiedzialne za włączenie funkcji:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lut 2015, o 18:49 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 20 sie 2013
Posty: 795
Lokalizacja: Poznań
Pomógł: 59

Używam SuperDebounce do obsługi menu i zmiany parametrów - zarówno krótkie jak i długie przyciśnięcie. Sterownik działa od miesiąca, kliknięć jest około 200 (długich i krótkich) na 3 klawiszach i nigdy nie spotkałem się z podobnym problemem.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lut 2015, o 18:52 
Offline
Użytkownik

Dołączył(a): 19 gru 2012
Posty: 712
Lokalizacja: Opole
Pomógł: 23

hmm.. ale chyba kolega nei zrozumiał chodzi mi o rekacje funkcji na switcha nie chodzi mi aby superDebounce reagował na naciśnięcie ale na zwolnienie switcha. Funkcja która jest ustawiana w strukturze miała by być wykonana w momencie zwolnienia przycisku.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lut 2015, o 19:10 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 20 sie 2013
Posty: 795
Lokalizacja: Poznań
Pomógł: 59

Wilu88 napisał(a):

co powoduje u mnie przy próbie zgaszenia wszystkich świateł chwilowe zapalenie większej ich ilości.


Właśnie pisałem, ze nie mam takiego problemu i nie widzę sensu zmiany funkcji. Choć nie powiem, bo przymierzam się do czegoś takiego: krótkie naciśnięcie powoduje otwarcie lub zamknięcie rolety okiennej, a przytrzymanie powoduje ruch rolety do momentu puszczenia klawisza. Tak więc coś w tym jest. Miałem w planach zmniejszyć do minimum repeat time.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lut 2015, o 19:13 
Offline
Użytkownik

Dołączył(a): 19 gru 2012
Posty: 712
Lokalizacja: Opole
Pomógł: 23

Czyli u kolegi do momentu wykrycia ze naciskamy dłużej nie wywołuje się pierwsza funkcja opowiadająca za krótkie kliknięcie? Bo u mnie jak naciskam dłużej powiedzmy te 3 sekundy to odrazu wywoływana jest pierwsza funkcja no i po 3 sekundach druga. A zależy mi na tym że do momentu w którym nie puszcze klawisza ta pierwsza funkcja się nei wywoływała.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lut 2015, o 19:25 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1988
Lokalizacja: Lipsko
Pomógł: 125

Nigdy nie używałem Mirka biblioteki do klikadełek, ale nie sądzę żeby zrobił tam jakiegoś byka, bo wielu z niej korzysta i nie narzeka. Jako alternatywy możesz użyć mojej funkcji, którą publikowałem kiedyś tu na forum, albo napisać coś na jej wzór...
topic4763.html

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lut 2015, o 19:26 
Offline
Użytkownik

Dołączył(a): 19 gru 2012
Posty: 712
Lokalizacja: Opole
Pomógł: 23

Ale ja nei mówię że to błąd, na mój rozum to właśnie tak powinno działać :P Tylko ja akurat do tego projektu potrzebuje trochę innego działania i stąd moje pytanie o przerobienie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lut 2015, o 20:06 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 20 sie 2013
Posty: 795
Lokalizacja: Poznań
Pomógł: 59

U mnie wywołuje się albo "krótka" funkcja, albo "długa".



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lut 2015, o 21:06 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 sty 2012
Posty: 777
Lokalizacja: Karpicko k. Wolsztyna
Pomógł: 197

Panowie Wy piszecie o funkcji SuperDebounce z BB, w której reakcja na krótkie wciśnięcie następuje po zwolnieniu przycisku. A kol. Wilu88 pisze o funkcji z Mirkowego bloga, w której reakcja na krótkie wciśniecie następuje po wciśnięciu przycisku.

Wypróbuj lekko przerobioną funkcję z tego wątku topic4541.html#p56592
Autor wątku też miał ten sam problem.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lut 2015, o 21:08 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1988
Lokalizacja: Lipsko
Pomógł: 125

Wilu88 napisał(a):
Tylko ja akurat do tego projektu potrzebuje trochę innego działania

Oglądałeś te moje wypocinki - w zasadzie masz tam podzielone na króciutkie trzy funkcje (po prostu wybierasz opcję w zależności od potrzeb), które czynią cuda z klawiszami. Po niewielkiej modyfikacji jednym klawiszem możesz i 50 funkcji wykonać o ile zapamiętasz ich czasy przytrzymania. Może być rozpoznawanie krótki/długi, repeat... zresztą sam zobacz. Może wykorzystasz.

------------------------ [ Dodano po: 5 minutach ]

Aha, i niech Cię nie zmyli niewielki rozmiar mojej funkcji. Ten banalny algorytm opracowałem jeszcze w bascomie i przeniosłem do C posiłkując się wskaźnikami wg nauk Mirka, bo chciałem zrobić równie elastyczną jak SuperDebounce :)

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lut 2015, o 22:37 
Offline
Użytkownik

Dołączył(a): 19 gru 2012
Posty: 712
Lokalizacja: Opole
Pomógł: 23

Przeróbka kolegi Jacka zadziałała w 100% :) W sumie to ze mnie sierota że nei popatrzyłem na płytkę z BB bo byłem pewien ze tam jest ten sam kod co na blogu :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 11 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO