基于MFC的某雷达测试显控软件设计

发表时间:2021/7/12   来源:《科学与技术》2021年3月第8期   作者:王震,石晨方,尚明珠
[导读] 本论文基于MFC技术、ARINC 453和ARINC 429通信原理,
        王震,石晨方,尚明珠
        陕西长岭电子科技有限责任公司,宝鸡 721000
        摘要:本论文基于MFC技术、ARINC 453和ARINC 429通信原理,利用可视化编程VC++,从工业控制上位机软件的特点出发,按照功能分为不同的模块,设计完成一款适用于某雷达测试时使用的显控软件。
        关键词:MFC;ARINC 453;ARINC 429;显示和控制 ;
        1.引言
        现代飞机上使用统一处理器对飞机各种航电设备信息进行统一处理,并将功能相同或相近的设备组合在一起,在显示器上综合显示相关参数及雷达回波画面,称之为综合航电系统,故对于雷达研发及生产厂家,研制适用于其研发及生产雷达的航电显控仪器显得十分必要。
        对于航电显控仪器需开发一款用于雷达控制与雷达回波画面显示的上位机软件,为快速实现该上位机软件的开发,必须选用一种适合该仪器且高效的开发平台,由于Visual  C++与Windows操作系统结合简单且最为紧密,并且因其提供的MFC类库具有功能强大、易操作、开发效率高的优点。MFC(Microsoft Foundation Class 微软基础类库)是由一组相互关联相互支持的类构建的应用程序模型,它采用面向对象的思想用C++语言封装了Windows平台的API函数,使得应用程序开发可以在继承前人工作的基础开发各自所需的应用软件,加快了开发进度,增加了应用程序的可靠性和可维护性。
2. 测试显控软件的实现方法
    2.1雷达回波画面显示设计
    该雷达回波画面包括以黑色、绿色、黄色和红色为主的彩带,并包含量程及扫描角度等信息,通过接收到的ARINC 453及ARINC 429数据,经过对数据的解析,完成雷达画面的显示,其实现过程如下:
    在软件打开时,进行初始化,对PCI板卡驱动初始化设置,并获取画面显示区域句柄,创建与显示区域兼容的内存设备:
CWnd * pWnd = GetDlgItem(IDC_STATIC_ReceiveDisplay1);
    pDC=pWnd->GetDC();
    pWnd->GetClientRect(&static_rect);
    MemDC.CreateCompatibleDC(pDC);   
    MemBitmap.CreateCompatibleBitmap(pDC,static_rect.Width(),static_rect.Height());
    pOldBit = MemDC.SelectObject(&MemBitmap);
首先通过底层PCI总线驱动程序读取并解析外部ARINC453及ARINC 429数据:
Pci_ReadWxData(&Device,stepdata_flag,0xf0,1);
ReadFile(hcom,recvdata1,4,&wCount,NULL);
     for(int j=0;j<256;j++)
     {
       recvdata2[j]=recvdata1[j];
       str1.Format ("%02X ",recvdata1[j]);
       if((j+1)%16==0 )
       {
        str=str+str1+"\r\n";
       }
       else
       str+=str1;
     }
        其次,使用以下函数绘出雷达显示区域弧形及等方位径向线条,用于雷达量程及方位角度的标校:
MemDC.Arc(200-42, 260-42, 200+42, 260+42,382,155,18,155);
MemDC.MoveTo(200,260);
        MemDC.LineTo(200,49)。
        最后,将解析得到的ARINC 453数据通过下列程序完成雷达回波画面的显示,显示模拟结果如图1所示:
        void txdisplayxxx()
        {
            for(j=0;j<512;j+=4)
            {   
                datay=(*(arr+count*512+(j+start_bin)%512))-data[8];       
                if(datay>=50)
                {
                    CPen br11,*p_br11;
                    br11.CreatePen(PS_DASH,5,RGB(255,0,255));
                    p_br11=MemDC.SelectObject(&br11);
                    MemDC.MoveTo(xx1[count][j],yy1[count][j]);
                    MemDC.LineTo(xx2[count][j],yy2[count][j]);
                    MemDC.SelectObject(p_br11);
                    br11.DeleteObject;
                }
            }   

        该软件具备双画面显示功能,在雷达回波画面显示设计过程中,使用多媒体定时器(精确到ms级)以及双缓冲绘图技术,保证了画面显示的实时性以及加快绘图的速度。
2.2  雷达控制部分设计
    雷达控制部分主要包括对雷达工作模式、扫描区域、增益以及量程等状态的设置,该部分使用MFC类库中的基本控件:按钮控件、文本框控件、列表类控件及选择类控件,本设计中雷达工作模式包括4种,从人机交互等方面综合考虑,选择使用4个按钮控件来实现工作模式的切换且4个按钮之间互斥,按照ARINC 429数据格式要求,对获得的雷达状态设置数据进行组帧,发送至外部待测设备。
3.结语
    本文介绍了基于MFC设计的一种雷达显示控制软件,使用MFC基础类库,极大地减少了软件开发的时间,减轻设计人员的工作负担,避免了一些不必要的工作,该显控软件已虽雷达完成相关测试实验,经验证可行,在后期使用中,该软件稳定实用,为测试人员提供了良好的人机测试体验。
参考文献
侯俊杰 深入浅出Windows MFC 武汉 华中理工大学出版社 2001
求是科技 Visual C++6.0程序设计与开发技术大全 人民邮电出版社 2004
投稿 打印文章 转寄朋友 留言编辑 收藏文章
  期刊推荐
1/1
转寄给朋友
朋友的昵称:
朋友的邮件地址:
您的昵称:
您的邮件地址:
邮件主题:
推荐理由:

写信给编辑
标题:
内容:
您的昵称:
您的邮件地址: