bluedroid 代码框架

bluedroid项目代码的框架:

Bta:

1. ag(audio gateway):蓝牙音频网关的实现

2. Ar(audio/video registration):音频/视频注册模块的实现

3. Av(advanced audio/video):更先进的音频/视频实现

4. Dm(device manager):bta设备管理实现

5. Fs(file system):包含bta文件系统编译时间可配置常数以及回调函数

6. Gatt:gatt客户端的主要功能和状态机

7. Hh(HID host):人性化接口设备(HID),连接鼠标键盘

8. Hl(HeaLth):健康设备模式的主要功能函数和状态机

9.Jv(Java):

10.Pan(蓝牙个人局域网):pan主要功能实现和状态机

11.Pb(phone book):电话薄访问服务器的私人文件

12.sys(system):bta系统管理的实现

Btif:

1. Co:call-out(bta的调出函数)

2. Src:

Bluetooth.c: 蓝牙HAL实现

btif_av.c: 蓝牙av实现

btif_config.c: 存储在本地的BT适配器和远程设备属性(xml)

btif_core.c: 包含HAL和BTE接口之间的核心功能函数

btif_dm.c: 包含设备管理(DM)相关功能

btif_hf.c: 免提模式蓝牙接口

btif_hh.c: HID主机配置文件的蓝牙接口

btif_hl.c: 医疗设备规范的蓝牙接口

btif_media_task.c: 这是多媒体模块的BTIF系统。它包含任务的实现av,HS和HF模式音频和视频处理

btif_pan.c: PAN模式蓝牙接口

btif_profile_queue.c:蓝牙远程设备的连接队列的实现。

btif_rc.c: 蓝牙AVRC实现

btif_sm.c: 通用BTIF状态机的API

btif_sock.c: 蓝牙Socket接口

btif_sock_rfc.c: 虚拟串口模式蓝牙接口

btif_sock_sdp.c: 服务发现

btif_sock_thread.c: socket select thread创建socket通信的线程

btif_sock_util.c: socket操作的一些相关函数

btif_storage.c: 存储在本地的BT适配器和远程设备属性(xml)

btif_util.c: 其它辅助功能

Gki:

1. Common:

2.Ulinux

HCI:

bt_hci_bdroid.c: 蓝牙主机/控制器接口库实现

bt_hw.c: 蓝牙供应商提供的回调函数

bt_utils.c: 其它辅助功能

Btsnoop.c: 生成一个蓝牙窥探文件

hci_h4.c: HCI传输发送/接收

hci_mct.c: HCI多通道传输

Lpm.c: 低功耗模式实现

Userial.c: 串行端口打开/读取/写入/关闭实现

userial_mct.c: 多通道打开/读/写/关闭功能

Utils.c: 帮助功能函数

Main:

bte_conf.c: 根据目前在conf文件条目进行运行时模块配置

bte_init.c: 此模块包含了初始化堆栈组件的例程,在BTU任务开始之前调用。

bte_logmsg.c: BTE日志信息封装

bte_main.c: BTE核心堆栈初始化和关闭代码

bte_version.c: BTE版本

Stack:

1. a2dp:

a2d_api.c: 高级音频传输模式OMMON的API(支持A2DP)

a2d_sbc.c: 实用功能,以帮助建立和解析SBC编解码信息单元与媒体有效载荷。

2. Avct:

avct_api.c: 音频/视频控制传输协议的API

avct_ccb.c: 操作AVCTP连接控制块的函数

avct_l2c.c: AVCTP模块接口至L2CAP

avct_lcb.c: 此模块包含链路控制状态机和操作链路控制块函数

avct_lcb_act.c: 链路控制状态机的行为函数

3. avdt:

avdt_ad.c: 此模块包含AVDTP适配层(adaption)

avdt_api.c: 音频/视频分发传输协议的API

avdt_ccb.c: 通道控制块状态机和操作该通道控制块的功能函数

avdt_ccb_act.c: 与通道控制块状态机相关的操作功能函数

avdt_l2c.c: AVDTP适配层模块接口L2CAP

avdt_msg.c: 用于分析和生成AVDTP信令消息的功能

avdt_scb.c: 流控制块及其操作函数

avdt_scb_act.c: 流控制块状态机相关的操作功能函数

4. Avrc:

avrc_api.c: AVRCP必须命令接口API

avrc_opt.c: AVRCP可选命令接口API

avrc_sdp.c: AVRCP SDP相关的功能

5. Bnep:

bnep_api.c: BNEP API

bnep_main.c: BNEP 主要功能函数

bnep_utils.c: BNEP实用功能函数

6. Btm:

btm_acl.c: 处理ACL连接,保持和嗅探模式,支持数据包类型。

btm_ble.c: BLE设备的控制及安全功能

btm_ble_addr.c: BLE地址管理

btm_ble_bgconn.c:BLE白名单的操作

btm_ble_gap.c: BLE GAP

btm_dev.c: 蓝牙设备管理

btm_devctl.c: 处理BTM接口功能,包括休息,HCl缓冲大小等

btm_inq.c: 处理查询(handle inquiries),包括设置发现模式,控制基带的方式, 维护查询响应的小型数据库

btm_main.c: BTM控制块的定义

btm_pm.c: 管理ACL链路模式功能(活跃,持有,停和嗅探模式)

btm_sco.c: 处理SCO连接,连接,断开连接,改变支持数据包类型。

btm_sec.c: 蓝牙安全管理器功能

7. Btu:

btu_hcif.c: HCI传输接口,(事件接受至l2cap等事件处理程序,命令传输)

btu_init.c: 加载和关闭核心协议栈组件的例程

btu_task.c: 蓝牙上层处理循环,RFCOMM  L2CAP,SDP和BTIF
为一体GKI任务。他们之间的这种btu_task切换

8. Gatt:

att_protocol.c: ATT协议功能

gatt_api.c: GATT接口API

gatt_attr.c: GATT服务器属性访问请求处理函数。

gatt_auth.c: GATT认证处理功能

gatt_cl.c: GATT客户端功能函数

gatt_db.c:  GATT数据库的建立和查询

gatt_main.c: 主要的ATT功能函数

gatt_sr.c: GATT服务器功能函数

gatt_utils.c: GATT实用函数

9. Hcic:

Hciblecmds.c: HCIC单元格式和发送HCI命令

Hcicmds.c:

10. Hid:

hidh_api.c: HID主机API

hidh_conn.c: 连接接口功能函数

11. L2cap:

l2c_api.c: L2CAP接口API

l2c_ble.c: 与ble管理相关的功能函数

l2c_csm.c: L2CAP信道状态机(channel state machine)

l2c_fcr.c: 流量控制和重传(Flow Control and retransmissions)

l2c_link.c: 与链路管理相关

l2c_main.c: L2CAP入口点

l2c_ucd.c: L2CAP UCD 代码

l2c_utils.c: L2cap实用函数

12. Mcap(多通道适配协议):

mca_api.c: Multi-Channel Adaptation  Protocol 接口API

mca_cact.c: 控制通道操作功能函数的实现

mca_csm.c: 控制通道的状态机的实现。

mca_dact.c: 数据通道功能的实现

mca_dsm.c: 数据信道状态机

mca_l2c.c: MCAP在L2CAP接口上的实现

mca_main.c: MCAP主控制块的实现

13. Pan:

pan_api.c: pan规范接口api

pan_main.c: 支持pan命令和事件的功能函数

pan_utils.c:

14. Rfcomm:

port_api.c: 串行端口API

port_rfc.c: 端口仿真实体和RFCOMM通信

port_utils.c: 端口仿真实体函数

rfc_l2cap_if.c: L2CAP接口函数

rfc_mx_fsm.c: RFCOMM单元的多路通道的状态机和操作例程

rfc_port_fsm.c: RFCOMM单元的端口的状态机和操作例程

rfc_port_if.c: 供RFCOMM之上运行的应用程序调用

rfc_ts_frames.c: 发送TS 07.10帧

rfc_utils.c: 使用的RFCOMM单元的实用函数

15. Sdp:

sdp_api.c: SDP接口API

sdp_db.c: 处理数据库函数

sdp_discovery.c: SDP发现功能

sdp_main.c: SDP主函数

sdp_server.c: SDP服务器功能。这主要是处理客户端请求

sdp_utils.c: SDP实用函数

16. Smp:

Aes.c: AES实现,使用唯一的8位字节操作加密状态

smp_act.c:

smp_api.c: SMP的应用程序接口。

smp_cmac.c: AES128 CMAC算法实现

smp_keys.c:

smp_l2c.c: SMP l2cap接口上的实现

smp_main.c: SMP主函数

smp_utils.c: SMP L2Cap实用函数

时间: 2024-08-27 02:21:22

bluedroid 代码框架的相关文章

使用EA生成多层次的代码框架

最近工作期间发现了一个非常棒的UML软件[Enterprise Architect UML 建模工具]简称EA,在该软件上绘制框架层面的类之间关系后,可以自动生成相关语言的代码. EA上目前支持的语言有 下面我们将演示,如何生成多层次的python代码框架,EA软件默认的代码是Java,我们需要定制成python,而这个定制在项目内有效,即是对项目属性进行定制. 这里我们建立一个python_hello的项目.顺序是:新建项目=====> 新建增图=====>添加图A=====>添加包=

BlueDroid代码分析之GKI

1. 概述 GKI以库libbt-brcm_gki.so(Static Lib?)的形式提供给BlueDroid使用 该层是一个适配层,适配了OS相关的进程.内存相关的管理,还可以用于线程间传递消息 主要通过变量gki_cb实现对进程的统一管理 typedef struct { pthread_mutex_t GKI_mutex; pthread_t thread_id[GKI_MAX_TASKS]; pthread_mutex_t thread_evt_mutex[GKI_MAX_TASKS]

BlueDroid代码分析

1. 接口 bluedroid为JNI提供的接口即HAL对应的头文件 bluetooth_device_t 蓝牙设备 bt_interface_t 蓝牙设备提供的基本接口 bthf_interface_t hfp模块接口 ... .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; backgroun

轮询算法设计及其代码框架

在实际的软件开发项目中,经常会遇到某模块需要向其它模块发消息的情况.为了减轻消息接收者的负担,我们会采用一种叫做轮询的机制来发送消息.本文介绍轮询算法的流程及其代码框架. 1.算法流程 假设消息发送模块为模块A,消息接收模块为模块B.模块A安装了一个,模块B安装了N个.所有模块都同时启动. 算法流程如图1所示: 图1 轮询算法流程 2.代码框架 static int g_iSendIdx = 0; for (iLoopFlag = 0; iLoopFlag < N; iLoopFlag ++)

unity3D 游戏开发之工程代码框架设计思路MVC

unity3D 游戏开发之工程代码框架设计思路MVC 设计目的 1.使工程结构更规范. 2.提高代码可读性,封装性,拓展性 3.提高工作效率. 正文内容: 1.Frame的组成结 (1)视图层(View) (2) 控制层(Control) (3)数据层(Model) 整个Frame是由这三个部分组成,每一层管理属于自己的逻辑,核心思想是游戏逻辑和UI 逻辑独立开.目前遇到的项目工程大多数View和Control逻辑都写在一起,这样后期修改 和维护效率会很低,因为耦合性很高而View又是经常要修改

Tweetable Mathematical Art 代码框架

昨晚在微信公众号看到 <有没有一段代码,让你觉得人类的智慧也可以璀璨无比>里面介绍了一个叫<Tweetable Mathematical Art>的代码游戏,看完我激动不已,这些人都太NB了. 我迫不及待要试一下,可惜该游戏原来的框架生成的图片上ppm格式的,在Windwos上打开比较麻烦,所以我索性写了一个生成bmp格式的代码框架. 如果有新idea的话可以在body.hpp中加入一个新类就可以了,这个代码框架可在linux和Windows上跑. pic.hpp #ifndef 

用于解答算法题目的Python3代码框架

前言 最近在实习,任务并不是很重,就利用闲暇时间使用Python3在PAT网站上刷题,并致力于使用Python3的特性和函数式编程的理念,其中大部分题目都有着类似的输入输出格式,例如一行读入若干个数字,字符串,每行输出多少个字符串等等,所以产生了很多重复的代码. Python代码 于是我就利用VS Code的代码片段功能编写了一个用于处理这些输入输出的代码框架,并加入了测试功能(写函数前先写测试时正确的事情).代码如下 """Simple Console Program Wi

大数据开发之keras代码框架应用

总体来讲keras这个深度学习框架真的很"简易",它体现在可参考的文档写的比较详细,不像caffe,装完以后都得靠技术博客,keras有它自己的官方文档(不过是英文的),这给初学者提供了很大的学习空间. 在此做下代码框架应用笔记 class VGGNetwork: def append_vgg_network(self, x_in, true_X_input): return x #x is output of VGG def load_vgg_weight(self, model):

人生苦短之爬虫爬取网页的通用代码框架

我们首先打开IDLE选择File->new window命令(或者可以直接按键Ctrl+N键,在很多地方这个按键是新建文件的意思) 在这里还是要推荐下我自己建的Python开发学习群:725479218,群里都是学Python开发的,如果你正在学习Python ,小编欢迎你加入,大家都是软件开发党,不定期分享干货(只有Python软件开发相关的),包括我自己整理的一份2018最新的Python进阶资料和高级开发教程,欢迎进阶中和进想深入Python的小伙伴 我们填入代码: 保存文件是按键快捷键C