sevencore fota solution development project
dialog_fota/gapc_task.h@9:fcf91f563147, 2015-08-24 (annotated)
- Committer:
- dudnwjs
- Date:
- Mon Aug 24 02:29:16 2015 +0000
- Revision:
- 9:fcf91f563147
- Parent:
- 5:e11b23f9aacc
- Child:
- 10:18044afe4364
Add comment for form doxygen;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
dudnwjs | 4:60be78a172c2 | 1 | #ifndef GAPC_TASK_H |
dudnwjs | 4:60be78a172c2 | 2 | #define GAPC_TASK_H |
dudnwjs | 4:60be78a172c2 | 3 | |
dudnwjs | 4:60be78a172c2 | 4 | #include "dialog_fota_config.h" |
dudnwjs | 5:e11b23f9aacc | 5 | #include "gap.h" |
dudnwjs | 4:60be78a172c2 | 6 | |
dudnwjs | 9:fcf91f563147 | 7 | /** |
dudnwjs | 9:fcf91f563147 | 8 | **************************************************************************************** |
dudnwjs | 9:fcf91f563147 | 9 | * @addtogroup dialog_fota module |
dudnwjs | 9:fcf91f563147 | 10 | * @brief Generic Access Profile Controller Header. |
dudnwjs | 9:fcf91f563147 | 11 | * |
dudnwjs | 9:fcf91f563147 | 12 | * @{ |
dudnwjs | 9:fcf91f563147 | 13 | **************************************************************************************** |
dudnwjs | 9:fcf91f563147 | 14 | */ |
dudnwjs | 4:60be78a172c2 | 15 | namespace sevencore_fota{ |
dudnwjs | 9:fcf91f563147 | 16 | |
dudnwjs | 4:60be78a172c2 | 17 | /// GAP Controller Task messages |
dudnwjs | 4:60be78a172c2 | 18 | enum gapc_msg_id |
dudnwjs | 4:60be78a172c2 | 19 | { |
dudnwjs | 4:60be78a172c2 | 20 | /* Default event */ |
dudnwjs | 4:60be78a172c2 | 21 | /// Command Complete event |
dudnwjs | 4:60be78a172c2 | 22 | GAPC_CMP_EVT = 14336, |
dudnwjs | 4:60be78a172c2 | 23 | |
dudnwjs | 4:60be78a172c2 | 24 | /* Connection state information */ |
dudnwjs | 4:60be78a172c2 | 25 | /// Indicate that a connection has been established |
dudnwjs | 4:60be78a172c2 | 26 | GAPC_CONNECTION_REQ_IND, |
dudnwjs | 4:60be78a172c2 | 27 | /// Set specific link data configuration. |
dudnwjs | 4:60be78a172c2 | 28 | GAPC_CONNECTION_CFM, |
dudnwjs | 4:60be78a172c2 | 29 | |
dudnwjs | 4:60be78a172c2 | 30 | /// Indicate that a link has been disconnected |
dudnwjs | 4:60be78a172c2 | 31 | GAPC_DISCONNECT_IND, |
dudnwjs | 4:60be78a172c2 | 32 | |
dudnwjs | 4:60be78a172c2 | 33 | /* Link management command */ |
dudnwjs | 4:60be78a172c2 | 34 | /// Request disconnection of current link command. |
dudnwjs | 4:60be78a172c2 | 35 | GAPC_DISCONNECT_CMD, |
dudnwjs | 4:60be78a172c2 | 36 | |
dudnwjs | 4:60be78a172c2 | 37 | /* Peer device info */ |
dudnwjs | 4:60be78a172c2 | 38 | /// Retrieve information command |
dudnwjs | 4:60be78a172c2 | 39 | GAPC_GET_INFO_CMD, |
dudnwjs | 4:60be78a172c2 | 40 | /// Name of peer device indication |
dudnwjs | 4:60be78a172c2 | 41 | GAPC_PEER_NAME_IND, |
dudnwjs | 4:60be78a172c2 | 42 | /// Indication of peer version info |
dudnwjs | 4:60be78a172c2 | 43 | GAPC_PEER_VERSION_IND, |
dudnwjs | 4:60be78a172c2 | 44 | /// Indication of peer features info |
dudnwjs | 4:60be78a172c2 | 45 | GAPC_PEER_FEATURES_IND, |
dudnwjs | 4:60be78a172c2 | 46 | |
dudnwjs | 4:60be78a172c2 | 47 | /// Indication of ongoing connection RSSI |
dudnwjs | 4:60be78a172c2 | 48 | GAPC_CON_RSSI_IND, |
dudnwjs | 4:60be78a172c2 | 49 | /// Indication of peer privacy info |
dudnwjs | 4:60be78a172c2 | 50 | GAPC_PRIVACY_IND, |
dudnwjs | 4:60be78a172c2 | 51 | /// Indication of peer reconnection address info |
dudnwjs | 4:60be78a172c2 | 52 | GAPC_RECON_ADDR_IND, |
dudnwjs | 4:60be78a172c2 | 53 | |
dudnwjs | 4:60be78a172c2 | 54 | /* Privacy configuration */ |
dudnwjs | 4:60be78a172c2 | 55 | /// Set Privacy flag command. |
dudnwjs | 4:60be78a172c2 | 56 | GAPC_SET_PRIVACY_CMD, |
dudnwjs | 4:60be78a172c2 | 57 | /// Set Reconnection Address Value command. |
dudnwjs | 4:60be78a172c2 | 58 | GAPC_SET_RECON_ADDR_CMD, |
dudnwjs | 4:60be78a172c2 | 59 | |
dudnwjs | 4:60be78a172c2 | 60 | /* Connection parameters update */ |
dudnwjs | 4:60be78a172c2 | 61 | /// Perform update of connection parameters command |
dudnwjs | 4:60be78a172c2 | 62 | GAPC_PARAM_UPDATE_CMD, |
dudnwjs | 4:60be78a172c2 | 63 | /// Request of updating connection parameters indication |
dudnwjs | 4:60be78a172c2 | 64 | GAPC_PARAM_UPDATE_REQ_IND, |
dudnwjs | 4:60be78a172c2 | 65 | /// Master confirm or not that parameters proposed by slave are accepted or not |
dudnwjs | 4:60be78a172c2 | 66 | GAPC_PARAM_UPDATE_CFM, |
dudnwjs | 4:60be78a172c2 | 67 | /// Connection parameters updated indication |
dudnwjs | 4:60be78a172c2 | 68 | GAPC_PARAM_UPDATED_IND, |
dudnwjs | 4:60be78a172c2 | 69 | |
dudnwjs | 4:60be78a172c2 | 70 | /* Bonding procedure */ |
dudnwjs | 4:60be78a172c2 | 71 | /// Start Bonding command procedure |
dudnwjs | 4:60be78a172c2 | 72 | GAPC_BOND_CMD, |
dudnwjs | 4:60be78a172c2 | 73 | /// Bonding requested by peer device indication message. |
dudnwjs | 4:60be78a172c2 | 74 | GAPC_BOND_REQ_IND, |
dudnwjs | 4:60be78a172c2 | 75 | /// Confirm requested bond information. |
dudnwjs | 4:60be78a172c2 | 76 | GAPC_BOND_CFM, |
dudnwjs | 4:60be78a172c2 | 77 | /// Bonding information indication message |
dudnwjs | 4:60be78a172c2 | 78 | GAPC_BOND_IND, |
dudnwjs | 4:60be78a172c2 | 79 | |
dudnwjs | 4:60be78a172c2 | 80 | /* Encryption procedure */ |
dudnwjs | 4:60be78a172c2 | 81 | /// Start Encryption command procedure |
dudnwjs | 4:60be78a172c2 | 82 | GAPC_ENCRYPT_CMD, |
dudnwjs | 4:60be78a172c2 | 83 | /// Encryption requested by peer device indication message. |
dudnwjs | 4:60be78a172c2 | 84 | GAPC_ENCRYPT_REQ_IND, |
dudnwjs | 4:60be78a172c2 | 85 | /// Confirm requested Encryption information. |
dudnwjs | 4:60be78a172c2 | 86 | GAPC_ENCRYPT_CFM, |
dudnwjs | 4:60be78a172c2 | 87 | /// Encryption information indication message |
dudnwjs | 4:60be78a172c2 | 88 | GAPC_ENCRYPT_IND, |
dudnwjs | 4:60be78a172c2 | 89 | |
dudnwjs | 4:60be78a172c2 | 90 | /* Security request procedure */ |
dudnwjs | 4:60be78a172c2 | 91 | /// Start Security Request command procedure |
dudnwjs | 4:60be78a172c2 | 92 | GAPC_SECURITY_CMD, |
dudnwjs | 4:60be78a172c2 | 93 | /// Security requested by peer device indication message |
dudnwjs | 4:60be78a172c2 | 94 | GAPC_SECURITY_IND, |
dudnwjs | 4:60be78a172c2 | 95 | |
dudnwjs | 4:60be78a172c2 | 96 | /* Signature procedure */ |
dudnwjs | 4:60be78a172c2 | 97 | /// Indicate the current sign counters to the application |
dudnwjs | 4:60be78a172c2 | 98 | GAPC_SIGN_COUNTER_IND, |
dudnwjs | 4:60be78a172c2 | 99 | |
dudnwjs | 4:60be78a172c2 | 100 | /* Device information */ |
dudnwjs | 4:60be78a172c2 | 101 | /// Indication of ongoing connection Channel Map |
dudnwjs | 4:60be78a172c2 | 102 | GAPC_CON_CHANNEL_MAP_IND, |
dudnwjs | 4:60be78a172c2 | 103 | |
dudnwjs | 4:60be78a172c2 | 104 | |
dudnwjs | 4:60be78a172c2 | 105 | /* Internal messages for timer events, not part of API*/ |
dudnwjs | 4:60be78a172c2 | 106 | /// Parameter update procedure timeout indication |
dudnwjs | 4:60be78a172c2 | 107 | GAPC_PARAM_UPDATE_TO_IND, |
dudnwjs | 4:60be78a172c2 | 108 | |
dudnwjs | 4:60be78a172c2 | 109 | }; |
dudnwjs | 4:60be78a172c2 | 110 | |
dudnwjs | 4:60be78a172c2 | 111 | /// request operation type - application interface |
dudnwjs | 4:60be78a172c2 | 112 | enum gapc_operation |
dudnwjs | 4:60be78a172c2 | 113 | { |
dudnwjs | 4:60be78a172c2 | 114 | /* Operation Flags */ |
dudnwjs | 4:60be78a172c2 | 115 | /* No Operation (if nothing has been requested) */ |
dudnwjs | 4:60be78a172c2 | 116 | /* ************************************************ */ |
dudnwjs | 4:60be78a172c2 | 117 | /// No operation |
dudnwjs | 4:60be78a172c2 | 118 | GAPC_NO_OP = 0x00, |
dudnwjs | 4:60be78a172c2 | 119 | |
dudnwjs | 4:60be78a172c2 | 120 | /* Connection management */ |
dudnwjs | 4:60be78a172c2 | 121 | /// Disconnect link |
dudnwjs | 4:60be78a172c2 | 122 | GAPC_DISCONNECT, |
dudnwjs | 4:60be78a172c2 | 123 | |
dudnwjs | 4:60be78a172c2 | 124 | /* Connection information */ |
dudnwjs | 4:60be78a172c2 | 125 | /// Retrieve name of peer device. |
dudnwjs | 4:60be78a172c2 | 126 | GAPC_GET_PEER_NAME, |
dudnwjs | 4:60be78a172c2 | 127 | /// Retrieve peer device version info. |
dudnwjs | 4:60be78a172c2 | 128 | GAPC_GET_PEER_VERSION, |
dudnwjs | 4:60be78a172c2 | 129 | /// Retrieve peer device features. |
dudnwjs | 4:60be78a172c2 | 130 | GAPC_GET_PEER_FEATURES, |
dudnwjs | 4:60be78a172c2 | 131 | /// Retrieve connection RSSI. |
dudnwjs | 4:60be78a172c2 | 132 | GAPC_GET_CON_RSSI, |
dudnwjs | 4:60be78a172c2 | 133 | /// Retrieve Privacy Info. |
dudnwjs | 4:60be78a172c2 | 134 | GAPC_GET_PRIVACY, |
dudnwjs | 4:60be78a172c2 | 135 | /// Retrieve Reconnection Address Value. |
dudnwjs | 4:60be78a172c2 | 136 | GAPC_GET_RECON_ADDR, |
dudnwjs | 4:60be78a172c2 | 137 | |
dudnwjs | 4:60be78a172c2 | 138 | /* Privacy Configuration */ |
dudnwjs | 4:60be78a172c2 | 139 | /// Set Privacy flag. |
dudnwjs | 4:60be78a172c2 | 140 | GAPC_SET_PRIVACY, |
dudnwjs | 4:60be78a172c2 | 141 | /// Set Reconnection Address Value. |
dudnwjs | 4:60be78a172c2 | 142 | GAPC_SET_RECON_ADDR, |
dudnwjs | 4:60be78a172c2 | 143 | |
dudnwjs | 4:60be78a172c2 | 144 | /* Connection parameters update */ |
dudnwjs | 4:60be78a172c2 | 145 | /// Perform update of connection parameters. |
dudnwjs | 4:60be78a172c2 | 146 | GAPC_UPDATE_PARAMS, |
dudnwjs | 4:60be78a172c2 | 147 | |
dudnwjs | 4:60be78a172c2 | 148 | /* Security procedures */ |
dudnwjs | 4:60be78a172c2 | 149 | /// Start bonding procedure. |
dudnwjs | 4:60be78a172c2 | 150 | GAPC_BOND, |
dudnwjs | 4:60be78a172c2 | 151 | /// Start encryption procedure. |
dudnwjs | 4:60be78a172c2 | 152 | GAPC_ENCRYPT, |
dudnwjs | 4:60be78a172c2 | 153 | /// Start security request procedure |
dudnwjs | 4:60be78a172c2 | 154 | GAPC_SECURITY_REQ, |
dudnwjs | 4:60be78a172c2 | 155 | |
dudnwjs | 4:60be78a172c2 | 156 | /* Connection information */ |
dudnwjs | 4:60be78a172c2 | 157 | /// Retrieve Connection Channel MAP. |
dudnwjs | 4:60be78a172c2 | 158 | GAPC_GET_CON_CHANNEL_MAP, |
dudnwjs | 4:60be78a172c2 | 159 | |
dudnwjs | 4:60be78a172c2 | 160 | |
dudnwjs | 4:60be78a172c2 | 161 | /// Last GAPC operation flag |
dudnwjs | 4:60be78a172c2 | 162 | GAPC_LAST |
dudnwjs | 4:60be78a172c2 | 163 | }; |
dudnwjs | 4:60be78a172c2 | 164 | |
dudnwjs | 4:60be78a172c2 | 165 | /// Bond event type. |
dudnwjs | 4:60be78a172c2 | 166 | enum gapc_bond |
dudnwjs | 4:60be78a172c2 | 167 | { |
dudnwjs | 4:60be78a172c2 | 168 | /// Bond Pairing request |
dudnwjs | 4:60be78a172c2 | 169 | GAPC_PAIRING_REQ, |
dudnwjs | 4:60be78a172c2 | 170 | /// Respond to Pairing request |
dudnwjs | 4:60be78a172c2 | 171 | GAPC_PAIRING_RSP, |
dudnwjs | 4:60be78a172c2 | 172 | |
dudnwjs | 4:60be78a172c2 | 173 | /// Pairing Finished information |
dudnwjs | 4:60be78a172c2 | 174 | GAPC_PAIRING_SUCCEED, |
dudnwjs | 4:60be78a172c2 | 175 | /// Pairing Failed information |
dudnwjs | 4:60be78a172c2 | 176 | GAPC_PAIRING_FAILED, |
dudnwjs | 4:60be78a172c2 | 177 | |
dudnwjs | 4:60be78a172c2 | 178 | /// Used to retrieve pairing Temporary Key |
dudnwjs | 4:60be78a172c2 | 179 | GAPC_TK_EXCH, |
dudnwjs | 4:60be78a172c2 | 180 | /// Used for Identity Resolving Key exchange |
dudnwjs | 4:60be78a172c2 | 181 | GAPC_IRK_EXCH, |
dudnwjs | 4:60be78a172c2 | 182 | /// Used for Connection Signature Resolving Key exchange |
dudnwjs | 4:60be78a172c2 | 183 | GAPC_CSRK_EXCH, |
dudnwjs | 4:60be78a172c2 | 184 | /// Used for Long Term Key exchange |
dudnwjs | 4:60be78a172c2 | 185 | GAPC_LTK_EXCH, |
dudnwjs | 4:60be78a172c2 | 186 | |
dudnwjs | 4:60be78a172c2 | 187 | /// Bond Pairing request issue, Repeated attempt |
dudnwjs | 4:60be78a172c2 | 188 | GAPC_REPEATED_ATTEMPT, |
dudnwjs | 4:60be78a172c2 | 189 | }; |
dudnwjs | 4:60be78a172c2 | 190 | |
dudnwjs | 4:60be78a172c2 | 191 | /// Command complete event data structure |
dudnwjs | 4:60be78a172c2 | 192 | struct gapc_cmp_evt |
dudnwjs | 4:60be78a172c2 | 193 | { |
dudnwjs | 4:60be78a172c2 | 194 | /// GAP request type |
dudnwjs | 4:60be78a172c2 | 195 | uint8_t operation; |
dudnwjs | 4:60be78a172c2 | 196 | /// Status of the request |
dudnwjs | 4:60be78a172c2 | 197 | uint8_t status; |
dudnwjs | 4:60be78a172c2 | 198 | }; |
dudnwjs | 4:60be78a172c2 | 199 | |
dudnwjs | 4:60be78a172c2 | 200 | /// Indicate that a connection has been established |
dudnwjs | 4:60be78a172c2 | 201 | struct gapc_connection_req_ind |
dudnwjs | 4:60be78a172c2 | 202 | { |
dudnwjs | 4:60be78a172c2 | 203 | /// Connection handle |
dudnwjs | 4:60be78a172c2 | 204 | uint16_t conhdl; |
dudnwjs | 4:60be78a172c2 | 205 | /// Connection interval |
dudnwjs | 4:60be78a172c2 | 206 | uint16_t con_interval; |
dudnwjs | 4:60be78a172c2 | 207 | /// Connection latency |
dudnwjs | 4:60be78a172c2 | 208 | uint16_t con_latency; |
dudnwjs | 4:60be78a172c2 | 209 | /// Link supervision timeout |
dudnwjs | 4:60be78a172c2 | 210 | uint16_t sup_to; |
dudnwjs | 4:60be78a172c2 | 211 | /// Clock accuracy |
dudnwjs | 4:60be78a172c2 | 212 | uint8_t clk_accuracy; |
dudnwjs | 4:60be78a172c2 | 213 | /// Peer address type |
dudnwjs | 4:60be78a172c2 | 214 | uint8_t peer_addr_type; |
dudnwjs | 4:60be78a172c2 | 215 | /// Peer BT address |
dudnwjs | 4:60be78a172c2 | 216 | struct bd_addr peer_addr; |
dudnwjs | 4:60be78a172c2 | 217 | }; |
dudnwjs | 5:e11b23f9aacc | 218 | |
dudnwjs | 5:e11b23f9aacc | 219 | |
dudnwjs | 5:e11b23f9aacc | 220 | |
dudnwjs | 5:e11b23f9aacc | 221 | /// Indicate that a link has been disconnected |
dudnwjs | 5:e11b23f9aacc | 222 | struct gapc_disconnect_ind |
dudnwjs | 5:e11b23f9aacc | 223 | { |
dudnwjs | 5:e11b23f9aacc | 224 | /// Connection handle |
dudnwjs | 5:e11b23f9aacc | 225 | uint16_t conhdl; |
dudnwjs | 5:e11b23f9aacc | 226 | /// Reason of disconnection |
dudnwjs | 5:e11b23f9aacc | 227 | uint8_t reason; |
dudnwjs | 5:e11b23f9aacc | 228 | }; |
dudnwjs | 5:e11b23f9aacc | 229 | |
dudnwjs | 5:e11b23f9aacc | 230 | /// Set specific link data configuration. |
dudnwjs | 5:e11b23f9aacc | 231 | struct gapc_connection_cfm |
dudnwjs | 5:e11b23f9aacc | 232 | { |
dudnwjs | 5:e11b23f9aacc | 233 | /// Local CSRK value |
dudnwjs | 5:e11b23f9aacc | 234 | struct gap_sec_key lcsrk; |
dudnwjs | 5:e11b23f9aacc | 235 | /// Local signature counter value |
dudnwjs | 5:e11b23f9aacc | 236 | uint32_t lsign_counter; |
dudnwjs | 5:e11b23f9aacc | 237 | |
dudnwjs | 5:e11b23f9aacc | 238 | /// Remote CSRK value |
dudnwjs | 5:e11b23f9aacc | 239 | struct gap_sec_key rcsrk; |
dudnwjs | 5:e11b23f9aacc | 240 | /// Remote signature counter value |
dudnwjs | 5:e11b23f9aacc | 241 | uint32_t rsign_counter; |
dudnwjs | 5:e11b23f9aacc | 242 | |
dudnwjs | 5:e11b23f9aacc | 243 | /// Authentication (@see gap_auth) |
dudnwjs | 5:e11b23f9aacc | 244 | uint8_t auth; |
dudnwjs | 5:e11b23f9aacc | 245 | /// Peer device is authorized to access database parameters requiring authorizations. |
dudnwjs | 5:e11b23f9aacc | 246 | /// - GAP_AUTHZ_NOT_SET: Authorization not set |
dudnwjs | 5:e11b23f9aacc | 247 | /// - GAP_AUTHZ_ACCEPT: Authorization automatically accepted |
dudnwjs | 5:e11b23f9aacc | 248 | /// - GAP_AUTHZ_REJECT: Authorization automatically rejected |
dudnwjs | 5:e11b23f9aacc | 249 | uint8_t authorize; |
dudnwjs | 5:e11b23f9aacc | 250 | }; |
dudnwjs | 5:e11b23f9aacc | 251 | |
dudnwjs | 4:60be78a172c2 | 252 | }//namespace |
dudnwjs | 9:fcf91f563147 | 253 | |
dudnwjs | 9:fcf91f563147 | 254 | /// @} dialog_fota module |
dudnwjs | 9:fcf91f563147 | 255 | |
dudnwjs | 4:60be78a172c2 | 256 | #endif//GAPC_TASK_H |