Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Presbiopia - la 43 ani ?

Termen transcriere autovehicul

Cazare Timisoara pe 4-5 zile

Primele zile ale internetului per...
 Ditra 25

Casti USB-C ptr A-54

Aplicatie medicala / asistent med...

De ce vor atația politicieni...
 ERR_ADDRESS_UNREACHABLE

Legea 18/1968 Se mai aplica?

Digi conectare 2 routere prin fir

Succesiune notar versus instanta ...
 Montaj aer conditionat in balcon ...

Cont curent mulți valuta far...

Sugestii plan casa

Experiente cu firme care cumpara ...
 

[MATLAB][GUI] repetare acțiune

  • Please log in to reply
1 reply to this topic

#1
dan-s

dan-s

    Active Member

  • Grup: Banned
  • Posts: 1,699
  • Înscris: 02.07.2013
Am următoarea problemă. Lucrez la o aplicație cu GUI în Matlab. Și aș vrea ca anumite valori să se modifice în funcție de modificarea anumitor parametri dintr-un echipament ( fără să apăs vreun buton). Problema este că nu știu cum pot face asta în GUI de la Matlab. În ce funcție/event ar trebui să pun codul de a citi datele de la echipament astfel încât să se repete tot timpul acel cod? Sper că m-am făcut explicit. Mulțumesc anticipat.

#2
dan-s

dan-s

    Active Member

  • Grup: Banned
  • Posts: 1,699
  • Înscris: 02.07.2013
Văd că nu a răspuns nimeni așa că voi da tot eu răspunsul în caz că mai apare cineva curios de așa ceva. Se folosește un timer care este declarat în callback-ul OpeningFcn al form-ului. Se pot acolo specifica mai mulți parametrii pentru acel timer printre care și ce funcție să se apeleze tot timpul precum și la ce interval de timp să se reapeleze acea funcție. După asta se pornește timer-ul în fiecare callback ce ar putea fi folosit ( bineînțeles testând într-o condiție dacă proprietatea Runing al timer-ului este off ).

Câteva link-uri ce mi s-au părut folositoare:

http://www.mathworks...imer-class.html
http://www.mathworks...vals-guide.html
http://stackoverflow...y-update-graphs

Un exemplu:

function fct(obj, event, handles)
	global sir;
	global contor;
	global xarr;
	param = fcomm();
	param.get_PV();
	contor = contor + 1;
	xarr = [xarr contor];
	sir = [sir param.send];
   

function app_gui_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject	handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles	structure with handles and user data (see GUIDATA)
% varargin   command line arguments to app_gui (see VARARGIN)
%get initial data
global sir;
global contor;
global xarr;
contor = 0;
xarr = 0;
sir = 0;
handles.timer = timer ('ExecutionMode', 'fixedRate', 'TimerFcn', {@fct, handles}, 'Period', 3);
start(handles.timer);
% Choose default command line output for app_gui
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes app_gui wait for user response (see UIRESUME)
% uiwait(handles.figure1);


function execute_Callback(hObject, eventdata, handles)
% hObject	handle to execute (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles	structure with handles and user data (see GUIDATA)
if strcmp(get(handles.timer, 'Running'), 'off')
	start(handles.timer);
end


În codul de mai sus avem callback-ul apelat de timer-ul creat de mine cu numele fct. După cum se vede în OpeningFcn este declarat timer-ul și apoi este apelat cu start(handles.timer). Mai există un apel și în callback pentru un buton care are tag-ul execute ( bineînțeles că acolo e pusă și condiția ca să nu fie activat un alt timer între timp).

Anunturi

Neurochirurgie minim invazivă Neurochirurgie minim invazivă

"Primum non nocere" este ideea ce a deschis drumul medicinei spre minim invaziv.

Avansul tehnologic extraordinar din ultimele decenii a permis dezvoltarea tuturor domeniilor medicinei. Microscopul operator, neuronavigația, tehnicile anestezice avansate permit intervenții chirurgicale tot mai precise, tot mai sigure. Neurochirurgia minim invazivă, sau prin "gaura cheii", oferă pacienților posibilitatea de a se opera cu riscuri minime, fie ele neurologice, infecțioase, medicale sau estetice.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate