一种基于消息队列的数据收发方法技术

技术编号:24589974 阅读:35 留言:0更新日期:2020-06-21 02:29
本发明专利技术公开了一种基于消息队列的数据收发方法,属于数据收发领域,包括以下步骤:S1:定义队列结构体、节点结构体,基于这两个结构体定义一系列的消息队列操作的API接口,S2:定义空闲队列和工作队列,定义节点对象的具体元素,S3:定义空闲队列和工作队列的入队和出队接口,S4:通过空闲队列和工作队列的相互导入导出来实现数据的收发。本发明专利技术针对基于消息队列的数据收发方法,该方法能够使消息队列框架接口稳定,第三方使用者无需修改消息队列框架接口;收发任务和硬件收发接口相分离,大大降低了代码的耦合度;扩展性强,可用于任何需要收发缓存的场合;耦合度低,避免了资源的死锁。

A method of data sending and receiving based on message queue

【技术实现步骤摘要】
一种基于消息队列的数据收发方法
本专利技术涉及数据收发领域,具体为一种基于消息队列的数据收发方法。
技术介绍
在工业现场使用总线协议采集感知设备数据和控制设备执行动作时,都会涉猎到协议多条数据接收和多条数据发送的问题。常规做法是建立接收数据链表和发送数据链表,当接收任务接收到工业现场设备数据时,先把数据加入到接收数据链表,然后从接收数据链表中取出一条协议数据进行解析;当发送任务向工业现场设备发送数据时,先把发送数据加入到发送数据链表,然后从发送数据链表中取出协议数据,调用硬件发送接口发送到设备上。这样做的劣势是:以发送举例,发送任务和硬件发送接口调用同一个发送数据链表,容易引起资源死锁;另外,发送任务和硬件发送接口在同一个任务中,无法做到多任务发送和硬件发送接口的分离。从上文不难发现,现有技术的数据收发方法存在一些缺陷:常规的方案由于发送任务和硬件发送接口调用同一个发送数据链表或者硬件接收接口和接收任务调用同一个接收数据链表,容易引起资源死锁;常规的方案无法做到多发送任务和硬件发送接口的分离。为此,提出一种基于消息队列的数据收发本文档来自技高网...

【技术保护点】
1.一种基于消息队列的数据收发方法,其特征在于,包括以下步骤:/nS1:定义队列结构体、节点结构体,基于这两个结构体定义一系列的消息队列操作的API接口;/nS2:定义空闲队列和工作队列,定义节点对象的具体元素;/nS3:定义空闲队列和工作队列的入队和出队接口;/nS4:通过空闲队列和工作队列的相互导入导出来实现数据的收发。/n

【技术特征摘要】
1.一种基于消息队列的数据收发方法,其特征在于,包括以下步骤:
S1:定义队列结构体、节点结构体,基于这两个结构体定义一系列的消息队列操作的API接口;
S2:定义空闲队列和工作队列,定义节点对象的具体元素;
S3:定义空闲队列和工作队列的入队和出队接口;
S4:通过空闲队列和工作队列的相互导入导出来实现数据的收发。


2.根据权利要求1所述的一种基于消息队列的数据收发方法,其特征在于:在S2中,队列的大小既可以运行前静态分配,又可以在运行中根据发送协议数据包动态申请。


3.根据权利要求1所述的一种基于消息队列的数据收发...

【专利技术属性】
技术研发人员:杨更新吴浩峰
申请(专利权)人:北京天拓智领科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1