mbed library sources

Dependents:   frdm_kl05z_gpio_test

Fork of mbed-src by mbed official

Committer:
mbed_official
Date:
Fri Aug 08 14:30:08 2014 +0100
Revision:
277:0dffe5d9e928
Synchronized with git revision 6e585609af67e04984b0c09093a5790a751c6ceb

Full URL: https://github.com/mbedmicro/mbed/commit/6e585609af67e04984b0c09093a5790a751c6ceb/

Who changed what in which revision?

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