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