PasjaGSM.pl
  Jesteś w: Forum > Reakcja na jakikolwiek klawisz, jak?


Reakcja na jakikolwiek klawisz, jak?

Forum.PasjaGSM.pl » ...:Sprzęt:... » Nokia » DCT-3 » [DCT3] Modyfikacje HW i SW » NokiX » Programowanie » Reakcja na jakikolwiek klawisz, jak?
Poprzedni temat «» Następny temat
Autor Wiadomość
 
_Brutus 
Moderator
dragon podśmiechujek



Telefon: Samsung Ace II
Operator: Plus
Pomógł: 49 razy
Wiek: 26
Dołączył: 20 Lis 2005
Posty: 1191
Skąd: Łódź
Wysłany: 2006-01-04, 22:36   Reakcja na jakikolwiek klawisz, jak?

Witam. Wpadłem na pomysł napisania pewnego skryptu. Ale mam problem. Chodzi oto, że nie wiem jak zrobić reakcje na jakikolwiek klawisz.

Tzn. jak wciskam jakiś klawisz, to timer sie zeruje i startuje od początku, jak nie wciskam nic, to po np. 60 sek wysyła message. Rozumiecie? Mam nadzieję, że tak.
^
 
  Skype
     
AdSense


yak 
Starszyzna



Telefon: Kilka DCT3
Operator: Vodafone
Pomógł: 20 razy
Wiek: 36
Dołączył: 21 Gru 2004
Posty: 774
Skąd: Bochum / Niemcy
Wysłany: 2006-01-05, 02:04   

w temacie o timerach opisalem podstawy korzystania z timerow. nie ma tam mowy na temat ich zatrzymywania i restartu gdyz jak mowie, bylo to wprowadzenie.

informacje na ten temat sa w dokumentacji sdk na mojej stronie.

tu opisze pokrotce po polsku jak to wyglada

wspomniana w tamtym opisie funkcja own_timer_create() sluzaca do tworzenia timer'a zwraca pewna wartosc. jest to tzw. "uchwyt" do tegoz timer'a. w normalnym wypadku, kiedy z timerem nie chcemy nic wiecej robic (chcemy tylko aby odliczyl czas i wyslal wiadomosc) to ten uchwyt nie jest nam potrzebny. jednak jesli taki timer bedziemy chcieli przerwac (np. gdy zostanie wcisniety klawisz) to uchwyt jest nam potrzebny.

tu pojawia sie pewien problem bo taki uchwyt musimy gdzies zapisac aby miec do niego dostep np. po odebraniu wiadomosci MSG_KEYPRESS (czyli po wcisnieciu klawisza).

najprosciej uzyc w tym celu zmiennej globalnej czyli zmiennej zdefiniowanej poza jakimikolwiek funkcjami w pliku zrodlowym.

do zatrzymania timera uzywamy funkcji own_timer_abort() podajac jako jej jedyny parametr wspomniany uchwyt. po tej operacji mozemy od razu stworzyc nowy timer i znow zapisac jego uchwyt we wspomnianej zmiennej globalnej.

przyklad klawisza moglby wygladac tak:

Kod:
#define MSG_TIMER 0x1f00
void *uchwyt;

unsigned dispatcher(unsigned msg)
{
 (...)
 case MSG_KEYPRESS:
  own_timer_abort(uchwyt);
  uchwyt=own_timer_create(TICKS_PER_SECOND*60,TT_MESSAGE,MSG_TIMER);
  break;
 case MSG_TIMER:
  (...)
  break;
}


zauwazmy tu jedna rzecz. przy pierwszym nacisnieciu klawisza funkcja own_timer_abort() zosatnie wywolana z wartoscia zmiennej uchwyt ktora jednak nie zostala jeszcze ustawiona wiec jej wartosc jest nieznana. mozemy to jednak zrobic gdyz funkcja own_timer_abort() sprawdza czy podany uchwyt jest rzeczywiscie uchwytem istniejacego timera i jesli nie to nie robi nic.

za pomoca uchwytu mozna takze sprawdzac, ile czasu zostalo juz odliczone funkcja own_timer_query().

po wiecej informacji zapraszam jak zwykle do dokumentacji.

Pozdrawiam
[Yak]
_________________
NokiX Ci się podoba? Kliknij i wyraź to!
^
 
 
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Nie możesz ściągać załączników na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Podobne tematy
Temat Autor Forum Odpowiedzi Wysłany
Brak nowych postów nokia 5000 klawisz swistak33 DCT-4 7 2008-12-28, 19:15
Brak nowych postów [e50] - klawisz działa z opóźnieniem sundance_kid BB5 3 2009-03-21, 21:58
Brak nowych postów nokia 3100 nie dziła klawisz w prawo lukaczmarek DCT-4 1 2009-06-23, 13:58
Brak nowych postów Zacinający się klawisz w e51 Czesuaf BB5 4 2009-08-31, 17:22
Brak nowych postów Nokia 1208 nie daiała klawisz "3... maciek1004 DCT-4 4 2010-08-19, 15:07