⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 efis5.c

📁 源程序是在VisualDSP环境下开发出来的
💻 C
📖 第 1 页 / 共 2 页
字号:
PutChar('#',OxSEBall+g_nSkyEarthBallRadius,OySEBall+g_nSkyEarthBallRadius/3-12,WHITE,BFINALRESULT);
PutChar('#',OxSEBall+g_nSkyEarthBallRadius,OySEBall+g_nSkyEarthBallRadius*2/3-12,WHITE,BFINALRESULT);
Line(OxSEBall+g_nSkyEarthBallRadius+8,OySEBall-13-g_nParameters[22],OxSEBall+g_nSkyEarthBallRadius+16,OySEBall-g_nParameters[22],RED,BFINALRESULT);
Line(OxSEBall+g_nSkyEarthBallRadius+16,OySEBall-g_nParameters[22],OxSEBall+g_nSkyEarthBallRadius+8,OySEBall+13-g_nParameters[22],RED,BFINALRESULT);
Line(OxSEBall+g_nSkyEarthBallRadius+8,OySEBall+13-g_nParameters[22],OxSEBall+g_nSkyEarthBallRadius,OySEBall-g_nParameters[22],RED,BFINALRESULT);
Line(OxSEBall+g_nSkyEarthBallRadius,OySEBall-g_nParameters[22],OxSEBall+g_nSkyEarthBallRadius+8,OySEBall-13-g_nParameters[22],RED,BFINALRESULT);
}


///////////////////////////////////////////////////////////////////////
HollowRect(50,65,150,90,WHITE,BFINALRESULT);
StringOut("TS",53,68,WHITE,BFINALRESULT);
Int2Str(valueofgauge0,105,68,WHITE,BFINALRESULT,0);
StringOut("EVSD",ROW4,TOP,GREEN1,BFINALRESULT);
StringOut("EHSD",ROW5,TOP,GREEN1,BFINALRESULT);
PutChar('M',90,440,WHITE,BFINALRESULT);
Int2Str(valueofM,134,440,WHITE,BFINALRESULT,0);
StringOut("AOA",90,BOTTOM,WHITE,BFINALRESULT);
Int2Str(valueofAOA,160,BOTTOM,WHITE,BFINALRESULT,0);
Int2Str(valueofheight,450,440,WHITE,BFINALRESULT,0);
StringOut("DH",430,BOTTOM,WHITE,BFINALRESULT);
Int2Str(valueofDH,470,BOTTOM,WHITE,BFINALRESULT,0);
Int2Str(valueofALP,450,80,WHITE,BFINALRESULT,0);


if((valueofgauge2+=0.05)>8) valueofgauge2=-8;
if((valueofgauge1+=0.001)>3.0) valueofgauge1=1.3;
if((valueofgauge0+=0.15)>600) valueofgauge0=200;
if((valueofelevation+=0.2)>90) valueofelevation=-90;
if((valueofdirection-=0.9)<0) valueofdirection=360;
if((valueofdirectionoffset+=0.9)>100) valueofdirectionoffset=-100;
if((g_nParameters[23]+=0.9)>100) g_nParameters[23]=-100;

return;
}
////////////////////////////////////////////////////
////////////////////////////////////////////////////fanproc()
void fanproc(void)
{
int Ox=300,Oy=450;
static float valueofdistance=40;

//////////////////////////////////////////////////PlaneSymbol
Line(Ox-10,Oy,Ox+10,Oy,WHITE,BFINALRESULT);
Line(Ox,Oy-10,Ox,Oy+15,WHITE,BFINALRESULT);
Line(Ox-5,Oy+12,Ox+5,Oy+12,WHITE,BFINALRESULT);
/////////////////////////////////////////////////distancearc
//DrawArc(Ox,Oy,Ox+150*cos(3.14159*50/180),Oy-150*sin(3.14159*50/180),80,GREEN1,BFINALRESULT);
Arc(Ox,Oy,Ox-150*cos(3.14159*45/180),Ox+150*cos(3.14159*45/180),150,GREEN1,BFINALRESULT);
Int2Str(valueofdistance,Ox+150*cos(3.14159*50/180)-20,Oy-150*sin(3.14159*50/180)+2,CAMBLUE,BFINALRESULT,0);
////////////////////////////////////////////////DirectionScale
Line(Ox,Oy-310,Ox-20/tan(60*3.14159/180),Oy-310-20,WHITE,BFINALRESULT);
Line(Ox-20/tan(60*3.14159/180),Oy-310-20,Ox+20/tan(60*3.14159/180),Oy-310-20,WHITE,BFINALRESULT);
Line(Ox+20/tan(60*3.14159/180),Oy-310-20,Ox,Oy-310,WHITE,BFINALRESULT);

temp0=0-valueofdirection+0.5;
	if(temp0<0) temp0+=360;
if(temp0<=40||temp0>=320)
{
PutChar('N',Ox-8,Oy-285,GOLD,!BFINALRESULT);
Rotate(-(0-valueofdirection)*3.14159/180,Ox,Oy);
}

temp0=90-valueofdirection+0.5;
	if(temp0<0) temp0+=360;
if(temp0<=40||temp0>=320)
{
PutChar('E',Ox-8,Oy-285,GOLD,!BFINALRESULT);
Rotate(-(90-valueofdirection)*3.14159/180,Ox,Oy);
}

temp0=180-valueofdirection+0.5;
	if(temp0<0) temp0+=360;
if(temp0<=40||temp0>=320)
{
PutChar('S',Ox-8,Oy-285,GOLD,!BFINALRESULT);
Rotate(-(180-valueofdirection)*3.14159/180,Ox,Oy);
}

temp0=270-valueofdirection+0.5;
	if(temp0<0) temp0+=360;
if(temp0<=40||temp0>=320)
{
PutChar('W',Ox-8,Oy-285,GOLD,!BFINALRESULT);
Rotate(-(270-valueofdirection)*3.14159/180,Ox,Oy);
}

temp0=valueofdirection/5;
temp0*=10;
for (i=temp0-70;i<=temp0+80;i+=10)
{
	if(i%20==0)
	{
	Line(Ox,Oy-310,Ox,Oy-290,GOLD,!BFINALRESULT);
	Rotate(-3.14159*(i-valueofdirection*2)*0.5/180,Ox,Oy);
	}
	else if (i%10==0)
	{
	Line(Ox,Oy-310,Ox,Oy-300,GOLD,!BFINALRESULT);
	Rotate(-3.14159*(i-valueofdirection*2)*0.5/180,Ox,Oy);
	}
}
    temp0=(valueofdirection+30)/10;
    if(temp0>=36) temp0-=36;
	temp1=(valueofdirection-30)/10;
	if(temp1<0) temp1+=36;
    Int2Str(temp0,Ox+130,Oy-245,WHITE,BFINALRESULT,0);
    Int2Str(temp1,Ox-150,Oy-245,WHITE,BFINALRESULT,0);

	temp0=valueofselectdirection-valueofdirection+0.5;
    if(temp0<0) temp0+=360;
    if(temp0>30&&temp0<=180) 
	{
	PutChar('^',Ox+190,Oy-300,CAMBLUE,!BFINALRESULT);
    Rotate(-3.14159*120/180,Ox+190,Oy-280);
    }
	if(temp0>180&&temp0<330) 
	{
	PutChar('^',Ox-190,Oy-290,CAMBLUE,!BFINALRESULT);
    Rotate(3.14159*120/180,Ox-190,Oy-270);
	}
//////////////////////////////////////////////////selectedway	

    floattemp0=valueofselectway-valueofdirection+0.5;
    if(floattemp0<0) floattemp0+=360;
    if(floattemp0>30&&floattemp0<=180) 
	{
	PutChar('^',Ox+150,Oy-250,CAMBLUE,!BFINALRESULT);
    Rotate(-3.14159*120/180,Ox+150,Oy-230);
	floattemp0=30;
	}
	if(floattemp0>180&&floattemp0<330) 
	{
	PutChar('^',Ox-150,Oy-240,CAMBLUE,!BFINALRESULT);
    Rotate(3.14159*120/180,Ox-150,Oy-220);
	floattemp0=330;
	}
	Line(Ox,Oy,Ox,Oy-200,CAMBLUE,!BFINALRESULT);
	Line(Ox,Oy-200,Ox+10/tan(3.14159*60/180),Oy-190,GOLD,!BFINALRESULT);
	Line(Ox+10/tan(3.14159*60/180),Oy-190,Ox-10/tan(3.14159*60/180),Oy-190,GOLD,!BFINALRESULT);
	Line(Ox-10/tan(3.14159*60/180),Oy-190,Ox,Oy-200,GOLD,!BFINALRESULT);
	PutChar('#',Ox-15,Oy-g_nSkyEarthBallRadius*2/3-12,GOLD,!BFINALRESULT);
    PutChar('#',Ox-15,Oy-g_nSkyEarthBallRadius/3-12,GOLD,!BFINALRESULT);
//   PutChar('#',Ox-15,Oy+g_nSkyEarthBallRadius/3-12,WHITE,!BFINALRESULT);
//   PutChar('#',Ox-15,Oy+g_nSkyEarthBallRadius*2/3-12,WHITE,!BFINALRESULT);
//Line(Ox-50,Oy+g_nParameters[12],Ox+50,Oy+g_nParameters[12],WHITE,!BFINALRESULT);
Rotate(-3.14159*floattemp0/180,Ox,Oy);
//////////////////////////////////////////////////////   
StringOut("EVSD",ROW4,TOP,GREEN1,BFINALRESULT);
StringOut("EHSD",ROW5,TOP,GREEN1,BFINALRESULT);
StringOut("DIST",53,85,WHITE,BFINALRESULT);
Int2Str(g_nParameters[11],53,110,WHITE,BFINALRESULT,0);
StringOut(1?"TCN":"ADF",53,250,WHITE,BFINALRESULT|VERTICALSTRING);
StringOut(1?"LIN":"ANG",90,250,WHITE,BFINALRESULT|VERTICALSTRING);
StringOut("CRS",53,430,WHITE,BFINALRESULT);
Int2Str(valueofselectway,53,455,WHITE,BFINALRESULT,0);
StringOut(1?"TO":" ",380,455,WHITE,BFINALRESULT);
StringOut("BRG  TTG",500,85,WHITE,BFINALRESULT);
Int2Str(valueofBRG,500,110,WHITE,BFINALRESULT,0);
Int2Str(g_nParameters[15],562,110,WHITE,BFINALRESULT,0);
StringOut("HDG",562,430,WHITE,BFINALRESULT);
Int2Str(valueofselectdirection,562,455,WHITE,BFINALRESULT,0);


 if((valueofdirection-=0.25)<0) valueofdirection=360;
 return;
}

/////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////HSIproc()
void HSIproc(void)
{
int Ox=300,Oy=300;
//////////////////////////////////////////////////PlaneSymbol
Line(Ox-10,Oy,Ox+10,Oy,WHITE,BFINALRESULT);
Line(Ox,Oy-10,Ox,Oy+15,WHITE,BFINALRESULT);
Line(Ox-5,Oy+12,Ox+5,Oy+12,WHITE,BFINALRESULT);
/////////////////////////////////////////////////DirectionScale
temp0=valueofdirection/5;
temp0*=10;
for (i=temp0;i<=temp0+720;i+=10)
{ 
    if(i%60==0)
	{
	Line(Ox,Oy-180,Ox,Oy-155,WHITE,!BFINALRESULT);
	Rotate(-3.14159*(i-valueofdirection*2)*0.5/180,Ox,Oy);
	}
	else if(i%20==0)
	{
	Line(Ox,Oy-180,Ox,Oy-162,WHITE,!BFINALRESULT);
	Rotate(-3.14159*(i-valueofdirection*2)*0.5/180,Ox,Oy);
	}
	else if (i%10==0)
	{
	Line(Ox,Oy-180,Ox,Oy-170,PURPLE1,!BFINALRESULT);
	Rotate(-3.14159*(i-valueofdirection*2)*0.5/180,Ox,Oy);
	}
}
////////////////////////////////////////////////E-S-W-N
PutChar('N',Ox-8,Oy-155,WHITE,!BFINALRESULT);
Rotate(-(0-valueofdirection)*3.14159/180,Ox,Oy);

PutChar('E',Ox-8,Oy-155,WHITE,!BFINALRESULT);
Rotate(-(90-valueofdirection)*3.14159/180,Ox,Oy);

PutChar('S',Ox-8,Oy-155,WHITE,!BFINALRESULT);
Rotate(-(180-valueofdirection)*3.14159/180,Ox,Oy);

PutChar('W',Ox-8,Oy-155,WHITE,!BFINALRESULT);
Rotate(-(270-valueofdirection)*3.14159/180,Ox,Oy);

PutChar('3',Ox-8,Oy-155,WHITE,!BFINALRESULT);
Rotate(-(30-valueofdirection)*3.14159/180,Ox,Oy);

PutChar('6',Ox-8,Oy-155,WHITE,!BFINALRESULT);
Rotate(-(60-valueofdirection)*3.14159/180,Ox,Oy);

StringOut("12",Ox-13,Oy-155,WHITE,!BFINALRESULT);
Rotate(-(120-valueofdirection)*3.14159/180,Ox,Oy);

StringOut("15",Ox-13,Oy-155,WHITE,!BFINALRESULT);
Rotate(-(150-valueofdirection)*3.14159/180,Ox,Oy);

StringOut("21",Ox-13,Oy-155,WHITE,!BFINALRESULT);
Rotate(-(210-valueofdirection)*3.14159/180,Ox,Oy);

StringOut("24",Ox-13,Oy-155,WHITE,!BFINALRESULT);
Rotate(-(240-valueofdirection)*3.14159/180,Ox,Oy);

StringOut("30",Ox-13,Oy-155,WHITE,!BFINALRESULT);
Rotate(-(300-valueofdirection)*3.14159/180,Ox,Oy);

StringOut("33",Ox-13,Oy-155,WHITE,!BFINALRESULT);
Rotate(-(330-valueofdirection)*3.14159/180,Ox,Oy);

//////////////////////////////////////////////ADFdegree
Line(Ox,Oy-155,Ox,Oy-125,WHITE,!BFINALRESULT);
Line(Ox-15/tan(3.14159*70/180),Oy-140,Ox,Oy-155,WHITE,!BFINALRESULT);
Line(Ox,Oy-155,Ox+15/tan(3.14159*70/180),Oy-140,WHITE,!BFINALRESULT);
PutChar(1?'T':'A',Ox-8,Oy-123,WHITE,!BFINALRESULT);
Rotate(-(valueofBRG-valueofdirection)*3.14159/180,Ox,Oy);

//////////////////////////////////////////////45degree
Line(Ox,Oy-180,Ox-20/tan(60*3.14159/180),Oy-180-20,WHITE,BFINALRESULT);
Line(Ox-20/tan(60*3.14159/180),Oy-180-20,Ox+20/tan(60*3.14159/180),Oy-180-20,WHITE,BFINALRESULT);
Line(Ox+20/tan(60*3.14159/180),Oy-180-20,Ox,Oy-180,WHITE,BFINALRESULT);

Line(Ox,Oy-180,Ox-12/tan(60*3.14159/180),Oy-180-12,PURPLE1,!BFINALRESULT);
Line(Ox-12/tan(60*3.14159/180),Oy-180-12,Ox+12/tan(60*3.14159/180),Oy-180-12,PURPLE1,!BFINALRESULT);
Line(Ox+12/tan(60*3.14159/180),Oy-180-12,Ox,Oy-180,PURPLE1,!BFINALRESULT);
Rotate(-3.14159*45/180,Ox,Oy);

Line(Ox,Oy-180,Ox-12/tan(60*3.14159/180),Oy-180-12,PURPLE1,!BFINALRESULT);
Line(Ox-12/tan(60*3.14159/180),Oy-180-12,Ox+12/tan(60*3.14159/180),Oy-180-12,PURPLE1,!BFINALRESULT);
Line(Ox+12/tan(60*3.14159/180),Oy-180-12,Ox,Oy-180,PURPLE1,!BFINALRESULT);
Rotate(-3.14159*135/180,Ox,Oy);

Line(Ox,Oy-180,Ox-12/tan(60*3.14159/180),Oy-180-12,PURPLE1,!BFINALRESULT);
Line(Ox-12/tan(60*3.14159/180),Oy-180-12,Ox+12/tan(60*3.14159/180),Oy-180-12,PURPLE1,!BFINALRESULT);
Line(Ox+12/tan(60*3.14159/180),Oy-180-12,Ox,Oy-180,PURPLE1,!BFINALRESULT);
Rotate(-3.14159*225/180,Ox,Oy);

Line(Ox,Oy-180,Ox-12/tan(60*3.14159/180),Oy-180-12,PURPLE1,!BFINALRESULT);
Line(Ox-12/tan(60*3.14159/180),Oy-180-12,Ox+12/tan(60*3.14159/180),Oy-180-12,PURPLE1,!BFINALRESULT);
Line(Ox+12/tan(60*3.14159/180),Oy-180-12,Ox,Oy-180,PURPLE1,!BFINALRESULT);
Rotate(-3.14159*315/180,Ox,Oy);
////////////////////////////////////////////////////SelectedWay
Line(Ox-15/tan(3.14159*70/180),Oy-125,Ox,Oy-140,WHITE,!BFINALRESULT);
Line(Ox,Oy-140,Ox+15/tan(3.14159*70/180),Oy-125,WHITE,!BFINALRESULT);
Line(Ox+15/tan(3.14159*70/180),Oy-125,Ox-15/tan(3.14159*70/180),Oy-125,WHITE,!BFINALRESULT);
Line(Ox,Oy-125,Ox,Oy-80,WHITE,!BFINALRESULT);
Line(Ox-20/tan(3.14159*60/180),Oy-60,Ox,Oy-80,WHITE,!BFINALRESULT);
Line(Ox,Oy-80,Ox+20/tan(3.14159*60/180),Oy-60,WHITE,!BFINALRESULT);
Line(Ox+20/tan(3.14159*60/180),Oy-60,Ox-20/tan(3.14159*60/180),Oy-60,WHITE,!BFINALRESULT);
Line(Ox,Oy+60,Ox,Oy+140,WHITE,!BFINALRESULT);
/*Line(Ox+g_nParameters[12],Oy-50,Ox+g_nParameters[12],Oy+50,WHITE,!BFINALRESULT);*/
Rotate(-(valueofselectdirection-valueofdirection)*3.14159/180,Ox,Oy);
PutChar('#',Ox,Oy-g_nSkyEarthBallRadius*2/3-12,PURPLE1,!BFINALRESULT);
PutChar('#',Ox,Oy-g_nSkyEarthBallRadius/3-12,PURPLE1,!BFINALRESULT);
PutChar('#',Ox,Oy+g_nSkyEarthBallRadius/3-12,PURPLE1,!BFINALRESULT);
PutChar('#',Ox,Oy+g_nSkyEarthBallRadius*2/3-12,PURPLE1,!BFINALRESULT);
Rotate(-(valueofselectdirection-valueofdirection+90)*3.14159/180,Ox,Oy);


////////////////////////////////////////////////////DiamandScale
HollowRect(Ox+196,Oy-2,Ox+216,Oy+2,WHITE,BFINALRESULT);
PutChar('#',Ox+200,Oy-g_nSkyEarthBallRadius*2/3-12,WHITE,BFINALRESULT);
PutChar('#',Ox+200,Oy-g_nSkyEarthBallRadius/3-12,WHITE,BFINALRESULT);
PutChar('#',Ox+200,Oy+g_nSkyEarthBallRadius/3-12,WHITE,BFINALRESULT);
PutChar('#',Ox+200,Oy+g_nSkyEarthBallRadius*2/3-12,WHITE,BFINALRESULT);
Line(Ox+200+6,Oy-13-g_nParameters[22],Ox+200+14,Oy-g_nParameters[22],RED,BFINALRESULT);
Line(Ox+200+14,Oy-g_nParameters[22],Ox+200+6,Oy+13-g_nParameters[22],RED,BFINALRESULT);
Line(Ox+200+6,Oy+13-g_nParameters[22],Ox+200-2,Oy-g_nParameters[22],RED,BFINALRESULT);
Line(Ox+200-2,Oy-g_nParameters[22],Ox+200+6,Oy-13-g_nParameters[22],RED,BFINALRESULT);
////////////////////////////////////////////////////////////
StringOut("BRG  TTG",500,85,WHITE,BFINALRESULT);
Int2Str(valueofBRG,500,110,WHITE,BFINALRESULT,0);
Int2Str(g_nParameters[15],562,110,WHITE,BFINALRESULT,0);
//StringOut("HDG",562,430,WHITE,BFINALRESULT);
//Int2Str(valueofselectdirection,562,455,WHITE,BFINALRESULT,0);
StringOut("EVSD",ROW4,TOP,GREEN1,BFINALRESULT);
StringOut("EHSD",ROW5,TOP,GREEN1,BFINALRESULT);
StringOut("DIST",53,85,WHITE,BFINALRESULT);
//Int2Str(g_nParameters[11],53,110,WHITE,BFINALRESULT,0);
StringOut("CH",53,135,WHITE,BFINALRESULT);
//Int2Str(g_nParameters[11],80,135,WHITE,BFINALRESULT,0);
StringOut(1?"TCN":"ADF",53,250,WHITE,BFINALRESULT|VERTICALSTRING);
StringOut(1?"LIN":"ANG",90,250,WHITE,BFINALRESULT|VERTICALSTRING);
//StringOut("CRS",53,430,WHITE,BFINALRESULT);
//Int2Str(valueofselectway,53,455,WHITE,BFINALRESULT,0);

switch(g_ndirection)
{
case 0:if((valueofdirection-=0.2)<0){g_ndirection++;};break;
case 1:if((valueofdirection+=0.2)>360) {g_ndirection++;};break;
case 2:if((valueofdirection-=0.2)<300){g_ndirection++;};break;
case 3:if((valueofdirection+=0.2)>360) {g_ndirection++;};break;
default:g_ndirection=0;break;
}
return;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -