张海忠,曹解放,刘雪瑞,韩雪峰,段自立
(61365部队,天津 300140)
GNSS接收机接口语言(GRIL)是一种特定的接口语言,它具有独立于接收机的语言结构,同时定义了丰富的命令、消息和字段[1]。利用这些元素的有机组合,通过串口、并口、USB、蓝牙及以太网等通信模式可以实现与Topcon GNSS接收机的交互,以达到操控接收机的目的,并获取接收机的状态参数和功能。
目前TONCON GNSS接收机主要通信工具为PCCDU,可以完成接收机参数的读取和设置及观测数据的下载[2-3],但其不具备人机交互界面,用户无法实时了解卫星分布等信息,对一些特殊功能只能通过发送GRIL命令的方法实现,对于不熟悉GRIL命令的作业人员难度较大。本文简要介绍GRIL命令,并通过串行模式使用C#编程实现Topcon GNSS接受机通信控制,为不同的GNSS野外测量需要提供参考[4]。
GRIL的功能涵盖面十分广,涉及接收机的每个操作和参数。它灵活的语言方式可以实现对接收机的自动及手动控制。通过编辑命令列表,并指定接收机在指定的时间运行这个列表就可以实现接收机的自动控制功能;手动控制则是通过控制终端把相应命令发送到接收机就能完成。GRIL包括以下七项主要功能,如表1所示。
表1 GRIL主要功能
GRIL共定义12种命令,通过向接收机发送不同命令,可以实现从接收机主板信息到卫星状态查询,以及对测量状态完全控制,如表2所示。
表2 GRIL的12种命令语句
(续表)
GRIL命令语句格式如下:
[%ID%][COMMAND][@CS]
其中,方括号表示可选字段,各字段之间允许存在空格,一条命令最长支持高达256个字符长度。
%ID%:声明的标识符,其中ID表示任意字符串,也可以为空。响应消息中的完全拷贝此标识符,语句仅包含一个标识符也是允许的,在这种情况下只生成一个响应消息。
COMMAND:执行命令的参数列表,第一个元素被称为命令名(可以为空),它表示要执行的动作;中间的元素是命令参数;最后是参数的值(可缺省)。命令参数为单个根节点逐级向上的树形层次结构,中间用反斜杠(/)用做节点间的分隔符,这种组合方式与电脑中文件夹存放文件的形式相似。
@CS:校验为了确保发送和接收的数据正确,它进行CRC8或CRC16校验。
EOC:命令终止符,由回车(CR)、换行(LF)或两者结合使用。
示例:
发送:%RAM%print,/par/rcv/mem
接收:RE00C%RAM% 4096
在C#中使用timer及serialPort控件,timer控件提供Tick事件用于发送GRIL命令,SerialPort类提供的DataReceived事件用于接收数据。当SerialPort对象接收缓冲区有数据时,将在辅助线程上引发DataReceived事件[5-6]。
不同的操作对应GRIL命令及返回数据不同,需要编写对应的DataReceived事件及数据处理方法。当进行新的操作时,采取事件轮转的方式通过注销旧事件,注册相应操作的新事件进行通信控制。流程图如图1所示。
图1 通信控制流程图
//发送GRIL命令
private void timer_base_Tick(object sender,EventArgs e)
{
//发送GRIL命令
//判断是否接收发送
//发送异常处理
}
//接收数据并处理
private void serialPort_base(object sender,
SerialDataReceivedEventArgs e)
{
//接收数据
//数据检查处理
//超时异常处理
}
//用户新操作
privatevoid tabControlSelectedIndexChanged (object sender,EventArgs e)
{
//注销旧事件、注册新事件
//发送命令
}
通过串口向Topcon NET-G3A接收机发送命令,获取国际海事电子协会(NMEA)数据信息,实现卫星状态的图形化显示。如图2所示。
图2 星空图
Topcon NET_G3A接收机为用户提供了两种测量模式:常规测量和预约测量。常规测量是指通过手动操控让接收机执行开关机和记录观测数据;预约测量是通过发送GRIL命令列表,让接收机在指定的时间执行指定的操作。预约测量可以实现接收机无人值守自动控制,特别适用于多时段观测。预约测量模式如图3所示。
图3 测量控制
使用GRIL命令通过C#编程可以开发专用的Topcon接收机控制程序。程序搭载在电脑等设备上,实现与接收机的接口通讯,能够执行参数设置、开关机等任务,针对高等级GNSS测量任务进行预约测量,可以实现GNSS接收机无人值守自动观测,有效地提高野外数据采集效率,为用户提供了更高效便捷的解决方案,满足不同测量任务的需要。
[1]TOPCON.TOPCON GRIL reference manual[EB/OL].http://www. topconpositioning.com.
[2]TOPCON.PC_CDU 参考手册[EB/OL].http://www.topcon.com.cn.
[3]TOPCON.NET_G3A 使用手册[EB/OL].http://www.topcon.com.cn.
[4]地壳运动监测工程研究中心.地壳运动监测技术规程[M]. 北京: 中国环境出版社,2014.
[5]NAGEL C,EVYEN B,GLYNN J. Professional C# 4 and.NET 4; C#高级编程[M].7 ed.李铭译,北京:清华大学出版社,2010.
[6]王小科,王 军. C# 开发实战1200例(第Ⅱ卷)[M].北京:清华大学出版社,2011.