Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: source/platform/btle.cpp
- Branch:
- bde03b1e2c8e385819a23a5b6b31c97b4811d0a3
- Revision:
- 267:cd7870e466b3
- Parent:
- 266:b49e28134d83
- Child:
- 268:c0a1e03c5736
--- a/source/platform/btle.cpp Thu Sep 15 10:51:29 2016 +0100
+++ b/source/platform/btle.cpp Thu Sep 15 10:51:30 2016 +0100
@@ -369,13 +369,15 @@
//BlueNRGGattServer::getInstance().handleEvent(GattServerEvents::GATT_EVENT_DATA_WRITTEN, attr_handle);
//Write the actual Data to the Attr Handle? (uint8_1[])att_data contains the data
if ((p_char->getValueAttribute().getValuePtr() != NULL) && (p_char->getValueAttribute().getLength() > 0)) {
- BlueNRGGattServer::getInstance().write(p_char->getValueAttribute().getHandle(),
- (uint8_t*)att_data,
- data_length,
- false);
+ BlueNRGGattServer::getInstance().write(
+ p_char->getValueAttribute().getHandle(),
+ (uint8_t*)att_data,
+ data_length,
+ false
+ );
+ }
BlueNRGGattServer::getInstance().HCIDataWrittenEvent(&writeParams);
- }
} else {
PRINTF("*****WRITE DESCRIPTOR CASE\n\r");
@@ -522,11 +524,31 @@
switch(blue_evt->ecode){
- // case EVT_BLUE_GATT_WRITE_PERMIT_REQ:
- // {
- // printf("write request !!!!\r\");
- // }
- // break;
+ case EVT_BLUE_GATT_WRITE_PERMIT_REQ:
+ {
+ PRINTF("EVT_BLUE_GATT_WRITE_PERMIT_REQ\r\n");
+ evt_gatt_write_permit_req* write_req = (evt_gatt_write_permit_req*)blue_evt->data;
+
+ // ask the local server if the write operation is authorized
+ uint8_t err_code = BlueNRGGattServer::getInstance().Write_Request_CB(
+ write_req->conn_handle,
+ write_req->attr_handle,
+ write_req->data_length,
+ write_req->data
+ );
+ uint8_t write_status = err_code == 0 ? 0 : 1;
+
+ // reply to the shield
+ tBleStatus err = aci_gatt_write_response(
+ write_req->conn_handle,
+ write_req->attr_handle,
+ write_status,
+ err_code,
+ write_req->data_length,
+ write_req->data
+ );
+ }
+ break;
case EVT_BLUE_GATT_READ_PERMIT_REQ:
{