[4] | 1 | function writebumpfile(varargin) |
---|
| 2 | %write bump file to disk |
---|
| 3 | %example |
---|
| 4 | % ao=getao; |
---|
| 5 | % |
---|
| 6 | % nqf=length(ao.QF.ElementList); |
---|
| 7 | % nqd=length(ao.QD.ElementList); |
---|
| 8 | % pvnames=char(ao.QF.Setpoint.ChannelNames,ao.QD.Setpoint.ChannelNames); |
---|
| 9 | % scalefactor=[r(1,1)*ones(nqf,1);r(2,1)*ones(nqd,1)]; |
---|
| 10 | % |
---|
| 11 | % header=['dnu_x [0.01/unit] ']; |
---|
| 12 | % directoryname=getfamilydata('Directory','BumpFiles'); |
---|
| 13 | % filename='xtune'; |
---|
| 14 | %writebumpfile(pvnames,scalefactor,header,directoryname,filename); |
---|
| 15 | |
---|
| 16 | if isstruct(varargin) %structure input |
---|
| 17 | % pv =varargin.pv; |
---|
| 18 | % scalefactor =varargin.scalefactor; |
---|
| 19 | % header =varargin.header; |
---|
| 20 | % directoryname=varargin.pathname; |
---|
| 21 | % filename =varargin.filename; |
---|
| 22 | else %not a structure |
---|
| 23 | |
---|
| 24 | if nargin<2 |
---|
| 25 | error('insufficient input to WriteBumpFile') |
---|
| 26 | end |
---|
| 27 | |
---|
| 28 | pv =varargin{1}; |
---|
| 29 | scalefactor =varargin{2}; |
---|
| 30 | |
---|
| 31 | %default values |
---|
| 32 | header='slider'; |
---|
| 33 | directoryname=getfamilydata('Directory','BumpFiles'); |
---|
| 34 | filename=appendtimestamp('bump', clock); |
---|
| 35 | |
---|
| 36 | if nargin>2 header =varargin{3}; end |
---|
| 37 | if nargin>3 directoryname=varargin{4}; end |
---|
| 38 | if nargin>4 filename =varargin{5}; end |
---|
| 39 | end |
---|
| 40 | |
---|
| 41 | if isempty(findstr(filename,'.m')) filename=[filename '.m']; end |
---|
| 42 | [fid,message]=fopen([directoryname filename],'w'); |
---|
| 43 | |
---|
| 44 | fprintf(fid,'%s\n',header); |
---|
| 45 | fprintf(fid,'%d\n',size(pv,1)); |
---|
| 46 | for ii=1:size(pv,1) |
---|
| 47 | fprintf(fid,'%s %14.10f\n',pv(ii,:),scalefactor(ii)); |
---|
| 48 | end |
---|
| 49 | fclose(fid); |
---|