完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我正在为 esp_ble_gatts_register_callback 和 esp_ble_gap_register_callback 编写回调,使其成为新类的成员函数,但它们是静态的,我需要在回调中访问该类的成员对象。我希望将 this 指针作为参数传递,但寄存器函数需要特定的结构。有什么方法可以将会员数据放入回调中吗?
代码:全选 class BLEClass { public: BLEClass(ISettings *settings) : settings(settings){} void initialize(void) { esp_err_t ret; ret = nvs_flash_init(); esp_bt_controller_config_t bt_cfg = BT_CONTROLLER_INIT_CONFIG_DEFAULT(); ret = esp_bt_controller_init(&bt_cfg); ret = esp_bt_controller_enable(ESP_BT_MODE_BLE); ret = esp_bluedroid_init(); ret = esp_bluedroid_enable(); ret = esp_ble_gatts_register_callback(gatts_event_handler); ret = esp_ble_gap_register_callback(gap_event_handler); ret = esp_ble_gatts_app_register(PROFILE_A_APP_ID); esp_err_t local_mtu_ret = esp_ble_gatt_set_local_mtu(500); return; } 代码:全选 /** * @brief GAP callback function type * @param event : Event type * @param param : Point to callback parameter, currently is union type */ typedef void (* esp_gap_ble_cb_t)(esp_gap_ble_cb_event_t event, esp_ble_gap_cb_param_t *param); /** * @brief This function is called to occur gap event, such as scan result * * @param[in] callback: callback function * * @return * - ESP_OK : success * - other : failed * */ esp_err_t esp_ble_gap_register_callback(esp_gap_ble_cb_t callback); 显然,无法将某些用户参数与蓝牙回调相关联。然而,鉴于 SoC 中只有一个蓝牙外设,拥有它没有多大意义。 如何只使用一个全局变量来保存你的对象(单例),然后让 C 风格的回调函数调用该全局对象的适当成员函数? |
|
相关推荐 |
|
只有小组成员才能发言,加入小组>>
1833个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
36067 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
4196 浏览 0 评论
5789 浏览 1 评论
6573 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
4021 浏览 0 评论
469浏览 2评论
求助,S32G上Core M启动后如何让Core A在Flash指定位置加载uboot?
440浏览 2评论
ESP32-WROVER-IE + LAN8720以太网,GPIO0电压只有1.6v,无法正常进入spi flash boot模式如何解决?
440浏览 2评论
求分享适用于PN7160 Android的NFC工厂测试应用程序
529浏览 2评论
568浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-22 07:33 , Processed in 0.961883 second(s), Total 74, Slave 58 queries .
Powered by 电子发烧友网
© 2015 www.ws-dc.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号