0001 function createcylecurvefull(varargin);
0002
0003
0004
0005 DisplayFlag = 1;
0006
0007
0008 InputFlags = {};
0009 for i = length(varargin):-1:1
0010 if strcmpi(varargin{i},'Display')
0011 DisplayFlag = 1;
0012 varargin(i) = [];
0013 elseif strcmpi(varargin{i},'NoDisplay')
0014 DisplayFlag = 0;
0015 varargin(i) = [];
0016 end
0017 end
0018
0019
0020
0021 FileName = getfamilydata('OpsData', 'LatticeFile');
0022 DirectoryName = getfamilydata('Directory', 'OpsData');
0023 cnf=load([DirectoryName FileName]);
0024
0025 Setpoint = cnf.ConfigSetpoint;
0026
0027 Family = varargin{1};
0028
0029 [FamilyIndex, AO] = isfamily(Family);
0030 if isempty(FamilyIndex)
0031 error('Unknown Family');
0032 end
0033
0034
0035 CycleFamily = ['Cycle' Family];
0036 [CycleIndex, CycleAO] = isfamily(CycleFamily);
0037
0038
0039 Inom = Setpoint.(Family).Data;
0040 if (ismemberof(CycleFamily,'Cyclage'))
0041 for k = 1:tango_group_size(CycleAO.GroupId)
0042
0043 CycleAO.Inom(k) = cnf.ConfigSetpoint.(Family).Data(k);
0044
0045 curve = makecurve(CycleAO.Inom(k),CycleAO.Imax(k),Family)
0046
0047 if DisplayFlag
0048 fprintf(1,'device : Inom = %f Imax= %f \n', ...
0049 CycleAO.Inom(k), CycleAO.Imax(k));
0050 plotcyclecurve(curve);
0051 end
0052 reply = input('Apply to Dserver new cycling curve ? (y/n)','s');
0053 switch lower(reply)
0054 case {'Y','Yes'}
0055 setcyclecurve(CycleFamily,curve);
0056 otherwise
0057 disp('Parameter not set to dserver')
0058 end
0059 end
0060 else
0061 error('Unknown Cycling Family')
0062 end
0063
0064 end
0065
0066 function curve = makecurve(Inom,Imax,MagnetType)
0067
0068 switch MagnetType
0069 case {'BEND','QP','CH','CV'}
0070 curve = [[0 10]
0071 [Imax 180]
0072 [0.95*Inom 180]
0073 [1.05*Inom 180]
0074 [0.95*Inom 180]
0075 [1.05*Inom 180]
0076 [0.95*Inom 180]
0077 [Inom 180] ];
0078 end
0079 end
0080