论文首页哲学论文经济论文法学论文教育论文文学论文历史论文理学论文工学论文医学论文管理论文艺术论文 |
(3)连接管理器程序
这是AG软件的中间层,也由用户编制。引入连接管理器,主要是为了减少高层应用程序的指令数量,为高层应用程序和低层协议栈之间提供一个通用接口。连接管理器级主要是处理高层的请求信息,传送至BlueStack,并接收BlueStack的处理结果,进行相应处理后,通知高层应用程序级。
3.2 消息及处理机制
(1)消息
整个协议栈的Bluestack实现是消息驱动的,因此层与层之间使用消息传递方法。从图3的结构可看出,只有相邻层有接口关系。在嵌入式音频网关应用程序中,涉及到两大类消息:CM消息和BlueStack消息。前者在客户机和连接管理器之间进行传递,如图4所示为消息传递示意图;后者为连接管理器和BlueStack协议栈之间传递的消息。
消息使用服务原始模型。一般地,在服务原语后加上扩展名_REQ、_IND、_RES(or _RSP)和_CFM,分别表明原语是一个服务请求、指示、响应还是证实。CM消息格式为CM_原语_扩展名,如SCO连接请求消息为CM_SCO_CONNECT_REQ。BlueStack原语类型有四种:DM_PRIM、RFC_PRIM、SDP_PRIM及L2CAP_PRIM。在AG应用中,用到前三种。BlueStack消息格式为DM(RFC、SDC或SDS)_原语_扩展名,如SCO连接请求消息为DM_SCO_CONNECT_REQ。
(2)消息传递
各应用层之间的消息传递通过消息队列来完成。消息的处理是通过某项任务进行的。第一个任务都有一个消息队列,消息被提交给所属某一任务的消息队列。实现任务和消息队列之间的捆绑是静态的。消息队列n,归属于任务n。在此AG应用中,我们定义了两个任务:一是AG任务,任务号为1,队列号也为1;另一是CM任务,任务号为0,队列号也为0。因此,AG客户机将所要传递