Skip to content
Snippets Groups Projects
Commit f0cd9d43 authored by Timo Ravensbergen's avatar Timo Ravensbergen
Browse files

New feature in SCDconf_setConf to allow an optional custom workspace name

parent 78843f58
Branches
No related tags found
No related merge requests found
function SCDconf_setConf(conf,sourcedd)
function SCDconf_setConf(conf,sourcedd,exportname)
% SCDconf_setConf(conf,sourcefile)
% conf: 'SIM', 'CODE' or use custom conf name
% sourcedd: source data dictionary containing configurations (Default: configurations_container.sldd)
......@@ -10,6 +10,12 @@ function SCDconf_setConf(conf,sourcedd)
% [ SCDDS - Simulink Control Development & Deployment Suite ] Copyright SPC-EPFL Lausanne 2022.
% Distributed under the terms of the GNU Lesser General Public License, LGPL-3.0-only.
arguments
conf string
sourcedd string = 'configurations_container.sldd'
exportname string = 'configurationSettings'
end
switch lower(conf)
case 'sim'
confName = 'configurationSettingsSIM';
......@@ -19,35 +25,30 @@ switch lower(conf)
confName = conf; % custom input
end
if nargin==2
fname_src = sourcedd;
else
fname_src = 'configurations_container.sldd'; % dd file name
end
assert(~isempty(which(fname_src)),'%s not in path?',fname_src);
fprintf('Retrieving %s from %s, ',confName,fname_src)
assert(~isempty(which(sourcedd)),'%s not in path?',sourcedd);
fprintf('Retrieving %s from %s, ',confName,sourcedd)
fprintf('setting it as configurationSettings in base workspace\n');
dd_src = Simulink.data.dictionary.open(fname_src);
dd_src = Simulink.data.dictionary.open(sourcedd);
confSection = getSection(dd_src, 'Configurations');
assert(confSection.exist(confName),'%s does not exist in %s',confName,fname_src);
assert(confSection.exist(confName),'%s does not exist in %s',confName,sourcedd);
conf = confSection.getEntry(confName);
configurationSettings = conf.getValue;
%% Set it in target file
% Change name to universal name
configurationSettings.Name = 'configurationSettings';
configurationSettings.Name = exportname;
% set custom src - later make this a class
thisdir = fileparts(mfilename('fullpath'));
includeDir = fullfile(thisdir,'..','..','codegen');
configurationSettings.set_param('CustomInclude',includeDir)
assignin('base','configurationSettings',configurationSettings)
assignin('base',exportname,configurationSettings)
%% Create empty configurations.sldd temporarily while algo dds need it
if ~exist('configurations.sldd','file')
dir_target = fileparts(which(fname_src)); % target dir as source dir
dir_target = fileparts(which(sourcedd)); % target dir as source dir
handle = Simulink.data.dictionary.create(fullfile(dir_target,'configurations.sldd'));
end
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment