10 #include "AnitaPacketUtil.h" 32 Adu5Sat::Adu5Sat(Int_t trun,
39 payloadTime=gpsStruct->unixTime;
40 for(
int ant=0;ant<4;ant++) {
41 numSats[ant]=gpsStruct->numSats[ant];
42 for(
int i=0;i<MAX_SATS;i++) {
43 prn[ant][i]=gpsStruct->sat[ant][i].prn;
44 elevation[ant][i]=gpsStruct->sat[ant][i].elevation;
45 snr[ant][i]=gpsStruct->sat[ant][i].snr;
46 flag[ant][i]=gpsStruct->sat[ant][i].flag;
47 azimuth[ant][i]=gpsStruct->sat[ant][i].azimuth;
57 TEllipse *lippy =
new TEllipse();
58 lippy->SetFillColor(0);
59 lippy->SetFillStyle(0);
60 lippy->DrawEllipse(0.5,0.5,0.45*TMath::Cos(TMath::DegToRad()*10),0,0,360,0);
61 lippy->DrawEllipse(0.5,0.5,0.45*TMath::Cos(TMath::DegToRad()*20),0,0,360,0);
62 lippy->DrawEllipse(0.5,0.5,0.45*TMath::Cos(TMath::DegToRad()*30),0,0,360,0);
63 lippy->DrawEllipse(0.5,0.5,0.45*TMath::Cos(TMath::DegToRad()*40),0,0,360,0);
64 lippy->DrawEllipse(0.5,0.5,0.45*TMath::Cos(TMath::DegToRad()*50),0,0,360,0);
65 lippy->DrawEllipse(0.5,0.5,0.45*TMath::Cos(TMath::DegToRad()*60),0,0,360,0);
66 lippy->DrawEllipse(0.5,0.5,0.45*TMath::Cos(TMath::DegToRad()*70),0,0,360,0);
67 lippy->DrawEllipse(0.5,0.5,0.45*TMath::Cos(TMath::DegToRad()*80),0,0,360,0);
68 lippy->DrawEllipse(0.5,0.5,0.45*TMath::Cos(TMath::DegToRad()*90),0,0,360,0);
71 TLine *liney =
new TLine();
72 liney->SetLineStyle(1);
73 liney->DrawLineNDC(0.03,0.5,0.97,0.5);
74 liney->DrawLineNDC(0.5,0.03,0.5,0.97);
76 TLatex *texy =
new TLatex();
77 texy->SetTextSize(0.08);
79 texy->DrawTextNDC(0.02,0.93,title);
81 texy->DrawTextNDC(0.02,0.93,
"ADU5");
83 Int_t markers[4]={29,23,26,28};
85 TMarker *satty =
new TMarker();
86 for(
int ant=0;ant<4;ant++) {
87 for(
int i=0;i<(int)
numSats[ant];i++) {
89 satty->SetMarkerColor(kRed);
90 else if(
snr[ant][i]<40)
91 satty->SetMarkerColor(kOrange);
93 satty->SetMarkerColor(kGreen);
94 satty->SetMarkerStyle(markers[ant]);
95 satty->SetMarkerSize(2.5);
96 Double_t r=0.45*TMath::Cos(TMath::DegToRad()*
elevation[ant][i]);
97 Double_t x=0.5+r*TMath::Cos(TMath::DegToRad()*
azimuth[ant][i]);
98 Double_t y=0.5+r*TMath::Sin(TMath::DegToRad()*
azimuth[ant][i]);
100 satty->DrawMarker(x,y);
107 int Adu5Sat::getNumSats(
int whichAnt)
109 if(whichAnt>=0 && whichAnt<4)
114 int Adu5Sat::getPRN(
int whichAnt,
int whichSat)
116 if(whichAnt>=0 && whichAnt<4)
118 return prn[whichAnt][whichSat];
123 int Adu5Sat::getSNR(
int whichAnt,
int whichSat)
126 if(whichAnt>=0 && whichAnt<4)
128 return snr[whichAnt][whichSat];
132 int Adu5Sat::getElevation(
int whichAnt,
int whichSat)
134 if(whichAnt>=0 && whichAnt<4)
140 int Adu5Sat::getAzimuth(
int whichAnt,
int whichSat)
142 if(whichAnt>=0 && whichAnt<4)
144 return azimuth[whichAnt][whichSat];
148 int Adu5Sat::getFlag(
int whichAnt,
int whichSat)
150 if(whichAnt>=0 && whichAnt<4)
152 return flag[whichAnt][whichSat];
UShort_t azimuth[4][12]
The azimuth of each visible satellite.
Adu5Sat – The ADU5 Satellite Information.
ADU5 Satellite Info – Telemetered.
void getCirclePlot(TPad *padSat, const char *title=0)
Creates a 2D elevation-azimuth plot.
UChar_t flag[4][12]
The usability flag of each visible satellite.
UInt_t numSats[4]
The number of satellites each of the antennas can see.
UChar_t elevation[4][12]
The elevation of each visible satellite.
UChar_t snr[4][12]
The SNR of each visible satellite.
GpsAdu5SatStruct_t – Yes.
UChar_t prn[4][12]
The PRN of each visible satellite.
int simplePacketCheck(GenericHeader_t *gHdr, PacketCode_t code)
simplePacketCheck – utility function