function varargout = figureprint(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @figureprint_OpeningFcn, ...
'gui_OutputFcn', @figureprint_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 figureprint is made visible.
function figureprint_OpeningFcn(hObject, eventdata, handles, varargin)
global n
n = 0;
%delete(instrfindall);%关闭已经打开的串口
try
xlswrite('number.xlsx',' ','C5:C5');
xlswrite('users.xlsx',{'序号','学号','姓名'},'A1:C1');
catch
set(handles.text3,'String','请关闭Excel文件,重启软件')
return;
end
try
num = xlsread ('number.xlsx','A1:A1');
catch
set(handles.text3,'String','请关闭Excel文件,重启软件')
return;
end
[x,y] = size(num);
if x==0 || y==0
try
xlswrite('number.xlsx',10,'A1:A1');
catch
set(handles.text3,'String','请关闭Excel文件,重启软件')
return;
end
end
handles.output = hObject;
guidata(hObject, handles);
function varargout = figureprint_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
% --- Executes on selection change in popupmenu1.
function popupmenu1_Callback(hObject, eventdata, handles)
function popupmenu1_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --- Executes on selection change in popupmenu2.
function popupmenu2_Callback(hObject, eventdata, handles)
% hObject handle to popupmenu2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: contents = cellstr(get(hObject,'String')) returns popupmenu2 contents as cell array
% contents{get(hObject,'Value')} returns selected item from popupmenu2
% --- Executes during object creation, after setting all properties.
function popupmenu2_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function togglebutton1_Callback(hObject, eventdata, handles)
global s %设置串口对象为全局变量
comNames = get(handles.popupmenu1,'string'); %获取下拉框中串口
comName = comNames{get(handles.popupmenu1,'value')}; %获取选中的串口名称
baudrates = get(handles.popupmenu2,'String');%获取下拉框中波特率
baudrate = str2num(baudrates{get(handles.popupmenu2,'value')});%获取选中的波特率
s = serial(comName,'BaudRate',baudrate); %创建串口对象 comName为串口名称 baudrate为波特率
if strcmp(get(hObject,'String'),'打开串口')==1
set(s,'BytesAvailableFcnMode','byte'); %设置中断触发事件为字节事件
set(s,'BytesAvailableFcnCount',1); %设置中断触发事件字节事件的触发条件为字节满 1Byte
set(s,'BytesAvailableFcn',@fun_callback); %设置中断触发时调用中断服务子程序为 x.m
try
fopen(s); %开启串口
catch
set(handles.text3,'String','串口不存在或串口已打开')
end
if strcmp(s.status,'open')==1
fprintf(s, '00');
set(hObject,'String','关闭串口');
set(hObject,'BackgroundColor',[0.93 0.69 0.13]);
end
else
delete(instrfindall);%关闭串口
set(hObject,'String','打开串口');
set(hObject,'BackgroundColor',[0.47 0.67 0.19]);
end
%%
% 1 录入指纹
% 2 删除指纹
% 3 搜索指纹
% 4 全部删除
%%
function pushbutton2_Callback(hObject, eventdata, handles)
global s
if strcmp(get(handles.togglebutton1,'String'),'打开串口')==1
return;
end
id = get(handles.edit1,'String');
name = get(handles.edit2,'String');
if isempty(id)==1 || isempty(name)==1
set(handles.text3,'String','请输入学号和姓名!')
else
set(handles.text3,'String','请录入指纹!')
try
num = xlsread('number.xlsx','A1:A1');
catch
set(handles.text3,'String','请关闭Excel文件,重启软件');
return;
end
num = num2str(num+1);
fprintf(s, num);
end
function pushbutton4_Callback(hObject, eventdata, handles)
global s
if strcmp(get(handles.togglebutton1,'String'),'打开串口')==1
return;
end
id = get(handles.edit1,'String');
if isempty(id)==1
set(handles.text3,'String','请填写需搜索学生的学号');
else
set(handles.text3,'String','正在搜索...');
fprintf(s, '02');
end
function pushbutton5_Callback(hObject, eventdata, handles)
global n s
if strcmp(get(handles.togglebutton1,'String'),'打开串口')==1
return;
end
if n==0
set(handles.text3,'String','即将全部清空指纹库,是否确定清空指纹库?确定后请再点击一次');
n=1;
else
set(handles.text3,'String','正在清空指纹库...');
fprintf(s, '01');
n=0;
end
function edit2_Callback(hObject, eventdata, handles)
function edit2_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function edit1_Callback(hObject, eventdata, handles)
function edit1_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --- Executes during object creation, after setting all properties.
function id_CreateFcn(hObject, eventdata, handles)
function text3_CreateFcn(hObject, eventdata, handles)