Problem with Callback Function / BytesAvailableFcn on GUI

1 回表示 (過去 30 日間)
Yassin Kim
Yassin Kim 2015 年 7 月 5 日
コメント済み: Walter Roberson 2015 年 7 月 8 日
i work since 3 days only on one thing ; to be able to receive continuously bytes from device (Arduino) on GUI programme but unfortunately i have not done. The Problem is that BytesAvailableFcn cannot be called.
function togglebutton1_Callback(hObject, eventdata, handles)
stat = get(hObject,'Value'); %returns toggle state of togglebutton1
if (stat == 1)
if ~isfield(handles, 'Ser')
set(hObject, 'String','Connected');
handles.Ser = serial('COM11','BaudRate', 9600);
handles.Ser.BytesAvailableFcnMode = 'Terminator';
set (handles.Ser,'RequestToSend','off');
set (handles.Ser,'Terminator','CR');
handles.Ser.BytesAvailableFcn = {@instrcallback,handles}; % Here the Problem!
fopen(handles.Ser) ;
end
elseif (stat == 0)
if isfield(handles, 'Ser')
fclose (handles.Ser);
handles = rmfield(handles, 'Ser');
end
end
guidata(hObject, handles)
function instrcallback(obj, eventdata, handles)
set(findobj('Tag','text2'),'String','Bytes Received!') ; % Test if that function works
  3 件のコメント
Yassin Kim
Yassin Kim 2015 年 7 月 6 日
Yes that's the Problem, i tried already :
get(handles.Ser,'BytesAvailableFcn')
and i got 0 I can receive Data with command
fscanf(handles.Ser)
in a loop while but i would like to use a callback function.
Yassin Kim
Yassin Kim 2015 年 7 月 6 日
編集済み: Yassin Kim 2015 年 7 月 6 日
But if i use
Ser = serial('COM11','BaudRate', 9600);
Ser.BytesAvailableFcnMode = 'terminator';
Ser.BytesAvailableFcn = @instrcallback;
Ser.OutputEmptyFcn = @instrcallback;
set (Ser,'RequestToSend','off')
set (Ser,'Terminator','CR');
fopen(Ser) ;
in Command Window, i get
BytesAvailable event occurred at 18:38:36 for the object: Serial-COM11.
The Probleme is only with function instrcallback, it works when i delete it
%function instrcallback(obj, eventdata, handles)
%set(findobj('Tag','text2'),'String','Bytes Received!') ;

サインインしてコメントする。

回答 (1 件)

Harsha Medikonda
Harsha Medikonda 2015 年 7 月 7 日
'instrcallback' accepts two parameters. Please refer to the following documentation link
Also,please refer to the following link for the usage of bytesavailablefcn
  1 件のコメント
Walter Roberson
Walter Roberson 2015 年 7 月 8 日
True, however it is only an error to specify more dummy parameters than actual arguments if one of the missing arguments is actually used.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeInstrument Control Toolbox についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by