浏览代码

修正广播数据错误

Hansome 2 月之前
父节点
当前提交
2256fc8385
共有 2 个文件被更改,包括 46 次插入46 次删除
  1. 1 1
      src/hlw2025141/app/projects/earphone/app.depend
  2. 45 45
      src/hlw2025141/app/projects/earphone/com/com_adv.c

+ 1 - 1
src/hlw2025141/app/projects/earphone/app.depend

@@ -7359,7 +7359,7 @@
 	"com_ble.h"
 	"com_dec.h"
 
-1744005700 source:e:\hlwei\projects\hlw2025141\src\hlw2025141\app\projects\earphone\com\com_dec.c
+1744011017 source:e:\hlwei\projects\hlw2025141\src\hlw2025141\app\projects\earphone\com\com_dec.c
 	"com_dec.h"
 
 1744011007 e:\hlwei\projects\hlw2025141\src\hlw2025141\app\projects\earphone\com\com_dec.h

+ 45 - 45
src/hlw2025141/app/projects/earphone/com/com_adv.c

@@ -7,9 +7,9 @@ static uint32_t _fill_adv_type(uint8_t offset, uint8_t* buf)
     uint8_t* p = (uint8_t*)(buf + offset);
     uint8_t i = 0;
 
-    buf[i++] = 2;
-    buf[i++] = 0x01;
-    buf[i++] = 0x02;
+    p[i++] = 2;
+    p[i++] = 0x01;
+    p[i++] = 0x06;
 
     printf("adv type: %d\r\n", i);
     return i;
@@ -25,9 +25,9 @@ static uint32_t _fill_adv_local_name(uint8_t offset, uint8_t* buf)
     int len;
 
     len = strlen(xcfg_cb.le_name);
-    buf[i++] = len + 2;
-    buf[i++] = 0x09;
-    memcpy(&buf[i], xcfg_cb.le_name, len);
+    p[i++] = len + 1;
+    p[i++] = 0x09;
+    memcpy(&p[i], xcfg_cb.le_name, len);
     i += len;
 
     printf("adv local name: %d\r\n", i);
@@ -42,13 +42,13 @@ static uint32_t _fill_adv_uuid_datas(uint8_t offset, uint8_t* buf)
     uint8_t* p = (uint8_t*)(buf + offset);
     uint8_t i = 0;
 
-    buf[i++] = 7;
-    buf[i++] = 0x16;
-    buf[i++] = 0xaa;
-    buf[i++] = 0xfa;
-    buf[i++] = 100;     /* 左耳电量 */
-    buf[i++] = 96;      /* 右耳电量 */
-    buf[i++] = 0;
+    p[i++] = 6;
+    p[i++] = 0x16;
+    p[i++] = 0xaa;
+    p[i++] = 0xfa;
+    p[i++] = 100;     /* 左耳电量 */
+    p[i++] = 96;      /* 右耳电量 */
+    p[i++] = 0;
 
     printf("adv uuid datas: %d\r\n", i);
     return i;
@@ -64,46 +64,46 @@ static uint32_t _fill_adv_fact_datas(uint8_t offset, uint8_t* buf)
     uint8_t addr[6];
     uint8_t j;
 
-    buf[i++] = 29;
-    buf[i++] = 0xff;
-    buf[i++] = 0xff;
-    buf[i++] = 0xff;
-    buf[i++] = 0x00;    /* 软件版本号低8位 */
-    buf[i++] = 0x64;    /* 软件版本号高8位 */
-    buf[i++] = 0x00;    /* 固件版本号低8位 */
-    buf[i++] = 0x64;    /* 固件版本号高8位 */
-    buf[i++] = 0x00;    /* 硬件版本号低8位 */
-    buf[i++] = 0x64;    /* 硬件版本号高8位 */
-    buf[i++] = 0x00;    /* 设备型号低8位 */
-    buf[i++] = 0x00;    /* 设备型号中8位 */
-    buf[i++] = 0x00;    /* 设备型号高8位 */
+    p[i++] = 29;
+    p[i++] = 0xff;
+    p[i++] = 0xff;
+    p[i++] = 0xff;
+    p[i++] = 0x00;    /* 软件版本号低8位 */
+    p[i++] = 0x64;    /* 软件版本号高8位 */
+    p[i++] = 0x00;    /* 固件版本号低8位 */
+    p[i++] = 0x64;    /* 固件版本号高8位 */
+    p[i++] = 0x00;    /* 硬件版本号低8位 */
+    p[i++] = 0x64;    /* 硬件版本号高8位 */
+    p[i++] = 0x00;    /* 设备型号低8位 */
+    p[i++] = 0x00;    /* 设备型号中8位 */
+    p[i++] = 0x00;    /* 设备型号高8位 */
 
     /* BLE地址 */
     bt_get_local_bd_addr(addr);
     j = 0;
-    buf[i++] = addr[j++];
-    buf[i++] = addr[j++];
-    buf[i++] = addr[j++];
-    buf[i++] = addr[j++];
-    buf[i++] = addr[j++];
-    buf[i++] = addr[j++];
+    p[i++] = addr[j++];
+    p[i++] = addr[j++];
+    p[i++] = addr[j++];
+    p[i++] = addr[j++];
+    p[i++] = addr[j++];
+    p[i++] = addr[j++];
 
     /* 经典蓝牙地址 */
     bt_get_local_bd_addr(addr);
     j = 0;
-    buf[i++] = addr[j++];
-    buf[i++] = addr[j++];
-    buf[i++] = addr[j++];
-    buf[i++] = addr[j++];
-    buf[i++] = addr[j++];
-    buf[i++] = addr[j++];
+    p[i++] = addr[j++];
+    p[i++] = addr[j++];
+    p[i++] = addr[j++];
+    p[i++] = addr[j++];
+    p[i++] = addr[j++];
+    p[i++] = addr[j++];
 
     /* 设备序列号 */
-    buf[i++] = 0x00;
-    buf[i++] = 0x00;
-    buf[i++] = 0x00;
-    buf[i++] = 0x00;
-    buf[i++] = 0x00;
+    p[i++] = 0x00;
+    p[i++] = 0x00;
+    p[i++] = 0x00;
+    p[i++] = 0x00;
+    p[i++] = 0x00;
 
     printf("adv fact datas: %d\r\n", i);
     return i;
@@ -111,7 +111,7 @@ static uint32_t _fill_adv_fact_datas(uint8_t offset, uint8_t* buf)
 }
 
 
-uint32_t com_adv_fill_scan_data(uint8_t* buf)
+uint32_t com_adv_fill_adv_data(uint8_t* buf)
 {
 
     uint8_t i = 0;
@@ -125,7 +125,7 @@ uint32_t com_adv_fill_scan_data(uint8_t* buf)
 }
 
 
-uint32_t com_adv_fill_adv_data(uint8_t* buf)
+uint32_t com_adv_fill_scan_data(uint8_t* buf)
 {
 
     return _fill_adv_fact_datas(0, buf);