北斗短报文的封装解析方法及装置转让专利

申请号 : CN202110559015.1

文献号 : CN113364512B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘欢林祖祥赵挺全

申请人 : 广东海启星海洋科技有限公司

摘要 :

本发明实施例涉及卫星通信技术领域,公开了一种北斗短报文的封装解析方法,包括:接收用户输入的北斗报文指令;根据预设的北斗解析配置对所述北斗报文指令进行解析提取以得到相应的北斗报文数据;基于北斗短报文协议对所述北斗报文数据进行数据打包以及校验处理以得到校验短报文数据;将所述校验短报文数据发送至北斗短报文模块以进行数据解析;接收所述北斗短报文模块反馈的结果指令,若所述结果指令正确,则将所述校验短报文数据通过天线模块调频发送给北斗卫星。本发明实施例的方案通过上述封装简化方式,大大简化了用户操作流程,降低设备学习成本,方便用户使用。

权利要求 :

1.一种北斗短报文的封装解析方法,其特征在于,包括:接收用户输入的北斗报文指令;

根据预设的北斗解析配置对所述北斗报文指令进行解析提取以得到相应的北斗报文数据;

基于北斗短报文协议对所述北斗报文数据进行数据打包以及校验处理以得到校验短报文数据;

将所述校验短报文数据发送至北斗短报文模块以进行数据解析;

接收所述北斗短报文模块反馈的结果指令,若所述结果指令正确,则将所述校验短报文数据通过天线模块调频发送给北斗卫星。

2.如权利要求1所述的北斗短报文的封装解析方法,其特征在于,在所述接收所述北斗短报文模块反馈的结果指令之后,还包括:将所述结果指令解析以得到展示结果信息,并将所述展示结果信息反馈至用户端,所述展示结果信息包括指令执行是否成功、频度设置是否成功和频度等待时间。

3.如权利要求1所述的北斗短报文的封装解析方法,其特征在于,所述将所述校验短报文数据通过天线模块调频发送给北斗卫星,包括:将所述校验短报文数据通过天线模块调频发送给北斗卫星,在所述北斗卫星中根据校验短报文数据中的地址信息发送至对应的北斗短报文设备。

4.如权利要求1所述的北斗短报文的封装解析方法,其特征在于,所述封装解析方法,还包括:接收北斗卫星发送的北斗报文指令,并对所述北斗报文指令进行解析提取;

将解析提取到的结果在用户端进行展示。

5.如权利要求1所述的北斗短报文的封装解析方法,其特征在于,所述北斗报文指令的格式为指令头和目标操作对象,所述北斗报文指令的格式为指令头和目标操作对象的具体操作指令。

6.如权利要求1所述的北斗短报文的封装解析方法,其特征在于,所述基于北斗短报文协议对所述北斗报文数据进行数据打包以及校验处理以得到校验短报文数据,包括:基于北斗短报文协议对所述北斗报文数据进行数据打包转换以得到短报文数据,所述短报文数据包括帧头关键字、收件人地址、通信模式、编码模式和电文内容;

对所述短报文数据进行异或校验以得到异或校验字节,将所述异或校验字节存储至短报文数据中以得到校验短报文数据;

在校验短报文数据的指令两端分别增加相应的分隔符以得到完整的校验短报文数据。

7.如权利要求6所述的北斗短报文的封装解析方法,其特征在于,所述电文内容包括十六进制数据。

8.一种北斗短报文的封装解析装置,其特征在于,包括:第一接收模块:用于接收用户输入的北斗报文指令;

解析模块:用于根据预设的北斗解析配置对所述北斗报文指令进行解析提取以得到相应的北斗报文数据;

打包校验模块:用于基于北斗短报文协议对所述北斗报文数据进行数据打包以及校验处理以得到校验短报文数据;

发送模块:用于将所述校验短报文数据发送至北斗短报文模块以进行数据解析;

第二接收模块:用于接收所述北斗短报文模块反馈的结果指令,若所述结果指令正确,则将所述校验短报文数据通过天线模块调频发送给北斗卫星。

9.一种电子设备,其特征在于,包括存储器、处理器及存储在存储器上并可以在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现步骤如权利要求1至7任一项所述的北斗短报文的封装解析方法。

10.一种计算机可读存储介质,其上存储有计算机可读存储介质,其上存储有计算机程序,其特征在于:该程序被处理器执行时实现权利要求1至7中任意一项所述方法的步骤。

说明书 :

北斗短报文的封装解析方法及装置

技术领域

[0001] 本发明涉及北斗通信技术领域,具体涉及一种北斗短报文的封装解析方法及装置。

背景技术

[0002] 卫星通信属于超远距离通信,通信不是100%可靠的。当用北斗短报文设备A经过北斗卫星向北斗短报文设备B时通信时,A只能确认是否已经把信息发送出去,却不能知道信息有没有到达卫星,更不知道B有没有收到。而在A向卫星发送信息以及B从卫星接收数据都是通过射频天线进行数据传输的,因此在两段传输的过程中都需要加效验以确认数据传输的准确性。现有的北斗卫星通信方式,均需要通过北斗短报文协议来进行信息传输操作,通过对北斗短报文原协议解读可以知晓,不同的功能需要不同的数据帧头,并且上述数据帧头不统一,无规律且不好记,校验码也比较难算,但是校验码又是北斗通信中的重要数据,需要专门的计算工具或软件辅助才行。上述原因也就使得用户在使用过程中较为的不便,且学习成本相对较高。因此,设计一种便于用户使用的北斗通信方式成为本领域技术人员亟待解决的技术问题。

发明内容

[0003] 针对所述缺陷,本发明实施例公开了一种北斗短报文的封装解析方法,其能够将复杂的北斗短报文协议封装简化,方便用户进行使用。
[0004] 本发明实施例第一方面公开了北斗短报文的封装解析方法,包括:
[0005] 接收用户输入的北斗报文指令;
[0006] 根据预设的北斗解析配置对所述北斗报文指令进行解析提取以得到相应的北斗报文数据;
[0007] 基于北斗短报文协议对所述北斗报文数据进行数据打包以及校验处理以得到校验短报文数据;
[0008] 将所述校验短报文数据发送至北斗短报文模块以进行数据解析;
[0009] 接收所述北斗短报文模块反馈的结果指令,若所述结果指令正确,则将所述校验短报文数据通过天线模块调频发送给北斗卫星。
[0010] 作为一种可选的实施方式,在本发明实施例第一方面中,在所述接收所述北斗短报文模块反馈的结果指令之后,还包括:
[0011] 将所述结果指令解析以得到展示结果信息,并将所述展示结果信息反馈至用户端,所述展示结果信息包括指令执行是否成功、频度设置是否成功和频度等待时间。
[0012] 作为一种可选的实施方式,在本发明实施例第一方面中,所述将所述校验短报文数据通过天线模块调频发送给北斗卫星,包括:
[0013] 将所述校验短报文数据通过天线模块调频发送给北斗卫星,在所述北斗卫星中根据校验短报文数据中的地址信息发送至对应的北斗短报文设备。
[0014] 作为一种可选的实施方式,在本发明实施例第一方面中,所述封装解析方法,还包括:
[0015] 接收北斗卫星发送的北斗报文指令,并对所述北斗报文指令进行解析提取;
[0016] 将解析提取到的结果在用户端进行展示。
[0017] 作为一种可选的实施方式,在本发明实施例第一方面中,所述北斗报文指令的格式为指令头和目标操作对象,所述北斗报文指令的格式为指令头和目标操作对象的具体操作指令。
[0018] 作为一种可选的实施方式,在本发明实施例第一方面中,所述基于北斗短报文协议对所述北斗报文数据进行数据打包以及校验处理以得到校验短报文数据,包括:
[0019] 基于北斗短报文协议对所述北斗报文数据进行数据打包转换以得到短报文数据,所述短报文数据包括帧头关键字、收件人地址、通信模式、编码模式和电文内容;
[0020] 对所述短报文数据进行异或校验以得到异或校验字节,将所述异或校验字节存储至短报文数据中以得到校验短报文数据;
[0021] 在校验短报文数据的指令两端分别增加相应的分隔符以得到完整的校验短报文数据。
[0022] 作为一种可选的实施方式,在本发明实施例第一方面中,所述电文内容包括十六进制数据。
[0023] 本发明实施例第二方面公开一种北斗短报文的封装解析装置,包括:
[0024] 第一接收模块:用于接收用户输入的北斗报文指令;
[0025] 解析模块:用于根据预设的北斗解析配置对所述北斗报文指令进行解析提取以得到相应的北斗报文数据;
[0026] 打包校验模块:用于基于北斗短报文协议对所述北斗报文数据进行数据打包以及校验处理以得到校验短报文数据;
[0027] 发送模块:用于将所述校验短报文数据发送至北斗短报文模块以进行数据解析;
[0028] 第二接收模块:用于接收所述北斗短报文模块反馈的结果指令,若所述结果指令正确,则将所述校验短报文数据通过天线模块调频发送给北斗卫星。
[0029] 本发明实施例第三方面公开一种电子设备,包括存储器、处理器及存储在存储器上并可以在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现步骤如本发明第一方面中任一项所述的北斗短报文的封装解析方法。
[0030] 本发明实施例第四方面公开一种计算机可读存储介质,其上存储有计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明目的之一中任意一项所述方法的步骤。
[0031] 与现有技术相比,本发明实施例具有以下有益效果:
[0032] 本发明实施例中的北斗短报文的封装解析方法通过对复杂的接收指令与简洁的用户操作指令进行预先的对应存储,使得用户在后续使用的时候,可以直接输入简洁指令,然后通过解析来得到北斗短报文模块所需的数据格式;通过上述封装简化方式,大大简化了用户操作流程,降低设备学习成本,方便用户使用。

附图说明

[0033] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0034] 图1是本发明实施例公开的北斗短报文的封装解析方法的流程示意图;
[0035] 图2是本发明实施例公开的信息接收展示的流程示意图;
[0036] 图3是本发明实施例公开的数据打包校验的流程示意图;
[0037] 图4是本发明实施例公开的北斗短报文数传终端的电路原理框图;
[0038] 图5是本发明实施例提供的一种北斗短报文的封装解析装置的结构示意图;
[0039] 图6是本发明实施例提供的一种电子设备的结构示意图。

具体实施方式

[0040] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0041] 需要说明的是,本发明的说明书和权利要求书中的术语“第一”、“第二”、“第三”、“第四”等是用于区别不同的对象,而不是用于描述特定顺序。本发明实施例的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,示例性地,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0042] 现有的北斗卫星通信方式,均需要通过北斗短报文协议来进行信息传输操作,通过对北斗短报文原协议解读可以知晓,不同的功能需要不同的数据帧头,并且上述数据帧头不统一,无规律且不好记,校验码也比较难算,但是校验码又是北斗通信中的重要数据,需要专门的计算工具或软件辅助才行。
[0043] 现有的北斗短报文的语句格式遵循RDSS协议,RDSS协议是北斗总站下发的标准协议,有一代4.0协议和二代2.1协议,两者差异比较大。目前通用的版本是二代2.1协议,任何的R D模块或者芯片都要支持该协议。目前的2.1协议的最大特点,是用10个波速表示信号强度,之前的4.0协议则是用6个波速表示。在该协议中,不管是接收语句还是发送语句,语句都是以美元符号$开始,以英文字符,和*为分隔符,以回车换行符\r\n结束。本发明实施例的方案均以北斗通用型二代2.1版本协议做介绍及解析。实际协议内容较多,本发明实施例只介绍了其中比较重要且常用的协议,包括用户使用PC终端向RD模块(北斗短报文模块)发送数据,以及RD模块在接收到数据后发出的反馈信息。
[0044] 目前在使用读取卡号:
[0045] 使用PC终端往RD模块发送这条语句:$CCICA,0,00*7B\r\n;
[0046] “CCICA”‑‑读取北斗卡号的指令关键字;
[0047] “0”‑‑监测本机加解密模块信息;
[0048] “00”‑‑下属用户信息帧号;
[0049] “7B”‑‑异或校验字节。将$到*(不包括$和*)之间的全部字节进行异或得到一个校验字节,然后转化成16进制数,取这个16进制数的高4位和低4位。比如校验字节转化成16进制数后是0X07,则这里就写07,不能省略0。RD模块回复给PC终端,比如:
[0050] $BDICI,0242286,00242286,0000011,6,60,3,N,0*38\r\n
[0051] “BDICI”‑‑指令关键字。
[0052] “0242286”‑‑北斗卡号,7位数字。
[0053] “00242286”‑‑序列号
[0054] “0000011”‑‑通播地址
[0055] “6”‑‑标识用户特征。0表示指挥机,1表示一类用户机,2表示二类用户机,3表示三类用户机,4表示指挥型用户机(进行身份认证),5表示一类用户机(进行身份认证),6表示二类用户机(进行身份认证),7表示三类用户机(进行身份认证)。
[0056] “60”‑‑北斗卡的服务频度,这里60表示这张北斗卡每隔60秒发一次。
[0057] “3”‑‑通信等级
[0058] “N”‑‑加密标志。E表示加密,N表示非加密。
[0059] “0”‑‑下属用户数。一般是0。
[0060] “38”‑‑异或校验字节。
[0061] 注意,如果没有检测到北斗卡,则RD模块回复的语句是:
[0062] $BDICI,0000000,00000000,0000000,0,0,0,N,0*0B
[0063] 读取信号状态
[0064] 使用PC终端往RD模块发送这条语句:$CCRMO,BSI,2,0*26\r\n
[0065] “CCRMO”‑‑指令关键字。
[0066] “BSI”‑‑默认参数
[0067] “2”‑‑打开指定语句
[0068] “0”‑‑语句的输出频度。0表示只输出1次。1表示每隔1秒输出1次。
[0069] “26”‑‑异或校验字节。
[0070] RD模块回复给PC终端,比如:$BDBSI,08,01,4,4,0,0,1,0,1,4,0,0*53\r\n[0071] “BDBSI”‑‑指令关键字。
[0072] “08”‑‑响应波速
[0073] “01”‑‑时差波速
[0074] 接下来的是10个波速的信号值。0最弱,4最强。有一个波速为4则表示信号较好,可以用于申请定位和发送消息。
[0075] “53”‑‑异或校验字节。
[0076] 申请定位
[0077] RDSS定位精度是100米,比GPS定位精度10米要差,所以一般不作为主要定位方式。
[0078] 使用PC终端往RD模块发送这条语句:
[0079] $CCDWA,0000000,V,1,L,,0,,,0*65\r\n
[0080] “CCDWA”‑‑指令关键字。
[0081] “0000000”—默认用这个
[0082] “V”—普通定位
[0083] “1”—无高程
[0084] “L”—普通高程指示
[0085] “0”—天线高度,默认用0
[0086] “0”—申请频度。默认用0表示只申请一次定位。
[0087] “65”‑‑异或校验字节。
[0088] RD模块会回复PC终端指令是否成功执行,比如:
[0089] $BDFKI,DWA,Y,Y,0,0060*0A\r\n
[0090] “BDFKI”‑‑指令关键字。
[0091] “DWA”‑‑关键字
[0092] “Y”‑‑Y表示指令执行成功,N表示指令执行失败。
[0093] “Y”‑‑Y表示频度设置成功,N表示频度设置失败
[0094] “0”‑‑发射抑制提示
[0095] “0060”‑‑频度等待时间。表示多少秒后才能再次重新发送。
[0096] “0A”‑‑异或校验字节。
[0097] 在几秒之内,卫星就会回复定位信息给RD模块,然后RD模块就会输出语句给PC终端,比如:
[0098] $BDDWR,1,0242286,021549.65,2240.4051,N,11402.5601,E,47,M,‑3,M,1,V,V,L*1F\r\n
[0099] “BDDWR”—定位回复指令。
[0100] “1”‑‑定位信息类型
[0101] “0242286”‑‑用户地址ID
[0102] “021549.65”—定位时间UTC。把最前面的02加上8,就是东8区的北京时间。
[0103] “2240.4051”—纬度
[0104] “N”—纬度方向。
[0105] “11402.5601”—经度
[0106] “E”—经度方向。
[0107] “47”—大地高度
[0108] “M”—大地高度的单位,M表示米。
[0109] “‑3”—高程异常
[0110] “M”—高程异常的单位,M表示米
[0111] “1”—1表示定位精度100米,0表示定位精度20米。
[0112] “V”—V表示非紧急定位,A表示紧急定位。
[0113] “V”—V表示非多值解,A表示多值解。
[0114] “L”—L表示高程类型为普通,H表示高程类型为高空。
[0115] “1F”‑‑异或校验字节。
[0116] 采用北斗短报文终端来收发信息时,一般使用混合编码模式和代码编码模式。以混合编码模式为例,电文首字母固定为“A4”,按照先后顺序将每个字符转换成16进制数大写。如果16进制数不大于16,就在高位补0。
[0117] 英文用一个字节表示,汉字用两个字节表示。
[0118] 比如,要发送信息“hello北斗”:
[0119] 使用PC终端往RD模块发送这条语句:
[0120] $CCTXA,0242286,1,2,A468656C6C6FB1B1B6B7*7F
[0121] “CCTXA”‑‑指令关键字。
[0122] “0242286”—收件人地址ID
[0123] “1”—1表示普通通信,0表示特快通信
[0124] “2”—2表示混合编码,1表示代码编码,0表示汉字编码
[0125] “A4……”—电文内容。比如h的十六进制数是68。
[0126] “7F”‑‑异或校验字节。
[0127] 其中,A4算一个字节,是混合编码的标识,后面可以跟77个字节的用户内容。68656C6C6FB1B1B6B7算9个字节,这些用户内容是GBK编码,用户也可以采用UNICODE编码,只要在接收端也采用UNICODE解码即可。
[0128] 如果是采用代码编码,去掉A4,上面的发送语句就是:
[0129] $CCTXA,0242286,1,1,68656C6C6FB1B1B6B7*09代码编码方式也是很主流的应用,可以发送78个字节的用户内容。而混合编码因为需要A4这个字节做标明,所以就只能发送77字节的用户内容。
[0130] RD模块会回复PC终端指令是否成功执行,比如:
[0131] $BDFKI,TXA,Y,Y,0,0060*15\r\n;
[0132] “BDFKI”‑‑指令关键字。
[0133] “TXA”—通信申请的关键字;
[0134] “Y”‑‑Y表示指令执行成功,N表示指令执行失败。
[0135] “Y”‑‑Y表示频度设置成功,N表示频度设置失败;
[0136] “0”‑‑发射抑制提示;
[0137] “0060”‑‑频度等待时间。表示多少秒后才能再次重新发送。
[0138] “15”‑‑异或校验字节。
[0139] 如果设置的收件人地址ID是自己,所以在几秒之内,卫星就会转发信息给RD模块,然后RD模块就会输出语句给PC终端,比如:$BDTXR,1,0242286,2,,A468656C6C6FB1B1B6B7*46\r\n;
[0140] “BDTXR”—通信回复指令。
[0141] “1”—1表示普通通信;
[0142] “0242286”—发信人地址ID;
[0143] “2”—2表示电文形式是混合传输,1表示代码传输,0表示汉字传输;
[0144] “A4……”—电文内容;
[0145] “1F”‑‑异或校验字节。
[0146] 如果发送端是用代码编码,那么接收端收到后输出的语句也是代码编码格式:$BDTXR,1,0242286,1,,68656C6C6FB1B1B6B7*10\r\n;
[0147] 用户使用北斗短报文发送信息时,内容既可以是英文数字,也可以是汉字,还可以是16进制数。最多可以发送78个进制数/英文/数字,或者39个汉字。
[0148] 获取当前时间的方式如下:使用PC终端往RD模块发送这条语句:
[0149] $CCRMO,ZDA,2,0*21\r\n;
[0150] 其中,“CCRMO”‑‑指令关键字。
[0151] “ZDA”‑‑默认参数
[0152] “2”‑‑打开指定语句
[0153] “0”‑‑语句的输出频度。0表示只输出1次。1表示每隔1秒输出1次。
[0154] “21”‑‑异或校验字节。
[0155] RD模块回复给PC终端,比如:
[0156] $BDZDA,1,005407.00,29,09,2019,‑8,00,0,0,Y*04\r\n;
[0157] 其中,“BDZDA”‑‑指令关键字。
[0158] “1”‑‑模式指示。1是RDSS定时结果,2是RNSS定时结果;
[0159] “005407.00”‑‑UTC时间
[0160] “29”‑‑日;
[0161] “09”‑‑月;
[0162] “2019”‑‑年;
[0163] “‑8”‑‑时区。通常以负值表示东经,靠近国际日更线的地区除外。
[0164] 所以‑8表示东8区
[0165] “00”‑‑本时区分钟差
[0166] “0”—定时修正值
[0167] “0”—精度指示。0是未检测,1是0‑10纳秒,2是20‑20纳秒,3是大于20纳秒[0168] “Y”—Y是信号锁定,N是信号未锁定。
[0169] “04”—异或校验字节。
[0170] 由上述对北斗短报文原协议的解读可知,不同的功能需要不同的数据帧头,数据帧头不统一,无规律且不好记,效验码比较难算却又是及其重要的数据,需要专门的计算工具或软件辅助才行。如果想要使用北斗短报文的其中一个功能,则需在PC终端向RD模块输入对应的指令,并对指令数据做效验,然后一并发送才可以实现其功能。上述即是现有的进行北斗短报文终端进行信息交互的指令方式,由上则可以知晓,当前的短报文方式较为的复杂,必须要经过专业的训练才可以完成,并且代码方式相对复杂,对于设备操作者来说,要求较多,难度较大。基于此,本发明实施例公开了北斗短报文的封装解析方法、装置、电子设备及存储介质,其通过对复杂的接收指令与简洁的用户操作指令进行预先的对应存储,使得用户在后续使用的时候,可以直接输入简洁指令,然后通过解析来得到北斗短报文模块所需的数据格式;通过上述封装简化方式,大大简化了用户操作流程,降低设备学习成本,方便用户使用。
[0171] 实施例一
[0172] 请参阅图1,图1是本发明实施例公开的北斗短报文的封装解析方法的流程示意图。其中,本发明实施例所描述的方法的执行主体为由软件或/和硬件组成的执行主体,该执行主体可以通过有线或/和无线方式接收相关信息,并可以发送一定的指令。当然,其还可以具有一定的处理功能和存储功能。该执行主体可以控制多个设备,例如远程的物理服务器或云服务器以及相关软件,也可以是对某处安置的设备进行相关操作的本地主机或服务器以及相关软件等。在一些场景中,还可以控制多个存储设备,存储设备可以与设备放置于同一地方或不同地方。如图1所示,该基于北斗短报文的封装解析方法包括以下步骤:
[0173] S101:接收用户输入的北斗报文指令;
[0174] 本步骤主要是接收用户输入的北斗报文指令,在进行具体实施时,主要是用户通过电脑端与相应的短报文数传终端进行通信连接,这样用户则可以通过该操作PC终端直接与复杂的北斗短报文协议打交道;变为用户操作PC终端与内置简洁易用指令的微控制器进行通信,而微控制器根据简洁易用指令进一步与北斗短报文协议打交道。在具体指令设置时,可以有多种方式,一种是直接将北斗报文指令直接就是相应的目标操作对象以及操作指令,还有一种方式就是指令头加上操作对象,甚至于还有一种方式是指令头加上操作对象,以及相应的操作方式等。
[0175] 在本发明实施例中更为优选的,所述北斗报文指令的格式为指令头+目标操作对象或指令头+目标操作对象_具体操作指令中的任意一种。上述设置格式能够有明确的操作启动头以及具体的操作方式等。
[0176] 在本发明实施例中其内置有相应的指令格式以及解析方式,所述北斗报文指令的格式为指令头和目标操作对象,所述北斗报文指令的格式为指令头和目标操作对象的具体操作指令;具体的,在本发明实施例中内置指令构成遵循格式如下:指令头+目标操作对象_具体操作指令。
[0177] 示例:AT+BD_CARD;其中AT为指令头;BD为目标操作对象;CARD为操作指令。本发明实施例中的指令头与目标操作对象之间的’+’号,以及目标操作对象与操作指令之间的’_’均为ASCLL码格式。在进行具体实施时,可以使用串口软件向终端发送相应的字符串即可执行相应的操作。通过上述方式即可以实现对应的指令发送,相对于原有指令:$CCICA,0,00*7B\r\n;来说,具有明显的简单易记的特点;特别是针对于指令内容多样的情况的时候,其能够体现更好的特点。
[0178] 具体的,针对于相应的功能内置相应的指令,比如:
[0179] AT+TEMP,表示查看PCB主板温度。
[0180] AT+BD_OPEN,表示打开主板上北斗模块的开关,让北斗模块通电工作。
[0181] AT+BD_CLOSE,表示断开主板上北斗模块的开关。
[0182] AT+GPS_OPEN,表示打开主板上定位模块的开关,让定位模块通电工作。
[0183] AT+GPS_CLOSE,表示关闭主板上定位模块的开关。
[0184] AT+BD_CARD,表示查询主板卡槽内的北斗卡号。
[0185] AT+BD_SIGNAL,表示查询当前位置的北斗信号。
[0186] AT+BD_UTCTIME,表示通过北斗模块查询当前的utctime。
[0187] AT+BD_POSITION,表示通过北斗模块查询当前的位置信息。
[0188] AT+BD_SENDTO=0123456:your send buff;
[0189] 示例:AT+BD_SENDTO=0123456:Hello,北斗!
[0190] 向”01234567”的卡号发送短报文,发送短报文为冒号后紧跟的buff,支持ASCLL以及中文混合(最大支持77字节长度,一个汉字占两字节长度)。
[0191] AT+GPS_OPEN_GGA
[0192] 当主板定位模块处于通电状态下时(可使用AT+GPS_OPEN指令打开主板定位模块开关),则会打开定位模块的GGA输出语句;如果定位模块处于未通电状态,则会返回Error!GPS is now closed,please input"AT+GPS_OPEN"command to open GPS.请根据提示输入AT+GPS_OPEN,然后重新输入AT+GPS_OPEN_GGA,即可打开定位模块的GGA输出语句。
[0193] AT+GPS_OPEN_GSA,表示打开定位模块的输出GSA语句。
[0194] AT+GPS_OPEN_GRS,表示打开定位模块的输出GRS语句。
[0195] AT+GPS_OPEN_GSV,表示打开定位模块的输出GSV语句。
[0196] AT+GPS_OPEN_RMC,表示打开定位模块的输出RMC语句,一般情况下,用户需要使用到定位及授时功能时,可只打开这一条即可,以减轻串口数据处理的压力。
[0197] AT+GPS_OPEN_VTG,表示打开定位模块的输出VTG语句。
[0198] AT+GPS_OPEN_ZDA,表示打开定位模块的输出ZDA语句。
[0199] AT+GPS_OPEN_ALL,表示打开定位模块所有的输出语句。
[0200] AT+GPS_CLOSE_GGA,表示关闭定位模块的GGA输出语句。
[0201] AT+GPS_CLOSE_GLL,表示关闭定位模块的GLL输出语句。
[0202] AT+GPS_CLOSE_GSA,表示关闭定位模块的GSA输出语句。
[0203] AT+GPS_CLOSE_GRS,表示关闭定位模块的GRS输出语句。
[0204] AT+GPS_CLOSE_GSV,表示关闭定位模块的GSV输出语句。
[0205] AT+GPS_CLOSE_RMC,表示关闭定位模块的RMC输出语句。
[0206] AT+GPS_CLOSE_VTG,表示关闭定位模块的VTG输出语句。
[0207] AT+GPS_CLOSE_ZDA,表示关闭定位模块的ZDA输出语句。
[0208] AT+GPS_CLOSE_ALL,表示关闭定位模块的所有输出语句。
[0209] AT+GPS_SAVE_CMD,表示掉电保存以上对输出语句的更改,如若在修改定位模块输出语句之后,未操作此指令,则修改内容在定位模块再次重新上电前保持有效,定位模块再次重新上电后所作更改丢失。
[0210] AT+TC_CARD,表示查询透传模式下的目的卡号。
[0211] AT+TC_OPEN,表示打开透传模式。
[0212] AT+TC_CLOSE,表示关闭透传模式。
[0213] AT+TC_CARD_SET:dest card number,表示设置透传模式的目的卡号。
[0214] 上述内置指令有直接明确的含义,通过上述指令可以直接实现对应的功能,相对于现有的通信协议,其更简单易上手。
[0215] S102:根据预设的北斗解析配置对所述北斗报文指令进行解析提取以得到相应的北斗报文数据;
[0216] 由于“指令头+目标操作对象_具体操作指令”并不是北斗报文终端可以直接识别的指令,因此,需要根据预设的北斗解析配置来对相应的指令进行解析。以“AT+BD_SENDTO=0242286:hello北斗”为例来进行简要说明,北斗短报文数传终端内的微控制器,接收到用户发送的数据并对数据帧进行解析提取:AT为指令头,BD为操作对象,SENDTO=0242286:hello北斗为具体指令,其中0242286为目的卡号,hello北斗为要发送的内容;上述内容则为后续北斗数传终端需要操作的方式,因此,用户需要根据合适的配置来进行上述需求转换。
[0217] S103:基于北斗短报文协议对所述北斗报文数据进行数据打包以及校验处理以得到校验短报文数据;
[0218] 在步骤S102中仅仅是得到了对应的指令内容以及操作对象,但是其指令并不是北斗卫星可以直接识别的内容信息;所以需要根据北斗短报文协议来对上述内容进行指令转换,指令转换需要依据实际的发送代码来进行对应的设置。
[0219] 更为优选的,图3是本发明实施例公开的数据打包校验的流程示意图,如图3所示,所述基于北斗短报文协议对所述北斗报文数据进行数据打包以及校验处理以得到校验短报文数据,包括:
[0220] S103a:基于北斗短报文协议对所述北斗报文数据进行数据打包转换以得到短报文数据,所述短报文数据包括帧头关键字、收件人地址、通信模式、编码模式和电文内容;
[0221] S103b:对所述短报文数据进行异或校验以得到异或校验字节,将所述异或校验字节存储至短报文数据中以得到校验短报文数据;
[0222] S103c:在校验短报文数据的指令两端分别增加相应的分隔符以得到完整的校验短报文数据。
[0223] 本发明实施例中北斗短报文数传终端内的微控制器对以上数据进行打包并加效验处理以符合北斗短报文协议。打包好的数据格式为$CCTXA,0242286,1,2,A468656C6C6FB1B1B6B7*7F;
[0224] 其中,“CCTXA”‑‑指令关键字;“0242286”—收件人地址ID;“1”—1表示普通通信,0表示特快通信;“2”—2表示混合编码,1表示代码编码,0表示汉字编码;“A468656C6C6FB1B1B6B7”—电文内容;“7F”‑‑异或校验字节。
[0225] 更为优选的,所述电文内容包括十六进制数据。
[0226] 具体的,在进行实施操作时,“hello北斗”是需要经过格式转换的,需要将“hello北斗”转化为要发送的电文内容“68656C6C6FB1B1B6B7”。具体的,首先将ASCLL码字符串“hello北斗”转化为十六进制数据68 65 6C 6C 6F B1 B1 B6 B7,其中每个英文字符占一个字节,汉字占两个字节,十六进制数据强制为两位,不足两位的高位补零,比如,要发送的字符其转化为十六进制后是9,则应写为09。然后将十六进制数据68 65 6C 6C 6F B1 B1 B6 B7转化为ASCLL码字符串“68656C6C6FB1B1B6B7”(其十六进制数据为36 38 36 35 36 43 36 43 36 46 42 31 42 31 42 36 42 37),由此可看到,原发送内容“hello北斗”(9字节长度)经转变后“68656C6C6FB1B1B6B7”,其数据的长度变为原来的两倍。然后将打包好的帧头关键字、收件人地址、通信模式、编码模式、电文内容按位做异或效验(BCC效验),即将内容
[0227] “CCTXA,0242286,1,2,A468656C6C6FB1B1B6B7”按位做异或校验,得出校验位7F。然后将指令两端添加上$和*分隔符获得完整指令$CCTXA,0242286,1,2,
A468656C6C6FB1B1B6B7*7F发送给北斗短报文模块。
[0228] S104:将所述校验短报文数据发送至北斗短报文模块以进行数据解析;
[0229] 北斗短报文模块会对微控制器接收到的数据解析处理执行,并返回执行反馈,比如:$BDFKI,TXA,Y,Y,0,0060*15\r\n;
[0230] “BDFKI”‑‑指令关键字。
[0231] “TXA”—通信申请的关键字;
[0232] “Y”‑‑Y表示指令执行成功,N表示指令执行失败。
[0233] “Y”‑‑Y表示频度设置成功,N表示频度设置失败;
[0234] “0”‑‑发射抑制提示;
[0235] “0060”‑‑频度等待时间。表示多少秒后才能再次重新发送。
[0236] “15”‑‑异或校验字节。
[0237] S105:接收所述北斗短报文模块反馈的结果指令,若所述结果指令正确,则将所述校验短报文数据通过天线模块调频发送给北斗卫星。
[0238] 更为优选的,在所述接收所述北斗短报文模块反馈的结果指令之后,还包括:
[0239] 将所述结果指令解析以得到展示结果信息,并将所述展示结果信息反馈至用户端,所述展示结果信息包括指令执行是否成功、频度设置是否成功和频度等待时间。
[0240] 控制器接收到北斗短报文模块返回的指令,程序会对指令进行解析,并提取出有用的信息,包括指令执行是否成功、频度设置是否成功、下次频度需要等待的时间三个重要信息,直接以汉字形式“指令执行成功,频度设置成功,频度等待时间60秒”反馈给用户PC端。如若指令得到正确执行,数据经过板载天线调频发射给北斗卫星。上述指令设置方式,因为设置的收件人地址ID是自己,所以在几秒之内,RD模块就会收到卫星转发的信息,然后RD模块就会输出语句给微控制器,数据帧为:
[0241] $BDTXR,1,0242286,2,,A468656C6C6FB1B1B6B7*46\r\n
[0242] 更为优选的,所述将所述校验短报文数据通过天线模块调频发送给北斗卫星,包括:
[0243] 将所述校验短报文数据通过天线模块调频发送给北斗卫星,在所述北斗卫星中根据校验短报文数据中的地址信息发送至对应的北斗短报文设备。
[0244] 也即是北斗卫星会根据解析的地址信息发送至对应的北斗短报文设备来进行信息通讯。
[0245] 更为优选的,图2是本发明实施例公开的信息接收展示的流程示意图。如图2所示,所述封装解析方法,还包括:
[0246] S106:接收北斗卫星发送的北斗报文指令,并对所述北斗报文指令进行解析提取;
[0247] S107:将解析提取到的结果在用户端进行展示。
[0248] 当北斗报文终端处于数据接收状态时,其微控制器收到相应的数据$BDTXR,1,0242286,2,,A468656C6C6FB1B1B6B7*46\r\n后,程序对数据进行解析,提取出发送方卡号
0242286、接收到的内容“68656C6C6FB1B1B6B7”等关键信息。将ASCLL码字符串“68656C6C6FB1B1B6B7”(18字节长度)转化为十六进制数组68 65 6C 6C 6F B1 B1 B6 B7(9字节长度,其ASCLL字符串即为“hello北斗”),然后以“hello北斗[来自0242286的短报文]”的方式输出反馈信息给用户PC端。
[0249] 以具体的数据为例来进行完整的流程说明:
[0250] 在本发明实施例中以自发自收“hello北斗”为例介绍:
[0251] 1、假设发送和接收的卡号均为0242286。内置指令构成遵循格式:指令头+目标操作对象_具体操作指令;用户通过PC终端使用内置的精简指令向北斗短报文数传终端发送数据帧AT+BD_SENDTO=0242286:hello北斗;
[0252] 2、北斗短报文数传终端内的微控制器,接收到用户发送的数据并对数据帧进行解析提取:AT为指令头,BD为操作对象,SENDTO=0242286:hello北斗为具体指令,其中0242286为目的卡号,hello北斗为要发送的内容。
[0253] 3、北斗短报文数传终端内的微控制器对以上数据进行打包并加效验处理以符合北斗短报文协议。打包好的数据格式为:
[0254] $CCTXA,0242286,1,2,A468656C6C6FB1B1B6B7*7F
[0255] 其中,“CCTXA”‑‑指令关键字;“0242286”—收件人地址ID;“1”—1表示普通通信,0表示特快通信;“2”—2表示混合编码,1表示代码编码,0表示汉字编码;“A468656C6C6FB1B1B6B7”—电文内容;“7F”‑‑异或校验字节。
[0256] 而由“hello北斗”转化为要发送的电文内容“68656C6C6FB1B1B6B7”需要经过格式的转化,首先将ASCLL码字符串“hello北斗”转化为十六进制数据68 65 6C 6C 6F B1 B1 B6 B7,其中每个英文字符占一个字节,汉字占两个字节,十六进制数据强制为两位,不足两位的高位补零,比如,要发送的字符其转化为十六进制后是9,则应写为09。然后将十六进制数据68 65 6C 6C 6F B1 B1 B6 B7转化为ASCLL码字符串“68656C6C6FB1B1B6B7”(其十六进制数据为36 38 36 35 36 43 36 43 36 46 42 31 42 31 42 36 42 37),由此可看到,原发送内容“hello北斗”(9字节长度)经转变后“68656C6C6FB1B1B6B7”,其数据的长度变为原来的两倍了。
[0257] 4、将打包好的帧头关键字、收件人地址、通信模式、编码模式、电文内容按位做异或效验(BCC效验),即将内容
[0258] “CCTXA,0242286,1,2,A468656C6C6FB1B1B6B7”按位做异或校验,得出校验位7F。然后将上述指令的两端添加上$和*分隔符来获得相应的完整指令段:$CCTXA,0242286,1,
2,A468656C6C6FB1B1B6B7*7F,将上述指令段发送给北斗短报文模块。北斗短报文模块会对微控制器接收到的数据解析处理执行,并返回执行反馈,比如:$BDFKI,TXA,Y,Y,0,0060*
15\r\n;
[0259] “BDFKI”‑‑指令关键字;
[0260] “TXA”—通信申请的关键字;
[0261] “Y”‑‑Y表示指令执行成功,N表示指令执行失败;
[0262] “Y”‑‑Y表示频度设置成功,N表示频度设置失败;
[0263] “0”‑‑发射抑制提示;
[0264] “0060”‑‑频度等待时间。表示多少秒后才能再次重新发送;
[0265] “15”‑‑异或校验字节。
[0266] 微控制器接收到北斗短报文模块返回的指令,程序会对指令进行解析,并提取出有用的信息,包括指令执行是否成功、频度设置是否成功、下次频度需要等待的时间三个重要信息,直接以汉字形式“指令执行成功,频度设置成功,频度等待时间60秒”反馈给用户PC端。
[0267] 5、如若指令得到正确执行,数据经过板载天线调频发射给北斗卫星。因为设置的收件人地址ID是自己,所以在几秒之内,RD模块就会收到卫星转发的信息,然后RD模块就会输出语句给微控制器,数据帧为:
[0268] $BDTXR,1,0242286,2,,A468656C6C6FB1B1B6B7*46\r\n
[0269] 微控制器收到数据$BDTXR,1,0242286,2,,A468656C6C6FB1B1B6B7*46\r\n后,程序对数据进行解析,提取出发送方卡号0242286、接收到的内容“68656C6C6FB1B1B6B7”等关键信息。将ASCLL码字符串“68656C6C6FB1B1B6B7”(18字节长度)转化为十六进制数组68 65 6C 6C 6F B1 B1 B6 B7(9字节长度,其ASCLL字符串即为“hello北斗”),然后以“hello北斗[来自0242286的短报文]”的方式输出反馈信息给用户PC端。
[0270] 本发明实施例的方案为简化流程,方便用户使用,让微控制器对北斗短报文模块进行通信,并对复杂的接收指令进行数据解析和打包。流程由用户操作PC终端直接与复杂的北斗短报文协议打交道,变为用户操作PC终端与内置简洁易用指令的微控制器打交道,而微控制器根据简洁易用指令进一步与北斗短报文协议打交道,并对反馈的消息进一步解析提取出重要信息给用户PC端。
[0271] 北斗短报文数传终端的如图4所示,本发明实施例所有对北斗短报文原协议的数据接收及解析,以及对解析后对原协议封装都是在微控制器上进行的。
[0272] 本发明实施例中的北斗短报文的封装解析方法通过对复杂的接收指令与简洁的用户操作指令进行预先的对应存储,使得用户在后续使用的时候,可以直接输入简洁指令,然后通过解析来得到北斗短报文模块所需的数据格式;通过上述封装简化方式,大大简化了用户操作流程,降低设备学习成本,方便用户使用。
[0273] 实施例二
[0274] 请参阅图5,图5是本发明实施例公开的北斗短报文的封装解析装置的结构示意图。如图5所示,该北斗短报文的封装解析装置可以包括:
[0275] 第一接收模块21:用于接收用户输入的北斗报文指令;
[0276] 解析模块22:用于根据预设的北斗解析配置对所述北斗报文指令进行解析提取以得到相应的北斗报文数据;
[0277] 打包校验模块23:用于基于北斗短报文协议对所述北斗报文数据进行数据打包以及校验处理以得到校验短报文数据;
[0278] 发送模块24:用于将所述校验短报文数据发送至北斗短报文模块以进行数据解析;
[0279] 第二接收模块25:用于接收所述北斗短报文模块反馈的结果指令,若所述结果指令正确,则将所述校验短报文数据通过天线模块调频发送给北斗卫星。
[0280] 更为优选的,所述基于北斗短报文协议对所述北斗报文数据进行数据打包以及校验处理以得到校验短报文数据,包括:
[0281] 转换模块:用于基于北斗短报文协议对所述北斗报文数据进行数据打包转换以得到短报文数据,所述短报文数据包括帧头关键字、收件人地址、通信模式、编码模式和电文内容;
[0282] 校验模块:用于对所述短报文数据进行异或校验以得到异或校验字节,将所述异或校验字节存储至短报文数据中以得到校验短报文数据;
[0283] 拼接模块:用于在校验短报文数据的指令两端分别增加相应的分隔符以得到完整的校验短报文数据。
[0284] 更为优选的,所述封装解析方法,还包括:
[0285] 第三接收模块:接收北斗卫星发送的北斗报文指令,并对所述北斗报文指令进行解析提取;
[0286] 展示模块:用于将解析提取到的结果在用户端进行展示。
[0287] 更为优选的,所述北斗报文指令的格式为指令头+目标操作对象或指令头+目标操作对象_具体操作指令中的任意一种。
[0288] 本发明实施例中的北斗短报文的封装解析方法通过对复杂的接收指令与简洁的用户操作指令进行预先的对应存储,使得用户在后续使用的时候,可以直接输入简洁指令,然后通过解析来得到北斗短报文模块所需的数据格式;通过上述封装简化方式,大大简化了用户操作流程,降低设备学习成本,方便用户使用。
[0289] 实施例三
[0290] 请参阅图6,图6是本发明实施例公开的一种电子设备的结构示意图。电子设备可以是计算机以及服务器等,当然,在一定情况下,还可以是手机、平板电脑以及监控终端等智能设备,以及具有处理功能的图像采集装置。如图6所示,该电子设备可以包括:
[0291] 存储有可执行程序代码的存储器510;
[0292] 与存储器510耦合的处理器520;
[0293] 其中,处理器520调用存储器510中存储的可执行程序代码,执行实施例一中的北斗短报文的封装解析方法中的部分或全部步骤。
[0294] 本发明实施例公开一种计算机可读存储介质,其存储计算机程序,其中,该计算机程序使得计算机执行实施例一中的北斗短报文的封装解析方法中的部分或全部步骤。
[0295] 本发明实施例还公开一种计算机程序产品,其中,当计算机程序产品在计算机上运行时,使得计算机执行实施例一中的北斗短报文的封装解析方法中的部分或全部步骤。
[0296] 本发明实施例还公开一种应用发布平台,其中,应用发布平台用于发布计算机程序产品,其中,当计算机程序产品在计算机上运行时,使得计算机执行实施例一中的北斗短报文的封装解析方法中的部分或全部步骤。
[0297] 在本发明的各种实施例中,应理解,所述各过程的序号的大小并不意味着执行顺序的必然先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
[0298] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物单元,即可位于一个地方,或者也可以分布到多个网络单元上。可根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
[0299] 另外,在本发明各实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。所述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0300] 所述集成的单元若以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可获取的存储器中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或者部分,可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干请求用以使得一台计算机设备(可以为个人计算机、服务器或者网络设备等,具体可以是计算机设备中的处理器)执行本发明的各个实施例所述方法的部分或全部步骤。
[0301] 在本发明所提供的实施例中,应理解,“与A对应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其他信息确定B。
[0302] 本领域普通技术人员可以理解所述实施例的各种方法中的部分或全部步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质包括只读存储器(Read‑Only Memory,ROM)、随机存储器(Random Access Memory,RAM)、可编程只读存储器(Programmable Read‑only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read‑Only Memory,EPROM)、一次可编程只读存储器(One‑time Programmable Read‑Only Memory,OTPROM)、电子抹除式可复写只读存储器(Electrically‑Erasable Programmable Read‑Only Memory,EEPROM)、只读光盘(Compact Disc Read‑Only Memory,CD‑ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
[0303] 以上对本发明实施例公开的北斗短报文的封装解析方法、装置、电子设备及存储介质进行了详细介绍,本发明实施例中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。