一种光纤通道消息传输方法与流程

文档序号:18357068发布日期:2019-08-06 23:17阅读:171来源:国知局
一种光纤通道消息传输方法与流程
本发明属于航电系统机载网络领域,涉及一种fc(光纤通道,fibrechannel,简称fc)消息传输独立性的实现方法。通过本发明可以实现fc消息传输的独立性,即实现应用程序的消息id与fc通信消息id的相互独立,应用程序无需关注fc网络拓扑结构,采用何种配置通信消息id进行通信,能有效避免因应用程序消息id变化影响到fc网络拓扑结构的变化,进而影响到fc相关的升级与维护,降低应用程序与fc消息传输的耦合性,节约fc产品的维护成本及技术状态管理。
背景技术
:现有型号飞机的航电系统机载通信网络采用fc网络,航电系统子系统间通过fc实现消息通信与交互。现有飞机型号项目,系统统一规划了子系统间通信的应用消息id。fc网络需要依据应用消息id构建网络拓扑,并生成相应的fc网络配置数据。子系统使用fc进行消息发送时,调用fc提供的api接口函数,并将子系统应用消息id作为函数输入参数传递到fc。fc,首先依据输入参数消息id,查找本地fc配置表,获取相应的通信信息,其次,在将用户需要发送的消息发送到fc网络。子系统实现fc进行消息接收时,调用fc提供的api接口函数,并将子系统发送方的应用消息id作为函数的输入参数传递到fc。fc,首先依据输入参数消息id,查找本地fc配置表,获取相应的通信信息,其次,在到指定的队列上接收消息。依据现有子系统应用与fc消息通信方法存在如下缺点:(1)子系统应用程序与fc网络拓扑及配置数据耦合性比较严重,与软件设计原则“高内聚低耦合”不符。fc网络拓扑及配置数据与系统应用消息id关联。系统应用消息id发生变化,则影响到fc网络拓扑及配置数据的变化,将导致fc网络的升级。(2)不利于型号项目技术状态管理及维护,系统规划的应用消息id与fc网络拓扑及配置数据需要一一对应。当系统应用消息id与fc网络拓扑及配置数据不一致时,影响到子系统间通信,不利于现场技术状态管理及维护。技术实现要素:发明目的:针对上述fc消息传输中存在的缺点,本发明提出了一种基于光纤通道的消息传输独立性实现方法。本发明使得系统应用消息传输与fc网络拓扑结构及网络配置,消息传输相互独立,同时也能使系统按照小队列机制实现按照应用消息id进行接收,即系统应用消息规划及规模等变更,与fc网络拓扑结构及网络配置,消息如何传输无关。fc网络拓扑结构及网络配置变化也不会影响到应用消息规划及规模变更,只需关注fc网络本身传输的问题。本发明能有效避免因应用程序消息id变化影响到fc网络拓扑结构的变化,进而影响到fc相关的升级与维护,降低应用程序与fc消息传输的耦合性,节约fc产品的维护成本,降低fc产品的技术状态管理。技术方案:第一方面,提出了一种光纤通道消息传输方法,应用于发送端,其特征在于,所述方法包括:调用光纤通道发送数据api接口;从光纤通道发送数据api接口提取应用信息和应用数据;依据应用信息获取光纤通道发送通信信息;组装应用信息和应用数据为光纤通道数据;依据光纤通道发送通信信息和光纤通道数据,组装光纤通道数据帧;发送光纤通道数据帧。第二方面,提出了一种光纤通道消息传输方法,应用于发送端,其特征在于,所述方法包括:创建光纤通道消息队列;接收光纤通道数据帧;将光纤通道数据帧放入光纤通道消息队列;从光纤通道消息队列接收应用数据。可选地,创建光纤通道消息队列包括:创建消息队列列表;若没有光纤通道数据帧到达,则继续等待,否则,获取光纤通道数据帧的逻辑编号、缓冲区地址和应用消息id;依据应用消息id查询消息队列列表来获取相应的消息队列,若查找到相应的消息队列则将光纤通道数据帧的逻辑编号和缓冲区地址放入光纤通道消息队列;若没有查找到相应的消息队列,则依据应用消息id创建相应的消息队列并将其增加在消息队列列表中,以及将光纤通道数据帧的逻辑编号和缓冲区地址放入光纤通道消息队列。可选地,查询消息队列列表来获取相应的消息队列是指查找应用信息的消息id与消息队列列表中队列关键字相等的消息队列。可选地,增加消息队列到消息队列列表中是指从消息队列表的表尾增加消息队列,形成单链表。可选地,消息队列执行入队列操作是指将队列元素逻辑编号和缓冲区地址放到相应的消息队列。可选地,在消息队列执行入队列操作时若消息为采样消息,则当队列满时,采用覆盖方式;若消息为队列消息,则当队列满时,采用丢弃方式。可选地,从光纤通道消息队列接收应用数据包括:调用光纤通道接收数据api接口;从光纤通道接收数据api接口获取应用消息id;依据应用消息id查询消息队列列表,若查找成功,则从光纤通道消息队列中提取光纤通道数据帧的逻辑编号、缓冲区地址,依据逻辑编号、缓冲区地址解析光纤通道数据帧,接收应用数据。若未查找到相应的消息队列,则返回接收结果。有益效果:本发明提出的fc消息发送机制,fc消息小队列创建机制和fc消息小队列接收机制是一个有机整体,缺一不可。发送消息应用信息格式变化,接收消息应用信息格式也需要随之变化。fc消息小队列创建机制发生变化时,fc消息小队列接收机制也需要随之变化。本发明使得系统应用消息传输与fc网络拓扑结构及网络配置,消息传输相互独立,同时也能使系统按照小队列机制实现按照应用消息id进行接收,即系统应用消息规划及规模等变更,与fc网络拓扑结构及网络配置,消息如何传输无关。fc网络拓扑结构及网络配置变化也不会影响到应用消息规划及规模变更,只需关注fc网络本身传输的问题。本发明能有效避免因应用程序消息id变化影响到fc网络拓扑结构的变化,进而影响到fc相关的升级与维护,降低应用程序与fc消息传输的耦合性,节约fc产品的维护成本,降低fc产品的技术状态管理。附图说明图1是fc消息发送机制。图2是fc消息小队列创建机制。图3是fc消息小队列接收机制。具体实施方式为了更好地理解本发明,下面结合附图和具体实施例对本发明作进一步地描述。如图1所示,本发明的fc消息发送机制如下:步骤100,应用调用fc发送数据api接口发送应用数据;步骤101,提取应用信息和应用数据;步骤102,依据应用信息获取fc发送通信信息;步骤103,组装应用信息和应用数据为fc数据;步骤104,依据fc发送通信信息,组装fc数据帧;步骤105,发送fc数据帧。所述步骤100中,fc发送数据api接口提供给子系统应用,用于将应用数据发送到指定的子系统。fc发送数据api接口包括返回类型,函数明,输入参数等信息。其中,返回类型用于表明该接口执行结果,值为0表示执行成功,非0,表示执行失败。输入参数包括消息id,消息类型,通信类型,通信地址,待发送消息的缓冲区地址,待发送消息的长度等。消息类型包括采样消息和队列消息。采样消息要求接收队列大小为2,当队列满时,采用覆盖方式。队列消息要求接收队列大小大于2,当队列满时,采用丢弃方式。通信类型包括紧急消息,事件消息和流消息。通信地址包括源通信地址,目的通信地址。fc发送数据api接口具体实例如表1所示。表1fc发送数据api接口属性表所述步骤101中,提取应用信息是指将api接口部分参数信息组装为应用信息。应用信息包括消息id,消息类型,通信类型,通信地址等。所述步骤101中,提取应用数据是指获取api接口参数信息中的消息信息。应用数据包括待发送消息的缓冲区地址,待发送消息的长度等。所述步骤102中,依据应用信息获取fc发送通信信息是指依据消息类型和目的通信地址获取发送通信信息。所述步骤102中,发送通信信息包括fc通信消息id,源通信地址,目的通信地址,通信消息优先级等,具体实例如表2所示。表2fc发送数据api接口属性表所述步骤103中,fc数据包括应用信息和应用数据。所述步骤104中,fc数据帧是指fc帧头部和fc数据体。fc帧头部由fc协议格式约定。fc数据体即为fc数据。本发明包括一种fc消息小队列创建机制,具体步骤如下:步骤200,创建消息队列列表;步骤201,若没有fc数据帧到达,则继续等待,否则转到步骤202;步骤202,获取存放fc数据帧的逻辑编号和缓冲区地址;步骤203,获取应用信息;步骤204,查询消息队列列表获取相应的消息队列,若查找失败,则转到步骤205,否则转到步骤207;步骤205,创建相应的消息队列;步骤206,增加消息队列到消息队列列表中;步骤207,消息队列执行入队列操作,转到步骤201。所述步骤200中,消息队列列表是指用于动态管理消息队列。管理的方式采用链表方式。消息队列列表至少包括消息队列数目,消息队列节点,消息队列列表头,消息队列列表尾,消息队列节点的后继。每增加或删除一个消息队列,消息队列数目增加或减少1。具体如表3所示。表3消息队列列表所述步骤中,消息队列节点至少包括队列关键字,队列元素最大数目,队列指针。消息队列是指与应用信息的消息id相应对应的队列,一个消息id对应一个消息队列,至少包括队列元素数目,队列头,队列尾,元素指针。队列元素至少包括逻辑编号和缓冲区地址。消息队列节点具体如表4所示,消息队列具体如表5所示,元素类型具体如表6所示。表4消息队列节点表5消息队列表6元素类型属性属性类型属性描述uilogicid无符号整形逻辑编号uimsgaddr无符号整形缓冲区地址所述步骤201中,fc数据帧与步骤104中的200致。所述步骤202中,逻辑编号是硬件存放fc数据帧的单元编号。缓冲区地址是处理器存放fc数据帧的地址编号。所述步骤203中,应用信息与步骤101中的一致。所述步骤204中,查询消息队列列表获取相应的消息队列是指查找应用信息的消息id与消息队列列表中队列关键字相等的消息队列。所述步骤205中,消息队列与步骤200中的一致。创建消息队列时,队列元素初始化为0,队列头初始化为0,队列尾初始化为0。所述步骤206中,增加消息队列到消息队列列表是指从消息队列表的表尾增加消息队列,形成单链表。所述步骤207中,消息队列执行入队列操作是指将队列元素逻辑编号和缓冲区地址放到相应的消息队列。本发明包括一种fc消息小队列接收机制,具体步骤如下:步骤300,应用调用fc接收数据api接口接收应用数据;步骤301,获取应用消息id;步骤302,查询消息队列列表,若未查找到相应的消息队列,则设置接收结果为失败,转到步骤308;步骤303,执行消息队列出队列操作,获取队列元素逻辑编号和缓冲区地址;步骤304,若消息队列不为空,则转到步骤306;步骤305,从消息队列列表中删除消息队列;步骤306,解析fc数据获取应用数据;步骤307,输出应用数据,设置接收结果为成功;步骤308,返回接收结果。所述步骤300中,fc接收数据api接口提供给子系统应用,用于子系统接收应用数据。fc接收数据api接口包括返回类型,函数明,输出参数等信息。其中,返回类型用于表明该接口执行结果,值为0表示执行成功,非0,表示执行失败。输出参数包括消息id,通信地址,接收消息缓冲区地址,接收消息长度等。fc接收数据api接口具体实例如表7所示。表7fc接收数据api接口属性表所述步骤302中,消息队列列表与步骤200致。消息队列与步骤一致。所述步骤303中,消息队列与步骤200致。逻辑编号和缓冲区地址与步骤202一致。所述步骤306中,fc数据帧与步骤104中的一致。本发明提出的fc消息发送机制,fc消息小队列创建机制和fc消息小队列接收机制是一个有机整体,缺一不可。发送消息应用信息格式变化,接收消息应用信息格式也需要随之变化。fc消息小队列创建机制发生变化时,fc消息小队列接收机制也需要随之变化。本发明使得系统应用消息传输与fc网络拓扑结构及网络配置,消息传输相互独立,同时也能使系统按照小队列机制实现按照应用消息id进行接收,即系统应用消息规划及规模等变更,与fc网络拓扑结构及网络配置,消息如何传输无关。fc网络拓扑结构及网络配置变化也不会影响到应用消息规划及规模变更,只需关注fc网络本身传输的问题。本发明能有效避免因应用程序消息id变化影响到fc网络拓扑结构的变化,进而影响到fc相关的升级与维护,降低应用程序与fc消息传输的耦合性,节约fc产品的维护成本,降低fc产品的技术状态管理。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1