This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

关于扫描Rsp与设备名称的疑问



Hi 大家好,我又来烦大家了!

    官方例程simpleBLEPeripheral,文件simpleBLEPeripheral.c中有这么一个数组:static uint8 scanRspData[] 。这个数组包含一些扫描的响应数据信息。

想请教下,这个数组的各部分内容的作用。

{
// complete name
0x14, // length of this data
GAP_ADTYPE_LOCAL_NAME_COMPLETE,
0x53, // 'S'
0x69, // 'i'
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 ),

0x02, // length of this data
GAP_ADTYPE_POWER_LEVEL,
0 // 0dBm
};

    另有一个数组:attDeviceName[GAP_DEVICE_NAME_LEN] = "Simple BLE Peripheral";从字面看,这个应该是设备名称,但是我用Andriod上的“BLE Device Monitor”扫描后,第一时间看到的名称是scanRspData中的字符串,而非“Simple BLE Peripheral”。

请教,究竟哪个才是设备名称呢?

  • shaokai,

    请看这个帖子,希望对你有帮助: http://www.deyisupport.com/question_answer/wireless_connectivity/bluetooth/f/103/t/61571.aspx

  • Yan

        这个帖子对我还是有帮助的。不过还有些细节问题,需要咨询。

    1.我想自己重写这个数组, 下面红色部分是否可以去掉,而只保留扫描的名称?

    static uint8 scanRspData[]  = 

    {

    0x14, // length of this data
    GAP_ADTYPE_LOCAL_NAME_COMPLETE,
    0x53, // 'S'
    0x69, // 'i'
    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'

    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 ),

    0x02, // length of this data
    GAP_ADTYPE_POWER_LEVEL,
    0 // 0dBm
    };

    2.如果不可去掉,是否应该按照特定的结构或规律来写这个数组呢?以什么样的规律、结构?

  • 还有一个啊。。。

    gapgattservice.h中有GGS_SetParameter();这个函数。但是这个看不到源文件,那么如果我给它设置设备名称,最大长度是多大?

    GGS的API函数说明在哪里能找到呢?

    GGS_SetParameter( GGS_DEVICE_NAME_ATT, GAP_DEVICE_NAME_LEN, attDeviceName );