0001 function [obj] = vb_timeseries_viewer_plot_trigger_data(obj, window_from, window_to)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016 if ~exist('obj', 'var')
0017 error('obj is a required parameter.');
0018 end
0019
0020
0021
0022
0023
0024 H = obj.H;
0025
0026
0027 if isfield(obj, 'ext_legend_handle') && ishandle(obj.ext_legend_handle)
0028 obj.l_pos = get(obj.ext_legend_handle, 'Position');
0029 end
0030
0031 cla(H.trigger_axes);
0032 if ~isempty(obj.trig_ch_list)
0033 freq = vb_continuous_file_get_sample_freq(obj.org_file);
0034 [obj.org_file, trig_data, from, to] = vb_continuous_file_get_sample(obj.org_file, ...
0035 obj.trig_ch_list, ...
0036 ceil(freq*window_from), ceil(freq*window_to));
0037 plot(H.trigger_axes, from/freq:1/freq:to/freq, trig_data);
0038
0039
0040 if ~isempty(obj.proc_spec_list)
0041 Nprocessor = length(obj.proc_spec_list);
0042 for k=1:Nprocessor
0043 proc_spec = obj.proc_spec_list{k};
0044 ix = strmatch(proc_spec.ch_name, obj.trig_ch_list, 'exact');
0045 if strcmp(proc_spec.type, 'digital_data_adjustment') && ~isempty(ix)
0046 bitmask = proc_spec.parm.bitmask;
0047 offset = proc_spec.parm.offset;
0048 trig_data(ix, :) = vb_get_status_mask(trig_data(ix, :), bitmask, offset);
0049 end
0050 end
0051 end
0052
0053 obj.trigger_max = max(trig_data(:));
0054 obj.trigger_min = min(trig_data(:));
0055
0056
0057 step = 1;
0058 t = [from-1:to-1]/freq;
0059 ix = [1:step:size(trig_data,2)];
0060 obj.handle_ext_lines = ...
0061 plot(H.trigger_axes, t(1:step:length(t)), trig_data(:, ix));
0062
0063 set(obj.handle_ext_lines, 'ButtonDownFcn', ...
0064 'vb_timeseries_viewer_callback(guidata(gcf), gcbo)', 'Tag', 'ext_trig_line');
0065
0066
0067 l_h = legend(H.trigger_axes, obj.trig_ch_list);
0068 set(l_h, 'FontSize', 12, 'FontUnit', 'points');
0069 set(l_h, 'FontUnit', 'normalized');
0070
0071
0072 if isfield(obj, 'l_pos')
0073 set(l_h, 'Position', obj.l_pos);
0074 end
0075 obj.ext_legend_handle = l_h;
0076
0077
0078
0079
0080
0081 end
0082
0083
0084
0085
0086
0087
0088
0089
0090
0091
0092
0093
0094
0095
0096
0097
0098
0099
0100
0101
0102
0103
0104
0105
0106
0107
0108
0109
0110
0111
0112 set(H.trigger_axes, 'XGrid', 'on');
0113 set(H.trigger_axes, 'YGrid', 'on');
0114
0115
0116
0117 range = ylim(H.trigger_axes);
0118 set(H.ylimit_trigger_low_edit, 'String', num2str(range(1)));
0119 set(H.ylimit_trigger_high_edit, 'String', num2str(range(2)));
0120
0121 xlim(H.trigger_axes, [window_from, window_to]);