bluez 事件 联系

本文深入探讨了BlueZ蓝牙协议栈中的事件触发机制,详细解释了如何通过内核代码实现不同蓝牙事件的注册与回调处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一直不知道 事件是怎么触发的.事件触发回调

觉得很神奇.很迷糊.
其实bluez不能单独的看,也要在 内核中看代码

文件src/adapter.c  (bluez)
...
    mgmt_register(adapter->mgmt, MGMT_EV_CONNECT_FAILED,
                        adapter->dev_id,
                        connect_failed_callback,
                        adapter, NULL);
                               
    mgmt_register(adapter->mgmt, MGMT_EV_DEVICE_UNPAIRED,
                        adapter->dev_id,
                        unpaired_callback,
                        adapter, NULL);
                               
    mgmt_register(adapter->mgmt, MGMT_EV_AUTH_FAILED,
                        adapter->dev_id,
                        auth_failed_callback,
                        adapter, NULL);                                                                                                                                       
                               
    mgmt_register(adapter->mgmt, MGMT_EV_NEW_LINK_KEY,
                        adapter->dev_id,
                        new_link_key_callback,
                        adapter, NULL);
文件  net/bluetooth/mgmt.c
...
static const u16 mgmt_events[] = {                                                                                                                                            
    MGMT_EV_CONTROLLER_ERROR,
    MGMT_EV_INDEX_ADDED,
    MGMT_EV_INDEX_REMOVED,
    MGMT_EV_NEW_SETTINGS,
    MGMT_EV_CLASS_OF_DEV_CHANGED,
    MGMT_EV_LOCAL_NAME_CHANGED,
    MGMT_EV_NEW_LINK_KEY,
    MGMT_EV_NEW_LONG_TERM_KEY,
    MGMT_EV_DEVICE_CONNECTED,
    MGMT_EV_DEVICE_DISCONNECTED,
    MGMT_EV_CONNECT_FAILED,
    MGMT_EV_PIN_CODE_REQUEST,
    MGMT_EV_USER_CONFIRM_REQUEST,
    MGMT_EV_USER_PASSKEY_REQUEST,
    MGMT_EV_AUTH_FAILED,
    MGMT_EV_DEVICE_FOUND,
    MGMT_EV_DISCOVERING,
    MGMT_EV_DEVICE_BLOCKED,
    MGMT_EV_DEVICE_UNBLOCKED,
    MGMT_EV_DEVICE_UNPAIRED,
    MGMT_EV_PASSKEY_NOTIFY,
    MGMT_EV_NEW_IRK,
    MGMT_EV_NEW_CSRK,
    MGMT_EV_DEVICE_ADDED,
    MGMT_EV_DEVICE_REMOVED,
    MGMT_EV_NEW_CONN_PARAM,
    MGMT_EV_UNCONF_INDEX_ADDED,
    MGMT_EV_UNCONF_INDEX_REMOVED,
    MGMT_EV_NEW_CONFIG_OPTIONS,

有没有觉得似曾相识.
好了可以接着看了.

转载于:https://www.cnblogs.com/eat-too-much/p/8492151.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值