论文部分内容阅读
21世纪已进入信息时代,中国军事的国内外形势严峻。军用雷达在现代军事应用中发挥的作用不言而喻。雷达是一种获取军事信息的重要装备。它面临电子侦察、电子干扰、隐身、反辐射导弹等多重威胁,能够第一时间搜索目标并加以确认。所以增进强雷达抗侦察、抗干扰、精确性的能力,是现在雷达技术的主要发展方向。雷达在现代战争下被要求目标精确、实时、全天候侦察监视;对弹道导弹、巡航导弹等大规模破坏性武器的探测与跟踪;各种隐身目标的探测与识别;战斗杀伤效果判别和目标识别等任务。随着新型武器的不断问世和先进反雷达技术的广泛应用,对雷达的生存与发展提出了严峻的挑战。近年来,国外主要国家为使雷达能最大现代满足作战需求,适应日趋复杂的作战环境正在加紧开发高新技术,航海雷达,它是装于船上用于航海活动,进行航行避让、船舶定位、狭水道引航。文章对雷达模拟器项目进行了详细研究,简要回顾了做项目的过程,列举了项目的相关参数及项目整体设计思路。项目根据武汉理工大学航海学院和计算机学院联合开发的一整套的航海学院老师和学生之间互动的微机室内的教学系统。此项目包括教练船,操舵模拟器,雷达/ARPA模拟器三部分,三者之间互相进行通信和信息数据交换,该项目主要是实现在微机室中能够模拟海上航行工程中教练的与学员的船只之间的指挥、调度等通信过程,有着很大的实用价值。通过项目的探讨与研究,得到了很多实用的结论。例如从本地读取TXT文件进行海图的绘制,文件为里而分为不同的区域即对海上障碍物,航线,浮标。陆地,岛屿进行了不同的绘制,以不同颜色进行区分,并且经过总结写了已经封装好并且功能性很强的串口类。MFC (Microsoft Foundation Classes),是一个微软公司提供的类库(class libraries),以C++类的形式封装了Windows的API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含的类包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。MFC实际上是微软提供的,用于在C++环境下编写应用程序的一个框架和引擎。VC++是Windows下开发人员使用的专业C++SDK (SDK,Standard SoftWare Develop Kit,专业软件开发平台),MFC就是挂在它之上的一个辅助软件开发包。在Win32下,可以使用两种编程方式实现串口通信,其一是使用ActivcX控件,这种方法程序简单,但欠灵活。其二是调用Windows的API函数,这种方法可以清楚地掌握串口通信的机制,并且自由灵活。串口的操作可以有两种操作方式:同步操作方式和重叠操作方式(又称为异步操作方式)。同步操作时,API函数会阻塞直到操作完成以后才能返回(在多线程方式中,虽然不会阻塞主线程,但是仍然会阻塞监听线程);而重叠操作方式,API函数会立即返回,操作在后台进行,避免线程的阻塞。无论哪种操作方式,一般都通过打开串口,配置串口,读写串口,关闭串口四个步骤来完成。Win32系统把文件的概念进行了扩展。无论是文件、通信设备、命名管道、邮件槽、磁盘、还是控制台,都是用API函数来打开或创建的。在打开通讯设备句柄后,常需要对串口进一些初始化配置工作。这需要通过一个DCB结构来进行。DCB结构包含了诸如波特率、数据位数、奇偶校验和停止位数等信息。在查询或配置串口的属性时,都要用DCB结构来作为缓冲区。一般用打开串口后,可以调用函数来获取串口的初始配置。要修改串口的配置,应该先修改DCB结构,然后再调用函数设置串口。使用ReadFile和WriteFile读写串口,在读写串口时,既可以同步执行,也可以重叠执行。读写函数的同步或者异步应该和创建函数相一致。利用API函数关闭串口非常简单,只需使用创建函数返回的句柄作为参数调用关闭句柄函数即可。MFC中有两类线程,分别称之为工作者线程和用户界面线程。二者的主要区别在于工作者线程没有消息循环,而用户界面线程有自己的消息队列和消息循环。但对于Win32的API编程而言,这两种线程是没有区别的,它们都只需线程的启动地址即可启动线程来执行任务。在MFC中,一般用全局函数来创建并初始化一个线程的运行,该函数有两种重载形式,分别用于创建工作者线程和用户界面线程。为了避免访问冲突,例如,多个线程同时访问同一个全局变量,如果都是读取操作,则不会出现问题。如果一个线程负责改变此变量的值,而其他线程负责同时读取变量内容,则不能保证读取到的数据是经过写线程修改后的。为了确保读线程读取到的是经过修改的变量,就必须在向变量写入数据时禁止其他线程对其的任何访问,直至赋值过程结束后再解除对其他线程的访问限制。象这种保证线程能了解其他线程任务处理结束后的处理结果而采取的保护措施即为线程同步。文中还涉及到UDP网络通讯。