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); |
---|