nRF51Gap::connect() takes pointers instead of references.
parent
1671d2f183
commit
2ab53ac039
47
nRF51Gap.cpp
47
nRF51Gap.cpp
|
@ -206,30 +206,41 @@ ble_error_t nRF51Gap::stopAdvertising(void)
|
|||
return BLE_ERROR_NONE;
|
||||
}
|
||||
|
||||
ble_error_t nRF51Gap::connect(const Address_t peerAddr,
|
||||
Gap::AddressType_t peerAddrType,
|
||||
const GapScanningParams& scanParamsIn,
|
||||
const ConnectionParams_t& connectionParams)
|
||||
ble_error_t nRF51Gap::connect(const Address_t peerAddr,
|
||||
Gap::AddressType_t peerAddrType,
|
||||
const ConnectionParams_t *connectionParams,
|
||||
const GapScanningParams *scanParamsIn)
|
||||
{
|
||||
ble_gap_addr_t addr;
|
||||
addr.addr_type = peerAddrType;
|
||||
memcpy(addr.addr, peerAddr, Gap::ADDR_LEN);
|
||||
|
||||
ble_gap_scan_params_t scanParams = {
|
||||
.active = 0, /**< If 1, perform active scanning (scan requests). */
|
||||
.selective = 0, /**< If 1, ignore unknown devices (non whitelisted). */
|
||||
.p_whitelist = NULL, /**< Pointer to whitelist, NULL if none is given. */
|
||||
.interval = scanParamsIn.getInterval(), /**< Scan interval between 0x0004 and 0x4000 in 0.625ms units (2.5ms to 10.24s). */
|
||||
.window = scanParamsIn.getWindow(), /**< Scan window between 0x0004 and 0x4000 in 0.625ms units (2.5ms to 10.24s). */
|
||||
.timeout = scanParamsIn.getTimeout(), /**< Scan timeout between 0x0001 and 0xFFFF in seconds, 0x0000 disables timeout. */
|
||||
};
|
||||
ble_gap_conn_params_t connParams;
|
||||
if (connectionParams != NULL) {
|
||||
connParams.min_conn_interval = connectionParams->minConnectionInterval;
|
||||
connParams.max_conn_interval = connectionParams->maxConnectionInterval;
|
||||
connParams.slave_latency = connectionParams->slaveLatency;
|
||||
connParams.conn_sup_timeout = connectionParams->connectionSupervisionTimeout;
|
||||
} else {
|
||||
connParams.min_conn_interval = 50;
|
||||
connParams.max_conn_interval = 1000;
|
||||
connParams.slave_latency = 0;
|
||||
connParams.conn_sup_timeout = 600;
|
||||
}
|
||||
|
||||
ble_gap_conn_params_t connParams = {
|
||||
.min_conn_interval = connectionParams.minConnectionInterval,
|
||||
.max_conn_interval = connectionParams.maxConnectionInterval,
|
||||
.slave_latency = connectionParams.slaveLatency,
|
||||
.conn_sup_timeout = connectionParams.connectionSupervisionTimeout,
|
||||
};
|
||||
ble_gap_scan_params_t scanParams;
|
||||
scanParams.active = 0; /**< If 1, perform active scanning (scan requests). */
|
||||
scanParams.selective = 0; /**< If 1, ignore unknown devices (non whitelisted). */
|
||||
scanParams.p_whitelist = NULL; /**< Pointer to whitelist, NULL if none is given. */
|
||||
if (scanParamsIn != NULL) {
|
||||
scanParams.interval = scanParamsIn->getInterval(); /**< Scan interval between 0x0004 and 0x4000 in 0.625ms units (2.5ms to 10.24s). */
|
||||
scanParams.window = scanParamsIn->getWindow(); /**< Scan window between 0x0004 and 0x4000 in 0.625ms units (2.5ms to 10.24s). */
|
||||
scanParams.timeout = scanParamsIn->getTimeout(); /**< Scan timeout between 0x0001 and 0xFFFF in seconds, 0x0000 disables timeout. */
|
||||
} else {
|
||||
scanParams.interval = 500; /**< Scan interval between 0x0004 and 0x4000 in 0.625ms units (2.5ms to 10.24s). */
|
||||
scanParams.window = 200; /**< Scan window between 0x0004 and 0x4000 in 0.625ms units (2.5ms to 10.24s). */
|
||||
scanParams.timeout = 0; /**< Scan timeout between 0x0001 and 0xFFFF in seconds, 0x0000 disables timeout. */
|
||||
}
|
||||
|
||||
uint32_t rc = sd_ble_gap_connect(&addr, &scanParams, &connParams);
|
||||
if (rc == NRF_SUCCESS) {
|
||||
|
|
|
@ -51,7 +51,7 @@ public:
|
|||
|
||||
virtual ble_error_t startAdvertising(const GapAdvertisingParams &);
|
||||
virtual ble_error_t stopAdvertising(void);
|
||||
virtual ble_error_t connect(const Address_t, Gap::AddressType_t peerAddrType, const GapScanningParams &scanParams, const ConnectionParams_t& connectionParams);
|
||||
virtual ble_error_t connect(const Address_t, Gap::AddressType_t peerAddrType, const ConnectionParams_t *connectionParams, const GapScanningParams *scanParams);
|
||||
virtual ble_error_t disconnect(DisconnectionReason_t reason);
|
||||
|
||||
virtual ble_error_t purgeAllBondingState(void) {return btle_purgeAllBondingState();}
|
||||
|
|
Loading…
Reference in New Issue