Skip to content
Snippets Groups Projects
Commit 4a5241b0 authored by Federico Felici's avatar Federico Felici
Browse files

dynamically create configurationSettings.sldd

parent 06e2af5f
No related branches found
No related tags found
No related merge requests found
function SCDconf_setConf(conf)
% set configuration setting
% SCDconf_setConf(conf)
function SCDconf_setConf(conf,sourcedd)
% SCDconf_setConf(conf,sourcefile)
% conf: 'SIM', 'CODE' or use custom conf name
% sourcedd: source data dictionary containing configurations (Default: configurations_container.sldd)
%
% Sets SCD Simulink configuration settings.
% Takes desired configurationSettings object from sourcefile
% Stores it in configurations/configurations.sldd as configurationSettings
switch lower(conf)
case 'sim'
confName = 'configurationSettingsSIM';
case 'code'
confName = 'configurationSettingsCODEicc';
otherwise
confName = conf; % custom input
end
fname = 'configurations.sldd'; % dd file name
disp('Setting configurationSettings = %s in configurations.sldd ...',confName);
dd=Simulink.data.dictionary.open(fname);
confSection=getSection(dd, 'Configurations');
assert(confSection.exist(confName),'%s does not exist in %s',confName,fname);
simconf=confSection.getEntry(confName);
configurationSettings=simconf.getValue;
configurationSettings.Name='configurationSettings';
switch lower(conf)
case 'sim'
confName = 'configurationSettingsSIM';
case 'code'
confName = 'configurationSettingsCODEicc';
otherwise
confName = conf; % custom input
end
if nargin==2
fname_src = sourcedd;
else
fname_src = 'configurations_container.sldd'; % dd file name
end
fname_target = 'configurations.sldd'; dir_target = 'configurations';
fprintf('Retrieving %s from %s, ',confName,fname_src)
fprintf('setting it as configurationSettings = %s ...\n',fname_target);
dd_src = Simulink.data.dictionary.open(fname_src);
confSection = getSection(dd_src, 'Configurations');
assert(confSection.exist(confName),'%s does not exist in %s',confName,fname_src);
conf = confSection.getEntry(confName);
configurationSettings = conf.getValue;
% create or set new configurationSettings entry
if confSection.exist('configurationSettings')
activeconf=confSection.getEntry('configurationSettings');
activeconf.setValue(configurationSettings);
else
confSection.addEntry('configurationSettings',configurationSettings)
end
%% Set it in target file
% Change name to universal name
configurationSettings.Name = 'configurationSettings';
% open target dd, section
if ~exist(fname_target,'file')
dd_target = Simulink.data.dictionary.create(fullfile(dir_target,fname_target));
else
dd_target = Simulink.data.dictionary.open(fname_target);
end
confSection = getSection(dd_target,'Configurations');
% create or set new configurationSettings entry
if confSection.exist('configurationSettings')
activeconf=confSection.getEntry('configurationSettings');
activeconf.setValue(configurationSettings);
else
confSection.addEntry('configurationSettings',configurationSettings)
end
dd_target.saveChanges;
dd_target.close;
end
\ No newline at end of file
% Sets the simulation configuration settings on all the models
function [] = SCDconf_setSIMconf()
warning('SCDconf_setSIMconf is deprecated, please call SCDconf_setConf(''SIM'')');
SCDconf_setConf('SIM');
end
\ No newline at end of file
end
\ No newline at end of file
configurations.sldd
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment