From fd2881432ef39a00297cba8d75cf8ffa06c1b37d Mon Sep 17 00:00:00 2001 From: Federico Felici <federico.felici@epfl.ch> Date: Sat, 20 Nov 2021 17:20:44 +0100 Subject: [PATCH] Add timing to wrapper and check correct algo dt when adding --- code/classes/SCDclass_component.m | 6 ++++++ code/classes/SCDclass_node.m | 1 - code/classes/SCDclass_wrapper.m | 6 ++++-- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/code/classes/SCDclass_component.m b/code/classes/SCDclass_component.m index 292e027..694654a 100644 --- a/code/classes/SCDclass_component.m +++ b/code/classes/SCDclass_component.m @@ -12,6 +12,7 @@ classdef SCDclass_component mdlname % simulink model name ddname % data dictionary name algos % algorithms contained in this wrapper + timing % sample time end methods @@ -19,6 +20,11 @@ classdef SCDclass_component function obj = addalgo(obj,algo) % add an algorithm object assert(isa(algo,'SCDclass_algo')); + + assert(algo.gettiming.dt == obj.timing.dt,... + 'Algorithm %s sample time: %f does not match %s sample time: %f',... + algo.getname,algo.gettiming.dt,obj.name,obj.timing.dt) + obj.algos = [obj.algos;algo]; end diff --git a/code/classes/SCDclass_node.m b/code/classes/SCDclass_node.m index 5351e4c..d1f75d6 100644 --- a/code/classes/SCDclass_node.m +++ b/code/classes/SCDclass_node.m @@ -11,7 +11,6 @@ classdef SCDclass_node < SCDclass_component hasethercat ncpu % number of CPUs cputype - timing buildcfg initscdbeforecomp cpuactive diff --git a/code/classes/SCDclass_wrapper.m b/code/classes/SCDclass_wrapper.m index c1b482c..a3959a2 100644 --- a/code/classes/SCDclass_wrapper.m +++ b/code/classes/SCDclass_wrapper.m @@ -1,12 +1,14 @@ classdef SCDclass_wrapper < SCDclass_component % Wrapper class containing algos methods - function obj = SCDclass_wrapper(name) + function obj = SCDclass_wrapper(name,dt) + if nargin<2, dt=1e-3; end % default wrapper period + obj.name = name; obj.algos = []; obj.ddname = [name,'.sldd']; obj.mdlname = [name,'.slx']; - + obj.timing = struct('dt',dt); assert(~isempty(which(obj.mdlname)),... 'could not find %s for SCD component %s',obj.mdlname,obj.name); end -- GitLab