From fcd0cf7eb2cecdcbc3d98bba84e7db9f16fbbb9b Mon Sep 17 00:00:00 2001 From: Federico Felici <federico.felici@epfl.ch> Date: Sat, 20 Nov 2021 17:46:43 +0100 Subject: [PATCH] Set receiving thread sampling time equal to that of wrapper --- code/classes/SCDclass_expcode.m | 2 +- code/classes/SCDclass_node.m | 15 +++++++++++---- code/classes/SCDclass_wrapper.m | 2 +- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/code/classes/SCDclass_expcode.m b/code/classes/SCDclass_expcode.m index 2c947e5..15e1eb4 100644 --- a/code/classes/SCDclass_expcode.m +++ b/code/classes/SCDclass_expcode.m @@ -813,7 +813,7 @@ classdef SCDclass_expcode % set node parameter structure in main data dictionary for ii=obj.definednodes node = obj.nodes{ii}; - for field = {'name','timing'} + for field = {'active','name','timing'} nodeparams.(field{:}) = node.(field{:}); end varname = sprintf('SCDnode%02dparams',node.nodenr); diff --git a/code/classes/SCDclass_node.m b/code/classes/SCDclass_node.m index d1f75d6..492e339 100644 --- a/code/classes/SCDclass_node.m +++ b/code/classes/SCDclass_node.m @@ -56,8 +56,13 @@ classdef SCDclass_node < SCDclass_component mywrapper.wrapperobj = wrapperObj; mywrapper.cpunr = cpunr; mywrapper.varalgo = varalgo; - obj.wrappers{cpunr} = mywrapper; + + % add wrapper to obj + obj.wrappers{cpunr} = mywrapper; + % set cpu of this wrapper to active obj.cpuactive(cpunr) = isactive; + % set receiving node cpu sample time to wrapper sample time + obj.timing.thperiod(obj.nodenr) = wrapperObj.timing.dt; end function node = defaultnodeconfig(node,nodenr) @@ -178,7 +183,9 @@ classdef SCDclass_node < SCDclass_component node.cpuactive = zeros(1,node.ncpu); % thread timing - node.timing.thperiod = 1e-3*ones(1,node.ncpu); + if ~isfield(node.timing,'thperiod') + node.timing.thperiod = 1e-3*ones(1,node.ncpu); + end % add template node wrappers for icpu=1:node.ncpu @@ -210,8 +217,8 @@ classdef SCDclass_node < SCDclass_component function printinfo(obj) % print wrapper and algo info - fprintf('\nNode%02d, CPUs:%02d, nodename:%s\n',... - obj.nodenr,obj.ncpu,obj.name) + fprintf('\nNode%02d, CPUs:%02d, name:%s, dt=%5.3fms\n',... + obj.nodenr,obj.ncpu,obj.name,obj.timing.dt*1e3) for wrapper = obj.wrappers fprintf(' CPU %d wrapper: ',wrapper{:}.cpunr); wrapper{:}.wrapperobj.printinfo; diff --git a/code/classes/SCDclass_wrapper.m b/code/classes/SCDclass_wrapper.m index a3959a2..5b8944c 100644 --- a/code/classes/SCDclass_wrapper.m +++ b/code/classes/SCDclass_wrapper.m @@ -22,7 +22,7 @@ classdef SCDclass_wrapper < SCDclass_component end function printinfo(obj) - fprintf('%s\n',obj.name); + fprintf('%s, dt=%5.3f[ms]\n',obj.name,obj.timing.dt*1e3); fprintf(' Algos:'); if isempty(obj.algos), fprintf(' none'); end fprintf('\n'); -- GitLab