【技术实现步骤摘要】
一种基于MQTT协议的多客户端多串口通信方法及系统
[0001]本专利技术涉及数据通信领域,尤其是涉及一种基于MQTT协议的多客户端多串口通信方法及系统。
技术介绍
[0002]串行接口简称串口,是采用串行通信方式的扩展接口。串口的数据一位一位地顺序传送,通信线路简单,只要一对传输线就可以实现双向通信,以其开发简单,使用便捷,成本低廉而著称,广泛的应用于各种场合。但是,串口的缺点也很明显,不支持复杂的应用场合,比如当多客户端对同一串口同时进行访问,就很容易发生冲突;再比如一个客户端对多个串口设备的通信,就必须预先知道其端口等。要实现多客户端多串口的通信,一般在串口设备上加硬件转换设备实现,如在串口设备上增加一个串口转TCP/UDP/IP协议的硬件设备,然后每个客户端均与该硬件设备建立一个TCP/UDP连接,以实现双向通信。但是,这种方式每个串口都需要配备一个硬件设备,当客户端需要与多个串口连接时则需要维护多个TCP连接,实现方式复杂,工作量大,且成本高。
技术实现思路
[0003]本专利技术的目的就是为了提供 ...
【技术保护点】
【技术特征摘要】
1.一种基于MQTT协议的多客户端多串口通信方法,其特征在于,包括以下步骤:发送连接确认信息至设备端;获取并存储设备端存储的设备ID号,基于设备ID号进行设备ID识别,其中,所述设备ID号在设备端连接到服务器时自动分配给设备端,一个设备端对应一个设备ID号且设备ID号不重复;获取设备端发送的创建队列指令,所述创建队列指令基于连接确认信息和设备ID号确定;基于创建队列指令创建收发队列Topic,所述收发队列Topic包括发送队列和接收队列,一个设备ID号对应一对唯一的收发队列Topic,设备端自动订阅接收队列Topic,其中,发送队列用于缓存设备端发送的信息,接收队列用于缓存设备端接收的信息;异步接收客户端发送的客户数据信息并存储至接收队列;接收设备端的订阅信息,其中,一个设备端订阅一个接收队列,且所述设备端的设备ID号与所述接收队列所属的收发队列Topic对应的设备ID号一致;当接收队列中存储的客户数据信息发生变化时,基于设备端的订阅信息主动向设备端发送客户数据信息或者被动等待设备端基于订阅信息获取客户数据信息;接收设备端发送的设备数据信息并存储至发送队列;接收客户端的订阅信息,其中,一个客户端订阅一个或多个发送队列,客户端基于接收到的查询信息确定订阅信息;当发送队列中存储的设备数据信息发生变化时,基于客户端的订阅信息向客户端发送设备数据信息。2.根据权利要求1所述的一种基于MQTT协议的多客户端多串口通信方法,其特征在于,所述方法还包括:接收设备端发送的心跳信息;若预配置的心跳周期内接收到心跳信息或设备数据信息,则将所述设备端对应的连接状态标记为在线,否则,标记为离线。3.根据权利要求2所述的一种基于MQTT协议的多客户端多串口通信方法,其特征在于,所述查询信息包括设备端的设备ID号、连接状态、对应的队列Topic。4.根据权利要求1所述的一种基于MQTT协议的多客户端多串口通信方法,其特征在于,所述设备ID号由MCU指定生成。5.根据权利要求1所述的一种基于MQTT协议的多客户端多串口通信方法,其特征在于,所述设备端的设备类型包括串口设备、以太网接口设备。6.一种基于MQTT协议的多客户端多串口通信方法系统,其特征在于,包括:客户端,所述客户端通过基于TCP/IP的MQTT接入服务器,基于订阅需求订阅服务器中的队列Topic的发送队列,并向服务器发送客户数据信息;设备端,通过串口连接至服务器,包括设备端MQTT管理模块,其上存储有设备ID号,所述设备端MQTT管理模块基于设备ID号订阅服务器中对应的收...
【专利技术属性】
技术研发人员:颜士博,江期助,
申请(专利权)人:上海铁路通信有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。