From 611b0053b70e14fdd7edb5667cc11466e9b46b65 Mon Sep 17 00:00:00 2001
From: galperti <cristian.galperti@epfl.ch>
Date: Fri, 24 Jun 2022 15:21:14 +0200
Subject: [PATCH] bus2marte2cfg return a cell flattened array of signals info

---
 functions/marte2cfg/bus2marte2cfg.m | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/functions/marte2cfg/bus2marte2cfg.m b/functions/marte2cfg/bus2marte2cfg.m
index 3e2d3c6..7c8cb12 100644
--- a/functions/marte2cfg/bus2marte2cfg.m
+++ b/functions/marte2cfg/bus2marte2cfg.m
@@ -1,4 +1,4 @@
-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);
-- 
GitLab