function outInfo=edssinfo

%DSSIFO helper function for keeping list data.

%    Dynamic System Simulation  
%    Tour software file
%   Copyright (c) 1984-98 by The MathWorks, Inc. All Rights Reserved
%    $Revision: 1.15 $
%    $Date: 1997/12/04 21:21:22 $

n = 0;

% Flag to show if a Toolbox is installed. Initially, assume none are installed
control =0;
simulink= 0;
comm = 0;
dsp = 0;
pwr=0;
fuzzy= 0;
nnet= 0;
ncd= 0;
fixpoint= 0;
rtw= 0;
stateflow = 0;


% Get all Toolboxes and SIMULINK demos installed

figs = allchild(0);
figNumber = findobj(figs, 'Name', 'MATLAB Tour'); 
param = get(figNumber, 'UserData');
toolboxes = param.toolboxes;
blocksets = param.blocksets;

% If SIMULINK is installed
simExist = exist('siminfo.m');
if simExist
  n = n+1;
  simulink =1;
  simdemos = siminfo;
  sizsimu = size(simdemos);
  
  % Combine the NEW, Simple and Complex examples together ...
  
  % THE SIMPLE
  for i = 1:sizsimu(1,2);
    if strcmp(simdemos(i).Name, 'Simple models')
      tbxList(n).Help = simdemos(i).Help;
      tbxList(n).DemoList = simdemos(i).DemoList;
      tbxList(n).FcnList = simdemos(i).FcnList;
      sizelist = size(tbxList(n).DemoList);
    end
  end
  
  % THE NEW
  for i = 1:sizsimu(1,2);
    if strcmp(simdemos(i).Name, 'New in Simulink 2')
      sizenew = size(simdemos(i).DemoList);
      for j = 1:sizenew(1,1)
           tbxList(n).DemoList{sizelist(1,1)+j, 1} = char(simdemos(i).DemoList(j,1));
           tbxList(n).FcnList{sizelist(1,1)+j, 1} = char(simdemos(i).FcnList(j,1));
           newsize = size(tbxList(n).DemoList);
      end
    end
  end
  
  
  
  % THE COMPLEX
  for i = 1:sizsimu(1,2)
    if strcmp(simdemos(i).Name, 'Complex models')
      sizecomplex = size(simdemos(i).DemoList);
      for j = 1:sizecomplex(1,1)
          tbxList(n).DemoList{newsize(1,1)+j, 1} = char(simdemos(i).DemoList(j,1));
          tbxList(n).FcnList{newsize(1,1)+j, 1} = char(simdemos(i).FcnList(j,1));
      end
    end
  end
  
  sizelist = size(tbxList(n).DemoList);
%  tbxList(n).DemoList{size(tbxList(n).DemoList, 1)+1} = 'Anti-Lock System Braking Model';
%  tbxList(n).DemoList{size(tbxList(n).DemoList, 1)+1} = 'Vehicle Suspension Model';
%  tbxList(n).DemoList{size(tbxList(n).DemoList, 1)+1}  = 'Hydraulic cylinder model';
%  tbxList(n).DemoList{size(tbxList(n).DemoList, 1 )+1} = '4 hydraulic cylinder model';
   tbxList(n).DemoList{size(tbxList(n).DemoList, 1)+1} = 'More on SIMULINK';
  
%  tbxList(n).FcnList{size(tbxList(n).FcnList, 1 )+1} =  'absbrake';
%  tbxList(n).FcnList{size(tbxList(n).FcnList, 1)+1}  =  'suspn';
%  tbxList(n).FcnList{size(tbxList(n).FcnList, 1)+1} = 'hydcyl';
%  tbxList(n).FcnList{size(tbxList(n).FcnList, 1)+1}  =  'hydcyl4';
  tbxList(n).FcnList{size(tbxList(n).FcnList, 1)+1}  =  'evalcb(''toolInfo'')';
  tbxList(n).Name = 'SIMULINK';
  tbxList(n).Help= about('simulink');
end

% -------------
sfExist = exist('sfinfo.m');
if sfExist
  n=n+1;
  stateflow=1;
  stfList = esfinfo;
  tbxList(n).DemoList = stfList.DemoList;
  tbxList(n).FcnList = stfList.FcnList;
  tbxList(n).Name = 'Stateflow';
end % if ....

% -----------

for i = 1:size(blocksets, 2)
  if  strcmp(blocksets(i).Name, 'DSP Blockset')
    n = n+1;
    dsp = 1;
    tbxList(n).DemoList = blocksets(i).DemoList;
    tbxList(n).DemoList{size(tbxList(n).DemoList, 2)+1} = 'More on The DSP Blockset';
     tbxList(n).DemoList{size(tbxList(n).DemoList, 2)+1} = 'Help on this Toolbox';
    tbxList(n).FcnList = blocksets(i).FcnList;
    tbxList(n).FcnList{size(tbxList(n).FcnList, 2)+1} = 'evalcb(''toolInfo'')';
    tbxList(n).FcnList{size(tbxList(n).FcnList, 2)+1} = 'helpwin(help(''dspblks''))';
    tbxList(n).Help = blocksets(i).Help;
    tbxList(n).Name = blocksets(i).Name;
    break;
  end % if ....
end

% -----------

for i = 1:size(blocksets, 2);
  if  strcmp(blocksets(i).Name, 'Power System Blockset')
    n = n+1;
    pwr= 1;
    tbxList(n).DemoList = blocksets(i).DemoList;
    tbxList(n).DemoList{size(tbxList(n).DemoList, 2)+1} = 'More on Power System Blockset';
    tbxList(n).DemoList{size(tbxList(n).DemoList, 2)+1} = 'Help on this Blockset';
    tbxList(n).FcnList = blocksets(i).FcnList;
    tbxList(n).FcnList{size(tbxList(n).FcnList, 2)+1} = 'evalcb(''toolInfo'')';
    tbxList(n).FcnList{size(tbxList(n).FcnList, 2)+1} = 'helpwin(help(''powersys''))';
    tbxList(n).Help = blocksets(i).Help;
    tbxList(n).Name = blocksets(i).Name;
  end
end
 
 
% -----------

for i = 1:size(toolboxes, 2);
  if  strcmp(toolboxes(i).Name, 'Communications')
    n=n+1;
    comm = 1;
    tbxList(n).DemoList = toolboxes(i).DemoList;
    tbxList(n).DemoList{size(tbxList(n).DemoList, 2)+1} = 'More on The Communication Toolbox';
    tbxList(n).DemoList{size(tbxList(n).DemoList, 2)+1} = 'Help on this Toolbox';
    tbxList(n).FcnList = toolboxes(i).FcnList;
    tbxList(n).FcnList{size(tbxList(n).FcnList, 2)+1} = 'evalcb(''toolInfo'')';
    tbxList(n).FcnList{size(tbxList(n).FcnList, 2)+1} = 'helpwin(help(''comm''))';
    tbxList(n).Help = toolboxes(i).Help;
    tbxList(n).Name = toolboxes(i).Name;
    break
  else
  end % If ....
end

% -------

for i = 1:size(blocksets, 2);
  if  strcmp(blocksets(i).Name, 'Fixed Point')
    n = n+1;
    fixpoint =1;    
    tbxList(n).DemoList = blocksets(i).DemoList;
    tbxList(n).DemoList{size(tbxList(n).DemoList, 2)+1} = 'More on Fixed Point Blockset';
    tbxList(n).DemoList{size(tbxList(n).DemoList, 2)+1} = 'Help on this Toolbox';
    tbxList(n).FcnList = blocksets(i).FcnList;
    tbxList(n).FcnList{size(tbxList(n).FcnList, 2)+1} = 'evalcb(''toolInfo'')';
    tbxList(n).FcnList{size(tbxList(n).FcnList, 2)+1} = 'helpwin(help(''fixpoint''))';
    tbxList(n).Help = blocksets(i).Help;
    tbxList(n).Name = blocksets(i).Name;
  end
end
% ----- 

for i = 1:size(blocksets, 2);
 if  strcmp(blocksets(i).Name, 'Nonlinear Control Design')
   ncd = 1; 
   tbxList(n).DemoList = blocksets(i).DemoList;
   tbxList(n).DemoList{size(tbxList(n).DemoList, 2)+1} = 'More on the NCD Toolbox';
   tbxList(n).DemoList{size(tbxList(n).DemoList, 2)+1} = 'Help on this Toolbox';
   tbxList(n).FcnList = blocksets(i).FcnList;
   tbxList(n).FcnList{size(tbxList(n).FcnList, 2)+1} = 'evalcb(''toolInfo'')';
   tbxList(n).FcnList{size(tbxList(n).FcnList, 2)+1} = 'helpwin(help(''ncd''))';
   tbxList(n).Help = blocksets(i).Help;
   tbxList(n).Name = blocksets(i).Name;
   break;
 end
end
% ----- 
for i = 1:size(toolboxes, 2);
  if  strcmp(toolboxes(i).Name, 'Fuzzy Logic')
    n = n+1;
    fuzzy = 1; 
    tbxList(n).DemoList = toolboxes(i).DemoList;
    tbxList(n).DemoList{size(tbxList(n).DemoList, 2)+1} = 'More on Fuzzy Logic Toolbox';
    tbxList(n).DemoList{size(tbxList(n).DemoList, 2)+1} = 'Help on this Toolbox';
    tbxList(n).FcnList = toolboxes(i).FcnList;
    tbxList(n).FcnList{size(tbxList(n).FcnList, 2)+1} = 'evalcb(''toolInfo'')';
    tbxList(n).FcnList{size(tbxList(n).FcnList, 2)+1} = 'helpwin(help(''fuzzy''))';

    tbxList(n).Help = toolboxes(i).Help;
    tbxList(n).Name = toolboxes(i).Name;
  end
end
% ------

for i = 1:size(toolboxes, 2);
  if  strcmp(toolboxes(i).Name, 'RTW')
    n=n+1;
    rtw = 1; 
    tbxList(n).DemoList = toolboxes(i).DemoList;
    tbxList(n).DemoList{size(tbxList(n).DemoList, 2)+1} = 'More on the Real-Time Workshop';
    tbxList(n).FcnList = toolboxes(i).FcnList;
    tbxList(n).FcnList{size(tbxList(n).FcnList, 2)+1} = 'evalcb(''toolInfo'')';
    
    tbxList(n).Help = toolboxes(i).Help;
    tbxList(n).Name = toolboxes(i).Name;
  end
end

%%%%%%%% Products not installed for this category %%%%%%%%%%
if n ==  1
  n = 0;
end 
if simulink== 0
  n = n+1;
  tbxList(n).DemoList={'More on SIMULINK'};
  tbxList(n).FcnList={'evalcb(''toolInfo'')'};
  tbxList(n).Help= about('simulinknew');
  tbxList(n).Name='SIMULINK';
end

if stateflow== 0
  n = n+1;
  tbxList(n).DemoList={'More on Stateflow'};
  tbxList(n).FcnList={'evalcb(''toolInfo'')'};
  tbxList(n).Help= about('stateflow');
  tbxList(n).Name='Stateflow';
end

if dsp== 0
  n = n+1;
  tbxList(n).DemoList={'More on DSP Blockset'
  'Partial functions help'};
  tbxList(n).FcnList={'evalcb(''toolInfo'')',
  'dsp_con'};
  tbxList(n).Help=  about('dsp');
  tbxList(n).Name='DSP Blockset';
end

if pwr== 0
  n = n+1;
  tbxList(n).DemoList={'More on Power System Blockset',
  'Partial functions help'};
  tbxList(n).FcnList={'evalcb(''toolInfo'')',
  'pwr_con'};
  tbxList(n).Help= about('powersys');
  tbxList(n).Name='Power System Blockset';
end

if comm == 0
  n = n+1;
  tbxList(n).DemoList={'More on The Communications Toolbox',
  'Partial functions help'};
  tbxList(n).FcnList={'evalcb(''toolInfo'')',
  'comm_con'};
  tbxList(n).Help= about('communications');
 
  tbxList(n).Name= 'Communications Toolbox';
end

 
if fixpoint== 0
  n = n+1;
  tbxList(n).DemoList={'More on Fixed Point Blockset'};
  tbxList(n).FcnList={'evalcb(''toolInfo'')'};
  tbxList(n).Help= about('fixpoint');
  tbxList(n).Name='Fixed Point Blockset';
end

if ncd== 0
  n = n+1;
  tbxList(n).DemoList={'More on the NCD Toolbox',
  'Partial functions help'};
  tbxList(n).FcnList={'evalcb(''toolInfo'')',
  'ncd_con'};
  tbxList(n).Help = about('ncd');
  tbxList(n).Name='Nonlinear Control Design';
end

if fuzzy== 0
  n = n+1;
  tbxList(n).DemoList={'More on  Fuzzy Logic Toolbox',
  'Partial functions help'};
  tbxList(n).FcnList={'evalcb(''toolInfo'')',
  'fuz_con'};
  tbxList(n).Help= about('fuzzy');
  tbxList(n).Name='Fuzzy Logic';
 
end

if rtw== 0
  n = n+1;
  tbxList(n).DemoList={'More on the Real-Time Workshop'};
  tbxList(n).FcnList={'evalcb(''toolInfo'')'};
  tbxList(n).Help= about('rtw');
  tbxList(n).Name='Real-Time Workshop';
end

outInfo=tbxList;



