HI,欢迎来到起点商标网!
24小时服务QQ:2880605093

一种卫星海洋浮标数据收发控制系统的制作方法

2021-02-10 23:02:19|291|起点商标网
一种卫星海洋浮标数据收发控制系统的制作方法
本发明涉及海洋数据监控
技术领域:
,特别是涉及一种卫星海洋浮标数据收发控制系统。
背景技术:
:世界人口的动物蛋白摄入量17%是来自水产品,海洋捕捞是类海洋开发史中最古老的产业之一。世界海洋捕捞产量每年约8千万吨,占水产品总产量近一半。海洋鱼类是海洋渔业最重要的捕捞对象,占世界海洋渔获量的80%以上,海洋捕捞业依然是渔业的主要支柱。全世界鱼类约有1.6万种,从两极到赤道海域,从沿岸到大洋,从表层到万米深渊的海底均有分布。虽然海洋中鱼类种类繁多,分布很广,但不是每个海域都能成为渔场,只要在经济鱼种密集度和资源量满足捕捞要求时才能作为渔场。捕捞渔船大部分时间消耗在寻找渔场的过程中,传统手段包括船长经验、人员观测、多船分散探捕等方式,以及运用卫星遥感技术预报渔场。传统方式寻找渔场方式中船长经验适合有长期作业捕捞作业的人员,不适合新船长,技术传授较为困难;人员观测方式偶然性大,观测范围受限;多船分散探捕提高了寻找到渔场的概率,但耗油较多。运用卫星遥感技术预报渔场方式,预报结果范围过大,仍然需要进一步缩小范围探测渔场。技术实现要素:本发明所要解决的技术问题是提供一种卫星海洋浮标数据收发控制系统,能够服务于渔场的寻找。本发明解决其技术问题所采用的技术方案是:提供一种卫星海洋浮标数据收发控制系统,包括浮标终端和船载终端,所述浮标终端和船载终端通过通讯卫星完成两者之间的数据通信,所述浮标终端用于通过多个传感器收集海洋物理参数,并将浮标基本数据和传感器数据合并成数据包以多帧多次发送的形式向所述船载终端发送;所述船载终端接收到所述浮标终端发出的全部帧后,将帧拼接为所述数据包,并以编码方式保存在数据包管理表中进行解析,解析后得到的数据保存到数据库;所述船载终端在接收到所述数据包后会把回复信息和控制命令信息暂存到回发队列,并定时自动读取所述回发队列中的信息,向所述浮标终端发送。所述浮标基本数据包括浮标卡号、时间、经度、纬度、航速和航向。所述传感器数据的长度为其中,numi为第i个传感器的数据个数,typei为第i个传感器的数据类型字节数。所述数据包由所述f个帧组成,每个帧有一个头文件,所述头文件中包含有包编号、帧数、帧序号、传感器i数据个数、传感器i数据类型,其中,sensorn×8是头文件中表示传感器i数据个数和类型的数据长度,k为浮标基本数据的长度;为传感器数据的长度,numi为第i个传感器的数据个数,typei为第i个传感器的数据类型字节数,n为一次传输的数据量,k为头文件中表示包编号、帧数和帧序号的数据长度。所述控制命令信息包括设置传感器、时间同步、时间间隔和立刻返回数据。所述船载终端接收浮标终端的数据时,通过串口监听所述浮标终端发来的数据,当有数据接收后触发数据接收事件,首先创建接收的包信息,保存到数据库中;然后处理数据包,读取数据帧,判断数据帧是否接收完整,如果没有接收完整不做处理,如果数据帧接收完整,则拼接帧形成数据包,并对数据包进行解析,解析完成后返回到处理数据包方法,存储包文件并把信息存储到数据库;最后把解析处理完成的包从数据包管理表中清除。所述船载终端向浮标终端回发数据时定义有时钟实例,时钟定时触发时,查询命令队列中是否有没有发出的命令,如果有则取出命令并向浮标终端发送,发送结束后在命令队列中删除命令,然后再检查数据包回发队列,如果数据包回发队列中有未发的数据包消息,则把数据包消息向浮标终端发送,然后在数据包回发队列中删除该包信息。所述船载终端查询与导出接收的数据时,在窗体中设置时间范围、浮标卡号和数据类型,运行搜索方法获取数据,然后返回到窗体显示,实现数据导出。所述船载终端在指定时间触发清除数据包管理表中的无效信息,处理过程保存在日志中;并在指定时间触发清除包信息回发队列和命令发送队列中的无效信息,处理过程保存在日志中。有益效果由于采用了上述的技术方案,本发明与现有技术相比,具有以下的优点和积极效果:本发明通过浮标终端采集海洋物理参数,并通过船载终端来完成卫星海洋浮标数据的接收和控制。浮标终端和船载终端通过通讯卫星完成两者之间的数据通信,浮标终端将浮标基本数据和传感器数据合并后以多帧多次向船载终端发送。船载终端接收到全部帧后,再把帧拼接为包,然后进行解译。船载终端接收到包后会把回复信息和控制命令信息暂存到回发队列,并定时自动读取回发队列中的信息,向浮标终端发送。船载终端可同时控制和接收多个浮标终端,通过采用清除包和回发信息的方式清除无效数据对内存的占用。本发明通过浮标终端与船载终端之间的数据收发控制能够服务于渔场的寻找,从而实现小范围探测渔场的目的。附图说明图1是本发明实施方式的结构方框示意图;图2是本发明实施方式中船载终端的类和结构关系图;图3是本发明实施方式中船载终端初始化时序图;图4是本发明实施方式中船载终端生成浮标控制命令的时序图;图5是本发明实施方式中船载终端接收浮标终端数据的方法与变量关系图;图6是本发明实施方式中船载终端向浮标终端回发数据功能的变量与方法关系图;图7是本发明实施方式中船载终端向浮标终端回发数据的时序图;图8是本发明实施方式中船载终端查询浮标数据的时序图;图9是本发明实施方式中船载终端清除数据包与控制命令的关系图。具体实施方式下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。本发明的实施方式涉及一种卫星海洋浮标数据收发控制系统,包括浮标终端和船载终端,所述浮标终端和船载终端通过通讯卫星完成两者之间的数据通信,所述浮标终端用于通过多个传感器收集海洋物理参数,并将浮标基本数据和传感器数据合并成数据包以多帧多次发送的形式向所述船载终端发送;所述船载终端接收到所述浮标终端发出的全部帧后,将帧拼接为所述数据包,并以编码方式保存在数据包管理表中进行解析,解析后得到的数据保存到数据库;所述船载终端在接收到所述数据包后会把回复信息和控制命令信息暂存到回发队列,并定时自动读取所述回发队列中的信息,向所述浮标终端发送。如图1所示,浮标终端是一种漂浮在海上的卫星海洋浮标,它利用太阳能电池板供电,通过挂载的多个传感器收集海洋物理参数,如温度、盐度、ph、声呐等;卫星海洋浮标数据的接收和控制,通过船载终端来完成,船载终端部署在船上,通过船上的发电设备供电;浮标终端和船载终端都安装有卫星通信卡,通过通讯卫星完成两者之间的数据通信。浮标终端挂载的传感器名称,分别为传感器1(sensor1)、传感器2(sensor2)、……传感器n(sensorn),通过下位机读取海洋物理参数。船载终端由上位机发送控制命令和接收数据,接收的数据保存在数据库中,通过终端可以查询接收的数据。上位机和下位机的简单通信的数据类型约定不变,共有11种数据类型(表1),包括无符号整数(8位、16位、32位、64位)、有符号整数(8位、16位、32位、64位)、包括浮点数(32位、64位)、128位精确的十进制值。表1浮标数据数据类型定义本实施方式中,浮标终端发送的基本信息是固定的(见表2),包括浮标卡号(32位无符号整数类型)、时间(32位无符号整数类型)、经度(32位单精度浮点型)、纬度(32位单精度浮点型)、航速(8位无符号整数)、航向(8位无符号整数)。数据长度为b=32(浮标卡号)+32(时间)+32(经度)+32(纬度)+8(航速)+8(航向)=144bit。其中,浮标卡号取值范围0到4294967295,卡号不多于9位;时间为2000年起算的秒数,上位机接收到数据后,在2000年基础上加上秒数来计算时间;经纬度类型都为单精度浮点型,经度范围-180~180°,纬度范围-90~90°;航速为8位无符号整数,取值范围为0到255,除以10后范围为0~25.5m/s;航向为16位无符号整数类型,采用方位角表达,范围0~259。表2浮标数据基本信息序号名称数据类型说明1浮标卡号uint卡号不多于9位2时间uint2000年起的秒数3经度float经费范围-180~180°4纬度float纬度范围-90~90°5航速byte航速数值除以10,单位m/s6航向ushort航向方向角0~2597电压ushort浮标电压状况浮标终端的传感器有多个,numi为第i个传感器的数据个数,typei为第i个传感器的数据类型字节数,两者乘积为第i个传感器的字节数,浮标终端的n个传感器字节数总和为传感器的数据长度:浮标基本数据和传感器数据合并后向船载终端发送,一般会超过通信卫星一条短消息的长度,因此向船载终端发送的完整数据作为一个包,把包划分为多帧,用多次发送。船载终端接收到全部帧后,再把帧拼接为包,然后进行解译。数据包由多个帧组成,每帧有一个头文件(表3),头文件中包含包编号、帧数、帧序号、传感器i数据个数、传感器i数据类型。包的一组帧的包编号相同,每月开始从1起始编号,编号用该月起始的分钟数,到该月最后一分钟位置,编号范围从1到44640的值。帧数是包的一组帧的总数,8位有符号整数类型的前4位,帧序号是帧在一组帧的顺序号,8位有符号整数类型后4位,只有各帧全部接收并且按顺序拼接才能正确解译数据。传感器i数据个数表明该传感器在包中有多少数据,8位有符号整数类型的前4位,传感器i数据类型表明该传感器的数据是什么类型,8位有符号整数类型后4位。在n个传感器说明的最后有头结束位,值为255。包编号、帧数、帧序号在数据包的每都包含,传感器i数据个数、传感器i数据类型、头结束,仅在第一帧包含。头文件的数据长度为:h=16(包编号)+8(帧)+8(传感器个数n)+sensorn×8=32+sensorn×8。表3帧数据的头文件完整的数据包信息包括头文件、基本数据、传感器数据,因此数据长度为:每个帧都有头文件,假设通信卫星一次传输数据量为n位,则一个包需要传输的帧数f为:如图2所示,本实施方式的船载终端定义了主窗体类(mainwindow)、串口测试类(comtest)、命令控制类(beidoucmm)、数据浏览类(getbeidou),以及后台运行的串口数据接收类(readcom)、数据回发类(sendback)、清理回发类(clearsenback)、清理包类(clearbao)。实例化的主窗体界面是用户交互界面,上面主要窗体有串口测试、命令控制、数据浏览。串口测试完成端口、波特率、数据位、校验位、停止位的设置,运行测试端口返回可用的端口信息,运行打开串口完成串口开启,再运行数据接收,启动后台程序。命令控制在完成浮标号选择,命令名称选择,参数设置后,运行发送命令,实现命令的发送功能。数据浏览在完成浮标卡号选择,时间范围设置,然后运行查询功能,获取对应浮标的数据,运行导出功能可以导出查询到的数据。船载终端初始化时序如图3所示。船载终端通过发送命令控制浮标终端,主要控制命令包括设置传感器、时间同步、时间间隔、立刻返回数据(见表4)。设置传感器格式为“n:sensori,num,type;”n是传感器书,sensori是传感器号,num是数据个数,type是数据类型。例如“3:1,3,8;2,1,8;3,5,2”表示3个传感器,1号传感器3个数据,数据类型为32位单精度浮点型;2号传感器有1个数据,数据类型为32位单精度浮点型;3号传感器有5个数据,数据类型为16位无符号整数类型。时间同步格式为“yyyy-mm-ddhh:mm:ss”,表示年月日时分秒。时间间隔为浮标终端发送数据的时间间隔,通过命令设置间隔的分钟数。立刻返回数据为命令浮标终端立即发回数据。表4浮标终端的主要控制命令序号名称数据类型参数1设置传感器sensor(n:sensori,num,type;)3:1,3,9;2,1,9;3,5,22时间同步timeyyyy-mm-ddhh:mm:ss3时间间隔spann分钟4立刻返回数据atoncebeidoucmm为生成命令的窗体对象(见图4),在选择好命令,设置好参数后,运行命名发送功能,命令首先通过实例化的sqlitehelper对象报道数据库中,然后经过创建命令createcmm,命令编码(ascii2hex),暂存到sendback实例的回发消息队列中(sendbackmessage)。浮标终端发回的数据由reamcom对象完成(图5),在初始化时首先实例化reamcom对象,传入的参数有回发队列(m_sendback)、串口实例(m_comdevice)、数据包管理表(m_hashbeidoubao)。回发队列用于暂存接收到的数据包信息,这些信息会向浮标终端回复数据包收到,串口实例用于监听浮标终端发来的数据,数据包管理表用于管理接收的报包数据,如果首次接收到包则保存在表中,如果非首次接收则忽略。实例化的reamcom通过串口监听浮标终端发来的数据,当有数据收后触发com_datareceived事件,首先创建接收的包信息(beidoubao),保存到数据库中;然后处理数据包(processbeidoubao),读取数据帧(readbeidouzhen),判断数据帧是否接收完整,如果没有接收完整不做处理,如果数据帧接收完整,则拼接数据包并对数据包进行解析(hexstrtobyte),解析完成后返回到处理数据包(processbeidoubao)方法,存储包文件并把信息存储到数据库(saveandinsertdatabase);最后把解析处理完成的保从数据包管理表中清除(clearbaothread)。数据回发类(sendback)实例化为对象(见图6),完成接收包的回发和控制命令的回发。数据包回发队列(m_baoinfo2fubiao)暂存接收的包的信息,船载终端向浮标终端发送包信息,通知浮标终端包已经成功接收,浮标终端就不再重发。命令队列(m_cmm2fubiao)暂存控制命令,命令是由beidoucmm实例化的对象生成,通过船载终端向浮标终端发送命令,控制浮标的工作。数据回发类中定义有时钟实例(图7),设置一定的时间间隔后,时钟定时触发ontimer事件,查询命令队列(m_cmm2fubiao)中是否有没有发出的命令,如果有则取出命令并向浮标终端发送,发送结束后在队列中删除命令(removeat)。然后再检查数据包回发队列(m_baoinfo2fubiao),如果队列中有未发的数据包消息,则把消息向浮标终端发送,然后在队列中删除该包信息。船载终端接收的数据存储在数据库中,用getbeidou窗体类实例化对象(见图8),在窗体中设置时间范围、浮标卡号、数据类型等信息,运行searchget方法,由实例化的sqlitehelper对象获取数据,然后返回到窗体显示,数据也可以导出。船载终端以包的形式接收浮标终端数据,每个包采用编码管理,数据包以编码方式保存在数据包管理表(m_hashbeidoubao),数据包各帧都接收到后会被解析保存到数据库,并在包管理表中删除该包;如果数据包中的帧不能全部接收到,则数据包一直保存在包管理表中,随着接收时间延长(一个月以上)积累包增多,占用大量内存,由于包发送一般限制在1小时到1内发送完成,如果超过1天没有收到则该包失效,因此限时1天对包管理表中超过1天的包进行清除。船载终端接收到包后会把回复信息和控制命令信息暂存到回发队列(m_sendback),终端定时自动读取回发队列中的信息,向浮标终端发送,发送完成后从队列中清除该消息。消息发送一般限制在1分钟到1小时发送完成,如果发送失败则信息会留在回发队列中,随着接收时间延长(一个月以上)积累包增多,占用内存,因此限时1天对队列中超过1天的消息进行清除。船载终端同时控制和接收多个浮标终端,因此在时间较长的情况下(一个月以上),包管理表中出现的无效数据包,以及回发队列中的无效包回发信息、命令控制信息会更多,因此采用清除包和回发信息非常重要。包清除类(runclearbaotimer)和回发清除类(clearsendback)完成清除(见图9),实例化的包清除对象在指定时间触发ontimeclearbaoevent事件清除数据包管理表(m_hashbeidoubao)的无效信息,处理过程保存在日志中(m_logger)。实例化的回发清除对象在指定时间触发ontimeclearsendbackevent事件清除包信息回发队列(m_hashbeidoubao)和命令发送队列(m_cmm2fubiao)的无效信息,处理过程保存在日志中(m_logger)。当前第1页1 2 3 

起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。

此文章来源于网络,如有侵权,请联系删除

tips