Skip to content
Snippets Groups Projects
algoobj_template.m 2.68 KiB
function obj = algoobj_template()

%% Doublets SPC controller algorithm
obj = SCDclass_algo('algo_template');

%% Timing of the algorithm
obj=obj.settiming(-1,1e-3,1.0);

%% Fixed parameters init functions 
obj=obj.addfpinitfcn('algo_template_loadfp','algo_template_fp');

%% Tunable parameters structure name
obj=obj.addtunparamstruct('algo_template_tp', @()algo_template_loadtp(), false);

%% Tunable parameters
parshot=2;
mdsserver='scd.epfl.ch';
mdstree  ='scdds';
obj=obj.addparameter(SCDclass_mdsparnumeric('template.params.enable'        ,'enable'          ,'srcsrv',mdsserver,'srctree',mdstree,'shot',parshot)); 
obj=obj.addparameter(SCDclass_mdsparnumeric('template.params.gain'          ,'gain'            ,'srcsrv',mdsserver,'srctree',mdstree,'shot',parshot)); 
obj=obj.addparameter(SCDclass_mdsparnumeric('template.params.refmodel.gain' ,'refmodel.gain'   ,'srcsrv',mdsserver,'srctree',mdstree,'shot',parshot));
obj=obj.addparameter(SCDclass_mdsparnumeric('template.params.rowvect'       ,'rowvect'         ,'srcsrv',mdsserver,'srctree',mdstree,'shot',parshot));
obj=obj.addparameter(SCDclass_mdsparnumeric('template.params.colvect'       ,'colvect'         ,'srcsrv',mdsserver,'srctree',mdstree,'shot',parshot));
obj=obj.addparameter(SCDclass_mdsparnumeric('template.params.matrix'        ,'matrix'          ,'srcsrv',mdsserver,'srctree',mdstree,'shot',parshot));

%% 2nd tunable parameters structure/parameters
% obj=obj.addtunparamstruct('algo_template_tp2', @()algo_template_loadtp(), false);
% obj=obj.addparameter(SCDclass_mdsparnumeric('template.params.kb1','enable'          ,'srcsrv','spcpc171.epfl.ch','srctree','martetest','shot',parshot)); 


%% Wavegens
obj=obj.addwavegenbasetruct('algo_template_inbus1');
obj=obj.addwavegen(SCDclass_mdswgsigsingle( 'template.inputs.signal1','signal1'        ,'srcsrv',mdsserver,'srctree',mdstree,'shot',parshot));
obj=obj.addwavegen(SCDclass_mdswgsigsingle( 'template.inputs.signal2','signal2'        ,'srcsrv',mdsserver,'srctree',mdstree,'shot',parshot));

%% 2nd wavegen base structure/signals
% obj=obj.addwavegenbasetruct('algo_template_inbus2');
% obj=obj.addwavegen(SCDclass_mdswgsigsingle( 'ai.ch003','signal1'        ,'srcsrv','spcpc171.epfl.ch','srctree','martetest','shot',parshot));
% obj=obj.addwavegen(SCDclass_mdswgsigsingle( 'ai.ch004','signal2'        ,'srcsrv','spcpc171.epfl.ch','srctree','martetest','shot',parshot));


%% Buses
obj = obj.addbus('algo_template_inBus', 'algo_template_inBus_def' );
obj = obj.addbus('algo_template_outBus', 'algo_template_outBus_def' );
 % function handle that returns cell arays of buses and busnames to be
 % registered
obj = obj.addbus('',@() algo_template_signal_buses());

%% Tasks

%% Print (optional)
obj.printinfo;

end