timer does not work in the .exe file

10 visualizaciones (últimos 30 días)
Mr stone
Mr stone el 8 de Mayo de 2016
Editada: Walter Roberson el 10 de Mayo de 2016
I wanna let a .m script file work at intervals. So I write some test codes shown below. It works fine in MATLAB--two emails are sent. But after I package it to the .EXE file using deploytool, it doesn't work correctly -- only one test email is sent.
OS :Windows 7 Ver:MATLAB 2015b 32-bit
.net 4.0/runtime 9.0/Microsoft Windows SDK 7.1 are all installed.
%%file: exetest.m
itimer=timer('Name','myTest','TimerFcn',@timertry, ...
'Period', 5,'ExecutionMode','fixedspacing','TasksToExecute',2);
start(itimer);
%%file: timertry.m
function timertry(obj,event)
mySendMail('xxxxxx@xxx.com','test','This is a test email');
%%file: mySendMail.m
function mySendMail(tEmail,subject,content)
% a packaged function
myaddress='xxxxx@xxxx.com';
setpref('Internet','SMTP_Server','******');
setpref('Internet','E_mail',myaddress);
props = java.lang.System.getProperties;
props.setProperty('mail.smtp.auth','true');
setpref('Internet','SMTP_Username',myaddress);
setpref('Internet','SMTP_Password','*****');
sendmail(tEmail,subject,content);

Respuestas (1)

Walter Roberson
Walter Roberson el 8 de Mayo de 2016
Your code is not waiting for the timer to execute. Your code exits right after the start(timer) . That clears the workspace, including deleting the timer.
  3 comentarios
Walter Roberson
Walter Roberson el 9 de Mayo de 2016
Put a uiresume in there and put a uiwait in the main routine so that it pauses until the resume is executed
Mr stone
Mr stone el 10 de Mayo de 2016
Editada: Walter Roberson el 10 de Mayo de 2016
Thanks a lot.You've really done me a big favor.

Iniciar sesión para comentar.

Categorías

Más información sobre MATLAB Compiler SDK en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by