-
Notifications
You must be signed in to change notification settings - Fork 0
/
Arduino.m
99 lines (83 loc) · 4.39 KB
/
Arduino.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
function Arduino(handles,string)
%UNTITLED Summary of this function goes here
% Detailed explanation goes here
switch string
case 'connect'
try
ard = arduino(getappdata(handles.figure1,'settings_serialPort'));
% ard = arduino('btspp://00211300C09A','Uno');
% pause(20);
setappdata(handles.figure1,'flags_isArduinoConnected',true);
setappdata(handles.figure1,'settings_ard',ard);
setappdata(handles.figure1,'settings_ardBoard',ard.Board);
%set(handles.pushbutton_connect,'BackgroundColor',[0.94 0.94 0.94]);
set(handles.pushbutton_connect, 'String', 'Connected');
set(handles.pushbutton_connect,'Enable','off')
numberOfActiveChannels = NumberOfActiveChannels(handles);
setappdata(handles.figure1,'settings_numberOfActiveChannels',numberOfActiveChannels);
isArduinoConnected = getappdata(handles.figure1,'flags_isArduinoConnected');
if(isArduinoConnected && numberOfActiveChannels > 0)
set(handles.togglebutton_action,'Enable','on');
else
set(handles.togglebutton_action,'Enable','off');
end
% Displaying status message.
string = 'Arduino Connected...';
color = [0 0.38 0.11];
set(handles.text_statusMsg, 'String', string);
set(handles.text_statusMsg, 'ForegroundColor', color);
catch ME
switch ME.identifier
case {'MATLAB:arduinoio:general:invalidAddressType', 'MATLAB:arduinoio:general:invalidAddressPCMac' , 'MATLAB:arduinoio:general:invalidPort'}
disp(ME.identifier)
disp('Select correct serial port');
% Displaying status message.
string = 'Select correct serial port';
color = [0 0.38 0.11];
set(handles.text_statusMsg, 'String', string);
set(handles.text_statusMsg, 'ForegroundColor', color);
drawnow
case 'MATLAB:arduinoio:general:connectionExists'
disp(ME.identifier)
disp('Connection to arduino already exists in MATLAB')
% Displaying status message.
string = 'Connection to arduino already exists in MATLAB';
color = [0 0.38 0.11];
set(handles.text_statusMsg, 'String', string);
set(handles.text_statusMsg, 'ForegroundColor', color);
drawnow
case 'MATLAB:arduinoio:general:openFailed'
disp(ME.identifier)
disp('Failed to open a connection at serial port')
% Displaying status message.
string = 'Failed to open a connection at serial port';
color = [0 0.38 0.11];
set(handles.text_statusMsg, 'String', string);
set(handles.text_statusMsg, 'ForegroundColor', color);
drawnow
otherwise
disp(ME.identifier)
disp(ME)
disp('Unknown error !!!');
% Displaying status message.
string = 'Unknown error !!! Check command window for furthur details';
color = [0 0.38 0.11];
set(handles.text_statusMsg, 'String', string);
set(handles.text_statusMsg, 'ForegroundColor', color);
drawnow
end
end
case 'initialize'
% Arduino object (This will be filled when user presses connect button)
setappdata(handles.figure1,'settings_ard',[]);
% Serial Port on which arduino is connected (User selected)
setappdata(handles.figure1,'settings_serialPort',[]);
% Arduino Board Type
setappdata(handles.figure1,'settings_ardBoard',[]);
% Find serial port and populate the list
serialPorts = instrhwinfo('serial');
nPorts = length(serialPorts.SerialPorts);
set(handles.listbox_serialPorts, 'String', [{'Select a port'} ; serialPorts.SerialPorts ]);
set(handles.listbox_serialPorts, 'Value', 1);
end
end