Skip to content
Snippets Groups Projects
Commit 8051f048 authored by Lorenzo Pivetta's avatar Lorenzo Pivetta
Browse files

First import

parent 15821d0f
No related branches found
No related tags found
No related merge requests found
clear all;
%seq_stats_s017_t010.txt
%seq_stats_s030_t011.txt
%seq_stats_s098_t011.txt
%seq_stats_s110_t011.txt
history_size = 1000;
max_num_sensors = 120
max_num_targets = 20
for num_sensors=1:max_num_sensors
for num_targets=1:max_num_targets
clear header;
clear block;
clear footer;
seq_name = sprintf('seq_stats_s%03d_t%03d.txt',num_sensors,num_targets);
header{1} = '#';
header{2} = '# Description: $description';
header{3} = '# Author: Giulio Gaio';
header{4} = '# Date: 2020/04/06';
header{5} = '#';
header{6} = sprintf('# This sequence perform statistics on %d sensors and %d targets',num_sensors,num_targets);
header{7} = '#';
cnt = 0;
cnt = cnt + 1;
blk{cnt}=sprintf('step%d;(write(this/AbortFlag) = 0) && (write(this/PauseFlag) = 0) && goto(%d);Init variables;Error init variables;-1',cnt,cnt+1);
cnt = cnt + 1;
blk{cnt}=sprintf('step%d;exec($pycalcstat $selfseq $propertyseq) == 0 ? goto(%d) : goto(-1);Running $pycalcstat;Error running $pycalcstat;-1',cnt,cnt+1);
% dynamic attributes
cnt = 0;
cnt = cnt + 1;
footer{cnt} = 'attr;BufferLength;long;0'; % number of samples
cnt = cnt + 1;
footer{cnt} = 'attr;AcquisitionLength;long;0'; % number of samples
cnt = cnt + 1;
footer{cnt} = 'attr;AcquisitionPeriod;double;0'; % seconds
cnt = cnt + 1;
footer{cnt} = 'attr;ValidSamplesPerc;double;0'; % from 0 to 1
cnt = cnt + 1;
footer{cnt} = 'attr;AbortFlag;bool;0';
cnt = cnt + 1;
footer{cnt} = 'attr;PauseFlag;bool;0';
cnt = cnt + 1;
footer{cnt} = 'attr;InitAtStartupFlag;bool;1';
cnt = cnt + 1;
footer{cnt} = 'attr;ProcessingTime;double;0'; % seconds
cnt = cnt + 1;
footer{cnt} = 'attr;IdleTime;double;0'; % seconds
cnt = cnt + 1;
footer{cnt} = 'attr;AcquisitionTime;double;0'; % seconds
cnt = cnt + 1;
footer{cnt} = 'attr;LPFilter;double;1'; % seconds
cnt = cnt + 1;
footer{cnt} = 'attr;EnablePolling;bool;0'; % seconds
cnt = cnt + 1;
footer{cnt} = 'attr;DisablePolling;bool;0'; % seconds
cnt = cnt + 1;
footer{cnt} = sprintf('attr;NumSensors;long;%d',num_sensors); % read olny
cnt = cnt + 1;
footer{cnt} = sprintf('attr;NumTargets;long;%d',num_targets); % read olny
for i=1:num_sensors
% Read / Write attributes
cnt = cnt + 1;footer{cnt} = sprintf('attr;s%03d_SensorName;string;0',i);
cnt = cnt + 1;footer{cnt} = sprintf('attr;s%03d_SensorDesc;string;0',i);
cnt = cnt + 1;footer{cnt} = sprintf('attr;s%03d_Enable;bool;1',i);
cnt = cnt + 1;footer{cnt} = sprintf('attr;s%03d_EnableStates;long;65535',i);
cnt = cnt + 1;footer{cnt} = sprintf('attr;s%03d_EnableTargets;long;%d',i,2^num_targets-1);
cnt = cnt + 1;footer{cnt} = sprintf('attr;s%03d_MinThresVal;double;-1000',i);
cnt = cnt + 1;footer{cnt} = sprintf('attr;s%03d_MaxThresVal;double;1000',i);
cnt = cnt + 1;footer{cnt} = sprintf('attr;s%03d_LowThresPerc;double;0',i); % from 0 to 1
cnt = cnt + 1;footer{cnt} = sprintf('attr;s%03d_HighThresPerc;double;1',i); % from 0 to 1
cnt = cnt + 1;footer{cnt} = sprintf('attr;s%03d_CoeffVarMeanExp;double;1',i);
cnt = cnt + 1;footer{cnt} = sprintf('attr;s%03d_CoeffVarStdExp;double;1',i);
cnt = cnt + 1;footer{cnt} = sprintf('attr;s%03d_SampleShift;double;0',i);
% Read only attributes
cnt = cnt + 1;footer{cnt} = sprintf('attr;s%03d_AcqState;long;0',i);
cnt = cnt + 1;footer{cnt} = sprintf('attr;s%03d_BunchNumberStart;long;0',i);
cnt = cnt + 1;footer{cnt} = sprintf('attr;s%03d_BunchNumberEnd;long;0',i);
cnt = cnt + 1;footer{cnt} = sprintf('attr;s%03d_Mean;double;0',i);
cnt = cnt + 1;footer{cnt} = sprintf('attr;s%03d_MinMax;double;0',i);
cnt = cnt + 1;footer{cnt} = sprintf('attr;s%03d_Min;double;0',i);
cnt = cnt + 1;footer{cnt} = sprintf('attr;s%03d_Max;double;0',i);
cnt = cnt + 1;footer{cnt} = sprintf('attr;s%03d_Median;double;0',i);
cnt = cnt + 1;footer{cnt} = sprintf('attr;s%03d_Std;double;0',i);
cnt = cnt + 1;footer{cnt} = sprintf('attr;s%03d_Skew;double;0',i);
cnt = cnt + 1;footer{cnt} = sprintf('attr;s%03d_Kurt;double;1',i);
cnt = cnt + 1;footer{cnt} = sprintf('attr;s%03d_ValidSamples;long;0',i);
% History
cnt = cnt + 1;footer{cnt} = sprintf('attr;s%03d_Mean_History;double[%d];nomemo',i,history_size);
cnt = cnt + 1;footer{cnt} = sprintf('attr;s%03d_Median_History;double[%d];nomemo',i,history_size);
cnt = cnt + 1;footer{cnt} = sprintf('attr;s%03d_Std_History;double[%d];nomemo',i,history_size);
cnt = cnt + 1;footer{cnt} = sprintf('attr;s%03d_Skew_History;double[%d];nomemo',i,history_size);
cnt = cnt + 1;footer{cnt} = sprintf('attr;s%03d_Kurt_History;double[%d];nomemo',i,history_size);
cnt = cnt + 1;footer{cnt} = sprintf('attr;s%03d_Min_History;double[%d];nomemo',i,history_size);
cnt = cnt + 1;footer{cnt} = sprintf('attr;s%03d_Max_History;double[%d];nomemo',i,history_size);
cnt = cnt + 1;footer{cnt} = sprintf('attr;s%03d_MinMax_History;double[%d];nomemo',i,history_size);
% Correlation attributes
for j=1:num_targets
cnt = cnt + 1;footer{cnt} = sprintf('attr;s%03d_t%03d_Corr_MinThresVal;double;-1',i,j);
cnt = cnt + 1;footer{cnt} = sprintf('attr;s%03d_t%03d_Corr_MaxThresVal;double;1',i,j);
cnt = cnt + 1;footer{cnt} = sprintf('attr;s%03d_t%03d_CorrFiltAbs_MinThresVal;double;0',i,j);
cnt = cnt + 1;footer{cnt} = sprintf('attr;s%03d_t%03d_CorrFiltAbs_MaxThresVal;double;0',i,j);
cnt = cnt + 1;footer{cnt} = sprintf('attr;s%03d_t%03d_Corr;double;0',i,j);
cnt = cnt + 1;footer{cnt} = sprintf('attr;s%03d_t%03d_CorrFiltAbs;double;0',i,j);
cnt = cnt + 1;footer{cnt} = sprintf('attr;s%03d_t%03d_CorrLow;double;0',i,j);
cnt = cnt + 1;footer{cnt} = sprintf('attr;s%03d_t%03d_CorrHigh;double;0',i,j);
cnt = cnt + 1;footer{cnt} = sprintf('attr;s%03d_t%03d_Direction;double;0',i,j);
% History
cnt = cnt + 1;footer{cnt} = sprintf('attr;s%03d_t%03d_Corr_History;double[%d];nomemo',i,j,history_size);
cnt = cnt + 1;footer{cnt} = sprintf('attr;s%03d_t%03d_CorrFiltAbs_History;double[%d];nomemo',i,j,history_size);
cnt = cnt + 1;footer{cnt} = sprintf('attr;s%03d_t%03d_CorrLow_History;double[%d];nomemo',i,j,history_size);
cnt = cnt + 1;footer{cnt} = sprintf('attr;s%03d_t%03d_CorrHigh_History;double[%d];nomemo',i,j,history_size);
end
end
for i=1:num_targets
% Read / Write attributes
cnt = cnt + 1;footer{cnt} = sprintf('attr;t%03d_TargetName;string;0',i);
cnt = cnt + 1;footer{cnt} = sprintf('attr;t%03d_TargetDesc;string;0',i);
cnt = cnt + 1;footer{cnt} = sprintf('attr;t%03d_Enable;bool;1',i);
cnt = cnt + 1;footer{cnt} = sprintf('attr;t%03d_EnableStates;long;65535',i);
cnt = cnt + 1;footer{cnt} = sprintf('attr;t%03d_EnableTargets;long;%d',i,2^num_targets-1);
cnt = cnt + 1;footer{cnt} = sprintf('attr;t%03d_MinThresVal;double;-1000',i);
cnt = cnt + 1;footer{cnt} = sprintf('attr;t%03d_MaxThresVal;double;1000',i);
cnt = cnt + 1;footer{cnt} = sprintf('attr;t%03d_LowThresPerc;double;0',i); % from 0 to 1
cnt = cnt + 1;footer{cnt} = sprintf('attr;t%03d_HighThresPerc;double;1',i); % from 0 to 1
cnt = cnt + 1;footer{cnt} = sprintf('attr;t%03d_CoeffVarMeanExp;double;1',i);
cnt = cnt + 1;footer{cnt} = sprintf('attr;t%03d_CoeffVarStdExp;double;0',i);
cnt = cnt + 1;footer{cnt} = sprintf('attr;t%03d_SampleShift;double;0',i);
% Read only attributes
cnt = cnt + 1;footer{cnt} = sprintf('attr;t%03d_AcqState;long;0',i);
cnt = cnt + 1;footer{cnt} = sprintf('attr;t%03d_BunchNumberStart;long;0',i);
cnt = cnt + 1;footer{cnt} = sprintf('attr;t%03d_BunchNumberEnd;long;0',i);
cnt = cnt + 1;footer{cnt} = sprintf('attr;t%03d_Mean;double;0',i);
cnt = cnt + 1;footer{cnt} = sprintf('attr;t%03d_MinMax;double;0',i);
cnt = cnt + 1;footer{cnt} = sprintf('attr;t%03d_Min;double;0',i);
cnt = cnt + 1;footer{cnt} = sprintf('attr;t%03d_Max;double;0',i);
cnt = cnt + 1;footer{cnt} = sprintf('attr;t%03d_Median;double;0',i);
cnt = cnt + 1;footer{cnt} = sprintf('attr;t%03d_Std;double;0',i);
cnt = cnt + 1;footer{cnt} = sprintf('attr;t%03d_Skew;double;0',i);
cnt = cnt + 1;footer{cnt} = sprintf('attr;t%03d_Kurt;double;1',i);
cnt = cnt + 1;footer{cnt} = sprintf('attr;t%03d_ValidSamples;long;0',i);
% History
cnt = cnt + 1;footer{cnt} = sprintf('attr;t%03d_Mean_History;double[%d];nomemo',i,history_size);
cnt = cnt + 1;footer{cnt} = sprintf('attr;t%03d_Median_History;double[%d];nomemo',i,history_size);
cnt = cnt + 1;footer{cnt} = sprintf('attr;t%03d_Std_History;double[%d];nomemo',i,history_size);
cnt = cnt + 1;footer{cnt} = sprintf('attr;t%03d_Skew_History;double[%d];nomemo',i,history_size);
cnt = cnt + 1;footer{cnt} = sprintf('attr;t%03d_Kurt_History;double[%d];nomemo',i,history_size);
cnt = cnt + 1;footer{cnt} = sprintf('attr;t%03d_Min_History;double[%d];nomemo',i,history_size);
cnt = cnt + 1;footer{cnt} = sprintf('attr;t%03d_Max_History;double[%d];nomemo',i,history_size);
cnt = cnt + 1;footer{cnt} = sprintf('attr;t%03d_MinMax_History;double[%d];nomemo',i,history_size);
% Correlation attributes
for j=i+1:num_targets
cnt = cnt + 1;footer{cnt} = sprintf('attr;t%03d_t%03d_Corr;double;0',i,j);
cnt = cnt + 1;footer{cnt} = sprintf('attr;t%03d_t%03d_Corr_MinThresVal;double;-1',i,j);
cnt = cnt + 1;footer{cnt} = sprintf('attr;t%03d_t%03d_Corr_MaxThresVal;double;1',i,j);
cnt = cnt + 1;footer{cnt} = sprintf('attr;t%03d_t%03d_CorrFiltAbs;double;0',i,j);
cnt = cnt + 1;footer{cnt} = sprintf('attr;t%03d_t%03d_CorrFiltAbs_MinThresVal;double;0',i,j);
cnt = cnt + 1;footer{cnt} = sprintf('attr;t%03d_t%03d_CorrFiltAbs_MaxThresVal;double;0',i,j);
cnt = cnt + 1;footer{cnt} = sprintf('attr;t%03d_t%03d_CorrLow;double;0',i,j);
cnt = cnt + 1;footer{cnt} = sprintf('attr;t%03d_t%03d_CorrHigh;double;0',i,j);
cnt = cnt + 1;footer{cnt} = sprintf('attr;t%03d_t%03d_Direction;double;0',i,j);
% History
cnt = cnt + 1;footer{cnt} = sprintf('attr;t%03d_t%03d_Corr_History;double[%d];nomemo',i,j,history_size);
cnt = cnt + 1;footer{cnt} = sprintf('attr;t%03d_t%03d_CorrFiltAbs_History;double[%d];nomemo',i,j,history_size);
cnt = cnt + 1;footer{cnt} = sprintf('attr;t%03d_t%03d_CorrLow_History;double[%d];nomemo',i,j,history_size);
cnt = cnt + 1;footer{cnt} = sprintf('attr;t%03d_t%03d_CorrHigh_History;double[%d];nomemo',i,j,history_size);
end
end
fileID = fopen(seq_name,'w');
for i=1:size(header,2)
fprintf(fileID,'%s\n',header{i});
end
for i=1:size(blk,2)
fprintf(fileID,'%s\n',blk{i});
end
for i=1:size(footer,2)
fprintf(fileID,'%s\n',footer{i});
end
fclose(fileID);
end % for target
end % for sensor
% Wildcards
% $description=
% $devmon_attr=seq/monitor/dcct_sr/ErrorCount
% $devtime_attr=sequencer/test/seq_util.01/Date[0]
% $sleep_thread=1
% $sleep_monitor=3
% $sleep_write=1
% $devattr1$=
% $devattr2$=
% $devattr3$=
% .........
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment