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

📄 testmain.cpp

📁 tornado2.0 for PPC VxWorks socket 源代码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	mastercontrol->SetText("■");
	zhunbeiwan->SetText("■");
}


void TestWindow::entrydatapage()
{


}
	



 void TestWindow:: beginAVRhui() //与AVR通信 回握手信号0x0f
 	{
 		int sendlong=0;
 		char send[1]={0x0f};
 		
 		if (FD_ISSET (fdCom1, &WriteFds))//串口2
		{	
			while(1)
			{
		  	sendlong=write(fdCom1,send,1);
		  	if(sendlong==1)
		  		break;
		  }
		}	
 		
 	}



void SystemRealTimeData:: AVRrcv_message(unsigned char *rcvString,int AVRreaLen)
	{ int a=rcvString[0]^rcvString[1];
		
  if((rcvString[0]==0xf0)&&(rcvString[1]==0x55)&&(a==rcvString[2]))
	  {    
	   	systemRealTimeData->AVRdisplay_message();	
	  }
  }
  




void SystemRealTimeData:: AVRdisplay_message()
  {
    systemRealTimeData->YuXingbuhuo->SetText("■■■■");	
	  systemRealTimeData->YuXingGenZ->SetText("■");
	  systemRealTimeData->YuXingDuiZ->SetText("■");
	  systemRealTimeData->YuXingTongX->SetText("■");
	  systemRealTimeData->YuXingTuX->SetText("■");
	  systemRealTimeData->YuXingShuJ->SetText("■");
	  systemRealTimeData->YuXingDaiJ->SetText("■■■■");	
  }
  	



mystring::mystring(int left, int top, int width, const ZafIChar *text,int maxLength):
ZafString(left, top,  width,  text, maxLength)
{
	SetCoordinateType(ZAF_PIXEL);
}

/******************************MultiCast test End***************************************/

/************************multiProtocal test Begin***************************************/
/*******************************************************************************************
/* multiProtocal test window,  construct function*/
/******************************************************************************************/
SystemRealTimeData::SystemRealTimeData(ZafIChar *name, ZafObjectPersistence &persist):ZafDialogWindow(name, persist)
{
	longitude=DynamicPtrCast(GetObject(ZAF_ITEXT("longitude")),ZafString);
	latitude=DynamicPtrCast(GetObject(ZAF_ITEXT("latitude")),ZafString);
  pianhangjiao=DynamicPtrCast(GetObject(ZAF_ITEXT("pianhangjiao")),ZafString);
  henggunjiao=DynamicPtrCast(GetObject(ZAF_ITEXT("henggunjiao")),ZafString);
	pitchingAngle=DynamicPtrCast(GetObject(ZAF_ITEXT("pitchingAngle")),ZafString);
	dongspeed=DynamicPtrCast(GetObject(ZAF_ITEXT("dongspeed")),ZafString);
	height=DynamicPtrCast(GetObject(ZAF_ITEXT("height")),ZafString);
	beispeed=DynamicPtrCast(GetObject(ZAF_ITEXT("beispeed")),ZafString);
	tianspeed=DynamicPtrCast(GetObject(ZAF_ITEXT("tianspeed")),ZafString);	
	
	longitude->SetText("45");
	latitude->SetText("45");
	height->SetText("10");
	pianhangjiao->SetText("30");
	henggunjiao->SetText("30");
	pitchingAngle->SetText("30");
	dongspeed->SetText("100");
	beispeed->SetText("100");
	tianspeed->SetText("100");	
		
	Cufang=DynamicPtrCast(GetObject(ZAF_ITEXT("Cufang")),ZafString);
	Cuyang=DynamicPtrCast(GetObject(ZAF_ITEXT("Cuyang")),ZafString);	
	Cuftuo=DynamicPtrCast(GetObject(ZAF_ITEXT("Cuftuo")),ZafString);
	Cuytuo=DynamicPtrCast(GetObject(ZAF_ITEXT("Cuytuo")),ZafString);	
		
	Jftuo=DynamicPtrCast(GetObject(ZAF_ITEXT("Jftuo")),ZafString);
	Jytuo=DynamicPtrCast(GetObject(ZAF_ITEXT("Jytuo")),ZafString);	
	
	
	Cufang->SetText("Cufang");
	Cuyang->SetText("Cuyang");
	Cuftuo->SetText("Cuftuo");
	Cuytuo->SetText("Cuytuo");	
	
	Jftuo->SetText("Jftuo");
	Jytuo->SetText("Jytuo");
	
	YuXingbuhuo=DynamicPtrCast(GetObject(ZAF_ITEXT("YuXingbuhuo")),ZafString);	
	YuXingGenZ=DynamicPtrCast(GetObject(ZAF_ITEXT("YuXingGenZ")),ZafString);	
	YuXingDuiZ=DynamicPtrCast(GetObject(ZAF_ITEXT("YuXingDuiZ")),ZafString);	
	YuXingTongX=DynamicPtrCast(GetObject(ZAF_ITEXT("YuXingTongX")),ZafString);	
	YuXingTuX=DynamicPtrCast(GetObject(ZAF_ITEXT("YuXingTuX")),ZafString);	
	YuXingShuJ=DynamicPtrCast(GetObject(ZAF_ITEXT("YuXingShuJ")),ZafString);	
	YuXingDaiJ=DynamicPtrCast(GetObject(ZAF_ITEXT("YuXingDaiJ")),ZafString);
}




 void TestWindow:: begin_send() //给APT发握手信号0X55
 	{
 		int sendlong=0;
 		char send[1]={0x55};
 		
 		if (FD_ISSET (fdCom2, &WriteFds))//串口3
		{	
			while(1)
			{
		  	sendlong=write(fdCom2,send,1);
		  	if(sendlong==1)
		  		break;
		  }
		}
		
 	}	
  


ZafEventType SystemRealTimeData::Event(const ZafEventStruct &event)//接收从窗口发出的消息;
{
	ZafEventType ccode = event.type;
	switch(ccode)
	{
		case ZHUANMESSAGE_SEND:
			send_message();			//主控计算机向机载稳定系统传输信息
			break;	
		default:
			ccode = ZafWindow::Event(event);
	}
	return (ccode);
	
}


float SystemRealTimeData:: trans_int_float(int x,int y,float z)  //整型转换浮点型
 { double dd;
   float result;
   dd=x*z;
   result=(float)(dd/y);
   return result;
 }

int trans_float_int(float x,int y,int z)  //浮点数转换整型子程
 {
  long ll;
  int result;
  ll=x*z;
  result=(int)(ll/y);
  return result;
 }


void SystemRealTimeData:: send_message()
{
	struct sendMessage	messageCont1;
 char CuSend[7];
	
	/* Initialize the message content */
	messageCont1.messageHead  = 0x12;		//第1字节: 信息头(0xcc)
	messageCont1.messageCmd	 = 0x34;		//第2字节: 命令字?????
	messageCont1.driverAngleX = 0x5678;		//第3~4字节: 驱动角度X
	messageCont1.driverAngleY = 0x9abc;		//第5~6字节: 驱动角度Y
	messageCont1.crc = (messageCont1.messageCmd) ^ (messageCont1.driverAngleX) ^ (messageCont1.driverAngleY);
	
	CuSend[0]=messageCont1.messageHead;
	CuSend[1]=messageCont1.messageCmd;
	CuSend[2]=messageCont1.driverAngleX&0xff;	
	CuSend[3]=(messageCont1.driverAngleX >>8)&0xff;
	CuSend[4]=messageCont1.driverAngleY&0xff;	
	CuSend[5]=(messageCont1.driverAngleY>>8)&0xff;
	CuSend[6]=CuSend[0]^CuSend[1]^CuSend[2]^CuSend[3]^CuSend[4]^CuSend[5];
	
	if(((zhuantaifalong = write(fdCom1,CuSend,7))==7)>0)
			{
			  if(zhuantaifalong==7)
			  	printf("zhuan tai fa  good!");
			  else 
			  	printf("zhuan tai fa wrong!");
			}
}

void SystemRealTimeData:: rcv_message(unsigned char *rcvString,int readLen)
{ 
	   		strcpy(message,rcvString);
	      systemRealTimeData->display_message();
}

void SystemRealTimeData:: display_message()
{
	struct rcvMessage	messageCont;/*将数据显示到粗精转台界面*/
	char buffer[64];
	int i1,i2,i3,i4,i5,i6; 
    i1=i2=i3=i4=i5=i6=0;
	float j1,j2,j3,j4,j5,j6; 
    j1=j2=j3=j4=j5=j6=0.0;
    
  unsigned char *p=message;
   
   unsigned int *messagehead=(unsigned int *)p;//信息头
	                                 //GPS数据
		double *jingdu=(double *)(p+2);//经度
		double *weidu=(double *)(p+10);//纬度
		float  *pianHangjiao=(float  *)(p+18);//偏航角
		float  *fuyangjiao=(float  *)(p+22);//俯仰角
		float  *hengGunjiao=(float  *)(p+26);//横滚角
		float  *gaodu=(float  *)(p+30);//高度
		float  *dongsudu=(float  *)(p+34);//东向速度
		float  *beisudu=(float  *)(p+38);//北向速度
		float  *tiansudu=(float  *)(p+42);//天向速度

	messageCont.custate		= message[46] ;//状态字(0x01-归零,0x03-扫描捕获,
	                                     //0x04-随动指向,0x06-稳定跟踪,0x05-手动)
	messageCont.cufangwjiao	= ( (message[47] << 8) | message[48]);//粗转台方位角度
	messageCont.cufuyjiao	= ( (message[49] << 8) | message[50]);//粗转台俯仰角角度
	messageCont.cufangwtuoba		= ( (message[51] << 8) | message[52]);//粗转台方位脱靶量
	messageCont.cufuytuoba		= ( (message[53] << 8) | message[54]);//粗转台俯仰脱靶量
	
	messageCont.saomiaostate		= message[55] ;//扫描捕获过程结束报告(1-扫描结束)
	
	messageCont.jingstate		= message[56] ;//状态字(0x95-稳定跟踪,0x85-不稳定跟踪)
	messageCont.jingfangwtuoba	= ( (message[57] << 8) | message[57]);//精转台方位脱靶量
	messageCont.jingfuytuoba	= ( (message[59] << 8) | message[60]);//精转台俯仰脱靶量
    
  i1=(int)messageCont.cufangwjiao;
	i2=(int)messageCont.cufuyjiao;
	i3=(int)messageCont.cufangwtuoba;
	i4=(int)messageCont.cufuytuoba;
	i5=(int)messageCont.jingfangwtuoba;
	i6=(int)messageCont.jingfuytuoba;
	
	j1=SystemRealTimeData:: trans_int_float(i1,0x4000,90.0);
	j2=SystemRealTimeData:: trans_int_float(i2,0x4000,90.0);
	j3=SystemRealTimeData:: trans_int_float(i3,0x4000,90.0);
  j4=SystemRealTimeData:: trans_int_float(i4,0x4000,90.0);
  j5=SystemRealTimeData:: trans_int_float(i5,0x4000,90.0);	
  j6=SystemRealTimeData:: trans_int_float(i6,0x4000,90.0);
  		
	
		 sprintf(buffer,"%12.8f\n",*jingdu);//经度
		systemRealTimeData->longitude->SetText(buffer);
		
		sprintf(buffer,"%12.7f\n",*weidu);//纬度
		systemRealTimeData->latitude->SetText(buffer);
		
		sprintf(buffer,"%8.3f\n",*pianHangjiao);//偏航角
		systemRealTimeData->pianhangjiao->SetText(buffer);
		
		sprintf(buffer,"%8.3f\n",*fuyangjiao);//俯仰角
		systemRealTimeData->pitchingAngle->SetText(buffer);
		
		sprintf(buffer,"%8.3f\n",*hengGunjiao);//横滚角
		systemRealTimeData->henggunjiao->SetText(buffer);
		
		sprintf(buffer,"%12.3f\n",*gaodu);//高度
		systemRealTimeData->height->SetText(buffer);
		
		sprintf(buffer,"%8.3f\n",*dongsudu);//东向速度
		systemRealTimeData->dongspeed->SetText(buffer);
		
		sprintf(buffer,"%8.3f\n",*beisudu);//北向速度
		systemRealTimeData->beispeed->SetText(buffer);
		
		sprintf(buffer,"%8.3f\n",*tiansudu);//天向速度
		systemRealTimeData->tianspeed->SetText(buffer);
		
		 
		 
		sprintf(buffer,"%f\n",j1);//粗转台方位角度
		systemRealTimeData->Cufang->SetText(buffer);
	
		sprintf(buffer,"%f\n",j2);//粗转台俯仰角角度
		systemRealTimeData->Cuyang->SetText(buffer);
	
    sprintf(buffer,"%f\n",j3);//粗转台方位脱靶量
		systemRealTimeData->Cuftuo->SetText(buffer);
	
		sprintf(buffer,"%f\n",j4);//粗转台俯仰脱靶量
		systemRealTimeData->Cuytuo->SetText(buffer);
		
		
		
		sprintf(buffer,"%f\n",j3);//精转台方位脱靶量
		systemRealTimeData->Jftuo->SetText(buffer);
	
		sprintf(buffer,"%f\n",j4);//精转台俯仰脱靶量
		systemRealTimeData->Jytuo->SetText(buffer);
	
}

void SystemRealTimeData:: cudisplay_message()
{
		  
	
}
void SystemRealTimeData:: jingdisplay_message()
{
		if(message[54]==0x95)//精转台稳定跟踪
			{
				
				
			} 
			
		else 
			if(message[54]==0x85) //精转台不稳定跟踪
			{
				
			}
	
}



SystemRealTimeData::~SystemRealTimeData(void)
{
	
}


⌨️ 快捷键说明

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