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

bus2marte2cfg return a cell flattened array of signals info

parent 657a7207
No related branches found
No related tags found
No related merge requests found
function [cfg] = bus2marte2cfg(bus, name, datasourcename, varargin)
function [signallist] = bus2marte2cfg(bus, name, datasourcename, varargin)
%Translates a simulink bus object into MARTe2 cfg description
% This function takes a Simuink.Bus object
% as input and prints out its MARTe2 configuration
......@@ -14,11 +14,13 @@ if nargin<=3
assignin('base','tempbus',bus);
busstruct=evalin('base','Simulink.Bus.createMATLABStruct(''tempbus'')');
evalin('base','clear tempbus');
basealiasname=name;;
basealiasname=name;
signallist={};
else
depth=varargin{1};
busstruct=bus;
basealiasname=varargin{2};
signallist=varargin{3};
end
spacer='';
for ii=1:depth, spacer=[spacer ' ']; end
......@@ -29,15 +31,16 @@ if isa(busstruct,'struct')
f=fields(busstruct);
for ii=1:numel(f)
if isa(busstruct.(f{ii}),'struct')
bus2marte2cfg(busstruct.(f{ii}),f{ii},datasourcename,depth+1,[basealiasname '-' f{ii}]);
signallist=bus2marte2cfg(busstruct.(f{ii}),f{ii},datasourcename,depth+1,[basealiasname '-' f{ii}],signallist);
else
%TODO: fill the TBC fields
martetype=type2marte2(busstruct.(f{ii}));
martedims=dims2marte2(busstruct.(f{ii}));
marteelems=elems2marte2(busstruct.(f{ii}));
fprintf("%s %s = { Type = %s NumberOfDimensions = %d NumberOfElements = %d DataSource = %s Alias = %s }\n",...
spacer,f{ii},martetype,martedims,marteelems,datasourcename,...
[basealiasname '-' f{ii}]);
signalinfo={{[basealiasname '-' f{ii}]} {martetype} {martedims} {marteelems} {f{ii}}};
signallist{end+1}=signalinfo;
end
end
fprintf("%s}\n",spacer);
......
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