diff --git a/code/classes/SCDclass_component.m b/code/classes/SCDclass_component.m index 292e027140ee1b99915b401bdc9b917c2647647e..694654a02cbcf025ff3e32c755e0b2d93d99fba3 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 5351e4cdfbaed9c73a41bc4d1626294eeae38cb9..d1f75d67bc0eedc87fe4104701ecb839c059d541 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 c1b482ccae56e38e99fc44a1be84a3d0e50f6477..a3959a2b7036c1803b786b9235ce8adf945381d0 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