如何使用BEACON功能?
在如下指令中 放置合适的信息即可。APP可以发现了。
ADV_MFR_SPC=0201061AFF4C000215E031CCED1CE942C6A93683C78157D2680049000AC5
分析:
9前缀+16UUID+2MAJ+2MIN+1RSSI
9前缀: 0201061AFF4C000215注意前面5个已经模块写死 我的指令不对!我只需要后面4个 也就是4C000215
16UUID:E031CCED1CE942C6A93683C78157D268
2MAJ: 0049 显示就是73
2MIN: 000A 显示就是10
1RSSI: C5 显示就是-59 它是补码也就是和是256
修改:ADV_MFR_SPC=4C000215E031CCED1CE942C6A93683C78157D28826000976C5
++++++++++++继续模仿++++++++++++
CCYTA434F14AE984
ble_set_beacon(prefix ,UUID);
static uint8_t prefix[] ={0x4C ,0X00,0X02,0X15};????
static uint8_t UUID[] = {0xF1 ,0xCE,0xBB,0x2A,0xB2,0xF8,0x47,0x92,0x85,0x7A,0x2D,0x26,0x8E,0x4F,0x6D,0x94};
TI的APP显示:
UUID: F1CEBB2A B2F8 4792 857A 2D268E4F6D94
我的:
我发指令AT+ADV_MFR_SPC=4C000215E031CCED1CE942C6A93683C78157D2680049000AC5
TI的APP显示: E031CCED
1CE9
42C6
A936
83C78157D268
为了模仿 我应该发:
我发指令AT+ADV_MFR_SPC=4C000215F1CEBB2AB2F84792857A2D268E4F6D940049000AC5
成功了 UUID显示一样了
继续:0049000AC5
0049-->MAJ73 修改为2600!
000A-->MIN10 修改为0960!
-70--->BA
0049000AC5 -->26000960BA
++++++++++++++++++找到一个MAC关系成功了+++++++++++++
AT+ADV_MFR_SPC=4C000215F1CEBB2AB2F84792857A2D268E4F6D94 0049000AC5
AT+ADV_MFR_SPC=4C000215F1CEBB2AB2F84792857A2D268E4F6D94 26000960BA
2600--需要修改Major = mac[2]<<8|mac[3]; 0XF1<<8|0X4A
0960--需要修改Minor = mac[4]<<8|mac[5]; 0XE9<<8|0X84
BA---死的
[A4 34 F1 4A E9 84 ]
修改为:4C000215F1CEBB2AB2F84792857A2D268E4F6D94F14AE984BA
支持苹果手机闪过了 说明:需要特征1MAJ MIN和MAC有对应关系 2RSII是死的
以前代码:
uint8_t SendMsg[BLEMODE_FARM_MAX];
uint16_t Major = 0 ,Minor = 0;
char rssi = 70;
config.read(CFG_BLE_MAC , (void **)&mac);
Major = mac[2]<<8|mac[3];
Minor = mac[4]<<8|mac[5];
memset(SendMsg , 0x00 , BLEMODE_FARM_MAX);
memset(&Bledata , 0x00 , sizeof(bleModuleReceiveCmdType));
memcpy(SendMsg ,Prefix,BEACON_DEFAULT_PREFIX_LENG );
SendSize+=BEACON_DEFAULT_PREFIX_LENG;
memcpy(SendMsg+SendSize ,UUID,BEACON_DEFAULT_UUID_LENG );
SendSize+=BEACON_DEFAULT_UUID_LENG;
SendMsg[SendSize++] =Major>>8;
SendMsg[SendSize++]=Major;
SendMsg[SendSize++]=Minor>>8;
SendMsg[SendSize++]=Minor;
SendMsg[SendSize++]= (uint8_t )rssi*-1;
可以看到
1char rssi = 70;这哥们是打酱油的
2
先Major = mac[2]<<8|mac[3];
在SendMsg[SendSize++] =Major>>8;
SendMsg[SendSize++]=Major; 这里有默认U16-->U8把高位自动丢弃了
这又是何必呢?