Skip to content

Commit d2f669e

Browse files
committed
Add some functions
BLEPeriph::setSlaveLatency() BLEConnection::getSlaveLatency() BLEConnection::getConnSupervisionTimeout()
1 parent 9f0f424 commit d2f669e

File tree

4 files changed

+30
-2
lines changed

4 files changed

+30
-2
lines changed

libraries/Bluefruit52Lib/src/BLEConnection.cpp

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,9 @@ BLEConnection::BLEConnection(uint16_t conn_hdl, ble_gap_evt_connected_t const* e
4848
_mtu = BLE_GATT_ATT_MTU_DEFAULT;
4949
_data_length = BLE_GATT_ATT_MTU_DEFAULT + 4; // 27
5050
_phy = BLE_GAP_PHY_1MBPS;
51-
_conn_interval = 0;
51+
_conn_interval = evt_connected->conn_params.max_conn_interval;
52+
_slave_latency = evt_connected->conn_params.slave_latency;
53+
_sup_timeout = evt_connected->conn_params.conn_sup_timeout;
5254
_peer_addr = evt_connected->peer_addr;
5355
_role = evt_connected->role;
5456

@@ -108,6 +110,16 @@ uint16_t BLEConnection::getConnectionInterval(void)
108110
return _conn_interval;
109111
}
110112

113+
uint16_t BLEConnection::getSlaveLatency(void)
114+
{
115+
return _slave_latency;
116+
}
117+
118+
uint16_t BLEConnection::getConnSupervisionTimeout(void)
119+
{
120+
return _sup_timeout;
121+
}
122+
111123
uint16_t BLEConnection::getDataLength(void)
112124
{
113125
return _data_length;
@@ -318,8 +330,10 @@ void BLEConnection::_eventHandler(ble_evt_t* evt)
318330
{
319331
ble_gap_conn_params_t* param = &evt->evt.gap_evt.params.conn_param_update.conn_params;
320332
_conn_interval = param->max_conn_interval;
333+
_slave_latency = param->slave_latency;
334+
_sup_timeout = param->conn_sup_timeout;
321335

322-
LOG_LV1("GAP", "Conn Interval= %.2f ms, Latency = %d, Supervisor Timeout = %d ms", _conn_interval*1.25f, param->slave_latency, 10*param->conn_sup_timeout);
336+
LOG_LV1("GAP", "Conn Interval= %.2f ms, Latency = %d, Supervisor Timeout = %d ms", _conn_interval*1.25f, _slave_latency, 10*_sup_timeout);
323337
}
324338
break;
325339

libraries/Bluefruit52Lib/src/BLEConnection.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ class BLEConnection
4747
uint16_t _conn_hdl;
4848
uint16_t _mtu;
4949
uint16_t _conn_interval;
50+
uint16_t _slave_latency;
51+
uint16_t _sup_timeout;
5052
uint16_t _data_length;
5153
uint8_t _phy;
5254

@@ -80,6 +82,8 @@ class BLEConnection
8082
uint8_t getRole(void);
8183
uint16_t getMtu (void);
8284
uint16_t getConnectionInterval(void);
85+
uint16_t getSlaveLatency(void);
86+
uint16_t getConnSupervisionTimeout(void);
8387
uint16_t getDataLength(void);
8488
uint8_t getPHY(void);
8589

libraries/Bluefruit52Lib/src/BLEPeriph.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,15 @@ bool BLEPeriph::setConnIntervalMS (uint16_t min_ms, uint16_t max_ms)
9898
return setConnInterval( MS100TO125(min_ms), MS100TO125(max_ms) );
9999
}
100100

101+
bool BLEPeriph::setSlaveLatency (uint16_t latency)
102+
{
103+
_ppcp.slave_latency = latency;
104+
105+
VERIFY_STATUS( sd_ble_gap_ppcp_set(&_ppcp), false);
106+
107+
return true;
108+
}
109+
101110
bool BLEPeriph::setConnSupervisionTimeout(uint16_t timeout)
102111
{
103112
_ppcp.conn_sup_timeout = timeout;

libraries/Bluefruit52Lib/src/BLEPeriph.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ class BLEPeriph
5454

5555
bool setConnInterval (uint16_t min, uint16_t max);
5656
bool setConnIntervalMS (uint16_t min_ms, uint16_t max_ms);
57+
bool setSlaveLatency (uint16_t latency);
5758
bool setConnSupervisionTimeout(uint16_t timeout);
5859
bool setConnSupervisionTimeoutMS(uint16_t timeout_ms);
5960

0 commit comments

Comments
 (0)