保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 电子通信论文 >> 正文

蓝牙技术在音频网关中的应用


音量控制、送AT命令及状态显示;启动调度程序等。这一层的程序由用户根据不同的应用来编制。

(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客户机将所要传递给CM的消息提交到队列0中,而CM传递给AG客户机的消息送入队列1中。

在软件中,一个服务原语是一个结构。结构名一般采用原语_T。结构成员包括这些原语的类型及相关的载荷数据,如CM的查询请求服务结构定义如下:

在软件中,一个服务原语是一个结构。结构名一般采用原语_T。结构成员包括这些原语的类型及相关的载荷数据,如CM的查询请求服务结构定义如下:

typedef struct{

uint8 max_response; //可被接收的最大查询响应数

Delay inq_timeout; //用户提供的查询处理超时时长

uint32 class_of_device; //设备类型

uint16 remote_name_request_enabled; //标志位指示是否完成远程名的请求

}CM_INQUIRY_REQ_T;

以下给出了消息的提交。其中,宏MAKE_MSG表示创建该消息,msg为该消息结构的指针,将消息送入队列用MessagePut函数来完成。

*AG客户机

MAKE_MSG(CM_INQUIRY_REQ);

msg->max_responses=num_responses;

msg->inq_timeout=D_SEC(timeout);

msg->class_of_device=CoD_filter;

《蓝牙技术在音频网关中的应用(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/155580.html

★温馨提示:你可以返回到 电子通信论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。