0001 function d = interpRegistersSa(d)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013 hasRx = 0;
0014 hasCryo = 0;
0015 hasServo= 0;
0016
0017 if(isfield(d, 'antenna0'))
0018 if(isfield(d.antenna0, 'servo'))
0019 if(isfield(d.antenna0.servo, 'fast_az_pos'))
0020 hasServo = 1;
0021 end
0022 end
0023
0024 if(isfield(d.antenna0, 'thermal'))
0025 if(isfield(d.antenna0.thermal, 'ccTemperatureLoad'))
0026 hasCryo = 1;
0027 end
0028 end
0029
0030 if(isfield(d.antenna0, 'roach1'))
0031 if(isfield(d.antenna0.roach1, 'utc'))
0032 hasRx = 1;
0033 end
0034 end
0035 end
0036
0037
0038 hasAny = hasServo + hasRx + hasCryo;
0039 if(hasAny<2)
0040
0041 return;
0042 end
0043
0044 if(~hasRx)
0045 display('Nothing to interpolate')
0046 return;
0047 end
0048
0049
0050 utcLength = length(d.antenna0.roach1.utc);
0051
0052
0053
0054
0055
0056
0057
0058
0059
0060 matchedIndex=find(abs(24*60*60*(d.antenna0.thermal.utc(1)-d.antenna0.servo.utc))<0.1)
0061
0062 servoAz=timeseries(d.antenna0.servo.fast_az_pos,d.antenna0.servo.utc);
0063 servoEl=timeseries(d.antenna0.servo.fast_el_pos,d.antenna0.servo.utc);
0064 servoAzErr=timeseries(d.antenna0.servo.fast_az_err,d.antenna0.servo.utc);
0065 servoElErr=timeseries(d.antenna0.servo.fast_el_err,d.antenna0.servo.utc);
0066 thermalCryo=timeseries(d.antenna0.thermal.ccTemperatureLoad,d.antenna0.thermal.utc);
0067 roachTime=d.antenna0.roach1.utc;
0068
0069
0070 servoAz=resample(servoAz,roachTime)
0071 servoAzErr=resample(servoAzErr,roachTime)
0072 servoEl=resample(servoEl,roachTime)
0073 servoElErr=resample(servoElErr,roachTime)
0074 thermalCryo=resample(thermalCryo,roachTime)
0075
0076 d.antenna0.servo.az = servoAz.Data;
0077 d.antenna0.servo.el = servoEl.Data;
0078 d.antenna0.servo.azerr = servoAzErr.Data;
0079 d.antenna0.servo.elerr = servoElErr.Data;
0080 d.antenna0.servo.utcFast = servoAz.Time;
0081 d.antenna0.thermal.ccTemperatureLoadFast=thermalCryo.Data;
0082 d.antenna0.thermal.utcFast=thermalCryo.Time;
0083
0084
0085
0086 return;