0001 function [varargout] = pa_biosemi_eeg_util(fig, command, parm)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018 if ~exist('fig', 'var') || isempty(fig) || ~ishandle(fig)
0019 error('invalid figure was specified.');
0020 end
0021 if ~exist('command', 'var') || isempty(command)
0022 error('invalid command was specified.');
0023 end
0024
0025
0026
0027
0028
0029
0030 data = guidata(fig);
0031
0032 switch(command)
0033 case 'update_output_fname'
0034 update_output_fname(data.H);
0035 case 'update_exec_push_status'
0036 update_exec_push_status(data.H);
0037 case 'execute'
0038 exec(data);
0039 case 'reset_parameter'
0040 reset_parameter(data);
0041 end
0042
0043
0044 guidata(fig, data);
0045
0046 function update_output_fname(H)
0047
0048
0049
0050
0051
0052
0053 global vbmeg_inst;
0054 define = vbmeg_inst.const;
0055
0056 filename = get(H.bdf_file_edit, 'String');
0057
0058 [fpath, fname, fext] = vb_get_file_parts(filename);
0059
0060 keyword = get(H.keyword_edit, 'String');
0061 if length(keyword) ~= 0
0062 sep = '_';
0063 else
0064 sep = [];
0065 end
0066
0067
0068 save_dir = get(H.save_dir_edit, 'String');
0069
0070
0071
0072
0073
0074
0075
0076
0077
0078
0079
0080
0081
0082
0083
0084
0085
0086
0087
0088
0089
0090
0091
0092
0093
0094
0095 eegmatfname = [save_dir filesep fname, sep, keyword define.EEG_EXTENSION];
0096 set(H.eegmat_file_edit, 'String', eegmatfname);
0097
0098
0099 bin_dir = [ '.' filesep, fname '_bin' ];
0100 set(H.binary_dir_edit, 'String', bin_dir);
0101
0102 update_exec_push_status(H);
0103
0104 function update_exec_push_status(H)
0105
0106
0107
0108
0109
0110
0111
0112
0113 if ~isempty(get(H.bdf_file_edit, 'String')) & ...
0114 ~isempty(get(H.save_dir_edit, 'String')) & ...
0115 ~isempty(get(H.eegmat_file_edit, 'String'))
0116 set(H.exec_push, 'Enable', 'on');
0117 else
0118 set(H.exec_push, 'Enable', 'off');
0119 end
0120
0121 function H = exec(data)
0122
0123
0124
0125
0126
0127
0128 H = data.H;
0129
0130
0131
0132
0133
0134
0135 proj_root = get(H.project_root_edit, 'String');
0136
0137
0138
0139
0140
0141
0142
0143 save_dir = get(H.save_dir_edit, 'String');
0144 binary_dir = get(H.binary_dir_edit, 'String');
0145 eegmat_file = get(H.eegmat_file_edit, 'String');
0146
0147
0148
0149 meg_parm = data.biosemi_eeg_parm;
0150
0151
0152 bdf_file = get(H.bdf_file_edit, 'String');
0153 meg_parm.measurement_file = bdf_file;
0154
0155
0156 pos_file = get(H.position_file_edit, 'String');
0157 meg_parm.pos_file = pos_file;
0158
0159
0160 meg_parm.output_file = eegmat_file;
0161
0162
0163 meg_parm.bin_data_dir = binary_dir;
0164
0165
0166 meg_parm.keyword = get(H.keyword_edit, 'String');
0167
0168
0169 meg_parm.comment = get(H.comment_edit, 'String');
0170
0171
0172
0173
0174
0175 if exist(pos_file, 'file') == 2
0176 [ch_list_bdf] = vb_bdffile_get_info(bdf_file);
0177 [posinfo] = vb_posfile_get_posinfo(pos_file);
0178 ch_list_pos = posinfo.ChannelLabel;
0179
0180 IsOK = vb_dlg_compare_list(ch_list_bdf, ...
0181 ['BDF-file Channel list = ', num2str(length(ch_list_bdf))], ...
0182 ch_list_pos, ...
0183 ['POS-file Channel list = ', num2str(length(ch_list_pos))], ...
0184 'Is channel list correct?');
0185 if ~IsOK, return; end
0186 end
0187
0188 if exist([proj_root, '/', save_dir, '/', binary_dir], 'dir') == 7
0189 res = questdlg('binary directory already exists. Overwrite?', ...
0190 'confirm', 'Yes', 'No', 'Yes');
0191 if strcmp(res, 'No'), return; end
0192 end
0193
0194 str = get(H.exec_push, 'String');
0195 set(H.exec_push, 'String', 'Processing...');
0196 pause(0.01);
0197
0198 vb_job_meg(proj_root, meg_parm);
0199
0200 set(H.exec_push, 'String', 'Exec');
0201
0202 function data = reset_parameter(data)
0203
0204
0205
0206
0207
0208
0209 H = data.H;
0210
0211 meg_parm = vb_set_meg_parm_biosemi;
0212 pa_biosemi_eeg_set_parm(H.figure, meg_parm);
0213 data = guidata(H.figure);
0214