int num_xianshi = 0;
CString strTempInst[5] = { "" };
afx_msg LRESULT CControl_FoDlg::OnDisplay(WPARAM wParam, LPARAM lParam)
{
UpdateData(true);
UpdateData(false);
if (display_flag == 0)
{
//显示发送指令;
Buffer2str();
Buffer2str2();
switch (showflag)
{
case 3:
Buffer2str3();
break;
case 4:
Buffer2str4();
break;
case 5:
Buffer2str5();
break;
default:
break;
}
//显示接收指令;
//查看反馈;
int size = 0;
size = m_Com1.Read((unsigned char*)SR, 1000);
CString temp1, temp2, temp3, temp4, temp5, temp6, temp7, temp8, temp9;
CString fenge = "-";
BYTE temparray[2] = { 0 };
int i = 0;
short tempnum;
float tempnum2;
if (size>0)
{
if (SR[0] == 0xAA && SR[19] == 0xBB)
{
if (SR[13] == 1)
{
temp1 = "激光开启";
tempnum = (SR[14] << 8) | (SR[15]); //tempnum为2字节16位,SR[14]左移8位,按位或SR[15]
tempnum2 = tempnum*1.0 / 10;
temp4.Format(_T("目标距离= %g"), tempnum2);
}
else if (SR[13] == 0)
{
temp1 = "激光未开启";
temp4 = "";
}
tempnum = (SR[1] << 8) | (SR[2]);
tempnum2 = tempnum*1.0 / 10;
temp2.Format(_T("航向框架角= %g"), tempnum2);
tempnum = (SR[3] << 8) | (SR[4]);
tempnum2 = tempnum*1.0 / 10;
temp3.Format(_T("俯仰框架角= %g"), tempnum2);
tempnum = (SR[5] << 8) | (SR[6]);
tempnum2 = tempnum*1.0 / 100;
temp5.Format(_T("航向角速度= %g"), tempnum2);
tempnum = (SR[7] << 8) | (SR[8]);
tempnum2 = tempnum*1.0 / 100;
temp6.Format(_T("俯仰角速度= %g"), tempnum2);
tempnum = (SR[9] << 8) | (SR[10]);
tempnum2 = tempnum*1.0 / 100;
temp7.Format(_T("载机GPS_N= %g"), tempnum2);
tempnum = (SR[11] << 8) | (SR[12]);
tempnum2 = tempnum*1.0 / 100;
temp8.Format(_T("载机GPS_E= %g"), tempnum2);
tempnum = (SR[16] << 8) | (SR[17]);
tempnum2 = tempnum*1.0 / 100;
temp9.Format(_T("载机GPS_H= %g"), tempnum2);
if (num_xianshi<5)
{
strTempInst[num_xianshi] = temp2 + " " + temp3 + " " + temp5 + " " + temp6 + " " + temp7 + " " + temp8 + " " + temp9 + " " + temp1 + " " + temp4;
}
else
{
strTempInst[0] = strTempInst[1];
strTempInst[1] = strTempInst[2];
strTempInst[2] = strTempInst[3];
strTempInst[3] = strTempInst[4];
strTempInst[4] = temp2 + " " + temp3 + " " + temp5 + " " + temp6 + " " + temp7 + " " + temp8 + " " + temp9 + " " + temp1 + " " + temp4;
}
num_xianshi++;
}
m_FanKui_XianShi.ResetContent();
int i = 0;
for (i = 0; i < 5; i++)
{
//m_FanKui_XianShi.AddString(strTempInst[i]);
((CComboBox*)GetDlgItem(IDC_COMBO_XianShi))->AddString(strTempInst[i]); //正确,效果一样
//((CComboBox*)GetDlgItem(IDC_COMBO_XianShi))->GetWindowText(strTempInst[i]);
}
} //if()size;
//显示航向框架角
tempnum = (SR[1] << 8) | (SR[2]);
tempnum2 = tempnum*1.0 / 10;
temp2.Format("%g", tempnum2);
GetDlgItem(IDC_EDIT7)->SetWindowText(temp2);
//显示俯仰框架角
tempnum = (SR[3] << 8) | (SR[4]);
tempnum2 = tempnum*1.0 / 10;
temp3.Format(_T("%g"), tempnum2);
GetDlgItem(IDC_EDIT8)->SetWindowText(temp3);
//显示载机经度
tempnum = (SR[9] << 8) | (SR[10]);
tempnum2 = tempnum*1.0 / 10;
temp7.Format(_T("%g"), tempnum2);
GetDlgItem(IDC_EDIT11)->SetWindowText(temp7);
//显示载机纬度
tempnum = (SR[11] << 8) | (SR[12]);
tempnum2 = tempnum*1.0 / 10;
temp8.Format(_T("%g"), tempnum2);
GetDlgItem(IDC_EDIT12)->SetWindowText(temp8);
//显示载机高度
tempnum = (SR[16] << 8) | (SR[17]);
tempnum2 = tempnum*1.0 / 10;
temp9.Format(_T("%g"), tempnum2);
GetDlgItem(IDC_EDIT13)->SetWindowText(temp9);
//显示目标距离
tempnum = (SR[14] << 8) | (SR[15]);
tempnum2 = tempnum*1.0 / 10;
temp4.Format(_T("%g"), tempnum2);
GetDlgItem(IDC_EDIT17)->SetWindowText(temp4);
}
UpdateData(false);
return -1;
//return 0;
}