xxsimGetPlotIDFromName - Find the corresponding plot ID for a certain window and plot name. Syntax: retval = xxsimGetPlotIDFromName(windowName, plotName) Inputs: windowName = Either the window name or the window ID. plotName = Either the plot name or the plot ID. Outputs: retval = returns the ID of the plot or -1 if the plot could not be found. If a number was inserted for plotName, this number is given as return value. Examples: retval = xxsimGetPlotIDFromName('Window 1', 'Motor Torque') - retval now contains the ID of the corresponding plot or -1 if the plot window does not exist. - if the input would be numeric, retval will get that numeric value. - Note: The simulator should be open before calling this function. See also: xxsimGetPlotWindowIDFromName, xxsimGetPlotsFromWindow Author: Controllab Products B.V. email: info@controllab.nl Website: http://www.controllab.nl November 2015
0001 function retval = xxsimGetPlotIDFromName(windowName, plotName) 0002 % xxsimGetPlotIDFromName - Find the corresponding plot ID for a certain window and plot name. 0003 % 0004 % Syntax: 0005 % retval = xxsimGetPlotIDFromName(windowName, plotName) 0006 % 0007 % Inputs: 0008 % windowName = Either the window name or the window ID. 0009 % plotName = Either the plot name or the plot ID. 0010 % 0011 % Outputs: 0012 % retval = returns the ID of the plot or -1 if the plot could not be found. If a number was inserted for plotName, 0013 % this number is given as return value. 0014 % 0015 % Examples: 0016 % retval = xxsimGetPlotIDFromName('Window 1', 'Motor Torque') 0017 % 0018 % - retval now contains the ID of the corresponding plot or -1 if the plot window does not exist. 0019 % - if the input would be numeric, retval will get that numeric value. 0020 % - Note: The simulator should be open before calling this function. 0021 % 0022 % See also: xxsimGetPlotWindowIDFromName, xxsimGetPlotsFromWindow 0023 % 0024 % Author: Controllab Products B.V. 0025 % email: info@controllab.nl 0026 % Website: http://www.controllab.nl 0027 % November 2015 0028 0029 %------------- BEGIN CODE -------------- 0030 0031 % Check the obtained amount of input arguments. 0032 if(nargin>2) 0033 error('Too many input arguments were specified.'); 0034 elseif(nargin<2) 0035 error('Too little input arguments were specified.'); 0036 end; 0037 0038 % Get the window ID 0039 windowID = xxsimGetPlotWindowIDFromName(windowName); 0040 0041 % Validate the window ID 0042 if(windowID == -1) 0043 error('Could not find the specified plot window.'); 0044 end; 0045 0046 % Get the plot ID, either via the name of the plot or directly the ID 0047 plotID = -1; 0048 % If the input is a string, interpret it as the name of the plot 0049 if(ischar(plotName)) 0050 plotStruct = xxsimGetPlotsFromWindow(windowID); % Get all ID and name pairs of all plots. 0051 nameCount = 0; 0052 for i=1:length(plotStruct) 0053 if(strcmp(plotStruct(i).plotName,plotName)) 0054 nameCount = nameCount + 1; 0055 if(nameCount == 1) 0056 plotID = plotStruct(i).plotID; % There is a window found with the given name, and its ID is stored. 0057 elseif(nameCount == 2) 0058 warning('Multiple plots found with the specified name. Selected the first plot.'); 0059 break; 0060 end; 0061 end; 0062 end; 0063 % If the input is a number, then it is interpreted as the ID directly. 0064 elseif(isnumeric(plotName)) 0065 plotID = plotName; 0066 % If the input is not numeric nor a string, give an error. 0067 else 0068 error('The specified plot name is not a string nor a number.'); 0069 end; 0070 0071 retval = plotID; 0072 0073 end 0074 %------------- END OF CODE --------------