亲爱的TI工程师:
您好!请问下CC2540里面的Device Name 与 Local Name 的区别是什么?他们可以写成不一样的吗?
我发现我如果把 attDeviceName 设置成 a,Local Name 设置成a1234,用lightblue搜索,搜到显示的名字为 a1234,而不是a,
但是如果连接一下,然后断开,再搜索,搜到显示的名字就变成了 a,这是怎么回事呢?
我一直理解的是ligtblue 上应该显示的是我的广播名字,为什么没进行一次连接,会显示的是我的 Local Name?
谢谢!
Barbara Wu:
可以设置成不一样的。
应该是显示Device Name的。名称应该是上层软件刷新的问题。可以通过sniffer工具看一下发包来协助判断
Yue TANG:
Local name其实取决你的scanRspdata. 而搜索显示的名字由attDeviceName 决定。
发起连接才会有scanrequest和scanrsp交互,手机才能从你的scanrspdata中知道你现在的local name.否则他会使用上一次的记录。
static uint8 scanRspData[] ={ // complete name 0x14, // length of this data GAP_ADTYPE_LOCAL_NAME_COMPLETE, 0x53, // 'S' 0x69, // 'i' 69 0x6d, // 'm' 0x70, // 'p' 0x6c, // 'l' 0x65, // 'e' 0x42, // 'B' 0x4c, // 'L' 0x45, // 'E' 0x50, // 'P' 0x65, // 'e' 0x72, // 'r' 0x69, // 'i' 0x70, // 'p' 0x68, // 'h' 0x65, // 'e' 0x72, // 'r' 0x61, // 'a' 0x6c, // 'l'
// connection interval range 0x05, // length of this data GAP_ADTYPE_SLAVE_CONN_INTERVAL_RANGE, LO_UINT16( DEFAULT_DESIRED_MIN_CONN_INTERVAL ), // 100ms HI_UINT16( DEFAULT_DESIRED_MIN_CONN_INTERVAL ), LO_UINT16( DEFAULT_DESIRED_MAX_CONN_INTERVAL ), // 1s HI_UINT16( DEFAULT_DESIRED_MAX_CONN_INTERVAL ),
// Tx power level 0x02, // length of this data GAP_ADTYPE_POWER_LEVEL, 0 // 0dBm};
Jacen Cao:
回复 Barbara Wu:
Hi WBJ,
从sniffer抓包来看,广播的数据只能看到服务和是否可被发现的属性,Device Name好像是无法看到。
Respone Data里面就是我设置的 Local name