امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 3
  • 1
  • 2
  • 3
  • 4
  • 5
اجرا کردن خودکار یک فانکشن در متلب
نویسنده پیام
pedram032 آفلاین
كاربر تک ستاره
*

ارسال‌ها: 27
موضوع‌ها: 12
تاریخ عضویت: خرداد ۱۳۹۱

تشکرها : 11
( 2 تشکر در 2 ارسال )
ارسال: #1
اجرا کردن خودکار یک فانکشن در متلب
سلام، در این برنامه چطور میشه کاری کرد تا نیازی به فشردن کلید برای نمایش دیتا نباشه؟

یعنی به صورت خودکار دیتای دریافتی نمایش داده بشه؟


کد:
function varargout = untitled(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                  'gui_Singleton',  gui_Singleton, ...
                  'gui_OpeningFcn', @untitled_OpeningFcn, ...
                  'gui_OutputFcn',  @untitled_OutputFcn, ...
                  'gui_LayoutFcn',  [] , ...
                  'gui_Callback',   []);
if nargin && ischar(varargin{1})
   gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
   [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
   gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT

% --- Executes just before untitled is made visible.
function untitled_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
guidata(hObject, handles);

% --- Outputs from this function are returned to the command line.
function varargout = untitled_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;

% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
s=serial('COM21','BaudRate',9600);
fopen(s)
readasync(s);
out=fscanf(s);
set(handles.text1,'string',out);
fclose(s);
delete(s);

% --- Executes during object creation, after setting all properties.
function text1_CreateFcn(hObject, eventdata, handles)
۲۴-دى-۱۳۹۵, ۱۳:۴۵:۴۷
ارسال‌ها
پاسخ
babyy آفلاین
بازنشسته
*****

ارسال‌ها: 3,095
موضوع‌ها: 141
تاریخ عضویت: مرداد ۱۳۸۷

تشکرها : 35081
( 26083 تشکر در 9068 ارسال )
ارسال: #2
RE: اجرا کردن خودکار یک فانکشن در متلب
یعنی میخوایید کلا روی سریال گوش بمونه و هروقت اطلاعات جدید اومد اونو نشون بده؟
و همزمان میخوایین با متلب هم کارای دیگه اننجام بدید؟
۲۴-دى-۱۳۹۵, ۲۰:۲۶:۱۸
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : pedram032
pedram032 آفلاین
كاربر تک ستاره
*

ارسال‌ها: 27
موضوع‌ها: 12
تاریخ عضویت: خرداد ۱۳۹۱

تشکرها : 11
( 2 تشکر در 2 ارسال )
ارسال: #3
RE: اجرا کردن خودکار یک فانکشن در متلب
سلام، بله میخوام هر وقت اطلاعات جدید اومد اون رو نشون بده.
کار دیگه ای نمیخوام با متلب انجام بدم فقط بیاد اطلاعات جدید رو نشون بده.

این کدی که گفتین رو باید استفاده کنم؟
۲۵-دى-۱۳۹۵, ۱۲:۱۴:۳۲
ارسال‌ها
پاسخ
babyy آفلاین
بازنشسته
*****

ارسال‌ها: 3,095
موضوع‌ها: 141
تاریخ عضویت: مرداد ۱۳۸۷

تشکرها : 35081
( 26083 تشکر در 9068 ارسال )
ارسال: #4
RE: اجرا کردن خودکار یک فانکشن در متلب
سلام
من کدی نگفتم! اون امضام هستش خنده بلد − بهینه شده برای ورژن جدید
در مورد سوالتون؛ من شرایط تست نداروم ولی اینارو میگم خودتون بخونید و تست کنید

کلا در اینجور مواقع که میخواییم چیزی رو از جایی بخونیم (که اینجا داریم از سریال میخونیم) ۲ حالت بیشتر نداریم؛ 

حالت اولش اینه که بعد اینکه توابع خوندن رو اجرا مکنیم (در اینجا scanf ) ؛ برنامه منتظر میمونه که یه اطلاعاتی از دستگاه مورد نظر مون بیاد؛ و تا وقتی اطلاعات نیاد کل برنامه رو بلوکه میکنه؛ یا به اصطلاح فریز میشه؛

حالت دوم واسه وقتیه که شما تابع خوندن رو اجرا میکنید؛ و یع بافر هم بهش معرفی میکنید؛ برنامه بعد از رسیدن به این حالت کار خودش رو انجام میده ولی همزمان وقتی اطلاعاتی هم از دستگاه بیاد؛ اونو میخونه و توی بافر میندازه

(لینک چهار رو ببینید)

این حالتی که شما میخوایید حالت اوله؛ یعنی برنامه منتظر بمونه اطلاعات بیاد؛ بعدش اونو بخونه و باز همینطور تا به آخر ...

که اونطور که من متوجه شدم باید روی این قسمت کار کرد:

کد php:
s=serial('COM21','BaudRate',9600);
fopen(s)
readasync(s);
out=fscanf(s);
set(handles.text1,'string',out);
fclose(s);
delete(s); 
تابع readasync برای اجرای ناهمروند هست؛ یعنی همون حالت اول؛ وقتی اجراش کردید؛ هرجا خواستید با توابه خواندن اطلاعات رو بخونید؛ برنامه صبر میکنه تا اطلاعات ار پورت سریال وارد بشه و اونو بخونه و بعد ادامه ماجرا ... (لینک شماره یک رو ببینید)

شما میتونید اون قسمت scanf رو داخل یه حلقه بندازید و به نتیجه ای که میخوایید برسید
و یا میتونید طوری تنظیم کنید که بعد از اومدن اطلاعات؛ یک تابع دیگه رو اجرا کنه (در اصطاح بهش میگن callback) - (لینک سه رو ببینید)




لینک ها:
یک:
http://matlab.izmiran.ru/help/techdoc/ma...ser23.html
دو:
http://matlab.izmiran.ru/help/techdoc/ma...ser21.html
سه:
http://matlab.izmiran.ru/help/techdoc/ma...html#73779
چهار:
http://radio.feld.cvut.cz/matlab/toolbox...ser12.html




خنده بلد − بهینه شده برای ورژن جدید خنده بلد − بهینه شده برای ورژن جدید خنده بلد − بهینه شده برای ورژن جدید چقدر چرت و پرت گفتم خنده بلد − بهینه شده برای ورژن جدید  شما به بزرگیه خودت ببخش خنده بلد − بهینه شده برای ورژن جدید
۲۵-دى-۱۳۹۵, ۲۰:۳۹:۱۴
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : pedram032
pedram032 آفلاین
كاربر تک ستاره
*

ارسال‌ها: 27
موضوع‌ها: 12
تاریخ عضویت: خرداد ۱۳۹۱

تشکرها : 11
( 2 تشکر در 2 ارسال )
ارسال: #5
RE: اجرا کردن خودکار یک فانکشن در متلب
امضا بود! خنده بلد − بهینه شده برای ورژن جدید

ممنون از شما، آخه این قسمت در فانکشن پوش بوتن هستش که تا فشار میدم این فانکشن اجرا میشه و دیتا رو از سریال میخونه.
این رو هم بگم که دیتا هر 500 میلی ثانیه به کامپیوتر ارسال میشه و دائمی هستش.
من این دستوراتی که شما میفرمایید رو از فانکشن پوش بوتن حذف کردم و بالای نوشته function pushbutton1_Callback(hObject, eventdata, handles) یک حلقه for تشکیل دادم که توو حلقه میمونه و انگار فقط اطلاعات حلقه آخری نمایش داده میشه.
۲۶-دى-۱۳۹۵, ۱۰:۱۹:۳۳
ارسال‌ها
پاسخ
babyy آفلاین
بازنشسته
*****

ارسال‌ها: 3,095
موضوع‌ها: 141
تاریخ عضویت: مرداد ۱۳۸۷

تشکرها : 35081
( 26083 تشکر در 9068 ارسال )
ارسال: #6
RE: اجرا کردن خودکار یک فانکشن در متلب
نقل قول: pedram032
امضا بود! خنده بلد − بهینه شده برای ورژن جدید
خنده بلد − بهینه شده برای ورژن جدید کامند لینوکس هستش؛ میزنه هارد رو میپوکونه خنده بلد − بهینه شده برای ورژن جدید

نقل قول:   آخه این قسمت در فانکشن پوش بوتن هستش که تا فشار میدم این فانکشن اجرا میشه و دیتا رو از سریال میخونه.


من از شما پرسیدم شما میخوایین کار دیگه‌ای هم با متلب انجام بدید!؟ شما فرمودید نه خنده بلد − بهینه شده برای ورژن جدید   و عرض کردم از این روش برید که منجر به فریز شدن میشه
وقتی دارید با محیط گرافیکی کار میکنید یعنی برنامه داره همزمان چندین کار رو انجام میده و این خوب نیست که فریز بشه خنده بلد − بهینه شده برای ورژن جدید یا در یه حلقه قرار بگیره و . .

منم دقت نکرده بودم برنامتون گرافیکیه خنده بلد − بهینه شده برای ورژن جدید  (حالا مثلا اگه دقت میکردن میفهمیدم خنده بلد − بهینه شده برای ورژن جدید خنده بلد − بهینه شده برای ورژن جدید )

------------
از اون callback که گفتم استفاده کردید؟
لینک شماره سه و همچنین اینم یه مثال هست
http://stackoverflow.com/questions/27973...-in-matlab
http://stackoverflow.com/questions/28885...allback-in
http://stackoverflow.com/questions/24940...-in-matlab


نکته: من هیچکدوم رو تست نکردم خنده بلد − بهینه شده برای ورژن جدید کار نکردن دعوا نکنی خنده بلد − بهینه شده برای ورژن جدید خنده بلد − بهینه شده برای ورژن جدید
(آخرین ویرایش در این ارسال: ۲۶-دى-۱۳۹۵, ۱۰:۳۹:۳۷، توسط babyy.)
۲۶-دى-۱۳۹۵, ۱۰:۳۶:۰۸
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : pedram032
pedram032 آفلاین
كاربر تک ستاره
*

ارسال‌ها: 27
موضوع‌ها: 12
تاریخ عضویت: خرداد ۱۳۹۱

تشکرها : 11
( 2 تشکر در 2 ارسال )
ارسال: #7
RE: اجرا کردن خودکار یک فانکشن در متلب
چه امضای خفنی خنده بلد − بهینه شده برای ورژن جدید
بله برنامه گرافیکی هستش، امتحان میکنم بهتون اطلاع میدم. راسش این کار رو واسه بیشتر شدن اطلاعات خودم میخواستم انجام بدم و عجله ای نیست زیاد.
کلا آدم ریلکسم توو این طور زمینه ها خنده بلد − بهینه شده برای ورژن جدید
از شما ممنون برای راهنمایی هاتون
۲۷-دى-۱۳۹۵, ۱۰:۲۹:۰۳
ارسال‌ها
پاسخ
تشکر شده توسط : babyy


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  [پروژه] [دانلود] پروژه راه اندازی Sim900 با متلب (مبتدی) Nimaaryamehr 0 1,685 ۰۲-اردیبهشت-۱۳۹۴, ۰۹:۴۴:۴۹
آخرین ارسال: Nimaaryamehr
  کمک در برنامه نویسی با متلب (Matlab)-- داده های تست و Train lyceum 11 18,085 ۲۹-فروردین-۱۳۹۴, ۱۲:۵۴:۳۴
آخرین ارسال: hadirajabzad
  [فوری] 2 سوال از برنامه نویسی متلب s234 1 2,115 ۰۲-بهمن-۱۳۹۳, ۲۰:۳۲:۴۰
آخرین ارسال: nasim.sagheb
Toungue [آموزشی] دانلود رایگان فیلم های آموزشی برنامه نویسی متلب nasim.sagheb 0 1,741 ۰۲-بهمن-۱۳۹۳, ۲۰:۲۴:۳۳
آخرین ارسال: nasim.sagheb
Question [سوال] نحوه نوشتن برنامه سیگما در متلب؟؟(فوری) شیرین خانوم 2 6,340 ۲۲-آذر-۱۳۹۳, ۱۱:۳۸:۱۲
آخرین ارسال: شیرین خانوم
  کمک درباره نرم افزار متلب kamibabr 4 3,591 ۱۹-آذر-۱۳۹۳, ۱۸:۵۸:۳۹
آخرین ارسال: kamibabr
  [فوری] سوال راجع به موازی سازی با متلب hamidreza3 0 1,476 ۱۷-شهریور-۱۳۹۳, ۱۱:۴۴:۴۲
آخرین ارسال: hamidreza3
Exclamation ویرایش فیلد سلول از یک جدول در اکسل javaweb 0 1,112 ۱۳-دى-۱۳۹۲, ۱۶:۴۴:۱۸
آخرین ارسال: javaweb
  راهنمایی در مورد ترکیب طبقه بند ها در متلب atna 3 3,537 ۰۲-اردیبهشت-۱۳۹۲, ۱۹:۳۶:۴۸
آخرین ارسال: من عاشق ایرانوج
  مشکل راست به چپ کردن کارکترها در XML behzadX 7 4,858 ۱۲-بهمن-۱۳۸۹, ۲۳:۰۵:۳۰
آخرین ارسال: behzadX

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS