Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

tajmer nece da se aktivira

[es] :: Visual Basic 6 :: tajmer nece da se aktivira

[ Pregleda: 1164 | Odgovora: 10 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

rsinisa
Sinisa Radanocevic
Smederevo

Član broj: 2716
Poruke: 332
*.ptt.yu

Sajt: elmi.co.rs


Profil

icon tajmer nece da se aktivira15.10.2002. u 00:06

Pravim program koji komunicira sa spoljnim hardverom i ceka povratnu informaciju. Da ne bi cekao beskonacno u slucaju da nema odziva, hteo sam da upotrebim tajmer tako sto neposredno pre cekanja odziva postavim kontrolnu promenljivu na 0, ukljucim tajmer, i u tajmer rutini promenim vrednost promenljive. U petlji ispitujem ima li odziva, a takodje ispitujem i vrednost kontrolne promenljive, koja bi trebalo da se promeni ako je proteklo zadato vreme (konkretno 1000 ms) pre odziva. Medjutim, testovima sam ustanovio da se tajmer ponasa kao da nije ni ukljucen. Evo tog dela programa:

TimeOut = 0 ' kontrolna promenljiva
tmr1.Enabled = True ' tajmer je podesen na 1000 ms
Do Until Inp(regin) = 0 ' provera odziva
If TimeOut = 1 Then ' ako je promenljiva=1, izadji zi petlje
msg = MsgBox("Hardware timeout", vbOKOnly + vbCritical)
Out (regout), 0
tmr1.Enabled = False
Exit Sub
End If
Loop


A evo i tajmer rutine:

Private Sub tmr1_Timer()
TimeOut = 1 ' promeni vrednost kontrolne promenljive
End Sub


Kao sto rekoh, program se vrti u Do .. Loop petlji, ali se tajmer rutina uopste ne izvrsi. Kada tajmer aktiviram posebnim komadnim dugmetom, tajmer radi. Gde je greska?
A mozda postoji i bolje resenje za ovo sto mi je potrebno?

Pozdrav.
Sinisha

15.10.2002. u 00:06 

Krsta
Krstic Dejan
Licna firma za izradu i projektovanje inf. sistema, r..
Krusevac

Član broj: 2461
Poruke: 301
*.ptt.yu

Sajt: www.illusion.co.yu


Profil

icon Re: tajmer nece da se aktivira15.10.2002. u 00:40
Nisam siguran ali predpostavljam da je stvar u petlji.
Tu ti se program zadrzi i tajmer ne reaguje.
Probaj da napravis EXE i tad da pokrenes program.
Ako neznas kuda ides, sigurno ces tamo da stignes !!!

"Digital ILLUSION" - Krusevac
www.illusion.co.yu
15.10.2002. u 00:40 

Nemanja Dubravac
Nemanja Dubravac
Sombor / Wien

Član broj: 4621
Poruke: 926
62.108.126.*

Jabber: pcmaniac@gmail.com
ICQ: 91141532
Sajt: www.soinfo.org


Profil

icon Re: tajmer nece da se aktivira15.10.2002. u 01:51
Ubaci Do Events u Loop petlju.... posto ne izvrsava nista drugo dok se ta petlja ne zavrsi valjda
15.10.2002. u 01:51 

jc denton

Član broj: 2358
Poruke: 1705
195.252.103.*



Profil

icon Re: tajmer nece da se aktivira15.10.2002. u 03:22
Citat:
rsinisa:
Pravim program koji komunicira sa spoljnim hardverom i ceka povratnu informaciju. Da ne bi cekao beskonacno u slucaju da nema odziva, hteo sam da upotrebim tajmer tako sto neposredno pre cekanja odziva postavim kontrolnu promenljivu na 0, ukljucim tajmer, i u tajmer rutini promenim vrednost promenljive.


E, ako vec radis bas to sto si opisao, onda ne preporucujem koriscenje Timer kontrole nego Timer funkciju preko koje mozes mnooogo preciznije da kontrolises takve procese.
Recimo :
vreme=timer
do
doevents
if (timer-vreme) > neki_interval then
neki_kod
exit do
endif
loop

pozdrav
...za sada samo citam.
15.10.2002. u 03:22 

rsinisa
Sinisa Radanocevic
Smederevo

Član broj: 2716
Poruke: 332
*.ptt.yu

Sajt: elmi.co.rs


Profil

icon Re: tajmer nece da se aktivira15.10.2002. u 22:38
Citat:
Krsta:
Probaj da napravis EXE i tad da pokrenes program.


Nije pomoglo.

Citat:
PcManiac:
Ubaci Do Events u Loop petlju


Da, to je ono pravo !

Citat:
jc denton:
E, ako vec radis bas to sto si opisao, onda ne preporucujem koriscenje Timer kontrole nego Timer funkciju preko koje mozes mnooogo preciznije da kontrolises takve procese.


Molio bih te da mi objasnis zasto je to mnogo preciznije, jer (koliko sam ja kao pocetnik shvatio) Timer funkcija ima rezoluciju od 1 s, a Timer kontrola 1 ms. A i prilikom koriscenja Timer funkcije moze da dodje do problema ako se petlja izvrsava na prelazu izmedju dva dana, jer ona vraca broj sekundi proteklih od ponoci. Znam da je verovatnoca mala za tako nesto, ali bih zeleo da izbegnem svaku mogucu komplikaciju.
Hvala svima na odgovorima, i ocekujte jos pitanja uskoro :).

Pozdrav.
Sinisha

15.10.2002. u 22:38 

jc denton

Član broj: 2358
Poruke: 1705
195.252.103.*



Profil

icon Re: tajmer nece da se aktivira16.10.2002. u 01:03
Ovo sto ti je Krsta naveo nije za dzabe receno, pogledaj temu :
http://www.elitesecurity.org/tema/7128

A to da Timer funkcija vraca sekunde je tacno, ali postoji i jedna sitnica - to ne mora da bude ceo broj. Vidi se da nisi ni pokusao da isprobas :)

Znaci, rezultat moze da bude i ovakav :
timer - vreme = .005
odnosno 5 ms.

Timer kontrola u nekim slucajevima jednostavno ne moze da postigne preciznost - timer event ne okida kada treba. Probaj i uverices se i sam. Jedino pravo resenje je Timer funkcija ili potrazi na netu recimo 'using multimedia timers in visual basic' ili sl.

pozdrav
...za sada samo citam.
16.10.2002. u 01:03 

Dragi Tata

Član broj: 1958
Poruke: 3882
..ndg-pm4-1.dialup.nethere.net

Sajt: www.novetehnologije.com


Profil

icon Re: tajmer nece da se aktivira16.10.2002. u 03:10
Timer kontrola "ispod haube" koristi tzv User-mode timer koji se startuje API funkcijom SetTimer. Taj tajmer u pravilnim vremenskim intervalima postuje poruku WM_TIMER u message queue forme na kojoj je kontrola. E sad, kad će ta poruka biti primljena i obrađena je veliko pitanje, tim pre što je WM_TIMER poruka sa najnižim prioritetom. Zato su ovakvi tajmeri u principu nepogodni kada je potrebna velika preciznost. Dobra strana user-mode tajmera je ta da se sve izvršava u jednoj niti (thread-u) što itekako čini programerov život lakšim.

Koga interesuju tajmeri pod Windows-om, a razume se pomalo u API funkcije, može da pročita članak koji sam svojevremeno napisao za CodeProject.

http://www.codeproject.com/system/timers_intro.asp
16.10.2002. u 03:10 

jc denton

Član broj: 2358
Poruke: 1705
195.252.103.*



Profil

icon Re: tajmer nece da se aktivira17.10.2002. u 00:34
DT, tekst je veoma kvalitetan. Bavio sam se multimedia tajmerima, ali, posteno, nisam znao da ima ovoliko vrsta tajmera :)

Interesuje me gde bi mogao malo vise da procitam o user mode i kernel mode stvarima. O cemu se tu zapravo radi ?

pozdrav
...za sada samo citam.
17.10.2002. u 00:34 

Krsta
Krstic Dejan
Licna firma za izradu i projektovanje inf. sistema, r..
Krusevac

Član broj: 2461
Poruke: 301
*.ptt.yu

Sajt: www.illusion.co.yu


Profil

icon Re: tajmer nece da se aktivira17.10.2002. u 00:59
Ovde ima lepih stvari, jos samo da se isproba brzina...
Ako neznas kuda ides, sigurno ces tamo da stignes !!!

"Digital ILLUSION" - Krusevac
www.illusion.co.yu
17.10.2002. u 00:59 

Dragi Tata

Član broj: 1958
Poruke: 3882
..g-c5300-2.dialup.nethere.net

Sajt: www.novetehnologije.com


Profil

icon Re: tajmer nece da se aktivira17.10.2002. u 03:34
Citat:
jc denton:

Interesuje me gde bi mogao malo vise da procitam o user mode i kernel mode stvarima. O cemu se tu zapravo radi ?

pozdrav


Pa, radi se zapravo o arhitekturi NT sistema. Programi rade ili u user modu (praktično sve aplikacije) ili u kernel modu (drajveri i drugi sistemski programi). User-mode kod ima daleko manje privilegija nego kernel-mode kod.

O tome možeš dosta da nađeš ovde:

http://www.winntmag.com/Articl...m?IssueID=26&ArticleID=301
17.10.2002. u 03:34 

rsinisa
Sinisa Radanocevic
Smederevo

Član broj: 2716
Poruke: 332
*.ptt.yu

Sajt: elmi.co.rs


Profil

icon Re: tajmer nece da se aktivira17.10.2002. u 21:05
Citat:
jc denton:
Ovo sto ti je Krsta naveo nije za dzabe receno


Nisam to ni mislio, jednostavno sam hteo da kazem da u ovom slucaju to ne funkcionise.

Citat:
jc denton:
A to da Timer funkcija vraca sekunde je tacno, ali postoji i jedna sitnica - to ne mora da bude ceo broj. Vidi se da nisi ni pokusao da isprobas :)


Nisam, necu da lazem :), jer jednostavno nemam vremena za neko studiozno proucavanje VB-a. A u helpu za Timer funkciju pise da vraca sekunde, ali sam prevideo prvi deo koji lepo kaze: "returns a single", pa je sasvim jasno da moze i delove sekunde.

Citat:
jc denton:
Timer kontrola u nekim slucajevima jednostavno ne moze da postigne preciznost


OK, ali u ovom slucaju mi nije potrebna preciznost, bitno mi je samo da imam nacin da izadjem iz petlje ako se hardver ne odazove neko vreme.
Hvala jos jednom svima, a za par dana ide novo pitanje :).

Pozdrav.
Sinisha
17.10.2002. u 21:05 

[es] :: Visual Basic 6 :: tajmer nece da se aktivira

[ Pregleda: 1164 | Odgovora: 10 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.