KDocs 研发资料库
  • 手表穿戴技术应用文档入口汇总
  • JL707N穿戴客述问题FAQ
  • 彩屏仓 硬件开发指南 与 量产作业流程规范
  • 彩屏仓 AC98N和JL701烧录升级注意事项
  • JL707 硬件开发资料
  • JL707 手表硬件设计注意事项 总结
  • 穿戴生产烧录OTA和key文件添加使用说明
  • JL707N-入门到进阶开发指导文档
  • 彩屏仓982相关
  • 彩屏仓耳机介绍
  • 杰理701_707双屏demo介绍
  • 707电子吧唧开发资料
  • GPIO相关
  • UART串口相关
  • SPI相关
  • nandflash相关
  • norflash相关
  • IIC相关
  • PWM相关
  • SD卡相关
  • 定时器TIMER
  • 文件系统接口设计说明文档
  • 音视频录像开发流程
  • rdec编码器
  • 穿戴功耗数据标准
  • 手表蓝牙开发文档
  • 701蓝牙PAN联网demo
  • BLE开发使用说明
  • 701手表2.0.0版本SDK EQ在线调试和离线调试方法 V1.1
  • JL707 手表喇叭输出声音大小评估方法 V1.0
  • JL707 手表音频EQ调试方法 V1.0
  • AC707N 手表通话写卡 软件配置方法
  • 录音功能
  • 701手表2.X.X系列SDK调试EQ配置方法及音频调试技巧V1.1
  • 701手表104版本SDK EQ在线调试和离线调试方法 V1.1
  • mic2dac示例
  • P11 SensorHub相关
  • 手表升级操作文档
  • AC707NGPU
  • DBI模块介绍
  • GPU模块介绍
  • 701N屏幕驱动配置说明
  • 701N_UI编辑工具用户手册
  • 支付宝资料
  • 支付宝硬件接入资料
  • 支付宝乘车码接入资料
  • CAT1 接入文档
  • 701N_WATCH_CAT1开发说明
  • Findmy功能
  • music模式相关
  • 707电池曲线
  • 707N内置FLASH挂载FAT文件系统251112_v1.2
  • AC707N_本地视频播放demo(AVI-MJPEG-PCM)
  • 光波导屏幕调试
  • 耳机研发和生产流程 指南
  • 707-NandFlash 代码和UI资源独立烧录方案
  • 彩屏仓时间同步补丁
  • 彩屏仓抖音点赞移植
  • 707LVGLv8双屏开发
  • 707N蓝牙互传图传demo
  • AVIPCM数据流接入AIVOICE
  • Flash分区操作demo
  • 手表发射问题
  • 701_707 双备份升级DEMO
  • 707_乘车码刷码失败问题_共性

获取时间使用文档

📎 原始文档:https://www.kdocs.cn/l/coy97oDnN32Z

获取时间使用文档

一、工程修改

(一)替换库文件

需要替换btstack.a库文件

(二)修改相关文件

1、 修改app/common/bt_profile_config.c 在124行,增加:

  1. #if (USER_SUPPORT_PROFILE_PBAP==1)
    image
  2. extern const u8 sdp_pbap_service_data[];
  3. u8 pbap_profile_support = 1 ;
  4. SDP_RECORD_HANDLER_REGISTER(pbap_sdp_record_item) = {​
  5. .service_record = (u8 * ) sdp_pbap_service_data, 6. .service_record_handle = 0x00010007 , 7. ​} ;
  6. #endif
  7. #if (USER_SUPPORT_PROFILE_MAP==1)
  8. extern const u8 sdp_map_mce_service_data[];
  9. u8 map_profile_support = 1 ;
  10. SDP_RECORD_HANDLER_REGISTER(map_sdp_record_item) = {​
  11. .service_record = (u8 * ) sdp_map_mce_service_data , 14. .service_record_handle = 0x00010009 , 15. ​} ;
  12. #endif
    2、 修改apps/earphone/board/br34/board_ad698x_demo_cfg.h 在蓝牙配置中增加
  13. #define USER_SUPPORT_PROFILE_SPP 0
  14. #define USER_SUPPORT_PROFILE_HFP 1
  15. #define USER_SUPPORT_PROFILE_A2DP 1
  16. #define USER_SUPPORT_PROFILE_AVCTP 1
  17. #define USER_SUPPORT_PROFILE_HID 0
  18. #define USER_SUPPORT_PROFILE_PNP 1
  19. #define USER_SUPPORT_PROFILE_PBAP 0
  20. #define USER_SUPPORT_PROFILE_MAP 1
    3、 修改 include_lib/btstack/avctp_user.h
  21. USER_CTRL_HSP_CKPD_CMD, /hsp 接听/
    image
  22. USER_CTRL_HSP_CMD_END,
  23. //MAP功能发送命令
  24. USER_CTRL_MAP_CMD_BEGIN,
  25. //MAP读取时间
  26. USER_CTRL_MAP_READ_TIME,
  27. //MAP停止读取
  28. USER_CTRL_MAP_STOP_READING,
  29. USER_CTRL_MAP_CMD_END,
  30. USER_CTRL_LAST
  31. ​} USER_CMD_TYPE;

二、使用实例

(一)数据处理函数

1、 在apps/earphone/earphone.c 增加

  1. #if USER_SUPPORT_PROFILE_MAP
    image
  2. #define PROFILE_CMD_TRY_AGAIN_LATER -1004
  3. void bt_get_time_date()
    image
  4. {​
  5. log_info ( "hfp_get_time_date " ) ;
    image [6.](6. int)[ int](6. int) error = user_send_cmd_prepare(USER_CTRL_HFP_GET_PHONE_DATE_TIME, 0, NULL) ;
  6. log_info ( " >>>>>error = %d\n " , error) ;
    image
  7. if (error == PROFILE_CMD_TRY_AGAIN_LATER) {​

9. sys_timeout_add(NULL, bt_get_time_date, 100) ;

image 10. ​} 11. ​}
12. void phone_date_and_time_feedback (u8 *data , u16 len) 13. {​
14. log_info ( "hfp_get_time: % s " , data) ; 15. ​}
16. void map_phone_date_and_time_feedback (u8 *data , u16 len) 17. {​
18. if (len != 0 ) {​
19. log_info ( "map_get_time: % s " , data) ;
20. ​} else {​
21. log_info ( " >>>map get fail\n " ) ;
22. sys_timeout_add(NULL, bt_get_time_date, 100) ;
23. ​}
24. ​}
25. #endif
void map_phone_date_and_time_feedback (u8 *data, u 16 len) 函数为MAP获取时间的弱函数,在获取成功和获取失败时协议栈会自动调用,status参数返回 非0 时表示获取时间成功,0时标识拒绝获取。实例函数中编写了MAP获取失败自动发送HFP获取时间的函数,需要注意两个获取方式返回的数据格式不同。
void phone_date_and_time_feedback (u8 *data, u 16 len)函数为通过HFP获取时间的若函数,在获取成功后调用。

(二)命令发送函数

在apps/earphone/earphone.c 中bt_connction_status_event_handler增加函数为获取时间所发送的命令函数

  1. user_send_cmd_prepare(USER_CTRL_MAP_READ_TIME,0 ,NULL) ;
    放于连接成功后 执行:

[1.](1. case)[ case](1. case) BT_STATUS_RECONN_OR_CONN:

  1. l。g_inf。( "BT_STATUS_RECONN_OR_CONN\n " ) ;
  2. user_send_cmd_prepare(USER_CTRL_MAP_READ_TIME ,0 ,NULL) ;

三、注解

1注:void phone_date_and_time_feedback(u8 *data, u16 len)
void map_phone_date_and_time_feedback(u8 *data, u16 len)
这两个处理函数也可放在其他处理文件中。

2注:红色字体为增加代码

珠海市杰理科技股份有限公司
2024年04 月09 日