📄 dispfun.c
字号:
sprintf(msg,"SV Is Temporarily Out");
break;
case 29:
sprintf(msg,"SV Will Be Tempoarily Out");
break;
case 30:
sprintf(msg,"Spare");
break;
case 31:
sprintf(msg,"Combination Of Problems");
break;
default:
sprintf(msg,"Unrecognised Error Number");
}
sprintf(buff,"Signal Health Status is: %s",msg);
OutputString(3,18,buff);
}
}
}
/****************************************************************************
* Function: void F12_Display(void)
*
* The display obtained by pressing key F12.
*
* Input: None.
*
* Output: None.
*
* Return Value: None.
****************************************************************************/
void F12_Display(void)
{
#define MaxEphPage 35
int year,month,day,hour,minute;
int prn,nav_data,signal_health;
int prnstart,prnstop,rowoffset;
double second;
char datetime[20],buff[90],tmpbuff[90];
ephstruc E;
if(EphPage<0)
EphPage=MaxEphPage;
else if(EphPage>MaxEphPage)
EphPage=0;
if(EphPage==0 || EphPage==1 || EphPage==2 || EphPage==3)
{
OutputString(3,6,"SATELLITE EPHEMERIS STATUS "
" PageUp/PageDown to Scroll");
sprintf(buff,"PRN Reference Time Validity");
OutputString(3,8,buff);
switch(EphPage)
{
case 0:
prnstart = 1;
prnstop = 10;
rowoffset = 0;
break;
case 1:
prnstart = 10;
prnstop = 19;
rowoffset = 9;
break;
case 2:
prnstart = 19;
prnstop = 28;
rowoffset = 18;
break;
case 3:
prnstart = 28;
prnstop = 33;
rowoffset = 27;
break;
}
for(prn=prnstart;prn<prnstop;prn++)
{
PROTECT++; /* Indivisible access to the SV's almanac entry */
E = ephs[prn-1];
PROTECT--;
GpsTimeToGregorianDate(E.toewk,E.toe,
&year,&month,&day,&hour,&minute,&second);
sprintf(datetime,"%2.2d:%2.2d:%2.2d %2.2d/%2.2d/%4.4d",
hour,minute,(int)second,day,month,year);
switch(E.vflg)
{
case 0:
sprintf(buff," %2.2d %s Invalid ",prn,datetime);
break;
case 1:
sprintf(buff," %2.2d %s Valid ",prn,datetime);
break;
default:
sprintf(buff," %2.2d %s Invalid Code",prn,
datetime);
break;
}
OutputString(3,9+prn-rowoffset,buff);
}
}
else
{
PROTECT++;
E = ephs[EphPage-4];
PROTECT--;
GpsTimeToGregorianDate(E.toewk,E.toe,
&year,&month,&day,&hour,&minute,&second);
sprintf(datetime,"%2.2d:%2.2d:%2.2d %2.2d/%2.2d/%4.4d",
hour,minute,(int)second,day,month,year);
sprintf(buff,"Satellite Ephemeris Status for PRN%2.2d "
" PageUp/PageDown to Scroll",EphPage-3);
OutputString(3,6,buff);
if(E.vflg==0)
{
sprintf(buff,"No Valid Ephemeris");
OutputString(3,8,buff);
}
else
{
sprintf(buff,"Ephemeris Reference Time = %s, "
"Week Number = %4.4d",
datetime,E.wkn);
OutputString(3,8,buff);
nav_data = (E.s1hlth>>5)&0x0001;
if(nav_data)
sprintf(tmpbuff,"Some or All Navigation Data is Bad");
else
sprintf(tmpbuff,"All Navigation Data is Good");
signal_health = (E.s1hlth)&0x001F;
switch(signal_health)
{
case 0:
sprintf(buff,"%s, All Signals OK",tmpbuff);
break;
case 1:
sprintf(buff,"%s, All Signal Weak",tmpbuff);
break;
case 2:
sprintf(buff,"%s, All Signal Dead",tmpbuff);
break;
case 3:
sprintf(buff,
"%s, All Signals Have No Data Modulation",tmpbuff);
break;
case 4:
sprintf(buff,"%s, L1 P Signal Weak",tmpbuff);
break;
case 5:
sprintf(buff,"%s, L1 P Signal Dead",tmpbuff);
break;
case 6:
sprintf(buff,
"%s, L1 P Signal Has No Data Modulation",tmpbuff);
break;
case 7:
sprintf(buff,"%s, L2 P Signal Weak",tmpbuff);
break;
case 8:
sprintf(buff,"%s, L2 P Signal Dead",tmpbuff);
break;
case 9:
sprintf(buff,
"%s, L2 P Signal Has No Data Modulation",tmpbuff);
break;
case 10:
sprintf(buff,"%s, L1 C Signal Weak",tmpbuff);
break;
case 11:
sprintf(buff,"%s, L1 C Signal Dead",tmpbuff);
break;
case 12:
sprintf(buff,
"%s, L1 C Signal Has No Data Modulation",tmpbuff);
break;
case 13:
sprintf(buff,"%s, L2 C Signal Weak",tmpbuff);
break;
case 14:
sprintf(buff,"%s, L2 C Signal Dead",tmpbuff);
break;
case 15:
sprintf(buff,
"%s, L2 C Signal Has No Data Modulation",tmpbuff);
break;
case 16:
sprintf(buff,"%s, L1 & L2 P Signal Weak",tmpbuff);
break;
case 17:
sprintf(buff,"%s, L1 & L2 P Signal Dead",tmpbuff);
break;
case 18:
sprintf(buff,
"%s, L1 & L2 P Signal Has No Data Modulation",tmpbuff);
break;
case 19:
sprintf(buff,"%s, L2 & L2 C Signal Weak",tmpbuff);
break;
case 20:
sprintf(buff,"%s, L2 & L2 C Signal Dead",tmpbuff);
break;
case 21:
sprintf(buff,
"%s, L2 & L2 C Signal Has No Data Modulation",tmpbuff);
break;
case 22:
sprintf(buff,"%s, L1 Signal Weak",tmpbuff);
break;
case 23:
sprintf(buff,"%s, L1 Signal Dead",tmpbuff);
break;
case 24:
sprintf(buff,
"%s, L1 Signal Has No Data Modulation",tmpbuff);
break;
case 25:
sprintf(buff,"%s, L2 Signal Weak",tmpbuff);
break;
case 26:
sprintf(buff,"%s, L2 Signal Dead",tmpbuff);
break;
case 27:
sprintf(buff,
"%s, L2 Signal Has No Data Modulation",tmpbuff);
break;
case 28:
sprintf(buff,"%s, SV Is Temporarily Out",tmpbuff);
break;
case 29:
sprintf(buff,"%s, SV Will Be Tempoarily Out",tmpbuff);
break;
case 30:
sprintf(buff,"%s, Spare",tmpbuff);
break;
case 31:
sprintf(buff,"%s, Combination Of Problems",tmpbuff);
break;
default:
sprintf(buff,"%s, Unrecognised Error Number",tmpbuff);
}
OutputString(3,9,buff);
switch(E.codeL2)
{
case 0:
sprintf(tmpbuff,"Code on L2 Channel = Reserved");
break;
case 1:
sprintf(tmpbuff,"Code on L2 Channel = P-Code On");
break;
case 2:
sprintf(tmpbuff,"Code on L2 Channel = C/A Code On");
break;
default:
sprintf(tmpbuff,
"Code on L2 Channel = Unrecognised Code");
break;
}
switch(E.L2Pdata)
{
case 0:
sprintf(buff,"%s, L2 P Code Data = On",tmpbuff);
break;
case 1:
sprintf(buff,"%s, L2 P Code Data = Off",tmpbuff);
break;
default:
sprintf(buff,"%s, L2 P Code Data = Unrecognised Code",
tmpbuff);
break;
}
OutputString(3,10,buff);
switch(E.fti)
{
case 0:
sprintf(tmpbuff,"Fit Interval = 4 hours");
break;
case 1:
sprintf(tmpbuff,"Fit Interval = 6 hours");
break;
default:
sprintf(tmpbuff,"Fit Interval = Unrecognised Code");
break;
}
sprintf(buff,"%s, Group Delay = %11.6e s",tmpbuff,E.tgd);
OutputString(3,11,buff);
GpsTimeToGregorianDate(E.toewk,E.toe,
&year,&month,&day,&hour,&minute,&second);
sprintf(datetime,"%2.2d:%2.2d:%2.2d %2.2d/%2.2d/%4.4d",
hour,minute,(int)second,day,month,year);
sprintf(buff,"Clock Correction Time = %s, "
"af0 = %11.6e s",
datetime,E.af0);
OutputString(3,12,buff);
sprintf(buff,"af1 = %11.6e s/s, "
"af2 = %11.6e s/s2",E.af1,E.af2);
OutputString(3,13,buff);
sprintf(buff,"Semi-Major Axis = %9.3lf km, "
"Eccentricity = %8.6lf",E.a/1000.0,E.ecc);
OutputString(3,14,buff);
sprintf(buff,"Mean Anom = %11.6lf %c, "
"Delta n = %11.6e %c, "
"Perigee = %11.6lf %c",
E.m0*R2D,DEGREE,E.deltan*R2D,DEGREE,
E.olc*R2D,DEGREE);
OutputString(3,15,buff);
sprintf(buff,"Inclination = %11.6lf %c, "
"Inclination Dot= %11.6e %c",
E.in0*R2D,DEGREE,E.idot*R2D,DEGREE);
OutputString(3,16,buff);
sprintf(buff,"Right Ascension = %11.6lf %c, "
"Right Ascension Dot = %11.6e %c",
E.om0*R2D,DEGREE,E.omd*R2D,DEGREE);
OutputString(3,17,buff);
sprintf(buff,"Crs=%9.4e m, Cuc=%9.4e %c, Crc=%9.4e m, "
"Cic=%9.4e %c",
E.crs,E.cuc*R2D,DEGREE,E.crc,E.cic*R2D,DEGREE);
OutputString(3,18,buff);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -