timer does not work in the .exe file
10 ビュー (過去 30 日間)
古いコメントを表示
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);
0 件のコメント
回答 (1 件)
Walter Roberson
2016 年 5 月 8 日
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 件のコメント
Walter Roberson
2016 年 5 月 9 日
Put a uiresume in there and put a uiwait in the main routine so that it pauses until the resume is executed
参考
カテゴリ
Help Center および File Exchange で MATLAB Compiler SDK についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!