Skip to content
Snippets Groups Projects
Commit 69fd8c17 authored by Cristian Galperti's avatar Cristian Galperti
Browse files

wageven cfg file on single bus function

parent bbca8cf9
No related branches found
No related tags found
No related merge requests found
......@@ -506,7 +506,7 @@ classdef SCDclass_expcode
end
end
function printMARTe2config(obj, shot, varargin)
function printMARTe2parconfig(obj, shot, varargin)
p=inputParser;
% if a model name is given, operations will be performed
% only on it, otherwise they will be performed on all
......@@ -519,16 +519,19 @@ classdef SCDclass_expcode
else
obj.mdscontainer.modeltogenerate=p.Results.model;
end
obj.mdscontainer.printMARTe2parconfig(shot);
fprintf("+MDSWavegens = {\n");
fprintf(" Class = MDSWavegens\n");
fprintf(" Shot = %d\n",shot);
obj.mdscontainer.printMARTe2wgconfig(shot);
end
function printMARTe2wgbusconfig(obj, shot, ddname, busname, frequency)
fprintf("+MDSWavegen_%s = {\n", busname);
fprintf(" Class = MDSWavegen\n");
fprintf(" Shot = %d\n",shot);
fprintf(" Frequency = %.2f\n",frequency);
dim=obj.mdscontainer.printMARTe2wgbusconfig(shot, ddname, busname);
fprintf(" Signals = {\n");
fprintf(" wavegen_%s = { Type = float32 NumberOfElements = %d }\n", busname, dim );
fprintf(" }\n");
fprintf("}\n");
end
end
......
......@@ -305,5 +305,62 @@ classdef SCDclass_mdsobjcontainer
end
end
end
function overalldim = printMARTe2wgbusconfig(obj, shot, ddname, busname)
dd=SCDconf_getdatadict(ddname);
bus=dd.getEntry(busname).getValue;
nelems=numel(bus.Elements);
server='';
tree='';
dimension=0;
for elem=1:nelems
signame=bus.Elements(elem).Name;
found=false;
for wgs=1:obj.numwavegens
%signame
%obj.mdswavegens(wgs).gettarget
if(strcmp(obj.mdswavegens(wgs).gettarget,signame))
found=true;
break;
end
end
if(~found)
error('SCDclass_mdsobjcontainer:wgnotfound','Signal %s not found in configured wavegens objects', signame);
else
actserver=obj.mdswavegens(wgs).getMDSserver;
acttree=obj.mdswavegens(wgs).getMDStree;
if(~strcmp(actserver,server) || ~strcmp(acttree,tree))
if(~strcmp(server,'') || ~strcmp(tree,''))
error('SCDclass_mdsobjcontainer:multipleconnections','multiple MDS+ connections/trees not supported within the same wavegen generator');
else
server=actserver;
tree=acttree;
fprintf(' Server=%s\n', server);
fprintf(' Tree=%s\n', tree)
end
end
entrystring=obj.mdswavegens(wgs).genMARTe2entry(shot);
fprintf(' %s\n', entrystring);
dimension=dimension+bus.Elements(elem).Dimensions;
end
end
overalldim=dimension;
end
function iorder = getWavegensServerTreeOrder(obj)
% find server-tree order of wavegens
mdsservertree = cell(numel(obj.mdswavegens),2);
for ii=1:numel(obj.mdswavegens)
mdsservertree{ii,1} = obj.mdswavegens(ii).getMDSserver;
mdsservertree{ii,2} = obj.mdswavegens(ii).getMDStree;
end
[~,iorder] = sortrows(mdsservertree);
end
end
end
......@@ -16,6 +16,7 @@ classdef SCDclass_mdswg < matlab.mixin.Heterogeneous
modelname % name of the Simulink model using the parameter
getcommand % full command for getting the value (callablSCDalgo_f4ealgoe by matlab eval)
classname % class name for logging
marteclassname % class name for generating MARTe2 cfg file
cparser % constructor parameters parser
timebasestart % timebase start time variable
......@@ -100,14 +101,41 @@ classdef SCDclass_mdswg < matlab.mixin.Heterogeneous
function entrystring = genMARTe2entrycommon(obj, shot)
%entrystring = ['+' obj.wavegentarget ' = { Class=' obj.classname ' Path=' obj.tdiexpr ];
entrystring = sprintf('+%-50s = { Class=%-30s Path=%-40s',obj.wavegentarget,obj.classname,obj.tdiexpr);
entrystring = sprintf('+%-50s = { Class=%-30s Path=%-40s',obj.wavegentarget,obj.marteclassname,obj.genMARTe2MDStdiexpression);
end
function name=getmodelname(obj)
name=obj.modelname;
end
function [mdsserver] = getMDSserver(obj)
mdsserver = obj.mdsserver;
end
function [mdstree] = getMDStree(obj)
mdstree = obj.mdstree;
end
function str=gettarget(obj)
str = obj.wavegentarget;
end
function str = genMARTe2MDStdiexpression(obj)
% Duplicate first backslash
% if(obj.tdiexprused(1)=='\' && not(obj.tdiexprused(2)=='\'))
% martetdi=['\' obj.tdiexprused];
% else
% martetdi=obj.tdiexprused;
% end
% Duplicate backslashes
%martetdi=strrep(obj.tdiexpr, '\', '\\');
martetdi=obj.tdiexpr;
%substitute every " with '
martetdi=strrep(martetdi, '"', '''');
%put double string quota
martetdi=['"' martetdi '"'];
str=martetdi;
end
end
......@@ -127,6 +155,9 @@ classdef SCDclass_mdswg < matlab.mixin.Heterogeneous
% Generate C++ code
%gencode(obj)
% Generate MARTe2 configuration entry
entrystring = genMARTe2entry(obj, shot)
% Prints the parameter info summary
printinfo(obj)
......
......@@ -38,6 +38,7 @@ classdef SCDclass_mdswgsigarray1 < SCDclass_mdswg
obj.deststopidx=dstinterval(end);
obj.classname=mfilename;
obj.marteclassname='MDSWgSigArray1';
end
end
......
......@@ -25,6 +25,7 @@ classdef SCDclass_mdswgsigsingle < SCDclass_mdswg
obj.destidx=obj.cparser.Results.destindex;
obj.classname=mfilename;
obj.marteclassname='MDSWgSigSingle';
end
end
......
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