# jiawotest **Repository Path**: dustin-wei/jiawotest ## Basic Information - **Project Name**: jiawotest - **Description**: 佳沃自动化测试脚本测试 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-26 - **Last Updated**: 2026-04-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 前期工作 ## 1.烧录模组固件 https://quectel.feishu.cn/wiki/DUlQwWLDyiEr1lk4TIUc8yYCnIc?from=from_copylink ## 2.烧录蓝牙固件 https://quectel.feishu.cn/wiki/DUlQwWLDyiEr1lk4TIUc8yYCnIc?from=from_copylink ### 注意事项:烧录后拔掉BOOT(影响命令发送)和BT_TX\RX(影响音频播放到耳机) ## 3.下载必要的代码文件 ![](image/1.png) # 蓝牙AG通话相关命令 ### 注意:蓝牙进出DLPS(蓝牙命令交互时必须退出)当前默认退出 ```python p.cmd_set_dlps(1) # 退出 p.cmd_set_dlps(0) # 进入 ``` ## 1.蓝牙扫描 ```python p.cmd_inquiry(0) # 开始 p.cmd_inquiry(1) # 停止 ``` ![](image/2.png) ## 2.蓝牙连接 ```python p.cmd_xm_create_ear_info() # 修改bd_addr为自己蓝牙耳机的倒叙地址字节流,device_name为自己耳机的设备名字节流 p.cmd_bt_create_connection() # 修改bd_addr为自己蓝牙耳机的倒叙地址字节流 ``` ![](image/3.png) ```python p.cmd_bt_create_connection_by_name('') # 需结合cmd_inquiry使用,扫描结果放在一个list,使用该命令后会在list里找对应的device name ``` ![](image/4.png) ```python p.cmd_bt_disconnnect(p.current_conn_bt_addr)# 断开连接 p.cmd_bt_bond_info_clear(p.current_conn_bt_addr) # 蓝牙绑定信息清除 ``` ![](image/5.png) ## 3.去电前置命令 ```python p.cmd_xm_ag_indicators_status() # 来电时,上报当前设备状态 p.cmd_xm_ag_call_dial() # 指示拨号 p.cmd_xm_ag_call_alert() # 通知蓝牙耳机正在呼叫 p.cmd_xm_ag_sco_connect_req(p.current_conn_bt_addr) # 建立sco链路 p.cmd_xm_ag_record_need_used(1) # 切换为耳机侧麦克风录音 ``` ![](image/6.png) ## 4.来电前置命令 ```python p.cmd_xm_ag_indicators_status() # 上传当前设备信息 p.cmd_xm_ag_call_incoming() # 建立sco链路 p.cmd_xm_ag_record_need_used(1) # 切换为耳机侧麦克风录音 ``` ![](image/7.png) ## 5.接听 ```python v.answer_call() # 接听 ``` ![](image/8.png) ## 6.挂断 ```python v.hangup_call() # 挂断 ``` ![](image/9.png) ## 7.流程汇总 ### 去电 ```python # AG通话流程(去电) p.cmd_xm_create_ear_info() p.cmd_bt_create_connection() # 蓝牙连接,如果蓝牙已连接,1和2无需再次发送 p.cmd_xm_ag_indicators_status() p.cmd_xm_ag_call_dial() p.cmd_xm_ag_call_alert() p.cmd_xm_ag_sco_connect_req(p.current_conn_bt_addr) p.cmd_xm_ag_record_need_used(1) # 切换为耳机侧麦克风录音 v.dial_call("13667746134") # 拨号 v.hangup_call() # 挂断 ``` ![](image/10.png) ### 来电 ```python # AG通话流程(来电) p.cmd_xm_create_ear_info() p.cmd_bt_create_connection() # 蓝牙连接,如果蓝牙已连接,1和2无需再次发送 p.cmd_xm_ag_indicators_status() p.cmd_xm_ag_call_incoming() p.cmd_xm_ag_record_need_used(1) # 切换为耳机侧麦克风录音 v.answer_call() # 接听 v.hangup_call() # 挂断 ``` ![](image/11.png) # BLE相关命令 ## 1.BLE扫描 ```python p.cmd_xm_mmi(-90) # 设置扫描范围0 至 -90,不设置默认为-120 ``` ![](image/cmd_xm_mmi.png) ```python p.cmd_le_start_scan(params=b'\x01') # 扫描所有设备 ``` ![](image/cmd_le_start_scan_all.png) ```python p.cmd_le_start_scan(params=b'\x02') # 扫描可连接设备 ``` ![](image/cmd_le_start_scan_connectable.png) ```python p.cmd_le_start_scan(params=b'\x05') # 扫描传统可连接设备 ``` ![](image/cmd_le_start_scan_part_of_connectable.png) ```python p.cmd_le_start_scan_uuid(uuid16=0x1812) # 扫描,按服务 ``` ![](image/cmd_le_start_scan_uuid.png) ```python p.cmd_le_start_scan_name(ad_type=0x09, name_prefix="EDI") # 扫描,按设备名 ``` ![](image/cmd_le_start_scan_name.png) ```python p.cmd_le_stop_scan() # 停止 ``` ### 注意:该功能下开始扫描命令后,QPYCom交互界面持续输出,下不了停止命令,所以交互界面打印取消,功能体现在lvgl的Ble test,且LVGL按钮所调用的扫描函数默认为`p.cmd_le_start_scan(params=b'\x02')` image ## 2.BLE连接 ```python p.cmd_le_create_conn() # 修改remote_bd_addr为自己BLE设备的倒叙地址字节流 ``` ![](image/14.png) ## 3.发现所有服务 ```python p.cmd_gcsc_discover_all(p.app_link_id) ``` ![](image/15.png) ![](image/16.png) ## 4.服务读写 注意:当前功能需知道GATT服务对应的handle,当前不知道怎么解析handle,但有几个针对客户手表可以确定的handle ```python p.cmd_gcsc_read(p.app_link_id, 0x0030) # 获取电量服务 p.cmd_gcsc_read(p.app_link_id, 0x0007) # 获取设备名服务 p.cmd_gcsc_read(p.app_link_id, 0x0009) # 获取外观特征服务 p.cmd_gcsc_write(p.app_link_id, 0x02, 0x0013, 0x0002, b'\x01\x00') # 发送Notify p.cmd_gcsc_write(p.app_link_id, 0x01, 0x0010, 0x000e, b'\xab\x00\x00\x06\xa9\xc2\x00\x2e\x05\x00\x0d\x00\x01\x01') # 发送获取心率测试命令 ``` ![](image/17.png) ## 5.广播 ```python p.cmd_le_set_rand_addr() # 设置随机广播地址 p.add_server() # 构建一个uuid128的示例函数,支持一个notify+write的特征,对其进行notify+write操作时,默认回复hi p.cmd_set_cfg(0x00, "XM-BLETEST") # 设置广播名(实测由后续cmd_xm_le_adv_create来固定广播名) p.cmd_xm_le_adv_create(adv_data=b'XM-BLETEST', scan_rsp_data=b'XM-BLETEST') # 创建广播 p.cmd_xm_le_start_advertising(1, 0x0000) # 开始广播 ``` ![](image/18.png) ## 6.配对 注意:手机点击bond后,需等待手机弹出配对界面,点击配对后才能下该命令 ```python p.cmd_xm_le_user_cfm_req(p.app_link_id) # 当手机点击bond时 ``` # 杂项 ## 1.获取蓝牙地址 ```python p.cmd_get_bd_addr() ``` ## 2.获取固件版本 ```python p.cmd_get_fw_version() ``` 修订版本|日期|作者|描述 ----|----|----|---- v0.2|2026.2.6|冯满德|1.蓝牙固件(20260130)调整偏频后,通话杂音解决 2.模组固件(BETA0205)改版,通话流接口改为pcm.read、pcm.write解决双向通话时耳机->rtl8763->模组->手机测卡顿 3.优化来电去电流程 4. 增加广播构建GATT示例 v0.3|2026.2.25|冯满德|添加cmd_bt_create_connection_by_name