一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

跨板卡信息采集方法及装置与流程

2022-07-10 06:42:11 来源:中国专利 TAG:


1.本发明涉及通信技术领域,尤其涉及一种跨板卡信息采集方法及装置。


背景技术:

2.在智能制造等场景下,对于需要多板卡协同工作的嵌入式系统,需要进行跨板卡的信息采集。例如,以智能工厂或智能制造的监控和管理系统为例,构成如图1所示的系统。如图1所示,板卡a作为人机交互板,用于人机交互;板卡b作为设备1的监控板,用于监控设备1的工作情况;板卡c作为设备2的监控板,用于监控设备2的工作情况。板卡a、板卡b和板卡c都可以进行板卡间消息交互,可实现本板信息采集。信息采集函数可以如表1和表2所示。
3.表1板卡b实现的本板信息采集函数
[0004][0005]
表2板卡c实现的本板信息采集函数
[0006][0007]
可以基于板卡a,通过人机交互的方式,设定如图2所示的信息采集流程。对于单板卡环境,图2所示的信息采集流程非常容易实现。但对于多板卡环境,一般的跨板信息采集方法包括:请求方通过板卡间通信发出请求消息;响应方调用本板信息采集函数获取信息,
然后通过板卡间通信将响应消息发回给请求方。通常的板卡间通信是异步的,即两个任务分别负责收发消息,请求方必须经过特殊处理才可以获知收到的响应消息是对应哪个请求消息,并且还要额外处理超时问题。如图2中“状态综合处理1”的输入为此时获取的设备1的状态1和设备2的状态3的情况下,为了完成信息采集,异步的板卡间通信非过程常复杂,进而造成整体信息采集流程复杂及代码模块之间耦合度会增加、大大增加代码开发量等不足。


技术实现要素:

[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]
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述跨板卡信息采集方法。
[0035]
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述跨板卡信息采集方法。
[0036]
本发明提供的跨板卡信息采集方法及装置,通过建立基于信号量等待机制的消息通道,能实现简单、高效的跨板卡信息同步采集,能解决采用普通的板卡间通信带来的控制流程复杂的问题,使上层流程控制不用感知跨板信息采集的底层实现,使其具有良好的扩展性,能降低代码模块之间的耦合度,大大降低上层控制流程的设计复杂度,减少代码开发工作量,提高代码质量。进一步地,在智能制造或者需要多板卡协同工作的环境下,本方面实施例的优势尤其突出。
附图说明
[0037]
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0038]
图1是现有技术提供的跨板卡信息采集系统的结构示意图;
[0039]
图2是现有技术提供的信息采集方法的流程示意图;
[0040]
图3是本发明提供的跨板卡信息采集方法的流程示意图之一;
[0041]
图4是本发明提供的跨板卡信息采集方法的流程示意图之二;
[0042]
图5是本发明提供的跨板卡信息采集方法的流程示意图之三;
[0043]
图6是本发明提供的跨板卡信息采集方法的流程示意图之四;
[0044]
图7是本发明提供的跨板卡信息采集装置的结构示意图之一;
[0045]
图8是本发明提供的跨板卡信息采集装置的结构示意图之二;
[0046]
图9是本发明提供的电子设备的结构示意图。
具体实施方式
[0047]
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0048]
在本发明实施例的描述中,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性,且不涉及顺序。
[0049]
在本发明实施例的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明实施例中的具体含义。
[0050]
下面结合图3至图9描述本发明提供的跨板卡信息采集方法及装置。
[0051]
图3是本发明提供的跨板卡信息采集方法的流程示意图之一。下面结合图3描述本发明实施例的跨板卡信息采集方法。该方法应用于第一板卡,如图3所示,该方法包括:步骤301和步骤302。
[0052]
具体地,本发明实施例提供的跨板卡信息采集方法的执行主体为跨板卡信息采集装置,该装置可以为第一板卡。本发明实施例提供的跨板卡信息采集方法,用于第一板卡通过第二板卡进行信息采集。
[0053]
步骤301、向第二板卡发送携带有目标任务的索引的第一消息,并将目标任务的信号量修改为占用状态,以使得第二板卡基于目标任务的索引,采集目标信息。
[0054]
第一板卡,可以为设置有处理器的嵌入式板卡。第二板卡,可以为设置有处理器的嵌入式板卡。第一板卡与第二板卡通信连接。
[0055]
目标任务为有板卡间(即跨板卡)信息采集需求的任务。示例性地,目标任务可以为第一板卡通过第二板卡采集某个与第二板卡电连接的设备的状态信息的任务。
[0056]
可选地,可以为目标任务初始化一个全局的数据结构,记为board_info_pipe。该数据结构board_info_pipe可以包括以下字段:目标任务的索引task_cb_p、目标任务的信号量pipe_sem、第一时间戳time_stamp、目标板卡的标识dst_boardid、需采集的目标信息的类型req_type、采集操作的成败结果resp_ret、采集到的信息(即目标信息)u_pipe。
[0057]
目标任务的索引task_cb_p是该任务的标识,与任一其他任务的索引均不相同。基于目标任务的索引task_cb_p,可以访问到目标任务的全局数据结构board_info_pipe。
[0058]
信号量(semaphore),又称信号灯,是在多线程环境下使用的一种设施,是可以用
来保证两个或多个关键代码段不被并发调用。在进入一个关键代码段之前,线程必须获取一个信号量;一旦该关键代码段完成了,那么该线程必须释放信号量;其他想进入该关键代码段的线程必须等待直到该线程释放信号量。
[0059]
目标任务的信号量pipe_sem,为采集等待信号量。
[0060]
目标板卡的标识dst_boardid,与任一其他板卡的标识均不相同。本发明实施例中的目标板卡为第二板卡。相应地,源板卡为第一板卡。
[0061]
目标信息,为需要第二板卡采集的信息。示例性地,目标信息的类型req_type可以包括第二板卡能采集的各设备的状态。
[0062]
采集操作的成败结果resp_ret,指第二板卡是否成功采集到目标信息。示例性地,resp_ret为1表示采集操作成功,第二板卡成功采集到目标信息;resp_ret为0表示采集操作失败,第二板卡未采集到目标信息。
[0063]
初始化全局数据结构board_info_pipe,可以包括:获取当前时间对其中的第一时间戳time_stamp字段进行赋值;将目标任务的索引赋值给task_cb_p字段;将目标信息的类型赋值给req_type字段;将第二板卡的标识赋值给dst_boardid字段;以及,将占用状态对应的值赋值给pipe_sem字段。
[0064]
第一消息,可以称为“跨板采集通道的板外请求事件”消息。第一板卡基于目标板卡的标识dst_boardid,向第二板卡发送第一消息,并将目标任务的信号量由释放状态修改为占用状态。第一消息,可以携带有目标任务的索引task_cb_p。第一消息,还可以携带有采集目标信息的类型req_type的信息所需要的全部参数。
[0065]
第二板卡接收第一消息之后,可以根据目标任务的索引task_cb_p,找到目标任务的全局数据结构board_info_pipe,从中获取目标信息的类型req_type以及采集该类型的信息所需要的全部参数;可以调用目标信息的类型req_type对应的信息采集函数(例如某个状态获取函数等)进行信息采集,将采集结果按照消息格式组成数据流,向第一板卡返回第二消息。
[0066]
第二消息,可以称为“跨板采集通道的板外响应事件”消息。
[0067]
除了目标任务的采集结果之外,第二消息还可以携带有目标任务的索引。
[0068]
步骤302、在期望时间段内接收到第二板卡发送的携带有目标任务的索引的第二消息的情况下,获取第二消息携带的目标信息的采集结果,并释放目标任务的信号量。
[0069]
具体地,第一板卡在发送第一消息之后,可以启动预设时长的定时器inner_timer_id。期望时间段,可以为以第一消息的发送时刻为起始时刻,时长为上述预设时长的时间段。
[0070]
预设时长可以根据实际情况设置。本发明实施例对预设时长的具体值不进行具体限定。示例性地,预设时长可以为2秒。
[0071]
若在定时器inner_timer_id结束之前,第一板卡接收到第二消息,则可以基于第二消息携带的目标任务的索引,确定第二消息是否是第二板卡对第一消息的响应;确定第二消息是第二板卡对第一消息的响应之后,可以获取第二消息携带的目标信息的采集结果,完成跨板卡信息采集,并停止定时器inner_timer_id以及将目标任务的信号量pipe_sem由占用状态修改为释放状态,以便执行下一个跨板卡信息采集任务。
[0072]
第二消息携带的目标信息的采集结果,可以包括采集操作的成败结果resp_ret和
采集到的信息u_pipe。
[0073]
可以理解的是,在采集操作成功的情况下,第二消息携带的采集到的信息u_pipe为目标信息;在采集操作失败的情况下,第二消息携带的采集到的信息u_pipe可以为空。
[0074]
需要说明的是,可以建立一条专属消息通道,用于第一消息和第二消息等用于实现目标任务的消息的传输。可选地,在消息通道存在不同优先级的情况下,可将该专属消息通道设置为最高优先级。通过封装成专属的信息采集通道,可以使上层流程控制不需要感知底层实现。
[0075]
可以理解的是,本发明实施例中,不需要阻塞消息收发任务,即可实现信息同步采集,能提高通信的效率。
[0076]
本发明实施例通过建立基于信号量等待机制的消息通道,能实现简单、高效的跨板卡信息同步采集,能解决采用普通的板卡间通信带来的控制流程复杂的问题,使上层流程控制不用感知跨板信息采集的底层实现,使其具有良好的扩展性,能降低代码模块之间的耦合度,大大降低上层控制流程的设计复杂度,减少代码开发工作量,提高代码质量。进一步地,在智能制造或者需要多板卡协同工作的环境下,本方面实施例的优势尤其突出。
[0077]
基于上述任一实施例的内容,获取第二消息携带的目标信息的采集结果,具体包括:获取第二消息携带的第二时间戳。
[0078]
具体地,第二消息还可以携带有第二时间戳。
[0079]
相应地,第一板卡接收第二消息之后,还可以获取第二时间戳。
[0080]
在第二时间戳与目标任务的第一时间戳相同的情况下,获取第二消息携带的目标信息的采集结果。
[0081]
具体地,第一板卡获取第二时间戳之后,可以比较第一时间戳和第二时间戳是否相同,进一步基于时间戳进行检验。
[0082]
在正常情况下,第二板卡可以从接收第一消息的数据结构board_info_pipe中获取第一时间戳,将其作为第二消息携带的第二时间戳;如果发生异常,例如第二消息在传递过程中被非法篡改或者第二板卡的处理出现错误等,则第一板卡接收的第二消息携带的第二时间戳与目标任务的第一时间戳不一致。
[0083]
在第二时间戳与目标任务的第一时间戳相同的情况下,说明第二消息是对第一消息的有效响应,即第二消息有效,从而可以获取第二消息携带的目标信息的采集结果。
[0084]
本发明实施例通过时间戳检验机制,能提高通信的可靠性和跨板卡信息采集的安全性,确保跨板卡信息采集的有效性,能避免无效的采集、提高效率。
[0085]
基于上述任一实施例的内容,获取第二消息携带的第二时间戳之后,还包括:在第二时间戳与目标任务的第一时间戳不相同的情况下,将目标信息的采集结果确定为采集无效。
[0086]
具体地,在第二时间戳与目标任务的第一时间戳不同的情况下,说明第二消息不是对第一消息的有效响应,即第二消息无效,可以不进行处理,将目标信息的采集结果确定为采集无效。
[0087]
本发明实施例通过时间戳检验机制,能提高通信的可靠性和跨板卡信息采集的安全性,确保跨板卡信息采集的有效性,能避免无效的采集、提高效率。
[0088]
基于上述任一实施例的内容,向第二板卡发送携带有目标任务的索引的第一消
息,并将目标任务的信号量修改为占用状态之后,还包括:在期望时间段内未接收到第二板卡发送的第二消息的情况下,将目标信息的采集结果确定为采集超时,并释放目标任务的信号量。
[0089]
具体地,若定时器inner_timer_id结束,第一板卡仍未接收到第二消息,说明发生定时器超时事件,可以直接将目标信息的采集结果确定为采集超时,即可以将目标任务的全局数据结构board_info_pipe中采集操作的成败结果resp_ret的值修改为表示采集操作失败的值,并将目标任务的信号量pipe_sem由占用状态修改为释放状态,以便执行下一个跨板卡信息采集任务。
[0090]
本发明实施例通过超时机制,能避免长时间的任务等待,从而能更及时地释放信号量,以进行下一个信息采集任务,能提高跨板卡信息采集的效率。
[0091]
图4是本发明提供的跨板卡信息采集方法的流程示意图之二。下面结合图4描述本发明实施例的跨板卡信息采集方法。基于上述任一实施例的内容,该方法应用于第二板卡,如图4所示,该方法包括:步骤401、步骤402、步骤403和步骤404。
[0092]
具体地,本发明实施例提供的跨板卡信息采集方法的执行主体为跨板卡信息采集装置,该装置可以为第二板卡。本发明实施例提供的跨板卡信息采集方法,用于第一板卡通过第二板卡进行信息采集。
[0093]
步骤401、接收第一板卡发送的携带有目标任务的索引的第一消息;第一消息,是第一板卡在目标任务的信号量为释放状态的情况下发送的,并且第一板卡在发送第一消息之后,将目标任务的信号量修改为占用状态。
[0094]
具体地,第一板卡在初始化目标任务的全局数据结构board_info_pipe之后,向第二板卡发送第一消息,并将目标任务的信号量由释放状态修改为占用状态。第一消息,可以携带有目标任务的索引task_cb_p。第一消息,还可以携带有采集目标信息的类型req_type的信息所需要的全部参数。
[0095]
第二板卡可以接收第一消息。
[0096]
步骤402、基于目标任务的索引,获取目标信息的类型。
[0097]
具体地,第二板卡接收第一消息之后,可以根据目标任务的索引task_cb_p,找到目标任务的全局数据结构board_info_pipe,从中获取目标信息的类型req_type以及采集该类型的信息所需要的全部参数。
[0098]
步骤403、基于目标信息的类型,采集目标信息。
[0099]
具体地,第二板卡获取目标信息的类型req_type之后,可以调用目标信息的类型req_type对应的函数进行信息采集,以采集目标信息。
[0100]
步骤404、向第一板卡返回携带有目标任务的索引和目标信息的采集结果的第二消息,以使得第一板卡在期望时间段内接收到第二消息的情况下,释放目标任务的信号量。
[0101]
具体地,第二板卡可以将采集结果按照消息格式组成数据流,向第一板卡返回第二消息。
[0102]
除了目标任务的采集结果之外,第二消息还可以携带有目标任务的索引。
[0103]
第一板卡在发送第一消息之后,可以启动预设时长的定时器inner_timer_id。期望时间段,可以为以第一消息的发送时刻为起始时刻,时长为上述预设时长的时间段。
[0104]
第一板卡在期望时间段内接收到第二消息的情况下,可以获取第二消息携带的目
标信息的采集结果,完成跨板卡信息采集,并释放目标任务的信号量,以便执行下一个跨板卡信息采集任务。
[0105]
本发明实施例通过建立基于信号量等待机制的消息通道,能实现简单、高效的跨板卡信息同步采集,能解决采用普通的板卡间通信带来的控制流程复杂的问题,使上层流程控制不用感知跨板信息采集的底层实现,使其具有良好的扩展性,能降低代码模块之间的耦合度,大大降低上层控制流程的设计复杂度,减少代码开发工作量,提高代码质量。进一步地,在智能制造或者需要多板卡协同工作的环境下,本方面实施例的优势尤其突出。
[0106]
为了便于对本发明是上述各实施例的理解,下面通过一个实例对跨板卡信息采集的完整过程进行描述说明。
[0107]
目标任务task_a为板卡a采集板卡b监控的设备1的状态1的跨板卡信息采集任务。目标任务的索引task_cb_p记为task_cb_p_a,通过task_cb_p_a可以获知目标任务task_a的所有全局变量,包括目标任务task_a初始化时分配的全局数据结构board_info_pipe。
[0108]
如图5和图6所示,该目标任务的执行流程可以包括以下步骤:
[0109]
a)板卡a的任务task_a调用信息采集接口模块,输入板卡b的id、采集的信息类型,以及采集此信息类型需要的所有参数。
[0110]
b)信息采集接口模块获知目标任务的索引,即task_cb_p_a,进而找到其初始化的全局数据结构board_info_pipe,将task_cb_p_a赋值给数据结构中的task_cb_p,将板卡b的id、采集的信息(即目标信息)的类型,以及采集此信息类型需要的所有参数填入对应字段,并清空结果区resp_ret、u_pipe,获取当前时间赋给时间戳time_stamp,然后将board_info_pipe转为数据流,向本板的task_board_pipe任务发送“跨板采集通道的本板请求事件”消息,最后等待信号量pipe_sem的释放。
[0111]
c)板卡a的信息采集任务task_board_pipe收到“跨板采集通道的本板请求事件”消息后,通过解析消息数据流得到数据结构board_info_pipe,通过该数据结构中的task_cb_p所记录的task_cb_p_a进而访问到目标任务的全局数据结构,再开启任务初始化时创建的2秒超时定时器inner_timer_id,接着向板卡b的信息采集任务task_board_pipe发送“跨板采集通道的板外请求事件”消息。
[0112]
d)板卡b的信息采集任务task_board_pipe收到“跨板采集通道的板外请求事件”消息时,表示收到跨板请求,并解析消息数据流携带的数据结构board_info_pipe,根据目标信息的类型req_type得知需要获取的信息类型,再调用相应的状态获取函数采集到需要的信息“设备1的状态1”后,将信息按照消息格式组成数据流,往板卡a的信息采集任务task_board_pipe发送“跨板采集通道的板外响应事件”消息。
[0113]
e)板卡a的信息采集任务task_board_pipe收到“跨板采集通道的板外响应事件”消息,解析数据流,获得数据结构board_info_pipe,从而得到目标任务的的任务索引task_cb_p_a,以及时间戳time_stamp,通过目标任务的索引task_cb_p_a可以找到该任务的全局变量,并从其中取到当时发起此行动的时间戳;如果两个时间戳一样,则判定此次响应消息有效,反之无效直接退出。如图5所示,当有效时,将数据结构board_info_pipe中的采集结果resp_ret和u_pipe,存入目标任务task_a的全局数据结构中,再将该发起请求的任务task_a的2s超时定时器inner_timer_id停止,最后释放采集等待信号量pipe_sem;当无效时,直接退出处理流程,继续等待新消息。
[0114]
f)当板卡a的信息采集任务task_board_pipe收到“2s定时器超时事件”消息时,表示板卡b没有在规定时间内发回需要采集的信息,于是将“采集超时”存入目标任务的全局变量的resp_ret中,然后释放采集等待信号量pipe_sem,流程如图6所示。
[0115]
g)板卡a的信息采集接口模块等到信号量pipe_sem被释放之后,清空任务task_a的全局数据结构中的时间戳和目标任务的索引task_cb_p,并返回采集结果。
[0116]
下面对本发明提供的跨板卡信息采集装置进行描述,下文描述的跨板卡信息采集装置与上文描述的跨板卡信息采集方法可相互对应参照。
[0117]
图7本发明提供的跨板卡信息采集装置的结构示意图之一。基于上述任一实施例的内容,如图7所示,该装置包括第一发送模块701和第一接收模块702,其中:
[0118]
第一发送模块701,用于向第二板卡发送携带有目标任务的索引的第一消息,并将目标任务的信号量修改为占用状态,以使得第二板卡基于目标任务的索引,采集目标信息;
[0119]
第一接收模块702,用于在期望时间段内接收到第二板卡发送的携带有目标任务的索引的第二消息的情况下,获取第二消息携带的目标信息的采集结果,并释放目标任务的信号量。
[0120]
具体地,本发明实施例提供的跨板卡信息采集装置,可以为第一板卡。
[0121]
第一发送模块701和第一接收模块702电连接。
[0122]
第一发送模块701可以基于目标板卡的标识dst_boardid,向第二板卡发送第一消息,并将目标任务的信号量由释放状态修改为占用状态。第一消息,可以携带有目标任务的索引task_cb_p。第一消息,还可以携带有采集目标信息的类型req_type的信息所需要的全部参数。
[0123]
第二板卡接收第一消息之后,可以根据目标任务的索引task_cb_p,找到目标任务的全局数据结构board_info_pipe,从中获取目标信息的类型req_type以及采集该类型的信息所需要的全部参数;可以调用目标信息的类型req_type对应的函数进行信息采集,将采集结果按照消息格式组成数据流,向第一板卡返回第二消息。
[0124]
在定时器inner_timer_id结束之前,第一接收模块702接收到第二消息,则可以基于第二消息携带的目标任务的索引,确定第二消息是否是第二板卡对第一消息的响应;确定第二消息是第二板卡对第一消息的响应之后,可以获取第二消息携带的目标信息的采集结果,完成跨板卡信息采集,并停止定时器inner_timer_id以及将目标任务的信号量pipe_sem由占用状态修改为释放状态,以便执行下一个跨板卡信息采集任务。
[0125]
可选地,第一接收模块702可以包括:
[0126]
时间获取单元,用于获取第二消息携带的第二时间戳;
[0127]
结果获取单元,用于在第二时间戳与目标任务的第一时间戳相同的情况下,获取第二消息携带的目标信息的采集结果。
[0128]
可选地,结果获取单元,还可以用于在第二时间戳与目标任务的第一时间戳不相同的情况下,将目标信息的采集结果确定为采集无效。
[0129]
可选地,该跨板卡信息采集装置,还可以包括:
[0130]
信息获取模块,用于在期望时间段内未接收到第二板卡发送的第二消息的情况下,将目标信息的采集结果确定为采集超时,并释放目标任务的信号量。
[0131]
本发明实施例提供的跨板卡信息采集装置,用于执行本发明上述跨板卡信息采集
方法,其实施方式与本发明提供的跨板卡信息采集方法的实施方式一致,且可以达到相同的有益效果,此处不再赘述。
[0132]
该跨板卡信息采集装置用于前述各实施例的跨板卡信息采集方法。因此,在前述各实施例中的跨板卡信息采集方法中的描述和定义,可以用于本发明实施例中各执行模块的理解。
[0133]
本发明实施例通过建立基于信号量等待机制的消息通道,能实现简单、高效的跨板卡信息同步采集,能解决采用普通的板卡间通信带来的控制流程复杂的问题,使上层流程控制不用感知跨板信息采集的底层实现,使其具有良好的扩展性,能降低代码模块之间的耦合度,大大降低上层控制流程的设计复杂度,减少代码开发工作量,提高代码质量。进一步地,在智能制造或者需要多板卡协同工作的环境下,本方面实施例的优势尤其突出。
[0134]
图8本发明提供的跨板卡信息采集装置的结构示意图之二。基于上述任一实施例的内容,如图8所示,该装置包括第二接收模块801、类型获取模块802、信息采集模块803和第二发送模块804,其中:
[0135]
第二接收模块801,用于接收第一板卡发送的携带有目标任务的索引的第一消息;第一消息,是第一板卡在目标任务的信号量为释放状态的情况下发送的,并且第一板卡在发送第一消息之后,将目标任务的信号量修改为占用状态;
[0136]
类型获取模块802,用于基于目标任务的索引,获取目标信息的类型;
[0137]
信息采集模块803,用于基于目标信息的类型,采集目标信息;
[0138]
第二发送模块804,用于向第一板卡返回携带有目标任务的索引和目标信息的采集结果的第二消息,以使得第一板卡在期望时间段内接收到第二消息的情况下,释放目标任务的信号量。
[0139]
具体地,本发明实施例提供的跨板卡信息采集装置为第二板卡。
[0140]
第二接收模块801、类型获取模块802、信息采集模块803和第二发送模块804顺次电连接。
[0141]
第二接收模块801可以接收第一消息。
[0142]
类型获取模块802可以根据目标任务的索引task_cb_p,找到目标任务的全局数据结构board_info_pipe,从中获取目标信息的类型req_type以及采集该类型的信息所需要的全部参数。
[0143]
信息采集模块803可以调用目标信息的类型req_type对应的函数进行信息采集,以采集目标信息。
[0144]
第二发送模块804可以将采集结果按照消息格式组成数据流,向第一板卡返回第二消息。
[0145]
本发明实施例提供的跨板卡信息采集装置,用于执行本发明上述跨板卡信息采集方法,其实施方式与本发明提供的跨板卡信息采集方法的实施方式一致,且可以达到相同的有益效果,此处不再赘述。
[0146]
该跨板卡信息采集装置用于前述各实施例的跨板卡信息采集方法。因此,在前述各实施例中的跨板卡信息采集方法中的描述和定义,可以用于本发明实施例中各执行模块的理解。
[0147]
本发明实施例通过建立基于信号量等待机制的消息通道,能实现简单、高效的跨
板卡信息同步采集,能解决采用普通的板卡间通信带来的控制流程复杂的问题,使上层流程控制不用感知跨板信息采集的底层实现,使其具有良好的扩展性,能降低代码模块之间的耦合度,大大降低上层控制流程的设计复杂度,减少代码开发工作量,提高代码质量。进一步地,在智能制造或者需要多板卡协同工作的环境下,本方面实施例的优势尤其突出。
[0148]
基于上述任一实施例的内容,跨板卡信息采集系统包括:第一板卡和第二板卡。
[0149]
图9示例了一种电子设备的实体结构示意图,如图9所示,该电子设备可以包括:处理器(processor)910、通信接口(communications interface)920、存储器(memory)930和通信总线940,其中,处理器910,通信接口920,存储器930通过通信总线940完成相互间的通信。处理器910可以调用存储器930中的逻辑指令,以执行跨板卡信息采集方法,该方法包括:向第二板卡发送携带有目标任务的索引的第一消息,并将目标任务的信号量修改为占用状态,以使得第二板卡基于目标任务的索引,采集目标信息;在期望时间段内接收到第二板卡发送的携带有目标任务的索引的第二消息的情况下,获取第二消息携带的目标信息的采集结果,并释放目标任务的信号量;或者,该方法包括:接收第一板卡发送的携带有目标任务的索引的第一消息;所述第一消息,是所述第一板卡在所述目标任务的信号量为释放状态的情况下发送的,并且所述第一板卡在发送所述第一消息之后,将目标任务的信号量修改为占用状态;基于目标任务的索引,获取目标信息的类型;基于目标信息的类型,采集目标信息;向第一板卡返回携带有目标任务的索引和目标信息的采集结果的第二消息,以使得第一板卡在期望时间段内接收到第二消息的情况下,释放目标任务的信号量。
[0150]
此外,上述的存储器930中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0151]
本发明实施例提供的电子设备中的处理器910可以调用存储器930中的逻辑指令,其实施方式与本发明提供的跨板卡信息采集方法的实施方式一致,且可以达到相同的有益效果,此处不再赘述。
[0152]
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的跨板卡信息采集方法,该方法包括:向第二板卡发送携带有目标任务的索引的第一消息,并将目标任务的信号量修改为占用状态,以使得第二板卡基于目标任务的索引,采集目标信息;在期望时间段内接收到第二板卡发送的携带有目标任务的索引的第二消息的情况下,获取第二消息携带的目标信息的采集结果,并释放目标任务的信号量;或者,该方法包括:接收第一板卡发送的携带有目标任务的索引的第一消息;所述第一消息,是所述第一板卡在所述目标任务的信号量为释放状态的情况下发送的,并且所述第一板卡在发送所述第一消息之后,将目标任务的信号量修改为占用状态;基于目标任务的索引,获取目标信息的类型;基于目标信息的类型,采
集目标信息;向第一板卡返回携带有目标任务的索引和目标信息的采集结果的第二消息,以使得第一板卡在期望时间段内接收到第二消息的情况下,释放目标任务的信号量。
[0153]
本发明实施例提供的计算机程序产品被执行时,实现上述跨板卡信息采集方法,其具体的实施方式与前述方法的实施例中记载的实施方式一致,且可以达到相同的有益效果,此处不再赘述。
[0154]
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的跨板卡信息采集方法,该方法包括:向第二板卡发送携带有目标任务的索引的第一消息,并将目标任务的信号量修改为占用状态,以使得第二板卡基于目标任务的索引,采集目标信息;在期望时间段内接收到第二板卡发送的携带有目标任务的索引的第二消息的情况下,获取第二消息携带的目标信息的采集结果,并释放目标任务的信号量;或者,该方法包括:接收第一板卡发送的携带有目标任务的索引的第一消息;所述第一消息,是所述第一板卡在所述目标任务的信号量为释放状态的情况下发送的,并且所述第一板卡在发送所述第一消息之后,将目标任务的信号量修改为占用状态;基于目标任务的索引,获取目标信息的类型;基于目标信息的类型,采集目标信息;向第一板卡返回携带有目标任务的索引和目标信息的采集结果的第二消息,以使得第一板卡在期望时间段内接收到第二消息的情况下,释放目标任务的信号量。
[0155]
本发明实施例提供的非暂态计算机可读存储介质上存储的计算机程序被执行时,实现上述跨板卡信息采集方法,其具体的实施方式与前述方法的实施例中记载的实施方式一致,且可以达到相同的有益效果,此处不再赘述。
[0156]
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0157]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0158]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献