APP下载

基于Labview的空情接收系统

2015-12-27王欣陶杰张弛王文娟

计算机与网络 2015年10期
关键词:字符串数组字节

王欣 陶杰 张弛 王文娟

(军械工程学院,河北石家庄 050003)

基于Labview的空情接收系统

王欣 陶杰 张弛 王文娟

(军械工程学院,河北石家庄 050003)

LabVIEW是NI公司开发的图形化编程开发平台,具备强大的实时数据处理功能与显示功能[1]。雷达空情接收系统通过雷达发现目标,识别出目标,并且分析出目标的特征,按照一定的格式将其需要信息发送到空情接收系统,空情接收系统接收到信息后分析出数据,并用LabVIEW软件将这一过程显示出来。LabVIEW与其他软件比较有更友好的可视化界面,操作简单,易于实现。

雷达LabVIEW UDP空情接收

1 引言

LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发的,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显著区别是:其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言G编写程序,产生的程序是框图的形式,底层的程序已经封装在这些框图中,不涉及到基本语言的编程,这种图形编程方法可使没有编程经验的用户避免学习编程语言的麻烦[2],实现简单,并且提供了友好的可视化界面。而雷达空情接收系统实时显示接收的空情,用LabVIEW实现简单、方便。

2 雷达空情接收系统的实现

雷达的一个重要的任务就是扫描空情,发现目标飞机的位置、类型和架次等重要信息[3,4]。把雷达扫描的数据传输给空情接收系统,使其显示出空情。其具体方法及步骤如下:

(1)UDP接收数据

用户数据报协议(UDP)是一种无连接的协议,而传输控制协议(Trans mission Control P rotocol,TCP)协议是面向连接的[5]。面向连接是在通信前建立一条可靠的物理链路,这就是链路的建立过程,建立完后查询对方是否忙,如果不忙,双方即可通信(传送信息),当通信完成要释放此链路,所以面向连接必须有“建立、传送、释放”3个过程。当利用TCP协议传送数据的时候,首先必须建立连接才可以传输数据。而计算机利用UDP协议进行数据传送的时候,发送方只需要知道对方的IP地址和端口号就可以发送数据,而并不需要进行连接。就是在正式通信前不必与对方先建立连接,不考虑对方状态就直接发送数据,这就象平时的发手机短信,不必考虑对方状态,只需要输入对方手机号就行。

TCP提供的是面向连接的而UDP提供的是面向非连接的。面向连接的协议在任何数据传输前就建立好了点到点的连接,面向非连接的协议在数据传输之前不建立连接,而是在每个中间节点对面向非连接的包和数据包进行路由。因此利用UDP协议传送和接收数据要简单的多。利用UDP进行数据接收,如图1所示,打开UDP函数中,要设置IP和端口号,读取UDP函数中数据输出为字符串格式。

图1 UDP接收数据

(2)分析数据

①发送的是十六进制数,发送方发过来的数据为十六进制数,而通过UDP接收的数据为字符串,字符串如何转换成十六进制数,成为解决本问题的关键。在程序框图函数面板中,编程/字符串/字符串至数值/十六进制字符串转换成数值,找到字符串与数值的转换函数,经过实验并不能将其转换成数值,这是由于在转化过程中数值与字符串之间是按字节进行转换的,但是有的数值如FF并没有对应的字符串,最后成了乱码。如发送端发送的十六进制数为:ff201009a34d5b2274,直接用UDP函数(图1)接收,得到乱码如图2所示。

图2 直接读取数据

最后将接收的字符串转换成数组,用字符串至字节数组转换,每个字符串都转化成无符号数组,同样发送上述十六进制数,得到图3所示的十进制数,经过验证,确实把上述十六进制数转换成十进制数,并且是一个字节一个字节的转换,如FF转换为255,20转换为32等等。

图3 转换成数组

把得到得字节用索引数组函数把数组中的需要的每个字节索引出来,再作处理。收发放约定好协议,FF为帧头,后面第2、3、4字节为显示空情直角坐标中的x值,第5、6、7字节为y值,第8、9字节为z值。如收到ff201009a34d5b2274,索引数组中的二三四个字节,并且字节存储时按从低位到高位,所以x的值应该是第4个字节是高位,再次是第3个字节,最后为第2个字节。那是不是把第4个字节乘以10000,加上第3个字节乘以100,再加上第2个字节就是x的值呢?其实不然,因为存储的数据为二进制形式的,所以第4个字节应该乘以216(65536),加上第3个字节乘以28(256),再加上第2个字节。但是我们都知道,其实最高位为符号位,如果是1就表示负,如果是0就表示正,而我们却把这个值当成数值进行计算了,如果最高位为1,其余位为0的话,其对应的数值应为223(8388608),所以我们可以把最初计算的数值减去8388608,再乘以负1就能得到x的值(如图4),同样,y、z的值获取方式与x相同,即可得到相对于原点(我们所在位置)的空间坐标值。

图4 数据接收及处理程序框图

②发送的是字符串,如果发过来的是字符串,通过UDP直接能正确接收,首先应该通过匹配字符串,如果找到帧头—FF,或双方约定好的一个协议帧头,则取其后的字符串,再用函数截取字符串,自己设定截取字符串的偏移量和长度,如果不设偏移量则默认为0,截取所需字符串,如图5所示,图6为接收的数据。之后再把这些字符串根据需要处理,步骤如图4数值处理方式相同,不再赘述。

图5 直接接收字符串

图6 结果显示

(3)显示空情

分析数据完成,通过列表的形式,把x、y、z的值显示出来,并且用点的形式在直角坐标中表示出来。发送方不断的发送数据,接收方收到的这些数据在坐标系中描出来的点就是飞机的航迹。

3 结束语

LabVIEW为用户提供了友好的可视化图形界面。LabVIEW设计的界面美观漂亮,数据显示直观,操作简单。当用户在操作时,就感觉是在操作实在的仪器设备。和其他软件开发相比,LabVIEW更具有和硬件设备打交道的优势。利用图形化编程语言的直观、快捷的优势,通过功能模块的组合和连接能够方便地开发出适合各种不同通信协议的通信程序[6]。

[1]吕向锋,高洪林,马亮,等.基于LabVIEW串口通信的研究[J].国外电子测量技术,2009,28(12):27-30,42.

[2]冯劲梅,连之伟.对LabVIEW使用中若干问题的探讨[J].中国制造业信息化,2003,32(9):121-124.

[3]史颖超,李侠,程东升,等.窄带雷达飞机目标识别方法综述[J].舰船电子工程,2010,30(2):45-49.

[4]张汉华,王伟,李国顺.一种低分辨雷达自动目标识别系统[J].现代雷达,2003(12):11-13.

[5]张宗飞.VB中基于TCP和UDP协议的通信编程技术[J].计算机与现代化,2008(4):48-50.

[6]都亮,龚晓峰,侯志红.基于虚拟仪器LabVIEW开发的串行通信系统[J].控制工程,2004,11(S1):82-85.

Air Situation Receiving System Based on Labview

WANG Xin,TAO Jie,ZHANG Chi,WANG Wen-juan
(PLA College of Ordnance Engineering,Shijiazhuang Hebei 050003,China)

LabVIEW is a graphical programming development platform developed by NI company,and has powerful real-time data processing and display function.The radar air situation receiving system finds and identifies targets,and analyzes the characteristics of targets by radar.The required information in a certain format is sent to the air situation receiving system,then analyzed to obtain data,and the process is displayed through LabVIEW software.Compared with other software,LabVIEW has such characteristics as more friendly interface,simple operation and easy implementation.

radar;LabVIEW;UDP;air situation receiving

TP312

A

1008-1739(2015)10-40-3

定稿日期:2015-04-26

猜你喜欢

字符串数组字节
JAVA稀疏矩阵算法
No.8 字节跳动将推出独立出口电商APP
基于文本挖掘的语词典研究
JAVA玩转数学之二维数组排序
No.10 “字节跳动手机”要来了?
简谈MC7字节码
Excel数组公式在林业多条件求和中的应用
寻找勾股数组的历程
一种新的基于对称性的字符串相似性处理算法
依据字符串匹配的中文分词模型研究