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.
Dependents: Peripheral_1_serial_copy Peripheral_1_serial 151006_1st_Scenario_normal
Fork of nRF51822 by
Diff: nRF51GattServer.cpp
- Revision:
- 82:6c51cbe4bc12
- Parent:
- 78:9a5ba2c5d53c
- Child:
- 83:71302acf1804
--- a/nRF51GattServer.cpp Thu Dec 11 12:07:13 2014 +0000
+++ b/nRF51GattServer.cpp Fri Dec 12 13:23:17 2014 +0000
@@ -76,6 +76,7 @@
p_char->getValueAttribute().getValuePtr(),
p_char->getValueAttribute().getInitialLength(),
p_char->getValueAttribute().getMaxLength(),
+ p_char->isWriteAuthorizationEnabled(),
&nrfCharacteristicHandles[characteristicCount]),
BLE_ERROR_PARAM_OUT_OF_RANGE );
@@ -274,6 +275,14 @@
sd_ble_gatts_sys_attr_set(gattsEventP->conn_handle, NULL, 0);
return;
+ case BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST:
+ if (gattsEventP->params.authorize_request.type != BLE_GATTS_AUTHORIZE_TYPE_WRITE) {
+ return; /* we don't handle anything other than write authorization at the moment */
+ }
+ eventType = GattServerEvents::GATT_EVENT_WRITE_AUTHORIZATION_REQ;
+ handle_value = gattsEventP->params.authorize_request.request.write.handle;
+ break;
+
default:
return;
}
@@ -293,6 +302,25 @@
handleDataWrittenEvent(&cbParams);
break;
}
+ case GattServerEvents::GATT_EVENT_WRITE_AUTHORIZATION_REQ: {
+ GattCharacteristicWriteAuthCBParams cbParams = {
+ .charHandle = i,
+ .offset = gattsEventP->params.authorize_request.request.write.offset,
+ .len = gattsEventP->params.authorize_request.request.write.len,
+ .data = gattsEventP->params.authorize_request.request.write.data,
+ };
+ ble_gatts_rw_authorize_reply_params_t reply = {
+ .type = BLE_GATTS_AUTHORIZE_TYPE_WRITE,
+ .params {
+ .write = {
+ .gatt_status = (p_characteristics[i]->authorizeWrite(&cbParams) ?
+ BLE_GATT_STATUS_SUCCESS : BLE_GATT_STATUS_ATTERR_WRITE_NOT_PERMITTED)
+ }
+ }
+ };
+ sd_ble_gatts_rw_authorize_reply(gattsEventP->conn_handle, &reply);
+ break;
+ }
default:
handleEvent(eventType, i);
break;
