image thumbnail
from sldvmisscovtool by Yasumitsu Ito
A GUI tool to obtain test cases for missing coverage objectives

sldvmisscovtool_signalviewer.m
function varargout = sldvmisscovtool_signalviewer(varargin)
% SLDVMISSCOVTOOL_SIGNALVIEWER A helper tool calling from sldvmisscovtool
%

%   Copyright 2010-2011 The MathWorks, Inc. 

% Edit the above text to modify the response to help sldvmisscovtool_signalviewer

% Last Modified by GUIDE v2.5 13-Apr-2010 14:22:37

% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
    'gui_Singleton',  gui_Singleton, ...
    'gui_OpeningFcn', @sldvmisscovtool_signalviewer_OpeningFcn, ...
    'gui_OutputFcn',  @sldvmisscovtool_signalviewer_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 sldvmisscovtool_signalviewer is made visible.
function sldvmisscovtool_signalviewer_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to sldvmisscovtool_signalviewer (see VARARGIN)
handles.simdata = [];
sigarg = find(strcmp(varargin, 'simdata'));

if ~isempty(sigarg)
    handles.simdata = varargin{sigarg+1};
    listSimdata2listbox(handles,handles.simdata)
end

handles = create_localized_messages(handles);
set_GUI_strings(hObject, eventdata, handles);

% Choose default command line output for sldvmisscovtool_signalviewer
handles.output = hObject;

% Update handles structure
guidata(hObject, handles);

% UIWAIT makes sldvmisscovtool_signalviewer wait for user response (see UIRESUME)
% uiwait(handles.figure1);

%% create_localized_messages
function handles=create_localized_messages(handles)

% Objects that have 'String' properties
ja.string.load_simdata_pb = 'simdata[h';
en.string.load_simdata_pb = 'Load simdata';
ja.string.create_figure_bt = 'figure쐬';
en.string.create_figure_bt = 'Create figure';

% Objects that have 'ToolTips' properties
ja.tooltips.load_simdata_pb = 'WorkSpacesimdataϐǂݍ݂܂';
en.tooltips.load_simdata_pb = 'Load simdata from WorkSpace';
ja.tooltips.create_figure_bt = 'Vfigure쐬A\̃Ot`悵܂B';
en.tooltips.create_figure_bt = 'Create new figure and draw there displaying plots.';

% Objects that have 'Label' properties
ja.label.preferences_menu = 'ݒ';
en.label.preferences_menu = 'Preferences';
ja.label.lang_setting_menu = '';
en.label.lang_setting_menu = 'Language';
ja.label.show_legends_menu = '}\';
en.label.show_legends_menu = 'Display legends';
ja.label.draw_separate_menu = 'ʁXɕ`';
en.label.draw_separate_menu = 'Separate axes';


guistr_ja = ja;
guistr_en = en;

% Language setting is refers to MATLAB desktop language.
if any(strcmp(get(0,'lang'),{'ja_jp.shift_jis','japanese','ja_jp'}))
    handles.guistr = guistr_ja;
else
    handles.guistr = guistr_en;
end
handles.guistr_ja = guistr_ja;
handles.guistr_en = guistr_en;

%% set GUI strings
function set_GUI_strings(hObject, eventdata, handles) %#ok

% set String properties
flnames=fieldnames(handles.guistr.string);
for n=1:length(flnames)
    set(handles.(flnames{n}),'String',handles.guistr.string.(flnames{n}));
end

% set label properties
flnames=fieldnames(handles.guistr.label);
for n=1:length(flnames)
    set(handles.(flnames{n}),'Label',handles.guistr.label.(flnames{n}));
end


function listSimdata2listbox(handles,simdata)

str = {};
for n=1:length(simdata)
    str{n} = sprintf('%d',n);
end
set(handles.simdata_lb,'String',str,'Value',1)
%    set(handles.figure1,'WindowStyle','Modal')

% --- Outputs from this function are returned to the command line.
function varargout = sldvmisscovtool_signalviewer_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 signals_lb.
function signals_lb_Callback(hObject, eventdata, handles)
% hObject    handle to signals_lb (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: contents = get(hObject,'String') returns signals_lb contents as cell array
%        contents{get(hObject,'Value')} returns selected item from signals_lb
strs = get(handles.signals_lb,'String');
vals = get(handles.signals_lb,'Value');

% Position and size of the axis
pos.X = 0.43;
pos.Y = 0.16;
pos.Width = 0.546;
pos.Height = 0.786;
pos.margin = 0.06;
WSratio = 0.1;

if ~isfield(handles,'selectedlist') || isempty(handles.selectedlist)
    return;
end
ah = findobj(handles.figure1,'Type','axes');
for n=1:length(ah)
    delete(ah(n))
end
legstr={};
Nselected=length(vals);
if strcmp(get(handles.draw_separate_menu,'Checked'),'on') && Nselected < 11    
    for n=1:Nselected
        m = handles.selectedlist{vals(n)}(1);
        sign = handles.selectedlist{vals(n)}(2);
        %lot(handles.axes1,handles.simdata(m).time,handles.simdata(m).signals(sign).values,markerstr(m,sign));
        H = (pos.Height-(Nselected-1)*pos.margin)/Nselected;
        handles.ah(n) = axes('Position',[pos.X pos.Y+(n-1)*(pos.margin+H) pos.Width H]);
        stairs(handles.ah(n),handles.simdata(m).time,handles.simdata(m).signals(sign).values,markerstr(m,sign));
        maxv = max(handles.simdata(m).signals(sign).values(:));
        minv = min(handles.simdata(m).signals(sign).values(:));
        delta = WSratio*(maxv-minv);
        if minv<maxv
            ylim([minv-delta maxv+delta])
        end
        %xlabel('Time')
        ylabel(sprintf('%d-%d:%s',m,sign,handles.simdata(m).signals(sign).label),'Interpreter','none')
    end
else
    handles.axes1 = axes('Position',[pos.X pos.Y pos.Width pos.Height]);
    handles.output = hObject;
    guidata(hObject, handles);
    maxv=[]; minv=[];
    hold(handles.axes1,'on')
    for n=1:Nselected
        m = handles.selectedlist{vals(n)}(1);
        sign = handles.selectedlist{vals(n)}(2);
        %lot(handles.axes1,handles.simdata(m).time,handles.simdata(m).signals(sign).values,markerstr(m,sign));
        stairs(handles.axes1,handles.simdata(m).time,handles.simdata(m).signals(sign).values,markerstr(m,sign));
        maxv = max([maxv; handles.simdata(m).signals(sign).values(:)]);
        minv = min([minv; handles.simdata(m).signals(sign).values(:)]);

        legstr{end+1} =  sprintf('%d-%d:%s',m,sign,handles.simdata(m).signals(sign).label);
    end
    delta = WSratio*(maxv-minv);
    if minv<maxv
        ylim([minv-delta maxv+delta])
    end
    legend(handles.axes1,legstr,'Interpreter','none')
    if strcmp(get(handles.show_legends_menu,'Checked'),'off')
        legend(handles.axes1,'off')
    end
    hold(handles.axes1,'off')
end
handles.output = hObject;
guidata(hObject, handles);


function str = markerstr(n,m)

plotCol={'r-','b-','g-','m-','c-','y-','k-','r:','b:','g:','y:','m:','c:','k:',...
    'r--','b--','g--','y--','m--','c--','k--','r-.','b-.','g-.','y-.','m-.','c-.','k-.'};
plotSym={'o','x','+','*','s','d','v','^','<','>','p','h'};

str = sprintf('%s%s%s',plotCol{mod(m-1,length(plotCol))+1},plotSym{mod(n-1,length(plotSym))+1});

% --- Executes during object creation, after setting all properties.
function signals_lb_CreateFcn(hObject, eventdata, handles)
% hObject    handle to signals_lb (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: listbox controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end


% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)


% --- Executes on button press in close_window_pb.
function close_window_pb_Callback(hObject, eventdata, handles)
% hObject    handle to close_window_pb (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

close(handles.figure1)


% --- Executes on selection change in simdata_lb.
function simdata_lb_Callback(hObject, eventdata, handles)
% hObject    handle to simdata_lb (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: contents = get(hObject,'String') returns simdata_lb contents as cell array
%        contents{get(hObject,'Value')} returns selected item from simdata_lb

signame = get(handles.simdata_lb,'String');
selected = get(handles.simdata_lb,'Value');
str = {};
handles.selectedlist = {};
if isempty(handles.simdata)
    return;
end

for n=1:length(selected)
    for m=1:length(handles.simdata(n).signals)
        dtstr='';
        if strcmp(class(handles.simdata(selected(n)).signals(m).values),'embedded.fi')
            dtstr='(fixpt)';
        else
            dtstr=sprintf('(%s)',class(handles.simdata(selected(n)).signals(m).values));
        end
        str{end+1} = sprintf('%d-%d:%s%s',selected(n),m,handles.simdata(selected(n)).signals(m).label,dtstr);
        handles.selectedlist{end+1} = [selected(n),m];
    end
end
set(handles.signals_lb,'String',str,'Value',1)
handles.output = hObject;
guidata(hObject, handles);


% --- Executes during object creation, after setting all properties.
function simdata_lb_CreateFcn(hObject, eventdata, handles)
% hObject    handle to simdata_lb (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: listbox controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end




% --- Executes on button press in load_simdata_pb.
function load_simdata_pb_Callback(hObject, eventdata, handles)
% hObject    handle to load_simdata_pb (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

if evalin('base','exist(''simdata'',''var'')')
    handles.simdata = evalin('base','simdata');
else
    return;
end
listSimdata2listbox(handles,handles.simdata);
handles.output = hObject;
guidata(hObject, handles);

% --------------------------------------------------------------------
function Preferences_menu_Callback(hObject, eventdata, handles)
% hObject    handle to Preferences_menu (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)


% --------------------------------------------------------------------
function show_datatypes_menu_Callback(hObject, eventdata, handles)
% hObject    handle to show_datatypes_menu (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

if strcmp(get(hObject,'Checked'),'off')
    set(hObject,'Checked','on')
    listbox2_Callback(hObject, eventdata, handles)
else
    set(hObject,'Checked','off')
    listbox2_Callback(hObject, eventdata, handles)
end
% --------------------------------------------------------------------
function show_legends_menu_Callback(hObject, eventdata, handles)
% hObject    handle to show_legends_menu (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

if strcmp(get(hObject,'Checked'),'off')
    set(hObject,'Checked','on')
    legend(handles.axes1,'show')
else
    set(hObject,'Checked','off')
    legend(handles.axes1,'hide')
end


% --------------------------------------------------------------------
function draw_separate_menu_Callback(hObject, eventdata, handles)
% hObject    handle to draw_separate_menu (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

if strcmp(get(hObject,'Checked'),'off')
    set(hObject,'Checked','on')
     signals_lb_Callback(hObject, eventdata, handles)
else
    set(hObject,'Checked','off')
     signals_lb_Callback(hObject, eventdata, handles)
end



% --- Executes on button press in create_figure_bt.
function create_figure_bt_Callback(hObject, eventdata, handles)
% hObject    handle to create_figure_bt (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

axh = findobj(handles.figure1,'Type','axes');
fh = figure();
for n=length(axh):-1:1
    naxh = copyobj(axh(n),fh);
    if ~strcmp(get(naxh,'Tag'),'legend')
    pos = get(naxh,'Position');
    set(naxh,'Position',[0.1,pos(2),0.85,pos(4)])
    end
end


% --------------------------------------------------------------------
function preferences_menu_Callback(hObject, eventdata, handles)
% hObject    handle to preferences_menu (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)


% --------------------------------------------------------------------
function lang_setting_menu_Callback(hObject, eventdata, handles)
% hObject    handle to lang_setting_menu (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)




% --------------------------------------------------------------------
function lang_ja_menu_Callback(hObject, eventdata, handles)
% hObject    handle to lang_ja_menu (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
handles.guistr = handles.guistr_ja;
set_GUI_strings(hObject, eventdata, handles);
handles.output = hObject;
guidata(hObject, handles);


% --------------------------------------------------------------------
function lang_en_menu_Callback(hObject, eventdata, handles)
% hObject    handle to lang_en_menu (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

handles.guistr = handles.guistr_en;
set_GUI_strings(hObject, eventdata, handles);
handles.output = hObject;
guidata(hObject, handles);


Contact us at files@mathworks.com