Skip to content

Commit 7f05ecb

Browse files
committed
Update to Thunderdome V4.2
1 parent 42893df commit 7f05ecb

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+3429
-2238
lines changed

libraries/CurieBLE/src/BLEDevice.cpp

Lines changed: 10 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -33,38 +33,25 @@ BLEDevice::BLEDevice()
3333
_conn_param.interval_max = BT_GAP_INIT_CONN_INT_MAX;
3434
_conn_param.interval_min = BT_GAP_INIT_CONN_INT_MIN;
3535
_conn_param.latency = 0;
36-
_conn_param.timeout = 400;
36+
_conn_param.timeout = 500;
3737
}
3838

39-
/*
40-
BLEDevice::BLEDevice(String bleaddress)
41-
{
42-
BLEUtils::macAddressString2BT(bleaddress.c_str(), _bt_addr);
43-
}
44-
45-
BLEDevice::BLEDevice(const char* bleaddress)
46-
{
47-
BLEUtils::macAddressString2BT(bleaddress, _bt_addr);
48-
}
49-
50-
*/
51-
5239
BLEDevice::BLEDevice(const bt_addr_le_t* bleaddress):
5340
BLEDevice()
5441
{
55-
memcpy(&_bt_addr, bleaddress, sizeof(_bt_addr));
42+
bt_addr_le_copy(&_bt_addr, bleaddress);
5643
BLEDeviceManager::instance()->getConnectionInterval(this, &_conn_param);
5744
}
5845

5946
BLEDevice::BLEDevice(const BLEDevice* bledevice)
6047
{
61-
memcpy(&_bt_addr, bledevice->bt_le_address(), sizeof(_bt_addr));
48+
bt_addr_le_copy(&_bt_addr, bledevice->bt_le_address());
6249
memcpy(&_conn_param, &bledevice->_conn_param, sizeof (_conn_param));
6350
}
6451

6552
BLEDevice::BLEDevice(const BLEDevice& bledevice)
6653
{
67-
memcpy(&_bt_addr, bledevice.bt_le_address(), sizeof(_bt_addr));
54+
bt_addr_le_copy(&_bt_addr, bledevice.bt_le_address());
6855
memcpy(&_conn_param, &bledevice._conn_param, sizeof (_conn_param));
6956
}
7057

@@ -117,7 +104,7 @@ String BLEDevice::address() const
117104

118105
void BLEDevice::setAddress(const bt_addr_le_t& addr)
119106
{
120-
memcpy(&_bt_addr, &addr, sizeof(_bt_addr));
107+
bt_addr_le_copy(&_bt_addr, &addr);
121108
}
122109

123110
void BLEDevice::setAdvertisedServiceUuid(const char* advertisedServiceUuid)
@@ -284,12 +271,14 @@ BLEDevice& BLEDevice::operator=(const BLEDevice& device)
284271

285272
bool BLEDevice::operator==(const BLEDevice& device) const
286273
{
287-
return (memcmp(this->_bt_addr.val, device._bt_addr.val, 6) == 0);
274+
return (bt_addr_le_cmp(&this->_bt_addr, &device._bt_addr) == 0);
275+
//return (memcmp(this->_bt_addr.a.val, device._bt_addr.a.val, 6) == 0);
288276
}
289277

290278
bool BLEDevice::operator!=(const BLEDevice& device) const
291279
{
292-
return (memcmp(this->_bt_addr.val, device._bt_addr.val, 6) != 0);
280+
return (bt_addr_le_cmp(&this->_bt_addr, &device._bt_addr) != 0);
281+
//return (memcmp(this->_bt_addr.a.val, device._bt_addr.a.val, 6) != 0);
293282
}
294283

295284

@@ -389,7 +378,7 @@ bool BLEDevice::connect()
389378

390379
bool BLEDevice::discoverAttributes()
391380
{
392-
return BLEProfileManager::instance()->discoverAttributes(this);
381+
return BLEProfileManager::instance()->discoverAllAttributes(this);
393382
}
394383

395384
bool BLEDevice::discoverAttributesByService(const char* svc_uuid)

libraries/CurieBLE/src/BLEDevice.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -665,7 +665,7 @@ class BLEDevice
665665
const void *data,
666666
uint16_t length);
667667
friend uint8_t profile_descriptor_read_rsp_process(bt_conn_t *conn,
668-
int err,
668+
uint8_t err,
669669
bt_gatt_read_params_t *params,
670670
const void *data,
671671
uint16_t length);

libraries/CurieBLE/src/BLEService.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ class BLEService
125125
friend class BLEServiceImp;
126126
friend class BLEProfileManager;
127127
friend uint8_t profile_service_read_rsp_process(bt_conn_t *conn,
128-
int err,
128+
uint8_t err,
129129
bt_gatt_read_params_t *params,
130130
const void *data,
131131
uint16_t length);

libraries/CurieBLE/src/internal/BLECallbacks.cpp

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -61,26 +61,27 @@ ssize_t profile_read_process(bt_conn_t *conn,
6161
ssize_t profile_write_process(bt_conn_t *conn,
6262
const bt_gatt_attr_t *attr,
6363
const void *buf, uint16_t len,
64-
uint16_t offset)
64+
uint16_t offset, uint8_t flags)
6565
{
6666
pr_info(LOG_MODULE_BLE, "%s1", __FUNCTION__);
6767
BLEAttribute *bleattr = (BLEAttribute *)attr->user_data;
6868
BLECharacteristicImp* blecharacteritic;
6969
BLEAttributeType type = bleattr->type();
70-
if ((BLETypeCharacteristic != type) || 0 != offset)
70+
if (BLETypeCharacteristic != type)
7171
{
7272
return 0;
7373
}
7474

7575
blecharacteritic = (BLECharacteristicImp*)bleattr;
76-
blecharacteritic->setValue((const uint8_t *) buf, len);
76+
blecharacteritic->setValue((const uint8_t *) buf, len, offset);
7777
return len;
7878
}
7979

80+
#ifdef TD_V3
8081
ssize_t profile_longwrite_process(struct bt_conn *conn,
8182
const struct bt_gatt_attr *attr,
8283
const void *buf, uint16_t len,
83-
uint16_t offset)
84+
uint16_t offset, uint8_t flags)
8485
{
8586
BLEAttribute *bleattr = (BLEAttribute *)attr->user_data;
8687
BLEAttributeType type = bleattr->type();
@@ -121,7 +122,7 @@ int profile_longflush_process(struct bt_conn *conn,
121122

122123
return -EINVAL;
123124
}
124-
125+
#endif
125126

126127
// GATT client only
127128
uint8_t profile_notify_process (bt_conn_t *conn,
@@ -157,7 +158,7 @@ uint8_t profile_discover_process(bt_conn_t *conn,
157158

158159
// GATT Client only
159160
uint8_t profile_read_rsp_process(bt_conn_t *conn,
160-
int err,
161+
uint8_t err,
161162
bt_gatt_read_params_t *params,
162163
const void *data,
163164
uint16_t length)
@@ -175,7 +176,7 @@ uint8_t profile_read_rsp_process(bt_conn_t *conn,
175176
}
176177

177178
uint8_t profile_descriptor_read_rsp_process(bt_conn_t *conn,
178-
int err,
179+
uint8_t err,
179180
bt_gatt_read_params_t *params,
180181
const void *data,
181182
uint16_t length)
@@ -200,7 +201,7 @@ uint8_t profile_descriptor_read_rsp_process(bt_conn_t *conn,
200201
}
201202

202203
uint8_t profile_service_read_rsp_process(bt_conn_t *conn,
203-
int err,
204+
uint8_t err,
204205
bt_gatt_read_params_t *params,
205206
const void *data,
206207
uint16_t length)
@@ -211,7 +212,7 @@ uint8_t profile_service_read_rsp_process(bt_conn_t *conn,
211212
}
212213

213214
uint8_t profile_characteristic_read_rsp_process(bt_conn_t *conn,
214-
int err,
215+
uint8_t err,
215216
bt_gatt_read_params_t *params,
216217
const void *data,
217218
uint16_t length)
@@ -277,6 +278,11 @@ static uint8_t ble_gatt_disconnected_cb(const struct bt_gatt_attr *attr, void *u
277278

278279
bt_conn_unref(tmp);
279280
}
281+
} else {
282+
/* Clear value if not paired */
283+
if (!ccc->cfg[i].valid)
284+
memset(&ccc->cfg[i].value, 0,
285+
sizeof(ccc->cfg[i].value));
280286
}
281287
}
282288

@@ -340,15 +346,16 @@ void ble_on_write_no_rsp_complete(struct bt_conn *conn, uint8_t err,
340346
}
341347

342348
ssize_t profile_gatt_attr_write_ccc(struct bt_conn *conn,
343-
const struct bt_gatt_attr *attr,
344-
const void *buf,
345-
uint16_t len,
346-
uint16_t offset)
349+
const struct bt_gatt_attr *attr,
350+
const void *buf,
351+
uint16_t len,
352+
uint16_t offset,
353+
uint8_t flags)
347354
{
348355
struct _bt_gatt_ccc *ccc = (struct _bt_gatt_ccc *)attr->user_data;
349356
const uint16_t *data = (const uint16_t *)buf;
350357
bool cccdChanged = (ccc->value != *data);
351-
ssize_t retValue = bt_gatt_attr_write_ccc(conn, attr, buf, len, offset);
358+
ssize_t retValue = bt_gatt_attr_write_ccc(conn, attr, buf, len, offset, flags);
352359
if (cccdChanged)
353360
{
354361
// Find characteristic and do notification

libraries/CurieBLE/src/internal/BLECallbacks.h

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,14 @@
2424
uint8_t profile_notify_process (bt_conn_t *conn,
2525
bt_gatt_subscribe_params_t *params,
2626
const void *data, uint16_t length);
27-
uint8_t profile_read_rsp_process(bt_conn_t *conn, int err,
27+
uint8_t profile_read_rsp_process(bt_conn_t *conn,
28+
uint8_t err,
2829
bt_gatt_read_params_t *params,
2930
const void *data,
3031
uint16_t length);
3132

3233
uint8_t profile_descriptor_read_rsp_process(bt_conn_t *conn,
33-
int err,
34+
uint8_t err,
3435
bt_gatt_read_params_t *params,
3536
const void *data,
3637
uint16_t length);
@@ -41,11 +42,13 @@ int profile_longflush_process(struct bt_conn *conn,
4142
ssize_t profile_longwrite_process(struct bt_conn *conn,
4243
const struct bt_gatt_attr *attr,
4344
const void *buf, uint16_t len,
44-
uint16_t offset);
45+
uint16_t offset,
46+
uint8_t flags);
4547
ssize_t profile_write_process(bt_conn_t *conn,
4648
const bt_gatt_attr_t *attr,
4749
const void *buf, uint16_t len,
48-
uint16_t offset);
50+
uint16_t offset,
51+
uint8_t flags);
4952
ssize_t profile_read_process(bt_conn_t *conn,
5053
const bt_gatt_attr_t *attr,
5154
void *buf, uint16_t len,
@@ -76,15 +79,15 @@ void ble_central_device_found(const bt_addr_le_t *addr,
7679
uint8_t len);
7780

7881
uint8_t profile_service_read_rsp_process(bt_conn_t *conn,
79-
int err,
82+
uint8_t err,
8083
bt_gatt_read_params_t *params,
8184
const void *data,
8285
uint16_t length);
8386

8487
void ble_on_write_no_rsp_complete(struct bt_conn *conn, uint8_t err,
8588
const void *data);
8689
uint8_t profile_characteristic_read_rsp_process(bt_conn_t *conn,
87-
int err,
90+
uint8_t err,
8891
bt_gatt_read_params_t *params,
8992
const void *data,
9093
uint16_t length);
@@ -93,7 +96,8 @@ ssize_t profile_gatt_attr_write_ccc(struct bt_conn *conn,
9396
const struct bt_gatt_attr *attr,
9497
const void *buf,
9598
uint16_t len,
96-
uint16_t offset);
99+
uint16_t offset,
100+
uint8_t flags);
97101

98102
#endif
99103

0 commit comments

Comments
 (0)