peripheral Role
外设GAPRole任务在peripheral.c和peripheral.h中定义。有关完整的API外设角色API,请参阅BLE Stack API参考,包括命令,可配置参数,事件和回调。使用此模块的步骤如下:
1.初始化GAPRole参数,这部分代码在simple_peripheral.c的SimpleBLEPeripheral_init中能够找到。
// Setup the GAP Peripheral Role Profile
{
uint8_t initialAdvertEnable = TRUE;
uint16_t advertOffTime = 0;
uint8_t enableUpdateRequest = DEFAULT_ENABLE_UPDATE_REQUEST;
uint16_t desiredMinInterval = DEFAULT_DESIRED_MIN_CONN_INTERVAL;
uint16_t desiredMaxInterval = DEFAULT_DESIRED_MAX_CONN_INTERVAL;
uint16_t desiredSlaveLatency = DEFAULT_DESIRED_SLAVE_LATENCY;
uint16_t desiredConnTimeout = DEFAULT_DESIRED_CONN_TIMEOUT;
// Set the GAP Role Parameters
GAPRole_setParameter(GAPROLE_ADVERT_ENABLED, sizeof(uint8_t),&initialAdvertEnable);
GAPRole_setParameter(GAPROLE_ADVERT_OFF_TIME, sizeof(uint16_t), &advertOffTime);
GAPRole_setParameter(GAPROLE_SCAN_RSP_DATA,sizeof(scanRspData), scanRspData);
GAPRole_setParameter(GAPROLE_ADVERT_DATA, sizeof(advertData), advertData);
GAPRole_setParameter(GAPROLE_PARAM_UPDATE_ENABLE,sizeof(uint8_t), &enableUpdateRequest);
GAPRole_setParameter(GAPROLE_MIN_CONN_INTERVAL,sizeof(uint16_t), &desiredMinInterval);
GAPRole_setParameter(GAPROLE_MAX_CONN_INTERVAL,sizeof(uint16_t), &desiredMaxInterval);
GAPRole_setParameter(GAPROLE_SLAVE_LATENCY, sizeof(uint16_t), &desiredSlaveLatency);
GAPRole_setParameter(GAPROLE_TIMEOUT_MULTIPLIER,sizeof(uint16_t), &desiredConnTimeout);
}
上述代码使能了广播,设置了广播关闭时间,这里advertOffTime是0,就是一直进行广播。设置广播响应数据,设置广播数据,设置参数更新请求,设置广播连接间隔,设置广播从机延迟,设置连接超时。
2.初始化GAPRole任务并将应用程序回调函数传递给GAPRole。这也应该在simple_peripheral.c的SimpleBLEPeripheral_init中能够找到。其目的是当设备状态改变的时候进行响应,设备一旦改变都会通过这个回调函数改变event。然后SimpleBLEPeripheral_taskFxn里面一直在检测event事件的状态,发现状态改变则进行一些任务处理。
`VOID GAPRole_StartDevice (&SimpleBLEPeripheral_gapRoleCBs );`
|