由于最近接手的这款对讲机的维护和修改,在修改BUG和增加功能的过程遇到的一些问题以及我用过的杰理SDK函数,把它们做成笔记。如果需要使用这些函数,建议先全局搜索一下是否存在再尝试。

常用头文件

  1. 用户VM存储:user_cfg_id.h        
  2. 系统VM存储:syscfg_id.h
  3. 链路操作命令:avctp_user.h

宏定义

  1. 串口打印总开关:#define TCFG_DEBUG_UART_ENABLE                    0                // 调试串口

杰理函数

蓝牙部分

  1. BLE广播名:void set_user_ble_name(void)
  2. EDR广播名:const char *bt_get_local_name()
  3. 获取mac地址:const u8 *bt_get_mac_addr();
  4. 关闭BLE广播:void bt_ble_rcsp_adv_disable(void)
  5. 开启BLE广播:void bt_ble_rcsp_adv_enable(void);
  6. 退出蓝牙模式处理:static int bt_exit_current_mode(u8 mode)
  7. 进入蓝牙模式处理:static int bt_enter_next_mode(u8 mode, u8 tone)
  8. 模式切换相关的接口、蓝牙协议栈初始化:int btstack_init()
  9. 断开连接,进入蓝牙配对模式:void dev_enter_pairing_mode(void);
  10. 蓝牙连接状态:u8 bt_get_connect_status(void)        //返回值可以是枚举,如等待连接BT_STATUS_WAITINT_CONN

系统部分

  1. 写VM:syscfg_write(CFG_ID, &data, len);         //CFG_ID,需要在VM存储头文件定义,用户自定义配置项[1 ~ 49]
  2. 读VM:syscfg_read(CFG_ID, &data, len);         //CFG_ID,需要在VM存储头文件定义,用户自定义配置项[1 ~ 49]
  3. 软启动初始化:static int app_poweron_init()
  4. 应用任务初始化位置:static struct app_mode *app_task_init()
  5. 发送到消息队列:void app_send_message(int _msg, int arg)
  6. CPU重启:static inline void cpu_reset(void)    //CPU重置
  7. 添加任务定时器:sys_timer_add(NULL, callback, delay);        //需要定义一个ID接收u16类型变量作为接收任务定时器的ID

提示音部分

  1. 提示音中英文切换:void tone_language_set(enum tone_language lang)
  2. 停止播放所有提示音:void tone_player_stop()
  3. 打断式播放提示音:int play_tone_file_alone(const char *file_name)        //如: play_tone_file_alone(get_tone_files()->tws_mode);

电池部分

  1. 获取电量百分比(精准度1%):u8 get_vbat_percent(void)
  2. 获取电量的0-9级(精准度10%):u8  battery_value_to_phone_level(void)

常用变量

  1. 查询当前工作状态:g_bt_hdl.work_mode        //如BT_MODE_TWS(立体声模式)

链路操作(直接发送命令)

  1. 回连手机蓝牙,使用的是VM的地址:bt_cmd_prepare(USER_CTRL_START_CONNECTION, 0, 0);  //一般按键操作不使用该接口

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐