The Nordic Uart Service example in SDK14.2 with SoftDevice 5.1.0 appears to use Write Request judging by the timing which limits transmission to about 30mSecs per packet with 7.5 mSec connection interval. I am trying to change from Write Request to Write Command thus:
// "Write Command" is a write without acknowledgement and "Write Request" is write with acknowledgement. // The ATT will automatically send ack when you transmit write request from the central device. Write // Command on the client side should generate BLE_GATTS_EVT_WRITE(WRITE_CMD, data) event on the server
I find the following definitions, but am not finding where they are actually used:
/** @defgroup BLE_GATTS_OPS GATT Server Operations * @{ */ #define BLE_GATTS_OP_INVALID 0x00 /**< Invalid Operation. */ #define BLE_GATTS_OP_WRITE_REQ 0x01 /**< Write Request. */ #define BLE_GATTS_OP_WRITE_CMD 0x02 /**< Write Command. */ #define BLE_GATTS_OP_SIGN_WRITE_CMD 0x03 /**< Signed Write Command. */ #define BLE_GATTS_OP_PREP_WRITE_REQ 0x04 /**< Prepare Write Request. */ #define BLE_GATTS_OP_EXEC_WRITE_REQ_CANCEL 0x05 /**< Execute Write Request: Cancel all prepared writes. */ #define BLE_GATTS_OP_EXEC_WRITE_REQ_NOW 0x06 /**< Execute Write Request: Immediately execute all prepared writes. */ /** @defgroup BLE_GATT_WRITE_OPS GATT Write operations * @{ */ #define BLE_GATT_OP_INVALID 0x00 /**< Invalid Operation. */ #define BLE_GATT_OP_WRITE_REQ 0x01 /**< Write Request. */ #define BLE_GATT_OP_WRITE_CMD 0x02 /**< Write Command. */ #define BLE_GATT_OP_SIGN_WRITE_CMD 0x03 /**< Signed Write Command. */ #define BLE_GATT_OP_PREP_WRITE_REQ 0x04 /**< Prepare Write Request. */ #define BLE_GATT_OP_EXEC_WRITE_REQ 0x05 /**< Execute Write Request. */
I have the Throughput demo, but am not interpreting how to use that in the case of the Uart example. For now we wish to stay with the Uart service, although if we must change we will; any pointers would be most appreciated.