本发明涉及工业通讯技术领域,具体地说是一种版本信息传输系统及方法。
背景技术:
目前,在对agv小车的控制过程中,随着车载软件版本的不断更新,为了保证调度软件与车载软件的版本一致,对版本的管理就显得尤为重要,现有的技术方案是通过传输字节的方式进行版本传输,通过传输协议的规定,在调度通信模块中解析传输的版本信息,继而进行比较,但这种传输方法需要依靠传输协议进行,当传输协议发生更改时则会解读错误,导致程序异常,且代码的可读性较差。
因此,现有技术还有待发展。
技术实现要素:
鉴于上述现有技术的不足之处,本发明的目的在于提供一种版本信息传输系统及方法。旨在解决现有技术代码可读性差、通信兼容性差的问题。
为了达到上述目的,本发明采取了以下技术方案:
本发明提供一种版本信息传输系统,其特征在于,包括:
调度管理模块,其内置有调度软件;
车载控制模块,其内置有车载软件;
调度通信模块,分别与调度管理模块和车载控制模块通信连接,所述调度通信模块包括函数接口,所述调度管理模块、车载控制模块分别通过所述函数接口将自身版本信息封装为字符串。
进一步的,所述调度通信模块采用mqtt协议进行传输。
进一步的,所述字符串包括软件名称、版本号、标识位。
进一步的,所述标识位包括分隔标识位和终结标识位,所述分隔标识位位于所述软件名称和版本号之间,所述终结标识位位于字符串末尾。
进一步的,所述车载控制模块包括arm9处理器、驱动板、扩展板;所述车载软件包括内置在arm9处理器中的总控软件、内置在驱动板中的驱动软件、内置在扩展板中的扩展软件、脚本软件、地图数据库软件。
本发明还提供一种上述的信息传输系统的信息传输方法,其特征在于,包括以下步骤:
1)所述车载控制模块获取自身车载软件的版本信息,并封装成车载软件版本字符串;
2)所述车载控制模块向所述调度管理模块发送连接请求;
3)所述车载控制模块接收到所述调度管理模块发送的连接成功的信号后,所述车载控制模块将车载软件版本字符串经调度通信模块传输至调度管理模块;
4)所述调度管理模块将车载软件版本字符串和所述调度软件的版本号进行比对;
5)若所述车载软件版本字符串中的版本号和所述调度软件的版本号相同,则车载控制模块输出正常运行指令;若所述车载软件版本字符串中的版本号和所述调度软件版本字符串中的版本号不同,则车载控制模块输出中止运行指令。
进一步的,步骤1)中所述车载控制模块通过调用所述调度通信模块的函数接口将所述车载软件的软件名称、版本信息封装为车载软件版本字符串,并将所述车载软件版本字符串保存在车载控制模块中。
本发明与现有技术相比,编写/读取程序时不需依赖协议制定,避免了因为协议解读错误而导致的异常,显示版本信息内容更直观,更方便添加修改内容,代码可读性更强。
附图说明
图1为本发明的信息传输系统模块连接示意图;
图2为本发明的信息传输方法流程步骤示意图。
具体实施方式
以下对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
实施例1
如图1所示,本发明提供一种版本信息传输系统,其特征在于,包括:
调度管理模块,其内置有调度软件;
车载控制模块,其内置有车载软件;
调度通信模块,分别与调度管理模块和车载控制模块通信连接,所述调度通信模块包括函数接口,所述调度管理模块、车载控制模块分别通过所述函数接口将自身版本信息封装为字符串。
进一步的,所述调度通信模块采用mqtt协议进行传输。
进一步的,所述字符串包括软件名称、版本号、标识位。
进一步的,所述标识位包括分隔标识位和终结标识位,所述分隔标识位采用“=”,所述终结标识位采用“;”,所述“=”位于所述软件名称和版本号之间,所述“;”位于字符串末尾。
进一步的,所述车载控制模块包括arm9处理器、驱动板、扩展板,所述车载软件包括内置在arm9处理器中的总控软件、内置在驱动板中的驱动软件、内置在扩展板中的扩展软件、脚本软件、地图数据库软件;
如图2所示,本发明的传输方法按照如下步骤进行:
1)分别获取arm9处理器中的总控软件、内置在驱动板中的驱动软件、内置在扩展板中的扩展软件、脚本软件、地图数据库软件的软件名称及版本信息,并分别封装成形如“”name”+x.x.x.x;”的字符串,其中“name”代表其中具体软件的名称,“x.x.x.x”代表相应软件的版本号;
2)所述车载控制模块向所述调度管理模块发送连接请求;
3)所述车载控制模块接收到所述调度管理模块发送的连接成功的信号后,所述车载控制模块将上述的arm9处理器中的总控软件、内置在驱动板中的驱动软件、内置在扩展板中的扩展软件、脚本软件、地图数据库软件的软件名称及版本信息封装成的若干个形如“”name”+x.x.x.x;”的字符串经调度通信模块传输至调度管理模块;
4)所述调度管理模块对每个形如“”name”+x.x.x.x;”的字符串进行解读,获得其中隐含的版本号信息并和所述调度软件的版本号进行比对;
5)若所述车载软件版本字符串中的版本信息和所述调度软件版本字符串中的版本信息相同,则调度管理模块向车载控制模块输出正常运行指令;若所述车载软件版本字符串中的版本信息和所述调度软件版本字符串中的版本信息不同,则调度管理模块向车载控制模块输出中止运行指令。
进一步的,步骤1)中所述车载控制模块通过调用mqtt通信模块的函数接口将所述车载软件的软件名称、版本号封装为字符串并保存在本地。