Matlab - Programa ejecutandose constantemente

 
Vista:

Programa ejecutandose constantemente

Publicado por Alessandro (5 intervenciones) el 16/10/2012 20:31:44
Hola,
Soy aun un novato en Matlab, estoy trabajando en hacer un sistema de despertador, ya tengo una guide donde capturo la información de los usuarios, (hora de despertarse durante la semana).

Mi consulta es para lograr que se ejecuten acciones a un determinado momento del día, el cual se ha de repetir constantemente semanalmente.

Mi idea era tener un while(1) donde leyera la fecha y hora constantemente pero ya descubrí que no es buena idea meterse con los bucles infinitos en matlab

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Programa ejecutandose constantemente

Publicado por Alessandro (5 intervenciones) el 17/10/2012 23:01:22
Tras mucho buscar logre dar con un ejemplo que me ayuda, por si alguien tiene la misma inquietud el ejemplo que me ayudo es How can I display a digital clock in my GUI? "GUI_17" el Author: Matt Fig publica una serie de ejemplos más, en la siguiente dirección http://www.mathworks.es/matlabcentral/fileexchange/24861-41-complete-gui-examples

Yo le saque lo que no me interesaba par comprender como funcionaba, dejando el programa que se ejecuta constantemente y me muestra en el command window la hora y un contador vez que se vuelve a ejecutar, por ahora eso me sirve para continuar.

Pd: hay que agregar una condición de parada. la cual ha de tener las siguientes funciones
1
2
stop(tmr);
delete(tmr);

si no se ejecutara constantemente sin detenerse.

Programa temporizador y hora
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function [] = Intento1()
global i
i=0
 
tmr = timer('Name','Reminder',...
            'Period',10,...  % Se actualiza cada 10s
            'StartDelay',0,... % In seconds.
            'TasksToExecute',inf,...  % number of times to update
            'ExecutionMode','fixedSpacing',...
            'TimerFcn',{@updater});
 
start(tmr);  % Start the timer object.
 
    function [] = updater(varargin)
 
    i=i+1 %este es el contador 
    datestr(now,'HH:MM:SS.FFF') %acá muestra la hora
 
    end
 
end
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Dave
Val: 497
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Programa ejecutandose constantemente

Publicado por Dave (1094 intervenciones) el 18/10/2012 18:41:56
Hola Alessandro;

Te sugiero que revises la ayuda de Matlab, especificamente busca sobre "Basic Example Using Timer Blocks"

Espero que sea de alguna ayuda.

Saludos
Dave Correa
[email protected]
Servicios de Programación Matlab
http://fismatlab.blogspot.com/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Programa ejecutandose constantemente

Publicado por Alessandro (5 intervenciones) el 18/10/2012 19:48:19
@Dave Correa

muchas gracias, voy a revisar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Programa ejecutandose constantemente

Publicado por Alessandro (5 intervenciones) el 18/10/2012 19:46:27
Inserte de esta manera el código en mi GUIDE, hice unas pequeñas modificaciones y me funciona muy bien.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
% --- Outputs from this function are returned to the command line.
function varargout = Inicio_OutputFcn(hObject, eventdata, handles)
% varargout  cell array for returning output args (see VARARGOUT);
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
 
% Get default command line output from handles structure
varargout{1} = handles.output;
clc
 
contador=0
 
tmr = timer('Name','Reminder',...
            'Period',10,...  % Se actualiza cada 10s
            'StartDelay',0,... % In seconds.
            'TasksToExecute',inf,...  % number of times to update
            'ExecutionMode','fixedSpacing',...
            'TimerFcn',{@updater}); %funcion llamada
        start(tmr);  % Start the timer object.
 
function varargout = updater (varargin)
 
datestr(now,'HH:MM:SS.FFF') %acá muestra la hora
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar