文章编号:1009-8119(2005)12-0033-03一种基于Windows系统的雷达显控终端软件设计郝春环高梅国(北京理工大学电子工程系,北京 100081)摘要介绍了一种在Windows 2000下雷达显控终端软件的设计,本软件采用图形化用户界面,航迹显示具有缩放功能,且操作方便、灵活。
详细介绍了图形缩放的原理及实现。
关键词显控终端,人机交互,图形用户界面Software Design for Radar Display and Control Terminal Based on Windows SystemHao Chunhuan Gao Meiguo(Electronic Engineering Department , Beijing Institute of technology,Beijing 100081)Abstrac t The paper introduces the software design for radar display and control terminal under Windows 2000 system . Using graphical user interface , the software is convenient and flexible in operation, and it has graphics zoom function for trace display. A particular description for the graphics zoom principle and method is given in the paper.Keywords Display and control terminal, Man machine interaction,GUI1 引言雷达显控终端是操作员与雷达系统进行交互的一个平台,主要负责显示雷达信号处理机输出的目标信息,供操作员观察,并且向信号处理机传送控制命令,实现操作员对雷达工作模式的切换和对雷达工作状态的监控。
有的显控终端还负责完成雷达数据的二次处理。
近年来,随着微电子技术以及软件技术的飞速发展,人们开始大量采用通用微型计算机来完成雷达显控终端的工作。
基于通用微机的数字化雷达显控终端,利用通用显卡的图形加速功能,而不需要设计专用的显示控制电路,既简化了开发过程,又明显改善了显示性能;优秀的操作系统使得显控系统更健壮,操作更方便。
本文设计的显控终端软件就是运行在一台通用微机上的。
考虑到显示的直观和交互的灵活,选择在Windows下开发程序。
随着交互事件的日益频繁,已往面向过程的程序设计已经表现出很大的不足:交互事件的随机性使得在等待某一事件(比如鼠标操作)的发生时,会将此时发生的另一些事件丢失,从而不能保证交互的正常完成。
而Windows程序是基于消息、事件驱动的,可以灵活的响应鼠标、键盘等发出的消息,可靠的完成交互任务。
本文介绍的软件是在Win2000操作系统下,采用Visual C++开发的。
2 系统结构系统用一台通用微机(简称主机)来进行显控终端的处理(如图1中虚线框部分)。
显控终端软件就运行在这台主机上。
用来完成雷达信号处理工作的是TMS320C6x系列DSP信号处理板。
DSP处理板作为一个PCI设备与主机(显控终端)接口,采用PLX9054 PCI接口芯片将DSP处理板设备映射到主机总线的地址空间。
系统在DSP 的片内存储空间中开辟出一块缓冲区,用以和主机进行数据交换。
雷达工作时,主机从信号处理板读取目标信息数据,经过雷达显控终端软件处理后显示在显示器上;另一方面接受鼠标、键盘传来的控制消息,产生对雷达的控制指令传送给信号处理板。
图1系统结构3 软件设计3.1 设计的特点本显控终端的主要功能是显示目标信息和向雷达下达控制命令。
因此,为了完善此功能,软件的设计具有以下特点:1.采用图形化用户界面,显示直观,操作方便、灵活。
2.为了既能保证大的搜索范围的显示,又能细致地显示局部范围,程序设计了图形缩放功能,而且在缩放比例不变的情况下,还可以显示整个范围内的不同区域,即显示区域的平移。
在程序设计过程中,充分利用了基于消息、事件驱动的程序对事件响应的优势,由鼠标事件来输入缩放、平移、恢复原始比例等特殊显示信息。
例如:要求缩放时,将鼠标光标落在显示区内,按下右键拖动鼠标来确定要放大显示的范围;要求平移时,可以用左键操作选择要显示的区域的中心点。
另外,还可以通过设置快捷键迅速切换显示模式(比如是否显示历史航迹、是否显示目标号及其它信息等)。
3.利用Windows标准控件来进行控制操作,控制命令操作事件发生后,操作系统向程序发送一个消息,程序在消息响应函数中完成控制功能。
3.2 显示程序设计显控软件中,显示程序的设计相对比较复杂,因此下面重点介绍显示功能的设计。
为了直观的显示出目标的位置,该显控终端采用平面位置显示(PPI)。
显控程序要不断地将目标的最新位置及雷达天线当前时刻的指向显示在屏幕上,故显示过程是个动态循环过程。
其基本循环流程如图2:“擦除”操作将上一循环所画的图形从屏幕上抹去,以便画出信息更新后的图形。
所谓抹去就是使突显图形的像素的色彩变成与屏幕背景色素相同的色彩,有两种实现方法:第一,用背景色在待擦除的图形上再画一次;第二,用异或作图的方式在待擦除的图形上再画一次。
根据图形各自的特点,在处理被跟踪目标航迹更新时采用第一种方法,而在天线位置更新时采用第二种方法。
图2 显示循环流程“目标显示信息更新”负责从信号处理板读取目标信息数据和接收鼠标缩放消息输入,并以此更新用于显示的变量。
没有鼠标信息输入时按默认情况作全局显示。
“作图”模块按照更新后的目标显示信息进行作图。
“作图”模块是显示循环的核心,下面将单独介绍。
3.3 作图为了作图首先来确定坐标系。
雷达探测到并且传给显控终端的信息是以极坐标形式(径向距离R、方位角 )给出的。
为了实现显示的缩放功能,作图中还采用了直角坐标。
图3 坐标系依照习惯,以雷达作为坐标系的原点,极坐标系与直角坐标系的原点重合,如图3,以y 轴正方向为正北方,雷达天线按逆时针方向旋转。
极坐标与直角坐标的转换关系:x=R*sin θ y=R*cos θ(1))初始情况下,屏幕显示区显示整个雷达搜索范围,如图中的大正方形(点划线)。
当需要缩放操作时,先将鼠标光标放在屏幕PPI 显示区内,点住鼠标右键,拖动鼠标就会在鼠标的第一点处和鼠标当前点之间拉出一个矩形框(如图中的小虚线框)。
选定范围框后,释放鼠标右键,即完成了缩放操作,此时屏幕显示区将放大显示所选范围框内的目标,选择框的中心点也成为屏幕PPI 窗口的显示中心。
该操作实际上完成了两个功能:缩放比例的确定和PPI 中心的移动。
缩放比例的确定:取范围选择矩形框长的一边来换算缩放比例。
如果选择框(小虚线框)长的一边为w (单位是像素),屏幕PPI 显示窗(大正方形)边长m_a (单位像素),则缩放比例m_Amplify 由下式求得:m_Amplify =m_a/w (2)PPI 中心位置的更新:PPI 中心位置(图3中坐标原点)默认情况下是对准屏幕PPI 显示窗中心的,当发生缩放时,偏离了中心位置,x 、y 方向的偏移量分别为m_XOffset 、 m_YOffset ,单位米。
设范围选择框中心点屏幕坐标为(x,y ),PPI 显示窗中心点的屏幕坐标(m_cx, m_cy )。
根据屏幕PPI 显示窗边长m_a 与雷达实际搜索直径m_Range 的对应关系,可由下式计算出选择框中心点对应实际空间的点(X,Y), 单位米:am cxm x Range m X ___-=am cym y Range m Y ___-=(3)此时屏幕PPI 显示中心移至点(X,Y ),故要更新变量:X XOffset m =_Y Y O f f s e t m =_(4)显示区域的平移:当PPI 显示处于放大状态时,其只能显示整个区域的一部分,若要在当前缩放比例下显示其他的区域,可通过鼠标输入要显示区域的中心点的坐标信息,此操作实现的原理同缩放操作中“PPI 中心位置的更新”。
目标点迹的显示图 4 逻辑坐标系以上计算是以图3所示坐标系为参照的。
但由于VC的作图函数是建立在一个以像素为单位的逻辑坐标系(图4)中,所以,在作图中要将PPI显示的参数换算为以像素为单位的值。
该逻辑坐标系的原点是计算机显示屏幕的左上角,并且Y轴向下为正方向,X轴与Y轴的最大值为32767(像素)。
为了将直角坐标系中以米为单位标记的点转换为以屏幕像素为单位标记的点,定义一个全局比例尺m_GlobalScale,单位:像素/米,意义为以米为单位的实际距离对应的以象素为单位的屏幕距离。
若屏幕分辨率为800×600,则m_GlobalScale=600/m_Range。
需要注意的是,作图函数是面对整个坐标系的范围作图而非仅限于屏幕,进一步说,若所作图形落在屏幕内,则显示在屏幕上,落在屏幕外,即不在屏幕上显示,但在逻辑上是完成作图的,如图4中的圆,只有小部分落在了屏幕矩形内。
若将图4中的圆看作放大后的PPI同心圆,为了最终实现目标的显示,我们需要求出PPI原点(图中的圆心)在该逻辑坐标系中的坐标,定义为:x方向XCenter_PPI和y方向YCenter_PPI。
首先来看圆心与屏幕PPI显示区中心点的偏移量,定义为:x方向XOffset和y方向YOffset,意义如图中所示,单位为像素,解析式为:XOffset =m_XOffset*m_GlobalScale*m_Amplify;YOffset =m_YOffset*m_GlobalScale*m_Amplify; (5)这样,PPI原点在逻辑坐标系中的坐标可由下式得到:Xcenter _PPI=m_cx -XOffset;YCenter_PPI=m_cy+YOffset; (6)有了PPI原点的逻辑坐标,就可以将以PPI原点为参照的目标点迹的坐标换算为逻辑坐标了。
设报警信息中目标的径向距离m_Range_Targe(米),方位角m_Angle_Target(度),他们都是相对于PPI原点定义的。
那么,目标在逻辑坐标系中的坐标值(TXCenter,TYCenter)可由以下解析式得到:r=m_Range_Target*m_GlobalScale*m_Amplify;//r是目标径向距离,单位转换为像素o=m_Angle_Target*pi/180;//o是目标方位角,单位转化为弧度TXCenter=XCenter_PPI-r*sin(o);TYCenter=YCenter_PPI-r*cos(o);(7)至此,完成了目标在屏幕上的定位,再调用VC中的绘图函数即可绘制出目标点迹。