Problem s casovacem

Jan Houska Houska at humusoft.cz
Tue Feb 21 21:31:54 CET 2006


Dobry den,

to vypada, jako kdybyste mel pri druhem a dalsim startu objekt 
"handles.ai" v jinem stavu nez pri prvnim. Mohlo by pomoci

get(handles.ai)

pred volanim "start" a porovnani, kde se vlastnosti lisi mez prvnim a 
dalsimi starty. Rozdil muze byt samozrejme kdekoli, ala napada me jedna 
podezrela vec. Nevadi, ze v okamziku druheho a dalsiho volani je uz v 
okamziku "start" callback "TimerFcn" nastaven, zatimco poprve ne? Zkuste 
ho pred "start" nastavit na prazdny a teprve pote do nej vratit to, co 
tam patri.

Ze dotycna varovani generuje funkce "start(handles.ai)", se muze jenom 
zdat. Pri spousteni casovace nebyva presne zrejme, jestli je pripadna 
chyba zpusobena uz spousteci funkci anebo az pri vyvolani callbacku. 
Nerikam, ze to tak nutne je, ale na tu diagnostiku moc nespolehejte.

Zdravi

Jan Houska



> Zdravim,
> 
> prosim o radu s nasledujicim problemem. Delam aplikaci - snimani a
> ukladani dat z merici karty Nat.Instr.
> Snimani a ukladani funguje a chtel jsem to vylepsit o prubezne
> zobrazovani dat a doby snimani pomoci casovace, takze mam nasledujici cast
> kodu:
> 
> set(handles.ai,'SamplesPerTrigger',inf);
> start(handles.ai) %Start ziskavani hodnot
> handles.ai.TimerFcn = {@Timercallback, handles};%Nastaveni volani funkce
> casovace
> 
> Telo funkce casovace vypada nasledovne:
> 
> 
> function Timercallback(obj, event, handles)
> 
> time = str2num(get(handles.Time_text, 'String'));
> time = time + 0.1;
> set(handles.Time_text, 'String', num2str(time));
> timerPeriod = get(handles.ai,'TimerPeriod');%ziskani periody volani timeru
> sampleRate =  get(handles.ai,'SampleRate'); %ziskani hodnoty Fs sampleData
> = peekdata(handles.ai, timerPeriod * sampleRate);%ziskani aktual.casti dat
> maxValue = max(sampleData);%ziskani maxima z aktual.casti dat
> plot(handles.time_axes, sampleData)%Kresleni do grafu time_axes
> 
> 
> No a mam nasledujici problemy - kdyz spustim program poprve, vse bezi OK.
> Ale jakmile snimani zastavim a spustim znovu, prestane se provadet
> Timercallback a snimana data nejsou prubezne zobrazovana, protoze se
> objevi nasl. varovani matlabu:
> 
> Warning: The number of samples requested is not available.
> The number of samples returned will be reduced.
> ??? Index exceeds matrix dimensions.
> 
> Warning: The TimerFcn callback is being disabled.
> To enable the callback, set the TimerFcn property.
> 
> Ovsem nastavim-li breakpoint a pak krokuji, takse sice stejne varovani
> objevi take, ale timer se provadi a zobrazovani funguje. Zjistil jsem, ze
> varovani generuje funkce: start(handles.ai) nikoli kod v timercallbacku.
> Takze nevim, kde je problem. Predem diky za pomoc!
> 
> P.Hlousek
> 
> 
> _______________________________________________
> CsMUG mailing list
> CsMUG at vscht.cz
> http://listserv.vscht.cz/mailman/listinfo/csmug


--------------------------------------------------------------------
Jan Houska                                           HUMUSOFT s.r.o.
houska at humusoft.com                                  Pobrezni 20
http://www.humusoft.com                              186 00 Praha 8
tel: ++ 420 2 84011730                               Czech Republic
fax: ++ 420 2 84011740 
--------------------------------------------------------------------



More information about the CsMUG mailing list