mbed library sources

Fork of mbed-src by mbed official

Committer:
mbed_official
Date:
Tue Mar 18 12:30:07 2014 +0000
Revision:
123:8a356fb1000a
Parent:
targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6.0.0/s110_nrf51822_6.0.0_API/doc/ble_api.dox@104:a6a92e2e5a92
Synchronized with git revision 3e40310534d854400e01b2e9612ef7edf44a2dc9

Full URL: https://github.com/mbedmicro/mbed/commit/3e40310534d854400e01b2e9612ef7edf44a2dc9/

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 104:a6a92e2e5a92 1 /**
mbed_official 104:a6a92e2e5a92 2 * @addtogroup BLE_COMMON
mbed_official 104:a6a92e2e5a92 3 * @{
mbed_official 104:a6a92e2e5a92 4 * @defgroup BLE_COMMON_MSC Message Sequence Charts
mbed_official 104:a6a92e2e5a92 5 * @{
mbed_official 104:a6a92e2e5a92 6 * @defgroup BLE_COMMON_IRQ_EVT_MSC Interrupt-driven Event Retrieval
mbed_official 104:a6a92e2e5a92 7 * @msc
mbed_official 104:a6a92e2e5a92 8 * hscale = "1.5";
mbed_official 104:a6a92e2e5a92 9 * APP,SD;
mbed_official 104:a6a92e2e5a92 10 * |||;
mbed_official 104:a6a92e2e5a92 11 * APP=>SD [label = "sd_softdevice_enable(clock, assertion_handler);"];
mbed_official 104:a6a92e2e5a92 12 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 13 * APP=>SD [label = "sd_nvic_EnableIRQ(SD_EVENT_IRQn)"];
mbed_official 104:a6a92e2e5a92 14 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 15 * |||;
mbed_official 104:a6a92e2e5a92 16 * APP rbox SD [label="Application runs and uses SD API"];
mbed_official 104:a6a92e2e5a92 17 * |||;
mbed_official 104:a6a92e2e5a92 18 * SD rbox SD [label="Event Available for the App"];
mbed_official 104:a6a92e2e5a92 19 * |||;
mbed_official 104:a6a92e2e5a92 20 * APP<-SD [label = "SD_EVENT_IRQn", textcolor="#800080", linecolor="#800080"];
mbed_official 104:a6a92e2e5a92 21 * APP=>APP [label = "SD_EVENT_IRQHandler()"];
mbed_official 104:a6a92e2e5a92 22 * APP=>SD [label = "sd_ble_evt_get(buffer);"];
mbed_official 104:a6a92e2e5a92 23 * APP<<SD [label = "{NRF_SUCCESS, event}"];
mbed_official 104:a6a92e2e5a92 24 * |||;
mbed_official 104:a6a92e2e5a92 25 * @endmsc
mbed_official 104:a6a92e2e5a92 26 *
mbed_official 104:a6a92e2e5a92 27 * @defgroup BLE_COMMON_THREAD_EVT_MSC Thread Mode Event Retrieval
mbed_official 104:a6a92e2e5a92 28 * @msc
mbed_official 104:a6a92e2e5a92 29 * hscale = "1.5";
mbed_official 104:a6a92e2e5a92 30 * APP,SD;
mbed_official 104:a6a92e2e5a92 31 * |||;
mbed_official 104:a6a92e2e5a92 32 * APP=>SD [label = "sd_softdevice_enable(clock, assertion_handler);"];
mbed_official 104:a6a92e2e5a92 33 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 34 * |||;
mbed_official 104:a6a92e2e5a92 35 * APP=>SD [label = "sd_app_evt_wait(void);"];
mbed_official 104:a6a92e2e5a92 36 * APP rbox APP [label="App Thread Mode blocked, CPU in low power mode"];
mbed_official 104:a6a92e2e5a92 37 * |||;
mbed_official 104:a6a92e2e5a92 38 * ...;
mbed_official 104:a6a92e2e5a92 39 * |||;
mbed_official 104:a6a92e2e5a92 40 * SD rbox SD [label="Event Available for the App"];
mbed_official 104:a6a92e2e5a92 41 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 42 * APP=>SD [label = "sd_ble_evt_get(buffer);"];
mbed_official 104:a6a92e2e5a92 43 * APP<<SD [label = "{NRF_SUCCESS, event}"];
mbed_official 104:a6a92e2e5a92 44 * APP=>SD [label = "sd_app_evt_wait(void);"];
mbed_official 104:a6a92e2e5a92 45 * APP rbox APP [label="App Thread Mode blocked, CPU in low power mode"];
mbed_official 104:a6a92e2e5a92 46 * |||;
mbed_official 104:a6a92e2e5a92 47 * ...;
mbed_official 104:a6a92e2e5a92 48 * |||;
mbed_official 104:a6a92e2e5a92 49 * SD rbox SD [label="Event Available for the App"];
mbed_official 104:a6a92e2e5a92 50 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 51 * APP=>SD [label = "sd_ble_evt_get(buffer);"];
mbed_official 104:a6a92e2e5a92 52 * APP<<SD [label = "{NRF_SUCCESS, event}"];
mbed_official 104:a6a92e2e5a92 53 * APP=>SD [label = "sd_app_evt_wait(void);"];
mbed_official 104:a6a92e2e5a92 54 * APP rbox APP [label="App Thread Mode blocked, CPU in low power mode"];
mbed_official 104:a6a92e2e5a92 55 * |||;
mbed_official 104:a6a92e2e5a92 56 * ...;
mbed_official 104:a6a92e2e5a92 57 * |||;
mbed_official 104:a6a92e2e5a92 58 * @endmsc
mbed_official 104:a6a92e2e5a92 59 *
mbed_official 104:a6a92e2e5a92 60 * @defgroup BLE_COMMON_APP_BUFF_MSC App Buffer Management
mbed_official 104:a6a92e2e5a92 61 * @msc
mbed_official 104:a6a92e2e5a92 62 * hscale = "1.5";
mbed_official 104:a6a92e2e5a92 63 * APP,SD,PEER;
mbed_official 104:a6a92e2e5a92 64 * |||;
mbed_official 104:a6a92e2e5a92 65 * APP=>SD [label = "sd_ble_tx_buffer_count_get();"];
mbed_official 104:a6a92e2e5a92 66 * APP<<SD [label = "{NRF_SUCCESS, N}"];
mbed_official 104:a6a92e2e5a92 67 * APP rbox APP [label="available = N"];
mbed_official 104:a6a92e2e5a92 68 * |||;
mbed_official 104:a6a92e2e5a92 69 * APP rbox PEER [label="Connection Established"];
mbed_official 104:a6a92e2e5a92 70 * |||;
mbed_official 104:a6a92e2e5a92 71 * APP=>SD [label = "sd_ble_gattc_write(handle, value)"];
mbed_official 104:a6a92e2e5a92 72 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 73 * APP rbox APP [label="available--"];
mbed_official 104:a6a92e2e5a92 74 * SD:>PEER [label = "ATT Write Command", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 75 * APP<<=SD [label = "BLE_EVT_TX_COMPLETE {1}"];
mbed_official 104:a6a92e2e5a92 76 * APP rbox APP [label="available += 1"];
mbed_official 104:a6a92e2e5a92 77 * |||;
mbed_official 104:a6a92e2e5a92 78 * ...;
mbed_official 104:a6a92e2e5a92 79 * |||;
mbed_official 104:a6a92e2e5a92 80 * APP=>SD [label = "sd_ble_gatts_hvx(NOTIFICATION, app_value)"];
mbed_official 104:a6a92e2e5a92 81 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 82 * APP rbox APP [label="available--"];
mbed_official 104:a6a92e2e5a92 83 * SD:>PEER [label = "ATT Handle Value Notification", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 84 * APP=>SD [label = "sd_ble_gatts_hvx(NOTIFICATION, app_value)"];
mbed_official 104:a6a92e2e5a92 85 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 86 * APP rbox APP [label="available--"];
mbed_official 104:a6a92e2e5a92 87 * SD:>PEER [label = "ATT Handle Value Notification", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 88 * APP<<=SD [label = "BLE_EVT_TX_COMPLETE {2}"];
mbed_official 104:a6a92e2e5a92 89 * APP rbox APP [label="available += 2"];
mbed_official 104:a6a92e2e5a92 90 * |||;
mbed_official 104:a6a92e2e5a92 91 * ...;
mbed_official 104:a6a92e2e5a92 92 * |||;
mbed_official 104:a6a92e2e5a92 93 * APP rbox PEER [label="Terminate Connection"];
mbed_official 104:a6a92e2e5a92 94 * |||;
mbed_official 104:a6a92e2e5a92 95 * APP rbox APP [label="available = N"];
mbed_official 104:a6a92e2e5a92 96 * |||;
mbed_official 104:a6a92e2e5a92 97 * @endmsc
mbed_official 104:a6a92e2e5a92 98 * @}
mbed_official 104:a6a92e2e5a92 99 * @}
mbed_official 104:a6a92e2e5a92 100 */
mbed_official 104:a6a92e2e5a92 101
mbed_official 104:a6a92e2e5a92 102 /**
mbed_official 104:a6a92e2e5a92 103 * @addtogroup BLE_GAP
mbed_official 104:a6a92e2e5a92 104 * @{
mbed_official 104:a6a92e2e5a92 105 * @defgroup BLE_GAP_MSC Message Sequence Charts
mbed_official 104:a6a92e2e5a92 106 * @{
mbed_official 104:a6a92e2e5a92 107 * @defgroup BLE_GAP_ADV_MSC GAP Advertisement
mbed_official 104:a6a92e2e5a92 108 * @msc
mbed_official 104:a6a92e2e5a92 109 * hscale = "1.5";
mbed_official 104:a6a92e2e5a92 110 * APP,SD,SCANNERS;
mbed_official 104:a6a92e2e5a92 111 * |||;
mbed_official 104:a6a92e2e5a92 112 * APP=>SD [label = "sd_ble_gap_address_set(addr)"];
mbed_official 104:a6a92e2e5a92 113 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 114 * APP=>SD [label = "sd_ble_gap_adv_data_set(adv, sr)"];
mbed_official 104:a6a92e2e5a92 115 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 116 * APP=>SD [label = "sd_ble_gap_adv_start(params)"];
mbed_official 104:a6a92e2e5a92 117 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 118 * |||;
mbed_official 104:a6a92e2e5a92 119 * SD->SCANNERS [label = "ADV packet", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 120 * SD->SCANNERS [label = "ADV packet", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 121 * SD->SCANNERS [label = "ADV packet", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 122 * ...;
mbed_official 104:a6a92e2e5a92 123 * SD->SCANNERS [label = "ADV packet", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 124 * |||;
mbed_official 104:a6a92e2e5a92 125 * --- [label = " Variant #1 App Stops Advertisement "];
mbed_official 104:a6a92e2e5a92 126 * APP=>SD [label = "sd_ble_gap_adv_stop()"];
mbed_official 104:a6a92e2e5a92 127 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 128 * |||;
mbed_official 104:a6a92e2e5a92 129 * --- [label = " Variant #2 Advertisement Timeout "];
mbed_official 104:a6a92e2e5a92 130 * APP<<=SD [label = "BLE_GAP_EVT_TIMEOUT"];
mbed_official 104:a6a92e2e5a92 131 * @endmsc
mbed_official 104:a6a92e2e5a92 132 *
mbed_official 104:a6a92e2e5a92 133 * @defgroup BLE_GAP_CONN_MSC GAP Connection Establishment and Termination
mbed_official 104:a6a92e2e5a92 134 * @msc
mbed_official 104:a6a92e2e5a92 135 * hscale = "1.5";
mbed_official 104:a6a92e2e5a92 136 * APP,SD,CENTRAL;
mbed_official 104:a6a92e2e5a92 137 * |||;
mbed_official 104:a6a92e2e5a92 138 * APP rbox CENTRAL [label="Start Advertising"];
mbed_official 104:a6a92e2e5a92 139 * |||;
mbed_official 104:a6a92e2e5a92 140 * SD<:>CENTRAL [label = "Connection Establishment", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 141 * APP<<=SD [label = "BLE_GAP_EVT_CONNECTED"];
mbed_official 104:a6a92e2e5a92 142 * |||;
mbed_official 104:a6a92e2e5a92 143 * --- [label = " Variant #1 Local Disconnection "];
mbed_official 104:a6a92e2e5a92 144 * APP=>SD [label = "sd_ble_gap_disconnect(reason)"];
mbed_official 104:a6a92e2e5a92 145 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 146 * SD:>CENTRAL [label = "Connection Termination", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 147 * APP<<=SD [label = "BLE_GAP_EVT_DISCONNECTED {reason}"];
mbed_official 104:a6a92e2e5a92 148 * |||;
mbed_official 104:a6a92e2e5a92 149 * --- [label = " Variant #2 Remote Disconnection "];
mbed_official 104:a6a92e2e5a92 150 * SD<:CENTRAL [label = "Connection Termination", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 151 * APP<<=SD [label = "BLE_GAP_EVT_DISCONNECTED {reason}"];
mbed_official 104:a6a92e2e5a92 152 * @endmsc
mbed_official 104:a6a92e2e5a92 153 *
mbed_official 104:a6a92e2e5a92 154 * @defgroup BLE_GAP_CPU_MSC GAP Connection Parameter Update
mbed_official 104:a6a92e2e5a92 155 * @msc
mbed_official 104:a6a92e2e5a92 156 * hscale = "1.5";
mbed_official 104:a6a92e2e5a92 157 * APP,SD,CENTRAL;
mbed_official 104:a6a92e2e5a92 158 * |||;
mbed_official 104:a6a92e2e5a92 159 * APP rbox CENTRAL [label="Connection Established with conn. params. CP#1"];
mbed_official 104:a6a92e2e5a92 160 * |||;
mbed_official 104:a6a92e2e5a92 161 * APP=>SD [label = "sd_ble_gap_conn_param_update(CP#2)"];
mbed_official 104:a6a92e2e5a92 162 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 163 * SD:>CENTRAL [label = "L2CAP CPU Request", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 164 * |||;
mbed_official 104:a6a92e2e5a92 165 * --- [label = " Variant #1 Central Accepts "];
mbed_official 104:a6a92e2e5a92 166 * |||;
mbed_official 104:a6a92e2e5a92 167 * SD<:CENTRAL [label = "L2CAP CPU Response: Accepted", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 168 * |||;
mbed_official 104:a6a92e2e5a92 169 * SD<:CENTRAL [label = "Connection Update", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 170 * APP<<=SD [label = "BLE_GAP_EVT_CONN_PARAM_UPDATE {CP#2}"];
mbed_official 104:a6a92e2e5a92 171 * |||;
mbed_official 104:a6a92e2e5a92 172 * --- [label = " Variant #2 Central Rejects "];
mbed_official 104:a6a92e2e5a92 173 * |||;
mbed_official 104:a6a92e2e5a92 174 * SD<:CENTRAL [label = "L2CAP CPU Response: Rejected", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 175 * APP<<=SD [label = "BLE_GAP_EVT_CONN_PARAM_UPDATE {CP#1}"];
mbed_official 104:a6a92e2e5a92 176 * --- [label = " Variant #3 Central Ignores "];
mbed_official 104:a6a92e2e5a92 177 * |||;
mbed_official 104:a6a92e2e5a92 178 * ...;
mbed_official 104:a6a92e2e5a92 179 * |||;
mbed_official 104:a6a92e2e5a92 180 * SD box SD [label="Timeout"];
mbed_official 104:a6a92e2e5a92 181 * APP<<=SD [label = "BLE_GAP_EVT_CONN_PARAM_UPDATE {CP#1}"];
mbed_official 104:a6a92e2e5a92 182 * @endmsc
mbed_official 104:a6a92e2e5a92 183 *
mbed_official 104:a6a92e2e5a92 184 * @defgroup BLE_GAP_RSSI_MSC GAP RSSI
mbed_official 104:a6a92e2e5a92 185 * @msc
mbed_official 104:a6a92e2e5a92 186 * hscale = "1.5";
mbed_official 104:a6a92e2e5a92 187 * APP,SD,PEER;
mbed_official 104:a6a92e2e5a92 188 * |||;
mbed_official 104:a6a92e2e5a92 189 * APP rbox PEER [label="Connection Established"];
mbed_official 104:a6a92e2e5a92 190 * |||;
mbed_official 104:a6a92e2e5a92 191 * APP=>SD [label = "sd_ble_gap_rssi_start()"];
mbed_official 104:a6a92e2e5a92 192 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 193 * |||;
mbed_official 104:a6a92e2e5a92 194 * SD<-PEER [label = "RSSI Sample", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 195 * APP<<=SD [label = "BLE_GAP_EVT_RSSI_CHANGED {RSSI#1}"];
mbed_official 104:a6a92e2e5a92 196 * |||;
mbed_official 104:a6a92e2e5a92 197 * SD<-PEER [label = "RSSI Sample", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 198 * APP<<=SD [label = "BLE_GAP_EVT_RSSI_CHANGED {RSSI#2}"];
mbed_official 104:a6a92e2e5a92 199 * |||;
mbed_official 104:a6a92e2e5a92 200 * SD<-PEER [label = "RSSI Sample", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 201 * APP<<=SD [label = "BLE_GAP_EVT_RSSI_CHANGED {RSSI#3}"];
mbed_official 104:a6a92e2e5a92 202 * |||;
mbed_official 104:a6a92e2e5a92 203 * APP=>SD [label = "sd_ble_gap_rssi_stop()"];
mbed_official 104:a6a92e2e5a92 204 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 205 * @endmsc
mbed_official 104:a6a92e2e5a92 206 *
mbed_official 104:a6a92e2e5a92 207 * @defgroup BLE_GAP_PAIRING_JW_MSC GAP Pairing: Just Works
mbed_official 104:a6a92e2e5a92 208 * @msc
mbed_official 104:a6a92e2e5a92 209 * hscale = "2";
mbed_official 104:a6a92e2e5a92 210 * APP,SD,CENTRAL;
mbed_official 104:a6a92e2e5a92 211 * |||;
mbed_official 104:a6a92e2e5a92 212 * APP rbox CENTRAL [label="Connection Established"];
mbed_official 104:a6a92e2e5a92 213 * |||;
mbed_official 104:a6a92e2e5a92 214 * SD<:CENTRAL [label = "SMP Pairing Request", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 215 * APP<<=SD [label = "BLE_GAP_EVT_SEC_PARAMS_REQUEST {central_params: no_bond, no_mitm, no_io_caps}"];
mbed_official 104:a6a92e2e5a92 216 * APP=>SD [label = "sd_ble_gap_sec_params_reply(SUCCESS, periph_params: no_bond, no_mitm, no_io_caps)"];
mbed_official 104:a6a92e2e5a92 217 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 218 * SD:>CENTRAL [label = "SMP Pairing Response", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 219 * |||;
mbed_official 104:a6a92e2e5a92 220 * SD abox CENTRAL [label="SMP Pairing Phase 2", textbgcolor="#7f7fff"];
mbed_official 104:a6a92e2e5a92 221 * |||;
mbed_official 104:a6a92e2e5a92 222 * APP<<=SD [label = "BLE_GAP_EVT_AUTH_STATUS {SUCCESS}"];
mbed_official 104:a6a92e2e5a92 223 * APP rbox CENTRAL [label = "Encrypted with STK"];
mbed_official 104:a6a92e2e5a92 224 * APP<<=SD [label = "BLE_GAP_EVT_CONN_SEC_UPDATE {ENC_NO_MITM}"];
mbed_official 104:a6a92e2e5a92 225 * @endmsc
mbed_official 104:a6a92e2e5a92 226 *
mbed_official 104:a6a92e2e5a92 227 * @defgroup BLE_GAP_BONDING_JW_MSC GAP Bonding: Just Works
mbed_official 104:a6a92e2e5a92 228 * @msc
mbed_official 104:a6a92e2e5a92 229 * hscale = "2";
mbed_official 104:a6a92e2e5a92 230 * APP,SD,CENTRAL;
mbed_official 104:a6a92e2e5a92 231 * |||;
mbed_official 104:a6a92e2e5a92 232 * APP rbox CENTRAL [label="Connection Established"];
mbed_official 104:a6a92e2e5a92 233 * |||;
mbed_official 104:a6a92e2e5a92 234 * SD<:CENTRAL [label = "SMP Pairing Request", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 235 * APP<<=SD [label = "BLE_GAP_EVT_SEC_PARAMS_REQUEST {central_params: bond, no_mitm, no_io_caps}"];
mbed_official 104:a6a92e2e5a92 236 * APP=>SD [label = "sd_ble_gap_sec_params_reply(SUCCESS, periph_params: bond, no_mitm, no_io_caps)"];
mbed_official 104:a6a92e2e5a92 237 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 238 * SD:>CENTRAL [label = "SMP Pairing Response", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 239 * |||;
mbed_official 104:a6a92e2e5a92 240 * SD abox CENTRAL [label="SMP Pairing Phase 2", textbgcolor="#7f7fff"];
mbed_official 104:a6a92e2e5a92 241 * |||;
mbed_official 104:a6a92e2e5a92 242 * APP rbox CENTRAL [label = "Encrypted with STK"];
mbed_official 104:a6a92e2e5a92 243 * APP<<=SD [label = "BLE_GAP_EVT_CONN_SEC_UPDATE {ENC_NO_MITM}"];
mbed_official 104:a6a92e2e5a92 244 * |||;
mbed_official 104:a6a92e2e5a92 245 * SD abox CENTRAL [label="SMP Pairing Phase 3", textbgcolor="#7f7fff"];
mbed_official 104:a6a92e2e5a92 246 * |||;
mbed_official 104:a6a92e2e5a92 247 * APP<<=SD [label = "BLE_GAP_EVT_AUTH_STATUS {SUCCESS, periph_keys}"];
mbed_official 104:a6a92e2e5a92 248 * APP rbox APP [label = "Store Peripheral Keys"];
mbed_official 104:a6a92e2e5a92 249 * @endmsc
mbed_official 104:a6a92e2e5a92 250 *
mbed_official 104:a6a92e2e5a92 251 * @defgroup BLE_GAP_BONDING_PK_PERIPH_MSC GAP Bonding: Passkey Entry, Peripheral displays
mbed_official 104:a6a92e2e5a92 252 * @msc
mbed_official 104:a6a92e2e5a92 253 * hscale = "2";
mbed_official 104:a6a92e2e5a92 254 * APP,SD,CENTRAL;
mbed_official 104:a6a92e2e5a92 255 * |||;
mbed_official 104:a6a92e2e5a92 256 * APP rbox CENTRAL [label="Connection Established"];
mbed_official 104:a6a92e2e5a92 257 * |||;
mbed_official 104:a6a92e2e5a92 258 * SD<:CENTRAL [label = "SMP Pairing Request", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 259 * APP<<=SD [label = "BLE_GAP_EVT_SEC_PARAMS_REQUEST {central_params: bond, mitm, keyboard}"];
mbed_official 104:a6a92e2e5a92 260 * APP=>SD [label = "sd_ble_gap_sec_params_reply(SUCCESS, periph_params: bond, mitm, display)"];
mbed_official 104:a6a92e2e5a92 261 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 262 * SD:>CENTRAL [label = "SMP Pairing Response", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 263 * APP<<=SD [label = "BLE_GAP_EVT_PASSKEY_DISPLAY {passkey}"];
mbed_official 104:a6a92e2e5a92 264 * APP rbox APP [label="Passkey displayed to the user"];
mbed_official 104:a6a92e2e5a92 265 * |||;
mbed_official 104:a6a92e2e5a92 266 * SD abox CENTRAL [label="SMP Pairing Phase 2", textbgcolor="#7f7fff"];
mbed_official 104:a6a92e2e5a92 267 * |||;
mbed_official 104:a6a92e2e5a92 268 * APP rbox CENTRAL [label = "Encrypted with STK"];
mbed_official 104:a6a92e2e5a92 269 * APP<<=SD [label = "BLE_GAP_EVT_CONN_SEC_UPDATE {ENC_MITM}"];
mbed_official 104:a6a92e2e5a92 270 * |||;
mbed_official 104:a6a92e2e5a92 271 * SD abox CENTRAL [label="SMP Pairing Phase 3", textbgcolor="#7f7fff"];
mbed_official 104:a6a92e2e5a92 272 * |||;
mbed_official 104:a6a92e2e5a92 273 * APP<<=SD [label = "BLE_GAP_EVT_AUTH_STATUS {SUCCESS, periph_keys}"];
mbed_official 104:a6a92e2e5a92 274 * APP rbox APP [label = "Store Peripheral Keys"];
mbed_official 104:a6a92e2e5a92 275 * @endmsc
mbed_official 104:a6a92e2e5a92 276 *
mbed_official 104:a6a92e2e5a92 277 * @defgroup BLE_GAP_BONDING_PK_CENTRAL_OOB_MSC GAP Bonding: Passkey Entry (Central display) or OOB MSC
mbed_official 104:a6a92e2e5a92 278 * @msc
mbed_official 104:a6a92e2e5a92 279 * hscale = "2";
mbed_official 104:a6a92e2e5a92 280 * APP,SD,CENTRAL;
mbed_official 104:a6a92e2e5a92 281 * |||;
mbed_official 104:a6a92e2e5a92 282 * APP rbox CENTRAL [label="Connection Established"];
mbed_official 104:a6a92e2e5a92 283 * |||;
mbed_official 104:a6a92e2e5a92 284 * SD<:CENTRAL [label = "SMP Pairing Request", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 285 * APP<<=SD [label = "BLE_GAP_EVT_SEC_PARAMS_REQUEST {central_params: bond, mitm, display}"];
mbed_official 104:a6a92e2e5a92 286 * APP=>SD [label = "sd_ble_gap_sec_params_reply(SUCCESS, periph_params: bond, mitm, keyboard)"];
mbed_official 104:a6a92e2e5a92 287 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 288 * SD:>CENTRAL [label = "SMP Pairing Response", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 289 * APP<<=SD [label = "BLE_GAP_EVT_AUTH_KEY_REQUEST {type}"];
mbed_official 104:a6a92e2e5a92 290 * APP rbox APP [label="User enters Passkey or data received Out Of Band"];
mbed_official 104:a6a92e2e5a92 291 * APP=>SD [label = "sd_ble_gap_auth_key_reply(passkey or OOB)"];
mbed_official 104:a6a92e2e5a92 292 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 293 * |||;
mbed_official 104:a6a92e2e5a92 294 * SD abox CENTRAL [label="SMP Pairing Phase 2", textbgcolor="#7f7fff"];
mbed_official 104:a6a92e2e5a92 295 * |||;
mbed_official 104:a6a92e2e5a92 296 * APP rbox CENTRAL [label = "Encrypted with STK"];
mbed_official 104:a6a92e2e5a92 297 * APP<<=SD [label = "BLE_GAP_EVT_CONN_SEC_UPDATE {ENC_MITM}"];
mbed_official 104:a6a92e2e5a92 298 * |||;
mbed_official 104:a6a92e2e5a92 299 * SD abox CENTRAL [label="SMP Pairing Phase 3", textbgcolor="#7f7fff"];
mbed_official 104:a6a92e2e5a92 300 * |||;
mbed_official 104:a6a92e2e5a92 301 * APP<<=SD [label = "BLE_GAP_EVT_AUTH_STATUS {SUCCESS, periph_keys}"];
mbed_official 104:a6a92e2e5a92 302 * APP rbox APP [label = "Store Peripheral Keys"];
mbed_official 104:a6a92e2e5a92 303 * @endmsc
mbed_official 104:a6a92e2e5a92 304 *
mbed_official 104:a6a92e2e5a92 305 * @defgroup BLE_GAP_SEC_MSC GAP Security Establishment using stored keys
mbed_official 104:a6a92e2e5a92 306 * @msc
mbed_official 104:a6a92e2e5a92 307 * hscale = "1.5";
mbed_official 104:a6a92e2e5a92 308 * APP,SD,CENTRAL;
mbed_official 104:a6a92e2e5a92 309 * |||;
mbed_official 104:a6a92e2e5a92 310 * APP rbox CENTRAL [label="Connection Established"];
mbed_official 104:a6a92e2e5a92 311 * |||;
mbed_official 104:a6a92e2e5a92 312 * SD<:CENTRAL [label = "LL Encryption Request", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 313 * APP<<=SD [label = "BLE_GAP_EVT_SEC_INFO_REQUEST {addr, div}"];
mbed_official 104:a6a92e2e5a92 314 * |||;
mbed_official 104:a6a92e2e5a92 315 * --- [label = " Variant #1 App Replies with Keys "];
mbed_official 104:a6a92e2e5a92 316 * |||;
mbed_official 104:a6a92e2e5a92 317 * APP rbox APP [label = "Load Peripheral Keys"];
mbed_official 104:a6a92e2e5a92 318 * APP=>SD [label = "sd_ble_gap_sec_info_reply(div, LTK)"];
mbed_official 104:a6a92e2e5a92 319 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 320 * SD:>CENTRAL [label = "LL Encryption Response", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 321 * APP rbox CENTRAL [label = "Encrypted with LTK"];
mbed_official 104:a6a92e2e5a92 322 * APP<<=SD [label = "BLE_GAP_EVT_CONN_SEC_UPDATE"];
mbed_official 104:a6a92e2e5a92 323 * |||;
mbed_official 104:a6a92e2e5a92 324 * --- [label = " Variant #2 App Replies without Keys "];
mbed_official 104:a6a92e2e5a92 325 * |||;
mbed_official 104:a6a92e2e5a92 326 * APP=>SD [label = "sd_ble_gap_sec_info_reply(NULL)"];
mbed_official 104:a6a92e2e5a92 327 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 328 * SD:>CENTRAL [label = "LL Reject Ind: Pin or Key Missing", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 329 * APP rbox CENTRAL [label = "Link Not Encrypted"];
mbed_official 104:a6a92e2e5a92 330 * @endmsc
mbed_official 104:a6a92e2e5a92 331 *
mbed_official 104:a6a92e2e5a92 332 * @defgroup BLE_GAP_PERIPH_SEC_MSC GAP Peripheral Initiated Security Establishment
mbed_official 104:a6a92e2e5a92 333 * @msc
mbed_official 104:a6a92e2e5a92 334 * hscale = "1.5";
mbed_official 104:a6a92e2e5a92 335 * APP,SD,CENTRAL;
mbed_official 104:a6a92e2e5a92 336 * |||;
mbed_official 104:a6a92e2e5a92 337 * APP rbox CENTRAL [label="Connection Established"];
mbed_official 104:a6a92e2e5a92 338 * |||;
mbed_official 104:a6a92e2e5a92 339 * APP=>SD [label = "sd_ble_gap_authenticate(params)"];
mbed_official 104:a6a92e2e5a92 340 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 341 * SD:>CENTRAL [label = "SMP Security Request", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 342 * |||;
mbed_official 104:a6a92e2e5a92 343 * --- [label = " Variant #1 Central initiates Security Establishment "];
mbed_official 104:a6a92e2e5a92 344 * |||;
mbed_official 104:a6a92e2e5a92 345 * APP rbox CENTRAL [label="Encryption or Pairing/Bonding initiated by Central"];
mbed_official 104:a6a92e2e5a92 346 * |||;
mbed_official 104:a6a92e2e5a92 347 * --- [label = " Variant #2 Central ignores "];
mbed_official 104:a6a92e2e5a92 348 * |||;
mbed_official 104:a6a92e2e5a92 349 * ...;
mbed_official 104:a6a92e2e5a92 350 * |||;
mbed_official 104:a6a92e2e5a92 351 * APP<<=SD [label = "BLE_GAP_EVT_TIMEOUT"];
mbed_official 104:a6a92e2e5a92 352 * |||;
mbed_official 104:a6a92e2e5a92 353 * @endmsc
mbed_official 104:a6a92e2e5a92 354 * @}
mbed_official 104:a6a92e2e5a92 355 * @}
mbed_official 104:a6a92e2e5a92 356 */
mbed_official 104:a6a92e2e5a92 357
mbed_official 104:a6a92e2e5a92 358 /**
mbed_official 104:a6a92e2e5a92 359 * @addtogroup BLE_GATTC
mbed_official 104:a6a92e2e5a92 360 * @{
mbed_official 104:a6a92e2e5a92 361 * @defgroup BLE_GATTC_MSC Message Sequence Charts
mbed_official 104:a6a92e2e5a92 362 * @{
mbed_official 104:a6a92e2e5a92 363 * @defgroup BLE_GATTC_PRIM_SRVC_DISC_MSC GATTC Primary Service Discovery
mbed_official 104:a6a92e2e5a92 364 * @msc
mbed_official 104:a6a92e2e5a92 365 * hscale = "2";
mbed_official 104:a6a92e2e5a92 366 * APP,SD,PEER;
mbed_official 104:a6a92e2e5a92 367 * |||;
mbed_official 104:a6a92e2e5a92 368 * APP rbox PEER [label="Connection Established"];
mbed_official 104:a6a92e2e5a92 369 * |||;
mbed_official 104:a6a92e2e5a92 370 * --- [label = " Variant #1 Discover All Services "];
mbed_official 104:a6a92e2e5a92 371 * |||;
mbed_official 104:a6a92e2e5a92 372 * APP=>SD [label = "sd_ble_gattc_primary_services_discover(handle, NULL)"];
mbed_official 104:a6a92e2e5a92 373 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 374 * SD:>PEER [label = "ATT Read By Group Type Request", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 375 * SD<:PEER [label = "ATT Read By Group Type Response", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 376 * APP<<=SD [label = "BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP {SUCCESS, services}"];
mbed_official 104:a6a92e2e5a92 377 * APP=>SD [label = "sd_ble_gattc_primary_services_discover(handle + N, NULL)"];
mbed_official 104:a6a92e2e5a92 378 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 379 * SD:>PEER [label = "ATT Read By Group Type Request", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 380 * SD<:PEER [label = "ATT Read By Group Type Response", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 381 * APP<<=SD [label = "BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP {SUCCESS, services}"];
mbed_official 104:a6a92e2e5a92 382 * APP=>SD [label = "sd_ble_gattc_primary_services_discover(handle + N + M, NULL)"];
mbed_official 104:a6a92e2e5a92 383 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 384 * SD:>PEER [label = "ATT Read By Group Type Request", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 385 * SD<:PEER [label = "ATT Error Response: Attribute Not Found", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 386 * APP<<=SD [label = "BLE_GATTC_EVT {ATTRIBUTE_NOT_FOUND}"];
mbed_official 104:a6a92e2e5a92 387 * |||;
mbed_official 104:a6a92e2e5a92 388 * --- [label = " Variant #2 Discover a Specific Service "];
mbed_official 104:a6a92e2e5a92 389 * |||;
mbed_official 104:a6a92e2e5a92 390 * APP=>SD [label = "sd_ble_gattc_primary_services_discover(handle, uuid)"];
mbed_official 104:a6a92e2e5a92 391 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 392 * SD:>PEER [label = "ATT Find By Type Value Request", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 393 * SD<:PEER [label = "ATT Find By Type Value Response", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 394 * APP<<=SD [label = "BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP {SUCCESS, services}"];
mbed_official 104:a6a92e2e5a92 395 * APP=>SD [label = "sd_ble_gattc_primary_services_discover(handle + N, uuid)"];
mbed_official 104:a6a92e2e5a92 396 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 397 * SD:>PEER [label = "ATT Find By Type Value Request", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 398 * SD<:PEER [label = "ATT Find By Type Value Response", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 399 * APP<<=SD [label = "BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP {SUCCESS, services}"];
mbed_official 104:a6a92e2e5a92 400 * APP=>SD [label = "sd_ble_gattc_primary_services_discover(handle + N + M, uuid)"];
mbed_official 104:a6a92e2e5a92 401 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 402 * SD:>PEER [label = "ATT Find By Type Value Request", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 403 * SD<:PEER [label = "ATT Error Response: Attribute Not Found", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 404 * APP<<=SD [label = "BLE_GATTC_EVT {ATTRIBUTE_NOT_FOUND}"];
mbed_official 104:a6a92e2e5a92 405 * @endmsc
mbed_official 104:a6a92e2e5a92 406 *
mbed_official 104:a6a92e2e5a92 407 * @defgroup BLE_GATTC_REL_DISC_MSC GATTC Relationship Discovery
mbed_official 104:a6a92e2e5a92 408 * @msc
mbed_official 104:a6a92e2e5a92 409 * hscale = "2";
mbed_official 104:a6a92e2e5a92 410 * APP,SD,PEER;
mbed_official 104:a6a92e2e5a92 411 * |||;
mbed_official 104:a6a92e2e5a92 412 * APP rbox PEER [label="Connection Established"];
mbed_official 104:a6a92e2e5a92 413 * |||;
mbed_official 104:a6a92e2e5a92 414 * APP=>SD [label = "sd_ble_gattc_relationships_discover(handle_range)"];
mbed_official 104:a6a92e2e5a92 415 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 416 * SD:>PEER [label = "ATT Read By Type Request", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 417 * SD<:PEER [label = "ATT Read By Type Response", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 418 * APP<<=SD [label = "BLE_GATTC_EVT_REL_DISC_RSP {SUCCESS, includes}"];
mbed_official 104:a6a92e2e5a92 419 * APP=>SD [label = "sd_ble_gattc_relationships_discover(handle_range + N)"];
mbed_official 104:a6a92e2e5a92 420 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 421 * SD:>PEER [label = "ATT Read By Type Request", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 422 * SD<:PEER [label = "ATT Read By Type Response", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 423 * APP<<=SD [label = "BLE_GATTC_EVT_REL_DISC_RSP {SUCCESS, includes}"];
mbed_official 104:a6a92e2e5a92 424 * APP=>SD [label = "sd_ble_gattc_relationships_discover(handle_range + N + M)"];
mbed_official 104:a6a92e2e5a92 425 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 426 * SD:>PEER [label = "ATT Read By Type Request", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 427 * SD<:PEER [label = "ATT Error Response: Attribute Not Found", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 428 * APP<<=SD [label = "BLE_GATTC_EVT {ATTRIBUTE_NOT_FOUND}"];
mbed_official 104:a6a92e2e5a92 429 * @endmsc
mbed_official 104:a6a92e2e5a92 430 *
mbed_official 104:a6a92e2e5a92 431 * @defgroup BLE_GATTC_CHAR_DISC_MSC GATTC Characteristic Discovery
mbed_official 104:a6a92e2e5a92 432 * @msc
mbed_official 104:a6a92e2e5a92 433 * hscale = "2";
mbed_official 104:a6a92e2e5a92 434 * APP,SD,PEER;
mbed_official 104:a6a92e2e5a92 435 * |||;
mbed_official 104:a6a92e2e5a92 436 * APP rbox PEER [label="Connection Established"];
mbed_official 104:a6a92e2e5a92 437 * |||;
mbed_official 104:a6a92e2e5a92 438 * APP=>SD [label = "sd_ble_gattc_characteristics_discover(handle_range)"];
mbed_official 104:a6a92e2e5a92 439 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 440 * SD:>PEER [label = "ATT Read By Type Request", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 441 * SD<:PEER [label = "ATT Read By Type Response", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 442 * APP<<=SD [label = "BLE_GATTC_EVT_CHAR_DISC_RSP {SUCCESS, chars}"];
mbed_official 104:a6a92e2e5a92 443 * APP=>SD [label = "sd_ble_gattc_characteristics_discover(handle_range + N)"];
mbed_official 104:a6a92e2e5a92 444 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 445 * SD:>PEER [label = "ATT Read By Type Request", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 446 * SD<:PEER [label = "ATT Read By Type Response", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 447 * APP<<=SD [label = "BLE_GATTC_EVT_CHAR_DISC_RSP {SUCCESS, chars}"];
mbed_official 104:a6a92e2e5a92 448 * APP=>SD [label = "sd_ble_gattc_characteristics_discover(handle_range + N + M)"];
mbed_official 104:a6a92e2e5a92 449 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 450 * SD:>PEER [label = "ATT Read By Type Request", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 451 * SD<:PEER [label = "ATT Error Response: Attribute Not Found", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 452 * APP<<=SD [label = "BLE_GATTC_EVT {ATTRIBUTE_NOT_FOUND}"];
mbed_official 104:a6a92e2e5a92 453 * @endmsc
mbed_official 104:a6a92e2e5a92 454 *
mbed_official 104:a6a92e2e5a92 455 * @defgroup BLE_GATTC_DESC_DISC_MSC GATTC Descriptor Discovery
mbed_official 104:a6a92e2e5a92 456 * @msc
mbed_official 104:a6a92e2e5a92 457 * hscale = "2";
mbed_official 104:a6a92e2e5a92 458 * APP,SD,PEER;
mbed_official 104:a6a92e2e5a92 459 * |||;
mbed_official 104:a6a92e2e5a92 460 * APP rbox PEER [label="Connection Established"];
mbed_official 104:a6a92e2e5a92 461 * |||;
mbed_official 104:a6a92e2e5a92 462 * APP=>SD [label = "sd_ble_gattc_descriptors_discover(handle_range)"];
mbed_official 104:a6a92e2e5a92 463 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 464 * SD:>PEER [label = "ATT Find Information Request", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 465 * SD<:PEER [label = "ATT Find Information Response", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 466 * APP<<=SD [label = "BLE_GATTC_EVT_DESC_DISC_RSP {SUCCESS, descs}"];
mbed_official 104:a6a92e2e5a92 467 * APP=>SD [label = "sd_ble_gattc_descriptors_discover(handle_range + N)"];
mbed_official 104:a6a92e2e5a92 468 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 469 * SD:>PEER [label = "ATT Find Information Request", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 470 * SD<:PEER [label = "ATT Find Information Response", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 471 * APP<<=SD [label = "BLE_GATTC_EVT_DESC_DISC_RSP {SUCCESS, descs}"];
mbed_official 104:a6a92e2e5a92 472 * APP=>SD [label = "sd_ble_gattc_descriptors_discover(handle_range + N + M)"];
mbed_official 104:a6a92e2e5a92 473 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 474 * SD:>PEER [label = "ATT Find Information Request", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 475 * SD<:PEER [label = "ATT Error Response: Attribute Not Found", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 476 * APP<<=SD [label = "BLE_GATTC_EVT {ATTRIBUTE_NOT_FOUND}"];
mbed_official 104:a6a92e2e5a92 477 * @endmsc
mbed_official 104:a6a92e2e5a92 478 *
mbed_official 104:a6a92e2e5a92 479 * @defgroup BLE_GATTC_READ_UUID_MSC GATTC Read Characteristic Value by UUID
mbed_official 104:a6a92e2e5a92 480 * @msc
mbed_official 104:a6a92e2e5a92 481 * hscale = "2";
mbed_official 104:a6a92e2e5a92 482 * APP,SD,PEER;
mbed_official 104:a6a92e2e5a92 483 * |||;
mbed_official 104:a6a92e2e5a92 484 * APP rbox PEER [label="Connection Established"];
mbed_official 104:a6a92e2e5a92 485 * |||;
mbed_official 104:a6a92e2e5a92 486 * APP=>SD [label = "sd_ble_gattc_char_value_by_uuid_read(uuid, handle_range)"];
mbed_official 104:a6a92e2e5a92 487 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 488 * SD:>PEER [label = "ATT Read By Type Request", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 489 * SD<:PEER [label = "ATT Read By Type Response", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 490 * APP<<=SD [label = "BLE_GATTC_EVT_CHAR_VAL_BY_UUID_READ_RSP {SUCCESS, char_values}"];
mbed_official 104:a6a92e2e5a92 491 * APP=>SD [label = "sd_ble_gattc_char_value_by_uuid_read(uuid, handle_range + N)"];
mbed_official 104:a6a92e2e5a92 492 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 493 * SD:>PEER [label = "ATT Read By Type Request", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 494 * SD<:PEER [label = "ATT Read By Type Response", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 495 * APP<<=SD [label = "BLE_GATTC_EVT_CHAR_VAL_BY_UUID_READ_RSP {SUCCESS, char_values}"];
mbed_official 104:a6a92e2e5a92 496 * APP=>SD [label = "sd_ble_gattc_char_value_by_uuid_read(uuid, handle_range + N + M)"];
mbed_official 104:a6a92e2e5a92 497 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 498 * SD:>PEER [label = "ATT Read By Type Request", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 499 * SD<:PEER [label = "ATT Error Response: Attribute Not Found", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 500 * APP<<=SD [label = "BLE_GATTC_EVT {ATTRIBUTE_NOT_FOUND}"];
mbed_official 104:a6a92e2e5a92 501 * @endmsc
mbed_official 104:a6a92e2e5a92 502 *
mbed_official 104:a6a92e2e5a92 503 * @defgroup BLE_GATTC_VALUE_READ_MSC GATTC Characteristic or Descriptor Value Read
mbed_official 104:a6a92e2e5a92 504 * @msc
mbed_official 104:a6a92e2e5a92 505 * hscale = "2";
mbed_official 104:a6a92e2e5a92 506 * APP,SD,PEER;
mbed_official 104:a6a92e2e5a92 507 * |||;
mbed_official 104:a6a92e2e5a92 508 * APP rbox PEER [label="Connection Established"];
mbed_official 104:a6a92e2e5a92 509 * |||;
mbed_official 104:a6a92e2e5a92 510 * --- [label = " Variant #1 offset == 0 "];
mbed_official 104:a6a92e2e5a92 511 * |||;
mbed_official 104:a6a92e2e5a92 512 * APP=>SD [label = "sd_ble_gattc_read(handle, 0)"];
mbed_official 104:a6a92e2e5a92 513 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 514 * SD:>PEER [label = "ATT Read Request", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 515 * SD<:PEER [label = "ATT Read Response", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 516 * APP<<=SD [label = "BLE_GATTC_EVT_READ_RSP {SUCCESS, value}"];
mbed_official 104:a6a92e2e5a92 517 * |||;
mbed_official 104:a6a92e2e5a92 518 * --- [label = " Variant #2 offset != 0 "];
mbed_official 104:a6a92e2e5a92 519 * |||;
mbed_official 104:a6a92e2e5a92 520 * APP=>SD [label = "sd_ble_gattc_read(handle, offset)"];
mbed_official 104:a6a92e2e5a92 521 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 522 * SD:>PEER [label = "ATT Read Blob Request", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 523 * SD<:PEER [label = "ATT Read Blob Response", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 524 * APP<<=SD [label = "BLE_GATTC_EVT_READ_RSP {SUCCESS, value}"];
mbed_official 104:a6a92e2e5a92 525 * APP=>SD [label = "sd_ble_gattc_read(handle, offset + N)"];
mbed_official 104:a6a92e2e5a92 526 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 527 * SD:>PEER [label = "ATT Read Blob Request", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 528 * SD<:PEER [label = "ATT Read Blob Response", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 529 * APP<<=SD [label = "BLE_GATTC_EVT_READ_RSP {SUCCESS, value}"];
mbed_official 104:a6a92e2e5a92 530 * APP=>SD [label = "sd_ble_gattc_read(handle, offset + N + M + 1)"];
mbed_official 104:a6a92e2e5a92 531 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 532 * SD:>PEER [label = "ATT Read Blob Request", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 533 * SD<:PEER [label = "ATT Error Response: Invalid Offset", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 534 * APP<<=SD [label = "BLE_GATTC_EVT {INVALID_OFFSET}"];
mbed_official 104:a6a92e2e5a92 535 * @endmsc
mbed_official 104:a6a92e2e5a92 536 *
mbed_official 104:a6a92e2e5a92 537 * @defgroup BLE_GATTC_READ_MULT_MSC GATTC Read Multiple Characteristic Values
mbed_official 104:a6a92e2e5a92 538 * @msc
mbed_official 104:a6a92e2e5a92 539 * hscale = "2";
mbed_official 104:a6a92e2e5a92 540 * APP,SD,PEER;
mbed_official 104:a6a92e2e5a92 541 * |||;
mbed_official 104:a6a92e2e5a92 542 * APP rbox PEER [label="Connection Established"];
mbed_official 104:a6a92e2e5a92 543 * |||;
mbed_official 104:a6a92e2e5a92 544 * --- [label = " Variant #1 Successful request "];
mbed_official 104:a6a92e2e5a92 545 * |||;
mbed_official 104:a6a92e2e5a92 546 * APP=>SD [label = "sd_ble_gattc_char_values_read(handles)"];
mbed_official 104:a6a92e2e5a92 547 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 548 * SD:>PEER [label = "ATT Read Multiple Request", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 549 * SD<:PEER [label = "ATT Read Multiple Response", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 550 * APP<<=SD [label = "BLE_GATTC_EVT_CHAR_VALS_READ_RSP {SUCCESS, char_values}"];
mbed_official 104:a6a92e2e5a92 551 * |||;
mbed_official 104:a6a92e2e5a92 552 * --- [label = " Variant #2 Failing request (invalid handle) "];
mbed_official 104:a6a92e2e5a92 553 * |||;
mbed_official 104:a6a92e2e5a92 554 * APP=>SD [label = "sd_ble_gattc_char_values_read(handles)"];
mbed_official 104:a6a92e2e5a92 555 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 556 * SD:>PEER [label = "ATT Read Multiple Request", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 557 * SD<:PEER [label = "ATT Error Response: Invalid Handle", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 558 * APP<<=SD [label = "BLE_GATTC_EVT {INVALID_HANDLE, error_handle=<invalid handle>}"];
mbed_official 104:a6a92e2e5a92 559 * @endmsc
mbed_official 104:a6a92e2e5a92 560 *
mbed_official 104:a6a92e2e5a92 561 * @defgroup BLE_GATTC_VALUE_WRITE_MSC GATTC Characteristic or Descriptor Value Write
mbed_official 104:a6a92e2e5a92 562 * @msc
mbed_official 104:a6a92e2e5a92 563 * hscale = "2";
mbed_official 104:a6a92e2e5a92 564 * APP,SD,PEER;
mbed_official 104:a6a92e2e5a92 565 * |||;
mbed_official 104:a6a92e2e5a92 566 * APP rbox PEER [label="Connection Established"];
mbed_official 104:a6a92e2e5a92 567 * |||;
mbed_official 104:a6a92e2e5a92 568 * --- [label = " Variant #1 write_op == BLE_GATT_OP_WRITE_CMD "];
mbed_official 104:a6a92e2e5a92 569 * |||;
mbed_official 104:a6a92e2e5a92 570 * APP=>SD [label = "sd_ble_gattc_write(handle, value)"];
mbed_official 104:a6a92e2e5a92 571 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 572 * SD:>PEER [label = "ATT Write Command", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 573 * APP<<=SD [label = "BLE_EVT_TX_COMPLETE"];
mbed_official 104:a6a92e2e5a92 574 * |||;
mbed_official 104:a6a92e2e5a92 575 * --- [label = " Variant #2 write_op == BLE_GATT_OP_WRITE_REQ "];
mbed_official 104:a6a92e2e5a92 576 * |||;
mbed_official 104:a6a92e2e5a92 577 * APP=>SD [label = "sd_ble_gattc_write(handle, value)"];
mbed_official 104:a6a92e2e5a92 578 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 579 * SD:>PEER [label = "ATT Write Request", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 580 * SD<:PEER [label = "ATT Write Response", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 581 * APP<<=SD [label = "BLE_GATTC_EVT_WRITE_RSP {SUCCESS}"];
mbed_official 104:a6a92e2e5a92 582 * @endmsc
mbed_official 104:a6a92e2e5a92 583 *
mbed_official 104:a6a92e2e5a92 584 * @defgroup BLE_GATTC_HVI_MSC GATTC Handle Value Indication
mbed_official 104:a6a92e2e5a92 585 * <b> GATTC Handle Value Indication MSC </b>
mbed_official 104:a6a92e2e5a92 586 * @msc
mbed_official 104:a6a92e2e5a92 587 * hscale = "2";
mbed_official 104:a6a92e2e5a92 588 * APP,SD,PEER;
mbed_official 104:a6a92e2e5a92 589 * |||;
mbed_official 104:a6a92e2e5a92 590 * APP rbox PEER [label="Connection Established"];
mbed_official 104:a6a92e2e5a92 591 * |||;
mbed_official 104:a6a92e2e5a92 592 * SD<:PEER [label = "ATT Handle Value Indication", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 593 * APP<<=SD [label = "BLE_GATTC_EVT_HVX {INDICATION, data}"];
mbed_official 104:a6a92e2e5a92 594 * APP=>SD [label = "sd_ble_gattc_hv_confirm(handle)"];
mbed_official 104:a6a92e2e5a92 595 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 596 * SD:>PEER [label = "ATT Handle Value Confirmation", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 597 * @endmsc
mbed_official 104:a6a92e2e5a92 598 *
mbed_official 104:a6a92e2e5a92 599 * @defgroup BLE_GATTC_HVN_MSC GATTC Handle Value Notification
mbed_official 104:a6a92e2e5a92 600 * @msc
mbed_official 104:a6a92e2e5a92 601 * hscale = "2";
mbed_official 104:a6a92e2e5a92 602 * APP,SD,PEER;
mbed_official 104:a6a92e2e5a92 603 * |||;
mbed_official 104:a6a92e2e5a92 604 * APP rbox PEER [label="Connection Established"];
mbed_official 104:a6a92e2e5a92 605 * |||;
mbed_official 104:a6a92e2e5a92 606 * SD<:PEER [label = "ATT Handle Value Notification", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 607 * APP<<=SD [label = "BLE_GATTC_EVT_HVX {NOTIFICATION, data}"];
mbed_official 104:a6a92e2e5a92 608 * @endmsc
mbed_official 104:a6a92e2e5a92 609 *
mbed_official 104:a6a92e2e5a92 610 * @defgroup BLE_GATTC_TIMEOUT_MSC GATTC Timeout
mbed_official 104:a6a92e2e5a92 611 * @msc
mbed_official 104:a6a92e2e5a92 612 * hscale = "2";
mbed_official 104:a6a92e2e5a92 613 * APP,SD,PEER;
mbed_official 104:a6a92e2e5a92 614 * |||;
mbed_official 104:a6a92e2e5a92 615 * APP rbox PEER [label="Connection Established"];
mbed_official 104:a6a92e2e5a92 616 * |||;
mbed_official 104:a6a92e2e5a92 617 * APP rbox PEER [label="Any GATTC API used"];
mbed_official 104:a6a92e2e5a92 618 * SD:>PEER [label = "ATT Packet", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 619 * APP note PEER [label = "No Response from Peer"];
mbed_official 104:a6a92e2e5a92 620 * |||;
mbed_official 104:a6a92e2e5a92 621 * ...;
mbed_official 104:a6a92e2e5a92 622 * |||;
mbed_official 104:a6a92e2e5a92 623 * SD box SD [label="Timeout"];
mbed_official 104:a6a92e2e5a92 624 * APP<<=SD [label = "BLE_GATTC_EVT_TIMEOUT {source}"];
mbed_official 104:a6a92e2e5a92 625 * APP rbox PEER [label="No additional ATT Traffic Allowed", textbgcolour="#ff7f7f"];
mbed_official 104:a6a92e2e5a92 626 * APP=>SD [label = "Any API call"];
mbed_official 104:a6a92e2e5a92 627 * APP<<SD [label = "NRF_ERROR_BUSY"];
mbed_official 104:a6a92e2e5a92 628 * @endmsc
mbed_official 104:a6a92e2e5a92 629 * @}
mbed_official 104:a6a92e2e5a92 630 * @}
mbed_official 104:a6a92e2e5a92 631 */
mbed_official 104:a6a92e2e5a92 632
mbed_official 104:a6a92e2e5a92 633 /**
mbed_official 104:a6a92e2e5a92 634 * @addtogroup BLE_GATTS
mbed_official 104:a6a92e2e5a92 635 * @{
mbed_official 104:a6a92e2e5a92 636 * @defgroup BLE_GATTS_MSC Message Sequence Charts
mbed_official 104:a6a92e2e5a92 637 * @{
mbed_official 104:a6a92e2e5a92 638 * @defgroup BLE_GATTS_ATT_TABLE_POP_MSC GATTS ATT Table Population
mbed_official 104:a6a92e2e5a92 639 * @msc
mbed_official 104:a6a92e2e5a92 640 * hscale = "1.5";
mbed_official 104:a6a92e2e5a92 641 * APP,SD;
mbed_official 104:a6a92e2e5a92 642 * |||;
mbed_official 104:a6a92e2e5a92 643 * APP=>SD [label = "sd_ble_gatts_service_add(uuid#1)"];
mbed_official 104:a6a92e2e5a92 644 * APP<<SD [label = "{NRF_SUCCESS, handle_srvc#1}"];
mbed_official 104:a6a92e2e5a92 645 * APP=>SD [label = "sd_ble_gatts_characteristic_add(handle_srvc#1, char_md, value)"];
mbed_official 104:a6a92e2e5a92 646 * APP<<SD [label = "{NRF_SUCCESS, handle_char#1, ...}"];
mbed_official 104:a6a92e2e5a92 647 * APP=>SD [label = "sd_ble_gatts_descriptor_add(handle_char#1, value)"];
mbed_official 104:a6a92e2e5a92 648 * APP<<SD [label = "{NRF_SUCCESS, handle_desc#1}"];
mbed_official 104:a6a92e2e5a92 649 * APP=>SD [label = "sd_ble_gatts_descriptor_add(handle_char#1, value)"];
mbed_official 104:a6a92e2e5a92 650 * APP<<SD [label = "{NRF_SUCCESS, handle_desc#2}"];
mbed_official 104:a6a92e2e5a92 651 * APP=>SD [label = "sd_ble_gatts_characteristic_add(handle_srvc#1, char_md, value)"];
mbed_official 104:a6a92e2e5a92 652 * APP<<SD [label = "{NRF_SUCCESS, handle_char#2, ...}"];
mbed_official 104:a6a92e2e5a92 653 * APP=>SD [label = "sd_ble_gatts_descriptor_add(handle_char#2, value)"];
mbed_official 104:a6a92e2e5a92 654 * APP<<SD [label = "{NRF_SUCCESS, handle_desc#3}"];
mbed_official 104:a6a92e2e5a92 655 * APP=>SD [label = "sd_ble_gatts_service_add(uuid#2)"];
mbed_official 104:a6a92e2e5a92 656 * APP<<SD [label = "{NRF_SUCCESS, handle_srvc#2}"];
mbed_official 104:a6a92e2e5a92 657 * APP=>SD [label = "sd_ble_gatts_include_add(handle_srvc#2, handle_srvc#1)"];
mbed_official 104:a6a92e2e5a92 658 * APP<<SD [label = "{NRF_SUCCESS, handle_inc#1}"];
mbed_official 104:a6a92e2e5a92 659 * |||;
mbed_official 104:a6a92e2e5a92 660 * ...;
mbed_official 104:a6a92e2e5a92 661 * |||;
mbed_official 104:a6a92e2e5a92 662 * @endmsc
mbed_official 104:a6a92e2e5a92 663 *
mbed_official 104:a6a92e2e5a92 664 * @defgroup BLE_GATTS_READ_REQ_NO_AUTH_MSC Read Request without Authorization
mbed_official 104:a6a92e2e5a92 665 * @msc
mbed_official 104:a6a92e2e5a92 666 * hscale = "1.5";
mbed_official 104:a6a92e2e5a92 667 * APP,SD,PEER;
mbed_official 104:a6a92e2e5a92 668 * |||;
mbed_official 104:a6a92e2e5a92 669 * APP rbox PEER [label="Connection Established"];
mbed_official 104:a6a92e2e5a92 670 * |||;
mbed_official 104:a6a92e2e5a92 671 * SD<:PEER [label = "ATT Read Request", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 672 * SD:>PEER [label = "ATT Read Response", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 673 * @endmsc
mbed_official 104:a6a92e2e5a92 674 *
mbed_official 104:a6a92e2e5a92 675 * @defgroup BLE_GATTS_WRITE_REQ_NO_AUTH_MSC GATTS Write Request without Authorization
mbed_official 104:a6a92e2e5a92 676 * @msc
mbed_official 104:a6a92e2e5a92 677 * hscale = "1.5";
mbed_official 104:a6a92e2e5a92 678 * APP,SD,PEER;
mbed_official 104:a6a92e2e5a92 679 * |||;
mbed_official 104:a6a92e2e5a92 680 * APP rbox PEER [label="Connection Established"];
mbed_official 104:a6a92e2e5a92 681 * |||;
mbed_official 104:a6a92e2e5a92 682 * SD<:PEER [label = "ATT Write Request", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 683 * SD:>PEER [label = "ATT Write Response", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 684 * APP<<=SD [label = "BLE_GATTS_EVT_WRITE {WRITE_REQ, data}"];
mbed_official 104:a6a92e2e5a92 685 * @endmsc
mbed_official 104:a6a92e2e5a92 686 *
mbed_official 104:a6a92e2e5a92 687 * @defgroup BLE_GATTS_WRITE_CMD_NO_AUTH_MSC GATTS Write Command with or without Authorization
mbed_official 104:a6a92e2e5a92 688 * @msc
mbed_official 104:a6a92e2e5a92 689 * hscale = "1.5";
mbed_official 104:a6a92e2e5a92 690 * APP,SD,PEER;
mbed_official 104:a6a92e2e5a92 691 * |||;
mbed_official 104:a6a92e2e5a92 692 * APP rbox PEER [label="Connection Established"];
mbed_official 104:a6a92e2e5a92 693 * |||;
mbed_official 104:a6a92e2e5a92 694 * SD<:PEER [label = "ATT Write Command", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 695 * APP<<=SD [label = "BLE_GATTS_EVT_WRITE {WRITE_CMD, data}"];
mbed_official 104:a6a92e2e5a92 696 * @endmsc
mbed_official 104:a6a92e2e5a92 697 *
mbed_official 104:a6a92e2e5a92 698 * @defgroup BLE_GATTS_READ_REQ_AUTH_MSC GATTS Read Request with Authorization
mbed_official 104:a6a92e2e5a92 699 * @msc
mbed_official 104:a6a92e2e5a92 700 * hscale = "2";
mbed_official 104:a6a92e2e5a92 701 * APP,SD,PEER;
mbed_official 104:a6a92e2e5a92 702 * |||;
mbed_official 104:a6a92e2e5a92 703 * APP rbox PEER [label="Connection Established"];
mbed_official 104:a6a92e2e5a92 704 * |||;
mbed_official 104:a6a92e2e5a92 705 * SD rbox SD [label="Value in ATT Table: current_value"];
mbed_official 104:a6a92e2e5a92 706 * SD<:PEER [label = "ATT Read Request", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 707 * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {READ, current_value}"];
mbed_official 104:a6a92e2e5a92 708 * --- [label = " Variant #1 App Authorizes "];
mbed_official 104:a6a92e2e5a92 709 * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(SUCCESS, app_value)"];
mbed_official 104:a6a92e2e5a92 710 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 711 * SD rbox SD [label="Value in ATT Table: app_value"];
mbed_official 104:a6a92e2e5a92 712 * SD:>PEER [label = "ATT Read Response {app_value}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 713 * --- [label = " Variant #2 App Disallows "];
mbed_official 104:a6a92e2e5a92 714 * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(READ_NOT_PERMITTED)"];
mbed_official 104:a6a92e2e5a92 715 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 716 * SD:>PEER [label = "ATT Error Response", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 717 * @endmsc
mbed_official 104:a6a92e2e5a92 718 *
mbed_official 104:a6a92e2e5a92 719 * @defgroup BLE_GATTS_WRITE_REQ_AUTH_MSC GATTS Write Request with Authorization
mbed_official 104:a6a92e2e5a92 720 * @msc
mbed_official 104:a6a92e2e5a92 721 * hscale = "2";
mbed_official 104:a6a92e2e5a92 722 * APP,SD,PEER;
mbed_official 104:a6a92e2e5a92 723 * |||;
mbed_official 104:a6a92e2e5a92 724 * APP rbox PEER [label="Connection Established"];
mbed_official 104:a6a92e2e5a92 725 * |||;
mbed_official 104:a6a92e2e5a92 726 * SD rbox SD [label="Value in ATT Table: current_value"];
mbed_official 104:a6a92e2e5a92 727 * SD<:PEER [label = "ATT Write Request {peer_data}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 728 * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {WRITE, peer_value}"];
mbed_official 104:a6a92e2e5a92 729 * --- [label = " Variant #1 App Authorizes "];
mbed_official 104:a6a92e2e5a92 730 * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(SUCCESS)"];
mbed_official 104:a6a92e2e5a92 731 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 732 * SD rbox SD [label="Value in ATT Table: peer_data"];
mbed_official 104:a6a92e2e5a92 733 * SD:>PEER [label = "ATT Write Response", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 734 * --- [label = " Variant #2 App Disallows "];
mbed_official 104:a6a92e2e5a92 735 * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE_NOT_PERMITTED)"];
mbed_official 104:a6a92e2e5a92 736 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 737 * SD:>PEER [label = "ATT Error Response", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 738 * SD rbox SD [label="Value in ATT Table: current_value"];
mbed_official 104:a6a92e2e5a92 739 * @endmsc
mbed_official 104:a6a92e2e5a92 740 *
mbed_official 104:a6a92e2e5a92 741 * @defgroup BLE_GATTS_QUEUED_WRITE_BUF_NOAUTH_MSC GATTS Queued Writes: Stack handled, no attributes require authorization
mbed_official 104:a6a92e2e5a92 742 * @msc
mbed_official 104:a6a92e2e5a92 743 * hscale = "2";
mbed_official 104:a6a92e2e5a92 744 * APP,SD,PEER;
mbed_official 104:a6a92e2e5a92 745 * |||;
mbed_official 104:a6a92e2e5a92 746 * APP rbox PEER [label="Connection Established"];
mbed_official 104:a6a92e2e5a92 747 * |||;
mbed_official 104:a6a92e2e5a92 748 * SD rbox SD [label="Values in ATT Table:\nhandle_1: current_value_1\nhandle_2: current_value_2"];
mbed_official 104:a6a92e2e5a92 749 * SD<:PEER [label = "ATT Prepare Write Request {handle_1, offset_1, peer_value_1}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 750 * APP<<=SD [label = "BLE_EVT_USER_MEM_REQUEST {BLE_USER_MEM_TYPE_GATTS_QUEUED_WRITES}"];
mbed_official 104:a6a92e2e5a92 751 * APP=>SD [label = "sd_ble_user_mem_reply {user_mem_block}"];
mbed_official 104:a6a92e2e5a92 752 * SD:>PEER [label = "ATT Prepare Write Response {handle_1, offset_1, peer_value_1}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 753 * SD<:PEER [label = "ATT Prepare Write Request {handle_2, offset_2, peer_value_2}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 754 * SD:>PEER [label = "ATT Prepare Write Response {handle_2, offset_2, peer_value_2}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 755 * |||;
mbed_official 104:a6a92e2e5a92 756 * --- [label = " Variant #1 Attribute Values validation passed "];
mbed_official 104:a6a92e2e5a92 757 * SD<:PEER [label = "ATT Execute Write Request {WRITE}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 758 * SD rbox SD [label="Values in ATT Table:\nhandle_1: peer_value_1\nhandle_2: peer_value_2"];
mbed_official 104:a6a92e2e5a92 759 * APP<<=SD [label = "BLE_GATTS_EVT_WRITE {EXEC_WRITE_REQ_NOW}"];
mbed_official 104:a6a92e2e5a92 760 * APP rbox APP [label="App parses the memory it provided"];
mbed_official 104:a6a92e2e5a92 761 * SD:>PEER [label = "ATT Execute Write Response", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 762 * APP<<=SD [label = "BLE_EVT_USER_MEM_RELEASE {user_mem_block}"];
mbed_official 104:a6a92e2e5a92 763 * |||;
mbed_official 104:a6a92e2e5a92 764 * --- [label = " Variant #2 Attribute Values validation failed "];
mbed_official 104:a6a92e2e5a92 765 * SD<:PEER [label = "ATT Execute Write Request {WRITE}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 766 * SD rbox SD [label="Values in ATT Table:\nhandle_1: current_value_1\nhandle_2: current_value_2"];
mbed_official 104:a6a92e2e5a92 767 * SD:>PEER [label = "ATT Error Response {Invalid Value Length / Offset}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 768 * APP<<=SD [label = "BLE_EVT_USER_MEM_RELEASE {user_mem_block}"];
mbed_official 104:a6a92e2e5a92 769 * |||;
mbed_official 104:a6a92e2e5a92 770 * --- [label = " Variant #3 Peer cancels operation "];
mbed_official 104:a6a92e2e5a92 771 * SD<:PEER [label = "ATT Execute Write Request {CANCEL}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 772 * SD rbox SD [label="Values in ATT Table:\nhandle_1: current_value_1\nhandle_2: current_value_2"];
mbed_official 104:a6a92e2e5a92 773 * SD:>PEER [label = "ATT Execute Write Response", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 774 * APP<<=SD [label = "BLE_EVT_USER_MEM_RELEASE {user_mem_block}"];
mbed_official 104:a6a92e2e5a92 775 * |||;
mbed_official 104:a6a92e2e5a92 776 * @endmsc
mbed_official 104:a6a92e2e5a92 777 *
mbed_official 104:a6a92e2e5a92 778 * @defgroup BLE_GATTS_QUEUED_WRITE_BUF_AUTH_MSC GATTS Queued Writes: Stack handled, one or more attributes require authorization
mbed_official 104:a6a92e2e5a92 779 * @msc
mbed_official 104:a6a92e2e5a92 780 * hscale = "2";
mbed_official 104:a6a92e2e5a92 781 * APP,SD,PEER;
mbed_official 104:a6a92e2e5a92 782 * |||;
mbed_official 104:a6a92e2e5a92 783 * APP rbox PEER [label="Connection Established"];
mbed_official 104:a6a92e2e5a92 784 * |||;
mbed_official 104:a6a92e2e5a92 785 * SD rbox SD [label="Values in ATT Table:\nhandle_1: current_value_1\nhandle_2: current_value_2"];
mbed_official 104:a6a92e2e5a92 786 * SD<:PEER [label = "ATT Prepare Write Request {handle_1, offset_1, peer_value_1}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 787 * APP<<=SD [label = "BLE_EVT_USER_MEM_REQUEST {BLE_USER_MEM_TYPE_GATTS_QUEUED_WRITES}"];
mbed_official 104:a6a92e2e5a92 788 * APP=>SD [label = "sd_ble_user_mem_reply {user_mem_block}"];
mbed_official 104:a6a92e2e5a92 789 * SD:>PEER [label = "ATT Prepare Write Response {handle_1, offset_1, peer_value_1}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 790 * SD<:PEER [label = "ATT Prepare Write Request {handle_2, offset_2, peer_value_2}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 791 * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {WRITE, PREP_WRITE_REQ, handle_2, offset_2, peer_value_2}"];
mbed_official 104:a6a92e2e5a92 792 * |||;
mbed_official 104:a6a92e2e5a92 793 * --- [label = " Variant #1 App Authorizes both Prepare Write and Execute Write"];
mbed_official 104:a6a92e2e5a92 794 * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, SUCCESS)"];
mbed_official 104:a6a92e2e5a92 795 * SD:>PEER [label = "ATT Prepare Write Response {handle_2, offset_2, peer_value_2}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 796 * SD<:PEER [label = "ATT Execute Write Request {WRITE}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 797 * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {WRITE, EXEC_WRITE_REQ_NOW}"];
mbed_official 104:a6a92e2e5a92 798 * APP rbox APP [label="App parses the memory it provided"];
mbed_official 104:a6a92e2e5a92 799 * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, SUCCESS)"];
mbed_official 104:a6a92e2e5a92 800 * SD rbox SD [label="Values in ATT Table:\nhandle_1: peer_value_1\nhandle_2: peer_value_2"];
mbed_official 104:a6a92e2e5a92 801 * SD:>PEER [label = "ATT Execute Write Response", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 802 * APP<<=SD [label = "BLE_EVT_USER_MEM_RELEASE {user_mem_block}"];
mbed_official 104:a6a92e2e5a92 803 * |||;
mbed_official 104:a6a92e2e5a92 804 * --- [label = " Variant #2 App Disallows Prepare Write and Authorizes Execute Write "];
mbed_official 104:a6a92e2e5a92 805 * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, INSUF_AUTHORIZATION)"];
mbed_official 104:a6a92e2e5a92 806 * SD:>PEER [label = "ATT Error Response {Insufficient Authorization}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 807 * SD<:PEER [label = "ATT Execute Write Request {WRITE}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 808 * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {WRITE, EXEC_WRITE_REQ_NOW}"];
mbed_official 104:a6a92e2e5a92 809 * APP rbox APP [label="App parses the memory it provided"];
mbed_official 104:a6a92e2e5a92 810 * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, SUCCESS)"];
mbed_official 104:a6a92e2e5a92 811 * SD rbox SD [label="Values in ATT Table:\nhandle_1: peer_value_1\nhandle_2: current_value_2"];
mbed_official 104:a6a92e2e5a92 812 * SD:>PEER [label = "ATT Execute Write Response", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 813 * APP<<=SD [label = "BLE_EVT_USER_MEM_RELEASE {user_mem_block}"];
mbed_official 104:a6a92e2e5a92 814 * |||;
mbed_official 104:a6a92e2e5a92 815 * --- [label = " Variant #3 App Authorizes Prepare Write and Disallows Execute Write "];
mbed_official 104:a6a92e2e5a92 816 * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, SUCCESS)"];
mbed_official 104:a6a92e2e5a92 817 * SD:>PEER [label = "ATT Prepare Write Response {handle_2, offset_2, peer_value_2}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 818 * SD<:PEER [label = "ATT Execute Write Request {WRITE}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 819 * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {WRITE, EXEC_WRITE_REQ_NOW}"];
mbed_official 104:a6a92e2e5a92 820 * APP rbox APP [label="App parses the memory it provided"];
mbed_official 104:a6a92e2e5a92 821 * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, APP_ERROR_CODE)"];
mbed_official 104:a6a92e2e5a92 822 * SD rbox SD [label="Values in ATT Table:\nhandle_1: current_value_1\nhandle_2: current_value_2"];
mbed_official 104:a6a92e2e5a92 823 * SD:>PEER [label = "ATT Error Response {APP_ERROR_CODE}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 824 * APP<<=SD [label = "BLE_EVT_USER_MEM_RELEASE {user_mem_block}"];
mbed_official 104:a6a92e2e5a92 825 * @endmsc
mbed_official 104:a6a92e2e5a92 826 *
mbed_official 104:a6a92e2e5a92 827 * @defgroup BLE_GATTS_QUEUED_WRITE_NOBUF_NOAUTH_MSC GATTS Queued Writes: App handled, no attributes require authorization
mbed_official 104:a6a92e2e5a92 828 * @msc
mbed_official 104:a6a92e2e5a92 829 * hscale = "2";
mbed_official 104:a6a92e2e5a92 830 * APP,SD,PEER;
mbed_official 104:a6a92e2e5a92 831 * |||;
mbed_official 104:a6a92e2e5a92 832 * APP rbox PEER [label="Connection Established"];
mbed_official 104:a6a92e2e5a92 833 * |||;
mbed_official 104:a6a92e2e5a92 834 * APP rbox SD [label="Values in ATT Table:\nhandle_1: current_value_1\nhandle_2: current_value_2"];
mbed_official 104:a6a92e2e5a92 835 * SD<:PEER [label = "ATT Prepare Write Request {handle_1, offset_1, peer_value_1}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 836 * APP<<=SD [label = "BLE_EVT_USER_MEM_REQUEST {BLE_USER_MEM_TYPE_GATTS_QUEUED_WRITES}"];
mbed_official 104:a6a92e2e5a92 837 * APP=>SD [label = "sd_ble_user_mem_reply {NULL}"];
mbed_official 104:a6a92e2e5a92 838 * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {WRITE, PREP_WRITE_REQ, handle_1, offset_1, peer_value_1}"];
mbed_official 104:a6a92e2e5a92 839 * APP rbox APP [label="App queues {handle_1, offset_1, peer_value_1}"];
mbed_official 104:a6a92e2e5a92 840 * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, SUCCESS)"];
mbed_official 104:a6a92e2e5a92 841 * SD:>PEER [label = "ATT Prepare Write Response {handle_1, offset_1, peer_value_1}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 842 * SD<:PEER [label = "ATT Prepare Write Request {handle_2, offset_2, peer_value_2}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 843 * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {WRITE, PREP_WRITE_REQ, handle_2, offset_2, peer_value_2}"];
mbed_official 104:a6a92e2e5a92 844 * APP rbox APP [label="App queues {handle_2, offset_2, peer_value_2}"];
mbed_official 104:a6a92e2e5a92 845 * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, SUCCESS)"];
mbed_official 104:a6a92e2e5a92 846 * SD:>PEER [label = "ATT Prepare Write Response {handle_2, offset_2, peer_value_2}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 847 * SD<:PEER [label = "ATT Execute Write Request {WRITE}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 848 * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {WRITE, EXEC_WRITE_REQ_NOW}"];
mbed_official 104:a6a92e2e5a92 849 * |||;
mbed_official 104:a6a92e2e5a92 850 * --- [label = " Variant #1 Attribute values in stack memory (VLOC_STACK), attribute values validation passed "];
mbed_official 104:a6a92e2e5a92 851 * APP=>SD [label = "sd_ble_gatts_value_set {handle_1, offset_1, peer_value_1}"];
mbed_official 104:a6a92e2e5a92 852 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 853 * APP=>SD [label = "sd_ble_gatts_value_set {handle_2, offset_2, peer_value_2}"];
mbed_official 104:a6a92e2e5a92 854 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 855 * SD rbox SD [label="Values in ATT Table:\nhandle_1: peer_value_1\nhandle_2: peer_value_2"];
mbed_official 104:a6a92e2e5a92 856 * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, SUCCESS)"];
mbed_official 104:a6a92e2e5a92 857 * SD:>PEER [label = "ATT Execute Write Response", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 858 * |||;
mbed_official 104:a6a92e2e5a92 859 * --- [label = " Variant #2 Attribute values in user memory (VLOC_USER), attribute values validation passed "];
mbed_official 104:a6a92e2e5a92 860 * APP rbox APP [label="Application traverses its queue and executes the write operations (memcpy)"];
mbed_official 104:a6a92e2e5a92 861 * APP rbox APP [label="Values in ATT Table:\nhandle_1: peer_value_1\nhandle_2: peer_value_2"];
mbed_official 104:a6a92e2e5a92 862 * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, SUCCESS)"];
mbed_official 104:a6a92e2e5a92 863 * SD:>PEER [label = "ATT Execute Write Response", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 864 * |||;
mbed_official 104:a6a92e2e5a92 865 * --- [label = " Variant #3 Attribute values validation failed "];
mbed_official 104:a6a92e2e5a92 866 * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, INVALID_OFFSET)"];
mbed_official 104:a6a92e2e5a92 867 * APP rbox SD [label="Values in ATT Table:\nhandle_1: current_value_1\nhandle_2: current_value_2"];
mbed_official 104:a6a92e2e5a92 868 * SD:>PEER [label = "ATT Error Response {Invalid Offset}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 869 * @endmsc
mbed_official 104:a6a92e2e5a92 870 *
mbed_official 104:a6a92e2e5a92 871 * @defgroup BLE_GATTS_QUEUED_WRITE_NOBUF_AUTH_MSC GATTS Queued Writes: App handled, one or more attributes require authorization
mbed_official 104:a6a92e2e5a92 872 * @msc
mbed_official 104:a6a92e2e5a92 873 * hscale = "2";
mbed_official 104:a6a92e2e5a92 874 * APP,SD,PEER;
mbed_official 104:a6a92e2e5a92 875 * |||;
mbed_official 104:a6a92e2e5a92 876 * APP rbox PEER [label="Connection Established"];
mbed_official 104:a6a92e2e5a92 877 * |||;
mbed_official 104:a6a92e2e5a92 878 * APP rbox APP [label="Values in ATT Table (in user memory):\nhandle_1: current_value_1\nhandle_2: current_value_2"];
mbed_official 104:a6a92e2e5a92 879 * SD<:PEER [label = "ATT Prepare Write Request {handle_1, offset_1, peer_value_1}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 880 * APP<<=SD [label = "BLE_EVT_USER_MEM_REQUEST {BLE_USER_MEM_TYPE_GATTS_QUEUED_WRITES}"];
mbed_official 104:a6a92e2e5a92 881 * APP=>SD [label = "sd_ble_user_mem_reply {NULL}"];
mbed_official 104:a6a92e2e5a92 882 * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {WRITE, PREP_WRITE_REQ, handle_1, offset_1, peer_value_1}"];
mbed_official 104:a6a92e2e5a92 883 * APP rbox APP [label="App queues {handle_1, offset_1, peer_value_1}"];
mbed_official 104:a6a92e2e5a92 884 * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, SUCCESS)"];
mbed_official 104:a6a92e2e5a92 885 * SD:>PEER [label = "ATT Prepare Write Response {handle_1, offset_1, peer_value_1}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 886 * SD<:PEER [label = "ATT Prepare Write Request {handle_2, offset_2, peer_value_2}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 887 * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {WRITE, PREP_WRITE_REQ, handle_2, offset_2, peer_value_2}"];
mbed_official 104:a6a92e2e5a92 888 * |||;
mbed_official 104:a6a92e2e5a92 889 * --- [label = " Variant #1 App Authorizes both Prepare Write and Execute Write"];
mbed_official 104:a6a92e2e5a92 890 * APP rbox APP [label="App queues {handle_2, offset_2, peer_value_2}"];
mbed_official 104:a6a92e2e5a92 891 * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, SUCCESS)"];
mbed_official 104:a6a92e2e5a92 892 * SD:>PEER [label = "ATT Prepare Write Response {handle_2, offset_2, peer_value_2}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 893 * SD<:PEER [label = "ATT Execute Write Request {WRITE}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 894 * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {WRITE, EXEC_WRITE_REQ_NOW}"];
mbed_official 104:a6a92e2e5a92 895 * APP rbox APP [label="Application traverses its queue and executes the write operations (memcpy)"];
mbed_official 104:a6a92e2e5a92 896 * APP rbox APP [label="Values in ATT Table:\nhandle_1: peer_value_1\nhandle_2: peer_value_2"];
mbed_official 104:a6a92e2e5a92 897 * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, SUCCESS)"];
mbed_official 104:a6a92e2e5a92 898 * SD:>PEER [label = "ATT Execute Write Response", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 899 * |||;
mbed_official 104:a6a92e2e5a92 900 * --- [label = " Variant #2 App Disallows Prepare Write and Authorizes Execute Write "];
mbed_official 104:a6a92e2e5a92 901 * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, INSUF_AUTHORIZATION)"];
mbed_official 104:a6a92e2e5a92 902 * SD:>PEER [label = "ATT Error Response {Insufficient Authorization}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 903 * SD<:PEER [label = "ATT Execute Write Request {WRITE}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 904 * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {WRITE, EXEC_WRITE_REQ_NOW}"];
mbed_official 104:a6a92e2e5a92 905 * APP rbox APP [label="Application traverses its queue and executes the write operations (memcpy)"];
mbed_official 104:a6a92e2e5a92 906 * APP rbox APP [label="Values in ATT Table:\nhandle_1: peer_value_1\nhandle_2: current_value_2"];
mbed_official 104:a6a92e2e5a92 907 * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, SUCCESS)"];
mbed_official 104:a6a92e2e5a92 908 * SD:>PEER [label = "ATT Execute Write Response", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 909 * |||;
mbed_official 104:a6a92e2e5a92 910 * --- [label = " Variant #3 App Authorizes Prepare Write and Disallows Execute Write "];
mbed_official 104:a6a92e2e5a92 911 * APP rbox APP [label="App queues {handle_2, offset_2, peer_value_2}"];
mbed_official 104:a6a92e2e5a92 912 * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, SUCCESS)"];
mbed_official 104:a6a92e2e5a92 913 * SD:>PEER [label = "ATT Prepare Write Response {handle_2, offset_2, peer_value_2}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 914 * SD<:PEER [label = "ATT Execute Write Request {WRITE}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 915 * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {WRITE, EXEC_WRITE_REQ_NOW}"];
mbed_official 104:a6a92e2e5a92 916 * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, APP_ERROR_CODE)"];
mbed_official 104:a6a92e2e5a92 917 * APP rbox APP [label="Values in ATT Table:\nhandle_1: current_value_1\nhandle_2: current_value_2"];
mbed_official 104:a6a92e2e5a92 918 * SD:>PEER [label = "ATT Error Response {APP_ERROR_CODE}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 919 * @endmsc
mbed_official 104:a6a92e2e5a92 920 *
mbed_official 104:a6a92e2e5a92 921 * @defgroup BLE_GATTS_QUEUED_WRITE_QUEUE_FULL_MSC GATTS Queued Writes: Prepare Queue Full
mbed_official 104:a6a92e2e5a92 922 * @msc
mbed_official 104:a6a92e2e5a92 923 * hscale = "2";
mbed_official 104:a6a92e2e5a92 924 * APP,SD,PEER;
mbed_official 104:a6a92e2e5a92 925 * |||;
mbed_official 104:a6a92e2e5a92 926 * APP rbox PEER [label="Connection Established"];
mbed_official 104:a6a92e2e5a92 927 * |||;
mbed_official 104:a6a92e2e5a92 928 * SD rbox SD [label="Values in ATT Table:\nhandle_1: current_value_1\nhandle_2: current_value_2"];
mbed_official 104:a6a92e2e5a92 929 * SD<:PEER [label = "ATT Prepare Write Request {handle_1, offset_1, peer_value_1}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 930 * APP<<=SD [label = "BLE_EVT_USER_MEM_REQUEST {BLE_USER_MEM_TYPE_GATTS_QUEUED_WRITES}"];
mbed_official 104:a6a92e2e5a92 931 * |||;
mbed_official 104:a6a92e2e5a92 932 * --- [label = " Variant #1 Stack handled "];
mbed_official 104:a6a92e2e5a92 933 * APP=>SD [label = "sd_ble_user_mem_reply {user_mem_block}"];
mbed_official 104:a6a92e2e5a92 934 * SD:>PEER [label = "ATT Prepare Write Response {handle_1, offset_1, peer_value_1}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 935 * SD<:PEER [label = "ATT Prepare Write Request {handle_2, offset_2, peer_value_2}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 936 * SD:>PEER [label = "ATT Error Response {Prepare Queue Full}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 937 * SD<:PEER [label = "ATT Execute Write Request {WRITE}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 938 * SD rbox SD [label="Values in ATT Table:\nhandle_1: peer_value_1\nhandle_2: current_value_2"];
mbed_official 104:a6a92e2e5a92 939 * APP<<=SD [label = "BLE_GATTS_EVT_WRITE {EXEC_WRITE_REQ_NOW}"];
mbed_official 104:a6a92e2e5a92 940 * APP rbox APP [label="App parses the memory it provided"];
mbed_official 104:a6a92e2e5a92 941 * SD:>PEER [label = "ATT Execute Write Response", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 942 * APP<<=SD [label = "BLE_EVT_USER_MEM_RELEASE {user_mem_block}"];
mbed_official 104:a6a92e2e5a92 943 * |||;
mbed_official 104:a6a92e2e5a92 944 * --- [label = " Variant #2 App handled "];
mbed_official 104:a6a92e2e5a92 945 * APP=>SD [label = "sd_ble_user_mem_reply {NULL}"];
mbed_official 104:a6a92e2e5a92 946 * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {WRITE, PREP_WRITE_REQ, handle_1, offset_1, peer_value_1}"];
mbed_official 104:a6a92e2e5a92 947 * APP rbox APP [label="App queues {handle_1, offset_1, peer_value_1}"];
mbed_official 104:a6a92e2e5a92 948 * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, SUCCESS)"];
mbed_official 104:a6a92e2e5a92 949 * SD:>PEER [label = "ATT Prepare Write Response {handle_1, offset_1, peer_value_1}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 950 * SD<:PEER [label = "ATT Prepare Write Request {handle_2, offset_2, peer_value_2}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 951 * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {WRITE, PREP_WRITE_REQ, handle_2, offset_2, peer_value_2}"];
mbed_official 104:a6a92e2e5a92 952 * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, PREPARE_QUEUE_FULL)"];
mbed_official 104:a6a92e2e5a92 953 * SD:>PEER [label = "ATT Error Response {Prepare Queue Full}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 954 * SD<:PEER [label = "ATT Execute Write Request {WRITE}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 955 * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {WRITE, EXEC_WRITE_REQ_NOW}"];
mbed_official 104:a6a92e2e5a92 956 * APP=>SD [label = "sd_ble_gatts_value_set {handle_1, offset_1, peer_value_1}"];
mbed_official 104:a6a92e2e5a92 957 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 958 * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, SUCCESS)"];
mbed_official 104:a6a92e2e5a92 959 * SD rbox SD [label="Values in ATT Table:\nhandle_1: peer_value_1\nhandle_2: current_value_2"];
mbed_official 104:a6a92e2e5a92 960 * SD:>PEER [label = "ATT Execute Write Response", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 961 * @endmsc
mbed_official 104:a6a92e2e5a92 962 *
mbed_official 104:a6a92e2e5a92 963 * @defgroup BLE_GATTS_HVI_MSC GATTS Handle Value Indication
mbed_official 104:a6a92e2e5a92 964 * @msc
mbed_official 104:a6a92e2e5a92 965 * hscale = "1.5";
mbed_official 104:a6a92e2e5a92 966 * APP,SD,PEER;
mbed_official 104:a6a92e2e5a92 967 * |||;
mbed_official 104:a6a92e2e5a92 968 * APP rbox PEER [label="Connection Established"];
mbed_official 104:a6a92e2e5a92 969 * |||;
mbed_official 104:a6a92e2e5a92 970 * APP rbox PEER [label="Indications Enabled in CCCD"];
mbed_official 104:a6a92e2e5a92 971 * |||;
mbed_official 104:a6a92e2e5a92 972 * SD rbox SD [label="Value in ATT Table: current_value"];
mbed_official 104:a6a92e2e5a92 973 * APP=>SD [label = "sd_ble_gatts_hvx(INDICATION, app_value)"];
mbed_official 104:a6a92e2e5a92 974 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 975 * SD rbox SD [label="Value in ATT Table: app_value"];
mbed_official 104:a6a92e2e5a92 976 * SD:>PEER [label = "ATT Handle Value Indication {app_value}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 977 * --- [label = " Variant #1 Peer Confirms "];
mbed_official 104:a6a92e2e5a92 978 * SD<:PEER [label = "ATT Handle Value Confirmation", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 979 * APP<<=SD [label = "BLE_GATTS_EVT_HVC"];
mbed_official 104:a6a92e2e5a92 980 * --- [label = " Variant #2 Peer Ignores "];
mbed_official 104:a6a92e2e5a92 981 * |||;
mbed_official 104:a6a92e2e5a92 982 * ...;
mbed_official 104:a6a92e2e5a92 983 * |||;
mbed_official 104:a6a92e2e5a92 984 * SD box SD [label="Timeout"];
mbed_official 104:a6a92e2e5a92 985 * APP<<=SD [label = "BLE_GATTS_EVT_TIMEOUT"];
mbed_official 104:a6a92e2e5a92 986 * @endmsc
mbed_official 104:a6a92e2e5a92 987 *
mbed_official 104:a6a92e2e5a92 988 * @defgroup BLE_GATTS_HVN_MSC GATTS Handle Value Notification
mbed_official 104:a6a92e2e5a92 989 * @msc
mbed_official 104:a6a92e2e5a92 990 * hscale = "1.5";
mbed_official 104:a6a92e2e5a92 991 * APP,SD,PEER;
mbed_official 104:a6a92e2e5a92 992 * |||;
mbed_official 104:a6a92e2e5a92 993 * APP rbox PEER [label="Connection Established"];
mbed_official 104:a6a92e2e5a92 994 * |||;
mbed_official 104:a6a92e2e5a92 995 * APP rbox PEER [label="Notifications Enabled in CCCD"];
mbed_official 104:a6a92e2e5a92 996 * |||;
mbed_official 104:a6a92e2e5a92 997 * SD rbox SD [label="Value in ATT Table: current_value"];
mbed_official 104:a6a92e2e5a92 998 * APP=>SD [label = "sd_ble_gatts_hvx(NOTIFICATION, app_value)"];
mbed_official 104:a6a92e2e5a92 999 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 1000 * SD rbox SD [label="Value in ATT Table: app_value"];
mbed_official 104:a6a92e2e5a92 1001 * SD:>PEER [label = "ATT Handle Value Notification {app_value}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 1002 * APP<<=SD [label = "BLE_EVT_TX_COMPLETE"];
mbed_official 104:a6a92e2e5a92 1003 * @endmsc
mbed_official 104:a6a92e2e5a92 1004 *
mbed_official 104:a6a92e2e5a92 1005 * @defgroup BLE_GATTS_HVX_DISABLED_MSC GATTS Handle Value Indication or Notification disabled
mbed_official 104:a6a92e2e5a92 1006 * @msc
mbed_official 104:a6a92e2e5a92 1007 * hscale = "1.5";
mbed_official 104:a6a92e2e5a92 1008 * APP,SD,PEER;
mbed_official 104:a6a92e2e5a92 1009 * |||;
mbed_official 104:a6a92e2e5a92 1010 * APP rbox PEER [label="Connection Established"];
mbed_official 104:a6a92e2e5a92 1011 * |||;
mbed_official 104:a6a92e2e5a92 1012 * APP rbox PEER [label="Indications and Notifications Disabled in CCCD"];
mbed_official 104:a6a92e2e5a92 1013 * |||;
mbed_official 104:a6a92e2e5a92 1014 * SD rbox SD [label="Value in ATT Table: current_value"];
mbed_official 104:a6a92e2e5a92 1015 * APP=>SD [label = "sd_ble_gatts_hvx(INDICATION or NOTIFICATION, app_value)"];
mbed_official 104:a6a92e2e5a92 1016 * APP<<SD [label = "NRF_ERROR_INVALID_STATE"];
mbed_official 104:a6a92e2e5a92 1017 * SD rbox SD [label="Value in ATT Table: current_value"];
mbed_official 104:a6a92e2e5a92 1018 * @endmsc
mbed_official 104:a6a92e2e5a92 1019 *
mbed_official 104:a6a92e2e5a92 1020 * @defgroup BLE_GATTS_HVX_SYS_ATTRS_MISSING_MSC GATTS Handle Value Indication or Notification with System Attributes Missing
mbed_official 104:a6a92e2e5a92 1021 * @msc
mbed_official 104:a6a92e2e5a92 1022 * hscale = "1.5";
mbed_official 104:a6a92e2e5a92 1023 * APP,SD,PEER;
mbed_official 104:a6a92e2e5a92 1024 * |||;
mbed_official 104:a6a92e2e5a92 1025 * APP rbox PEER [label="Connection Established"];
mbed_official 104:a6a92e2e5a92 1026 * |||;
mbed_official 104:a6a92e2e5a92 1027 * APP rbox PEER [label="System Attributes Uninitialized"];
mbed_official 104:a6a92e2e5a92 1028 * |||;
mbed_official 104:a6a92e2e5a92 1029 * SD rbox SD [label="Value in ATT Table: current_value"];
mbed_official 104:a6a92e2e5a92 1030 * APP=>SD [label = "sd_ble_gatts_hvx(INDICATION or NOTIFICATION, app_value)"];
mbed_official 104:a6a92e2e5a92 1031 * APP<<SD [label = "BLE_ERROR_GATTS_SYS_ATTR_MISSING"];
mbed_official 104:a6a92e2e5a92 1032 * SD rbox SD [label="Value in ATT Table: current_value"];
mbed_official 104:a6a92e2e5a92 1033 * APP=>SD [label = "sd_ble_gatts_sys_attr_set()"];
mbed_official 104:a6a92e2e5a92 1034 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 1035 * |||;
mbed_official 104:a6a92e2e5a92 1036 * ...;
mbed_official 104:a6a92e2e5a92 1037 * @endmsc
mbed_official 104:a6a92e2e5a92 1038 *
mbed_official 104:a6a92e2e5a92 1039 * @defgroup BLE_GATTS_SC_MSC GATTS Service Changed
mbed_official 104:a6a92e2e5a92 1040 * @msc
mbed_official 104:a6a92e2e5a92 1041 * hscale = "1.5";
mbed_official 104:a6a92e2e5a92 1042 * APP,SD,PEER;
mbed_official 104:a6a92e2e5a92 1043 * |||;
mbed_official 104:a6a92e2e5a92 1044 * APP rbox SD [label="Entries added to the ATT Table between handles N and M"];
mbed_official 104:a6a92e2e5a92 1045 * |||;
mbed_official 104:a6a92e2e5a92 1046 * APP rbox PEER [label="Connection Established with a Bonded Peer"];
mbed_official 104:a6a92e2e5a92 1047 * |||;
mbed_official 104:a6a92e2e5a92 1048 * APP=>SD [label = "sd_ble_gatts_service_changed(N, M)"];
mbed_official 104:a6a92e2e5a92 1049 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 1050 * SD:>PEER [label = "ATT Handle Value Indication {N, M}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 1051 * SD<:PEER [label = "ATT Handle Value Confirmation", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 1052 * APP<<=SD [label = "BLE_GATTS_EVT_SC_CONFIRM"];
mbed_official 104:a6a92e2e5a92 1053 * |||;
mbed_official 104:a6a92e2e5a92 1054 * SD rbox PEER [label="Service Discovery"];
mbed_official 104:a6a92e2e5a92 1055 * @endmsc
mbed_official 104:a6a92e2e5a92 1056 *
mbed_official 104:a6a92e2e5a92 1057 * @defgroup BLE_GATTS_SYS_ATTRS_UNK_PEER_MSC GATTS System Attributes Handling: Unknown Peer
mbed_official 104:a6a92e2e5a92 1058 * @msc
mbed_official 104:a6a92e2e5a92 1059 * hscale = "1.5";
mbed_official 104:a6a92e2e5a92 1060 * APP,SD,PEER;
mbed_official 104:a6a92e2e5a92 1061 * |||;
mbed_official 104:a6a92e2e5a92 1062 * APP rbox PEER [label="Connection Established with an Unknown Peer"];
mbed_official 104:a6a92e2e5a92 1063 * |||;
mbed_official 104:a6a92e2e5a92 1064 * SD<:PEER [label = "ATT Read Request {sys_attr_handle}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 1065 * APP<<=SD [label = "BLE_GATTS_EVT_SYS_ATTR_MISSING"];
mbed_official 104:a6a92e2e5a92 1066 * APP=>SD [label = "sd_ble_gatts_sys_attr_set(NULL)"];
mbed_official 104:a6a92e2e5a92 1067 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 1068 * SD:>PEER [label = "ATT Read Response {sys_attr_value}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 1069 * @endmsc
mbed_official 104:a6a92e2e5a92 1070 *
mbed_official 104:a6a92e2e5a92 1071 * @defgroup BLE_GATTS_SYS_ATTRS_BONDED_PEER_MSC GATTS System Attributes Handling: Bonded Peer
mbed_official 104:a6a92e2e5a92 1072 * @msc
mbed_official 104:a6a92e2e5a92 1073 * hscale = "1.5";
mbed_official 104:a6a92e2e5a92 1074 * APP,SD,PEER;
mbed_official 104:a6a92e2e5a92 1075 * |||;
mbed_official 104:a6a92e2e5a92 1076 * APP rbox PEER [label="Connection Established with a Bonded Peer"];
mbed_official 104:a6a92e2e5a92 1077 * |||;
mbed_official 104:a6a92e2e5a92 1078 * APP rbox PEER [label="ATT Traffic"];
mbed_official 104:a6a92e2e5a92 1079 * |||;
mbed_official 104:a6a92e2e5a92 1080 * APP rbox PEER [label="Connection Terminated"];
mbed_official 104:a6a92e2e5a92 1081 * APP<<=SD [label = "BLE_GAP_EVT_DISCONNECTED {reason}"];
mbed_official 104:a6a92e2e5a92 1082 * |||;
mbed_official 104:a6a92e2e5a92 1083 * APP=>SD [label = "sd_ble_gatts_sys_attr_get()"];
mbed_official 104:a6a92e2e5a92 1084 * APP<<SD [label = "{NRF_SUCCESS, sys_attr_data}"];
mbed_official 104:a6a92e2e5a92 1085 * APP rbox APP [label="Store System Attributes"];
mbed_official 104:a6a92e2e5a92 1086 * |||;
mbed_official 104:a6a92e2e5a92 1087 * APP rbox SD [label="Shut down IC"];
mbed_official 104:a6a92e2e5a92 1088 * |||;
mbed_official 104:a6a92e2e5a92 1089 * APP rbox SD [label="Power up IC"];
mbed_official 104:a6a92e2e5a92 1090 * |||;
mbed_official 104:a6a92e2e5a92 1091 * APP rbox PEER [label="Connection Established with the Bonded Peer"];
mbed_official 104:a6a92e2e5a92 1092 * SD<:PEER [label = "ATT Read Request {sys_attr_handle}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 1093 * APP<<=SD [label = "BLE_GATTS_EVT_SYS_ATTR_MISSING"];
mbed_official 104:a6a92e2e5a92 1094 * APP rbox APP [label="Load System Attributes"];
mbed_official 104:a6a92e2e5a92 1095 * APP=>SD [label = "sd_ble_gatts_sys_attr_set(sys_attr_data)"];
mbed_official 104:a6a92e2e5a92 1096 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 1097 * SD:>PEER [label = "ATT Read Response {sys_attr_value}", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 1098 * @endmsc
mbed_official 104:a6a92e2e5a92 1099 * @}
mbed_official 104:a6a92e2e5a92 1100 *
mbed_official 104:a6a92e2e5a92 1101 * @addtogroup BLE_GATTS_QUEUED_WRITES_USER_MEM User memory layout for Queued Writes
mbed_official 104:a6a92e2e5a92 1102 * @{
mbed_official 104:a6a92e2e5a92 1103 * The following table shows the memory layout used by the SoftDevice to queue a Queued Write operation (Prepare Write ATT packet) in user memory:
mbed_official 104:a6a92e2e5a92 1104 *
mbed_official 104:a6a92e2e5a92 1105 * <table style="border:1px solid black;border-collapse:collapse;">
mbed_official 104:a6a92e2e5a92 1106 * <caption>Queued Write</caption>
mbed_official 104:a6a92e2e5a92 1107 * <tr>
mbed_official 104:a6a92e2e5a92 1108 * <th style="border:1px solid black;padding:5px;">Parameter</th>
mbed_official 104:a6a92e2e5a92 1109 * <th style="border:1px solid black;padding:5px;">Size (octets)</th>
mbed_official 104:a6a92e2e5a92 1110 * <th style="border:1px solid black;padding:5px;">Description</th>
mbed_official 104:a6a92e2e5a92 1111 * </tr>
mbed_official 104:a6a92e2e5a92 1112 * <tr>
mbed_official 104:a6a92e2e5a92 1113 * <td style="border:1px solid black;padding:5px;">Handle</td>
mbed_official 104:a6a92e2e5a92 1114 * <td style="border:1px solid black;padding:5px;">2</td>
mbed_official 104:a6a92e2e5a92 1115 * <td style="border:1px solid black;padding:5px;">Attribute Handle</td>
mbed_official 104:a6a92e2e5a92 1116 * </tr>
mbed_official 104:a6a92e2e5a92 1117 * <tr>
mbed_official 104:a6a92e2e5a92 1118 * <td style="border:1px solid black;padding:5px;">Offset</td>
mbed_official 104:a6a92e2e5a92 1119 * <td style="border:1px solid black;padding:5px;">2</td>
mbed_official 104:a6a92e2e5a92 1120 * <td style="border:1px solid black;padding:5px;">Value Offset</td>
mbed_official 104:a6a92e2e5a92 1121 * </tr>
mbed_official 104:a6a92e2e5a92 1122 * <tr>
mbed_official 104:a6a92e2e5a92 1123 * <td style="border:1px solid black;padding:5px;">Length</td>
mbed_official 104:a6a92e2e5a92 1124 * <td style="border:1px solid black;padding:5px;">2</td>
mbed_official 104:a6a92e2e5a92 1125 * <td style="border:1px solid black;padding:5px;">Value Length</td>
mbed_official 104:a6a92e2e5a92 1126 * </tr>
mbed_official 104:a6a92e2e5a92 1127 * <tr>
mbed_official 104:a6a92e2e5a92 1128 * <td style="border:1px solid black;padding:5px;">Value</td>
mbed_official 104:a6a92e2e5a92 1129 * <td style="border:1px solid black;padding:5px;">Length</td>
mbed_official 104:a6a92e2e5a92 1130 * <td style="border:1px solid black;padding:5px;">Attribute Value</td>
mbed_official 104:a6a92e2e5a92 1131 * </tr>
mbed_official 104:a6a92e2e5a92 1132 * </table>
mbed_official 104:a6a92e2e5a92 1133 *
mbed_official 104:a6a92e2e5a92 1134 * The application can parse the array of Queued Write instances at any time, but it is recommended to do so whenever an Execute Write ATT packet
mbed_official 104:a6a92e2e5a92 1135 * has been received over the air. See the GATT Server Queued Writes MSCs for more details.
mbed_official 104:a6a92e2e5a92 1136 * The array will be terminated by an Queued Write instance with its handle set to @ref BLE_GATT_HANDLE_INVALID.
mbed_official 104:a6a92e2e5a92 1137 * @}
mbed_official 104:a6a92e2e5a92 1138 * @}
mbed_official 104:a6a92e2e5a92 1139 */
mbed_official 104:a6a92e2e5a92 1140
mbed_official 104:a6a92e2e5a92 1141 /**
mbed_official 104:a6a92e2e5a92 1142 * @addtogroup BLE_L2CAP
mbed_official 104:a6a92e2e5a92 1143 * @{
mbed_official 104:a6a92e2e5a92 1144 * @defgroup BLE_L2CAP_MSC Message Sequence Charts
mbed_official 104:a6a92e2e5a92 1145 * @{
mbed_official 104:a6a92e2e5a92 1146 * @defgroup BLE_L2CAP_API_MSC L2CAP API
mbed_official 104:a6a92e2e5a92 1147 * @msc
mbed_official 104:a6a92e2e5a92 1148 * hscale = "1.5";
mbed_official 104:a6a92e2e5a92 1149 * APP,SD,PEER;
mbed_official 104:a6a92e2e5a92 1150 * |||;
mbed_official 104:a6a92e2e5a92 1151 * APP=>SD [label = "sd_ble_l2cap_cid_register(cid)"];
mbed_official 104:a6a92e2e5a92 1152 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 1153 * |||;
mbed_official 104:a6a92e2e5a92 1154 * APP rbox PEER [label="Connection Established"];
mbed_official 104:a6a92e2e5a92 1155 * |||;
mbed_official 104:a6a92e2e5a92 1156 * APP=>SD [label = "sd_ble_l2cap_tx(data)"];
mbed_official 104:a6a92e2e5a92 1157 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 1158 * SD:>PEER [label = "L2CAP packet", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 1159 * APP<<=SD [label = "BLE_EVT_TX_COMPLETE"];
mbed_official 104:a6a92e2e5a92 1160 * SD<:PEER [label = "L2CAP packet", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 1161 * APP<<=SD [label = "BLE_L2CAP_EVT_RX"];
mbed_official 104:a6a92e2e5a92 1162 * SD<:PEER [label = "L2CAP packet", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 1163 * APP<<=SD [label = "BLE_L2CAP_EVT_RX"];
mbed_official 104:a6a92e2e5a92 1164 * |||;
mbed_official 104:a6a92e2e5a92 1165 * APP=>SD [label = "sd_ble_l2cap_tx(data)"];
mbed_official 104:a6a92e2e5a92 1166 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 1167 * SD:>PEER [label = "L2CAP packet", textcolor="#000080", linecolor="#000080"];
mbed_official 104:a6a92e2e5a92 1168 * SD=>>APP [label = "BLE_EVT_TX_COMPLETE"];
mbed_official 104:a6a92e2e5a92 1169 * |||;
mbed_official 104:a6a92e2e5a92 1170 * APP rbox PEER [label="Terminate Connection"];
mbed_official 104:a6a92e2e5a92 1171 * |||;
mbed_official 104:a6a92e2e5a92 1172 * APP=>SD [label = "sd_ble_l2cap_cid_unregister(cid)"];
mbed_official 104:a6a92e2e5a92 1173 * APP<<SD [label = "NRF_SUCCESS"];
mbed_official 104:a6a92e2e5a92 1174 * @endmsc
mbed_official 104:a6a92e2e5a92 1175 * @}
mbed_official 104:a6a92e2e5a92 1176 * @}
mbed_official 104:a6a92e2e5a92 1177 */