BLE fota Robot Demo
Dependencies: mbed-rtos mbed mbed_fota_fan_control
Fork of mbed_fota_lamp_control by
dialog_fota/gapm_task.h@3:1e70387e1337, 2015-06-23 (annotated)
- Committer:
- dudnwjs
- Date:
- Tue Jun 23 06:32:40 2015 +0000
- Revision:
- 3:1e70387e1337
- Child:
- 4:60be78a172c2
Add feature : Msg Sender, Msg Receiver (using Serial);
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
dudnwjs | 3:1e70387e1337 | 1 | #ifndef GAPM_TASK_H |
dudnwjs | 3:1e70387e1337 | 2 | #define GAPM_TASK_H |
dudnwjs | 3:1e70387e1337 | 3 | |
dudnwjs | 3:1e70387e1337 | 4 | namespace sevencore_fota{ |
dudnwjs | 3:1e70387e1337 | 5 | |
dudnwjs | 3:1e70387e1337 | 6 | /// Reset link layer and the host command |
dudnwjs | 3:1e70387e1337 | 7 | struct gapm_reset_cmd |
dudnwjs | 3:1e70387e1337 | 8 | { |
dudnwjs | 3:1e70387e1337 | 9 | /// GAPM requested operation: |
dudnwjs | 3:1e70387e1337 | 10 | /// - GAPM_RESET: Reset BLE subsystem: LL and HL. |
dudnwjs | 3:1e70387e1337 | 11 | uint8_t operation; |
dudnwjs | 3:1e70387e1337 | 12 | }; |
dudnwjs | 3:1e70387e1337 | 13 | |
dudnwjs | 3:1e70387e1337 | 14 | |
dudnwjs | 3:1e70387e1337 | 15 | /// GAP Manager Message Interface |
dudnwjs | 3:1e70387e1337 | 16 | enum gapm_msg_id |
dudnwjs | 3:1e70387e1337 | 17 | { |
dudnwjs | 3:1e70387e1337 | 18 | /* Default event */ |
dudnwjs | 3:1e70387e1337 | 19 | /// Command Complete event |
dudnwjs | 3:1e70387e1337 | 20 | GAPM_CMP_EVT = 13312, |
dudnwjs | 3:1e70387e1337 | 21 | /// Event triggered to inform that lower layers are ready |
dudnwjs | 3:1e70387e1337 | 22 | GAPM_DEVICE_READY_IND, |
dudnwjs | 3:1e70387e1337 | 23 | |
dudnwjs | 3:1e70387e1337 | 24 | /* Default commands */ |
dudnwjs | 3:1e70387e1337 | 25 | /// Reset link layer and the host command |
dudnwjs | 3:1e70387e1337 | 26 | GAPM_RESET_CMD, |
dudnwjs | 3:1e70387e1337 | 27 | /// Cancel ongoing operation |
dudnwjs | 3:1e70387e1337 | 28 | GAPM_CANCEL_CMD, |
dudnwjs | 3:1e70387e1337 | 29 | |
dudnwjs | 3:1e70387e1337 | 30 | /* Device Configuration */ |
dudnwjs | 3:1e70387e1337 | 31 | /// Set device configuration command |
dudnwjs | 3:1e70387e1337 | 32 | GAPM_SET_DEV_CONFIG_CMD, |
dudnwjs | 3:1e70387e1337 | 33 | /// Set device name command |
dudnwjs | 3:1e70387e1337 | 34 | GAPM_SET_DEV_NAME_CMD, |
dudnwjs | 3:1e70387e1337 | 35 | /// Set device channel map |
dudnwjs | 3:1e70387e1337 | 36 | GAPM_SET_CHANNEL_MAP_CMD, |
dudnwjs | 3:1e70387e1337 | 37 | |
dudnwjs | 3:1e70387e1337 | 38 | /* Local device information */ |
dudnwjs | 3:1e70387e1337 | 39 | /// Get local device info command |
dudnwjs | 3:1e70387e1337 | 40 | GAPM_GET_DEV_INFO_CMD, |
dudnwjs | 3:1e70387e1337 | 41 | /// Local device name indication event |
dudnwjs | 3:1e70387e1337 | 42 | GAPM_DEV_NAME_IND, |
dudnwjs | 3:1e70387e1337 | 43 | /// Local device appearance indication event |
dudnwjs | 3:1e70387e1337 | 44 | GAPM_APPEARANCE_IND, |
dudnwjs | 3:1e70387e1337 | 45 | /// Local device version indication event |
dudnwjs | 3:1e70387e1337 | 46 | GAPM_DEV_VERSION_IND, |
dudnwjs | 3:1e70387e1337 | 47 | /// Local device BD Address indication event |
dudnwjs | 3:1e70387e1337 | 48 | GAPM_DEV_BDADDR_IND, |
dudnwjs | 3:1e70387e1337 | 49 | |
dudnwjs | 3:1e70387e1337 | 50 | /* White List */ |
dudnwjs | 3:1e70387e1337 | 51 | /// White List Management Command |
dudnwjs | 3:1e70387e1337 | 52 | GAPM_WHITE_LIST_MGT_CMD, |
dudnwjs | 3:1e70387e1337 | 53 | /// White List Size indication event |
dudnwjs | 3:1e70387e1337 | 54 | GAPM_WHITE_LIST_SIZE_IND, |
dudnwjs | 3:1e70387e1337 | 55 | |
dudnwjs | 3:1e70387e1337 | 56 | /* Air Operations */ |
dudnwjs | 3:1e70387e1337 | 57 | /// Set advertising mode Command |
dudnwjs | 3:1e70387e1337 | 58 | GAPM_START_ADVERTISE_CMD, |
dudnwjs | 3:1e70387e1337 | 59 | |
dudnwjs | 3:1e70387e1337 | 60 | /// Set Scan mode Command |
dudnwjs | 3:1e70387e1337 | 61 | GAPM_START_SCAN_CMD, |
dudnwjs | 3:1e70387e1337 | 62 | /// Advertising or scanning report information event |
dudnwjs | 3:1e70387e1337 | 63 | GAPM_ADV_REPORT_IND, |
dudnwjs | 3:1e70387e1337 | 64 | |
dudnwjs | 3:1e70387e1337 | 65 | /// Set connection initialization Command |
dudnwjs | 3:1e70387e1337 | 66 | GAPM_START_CONNECTION_CMD, |
dudnwjs | 3:1e70387e1337 | 67 | /// Name of peer device indication |
dudnwjs | 3:1e70387e1337 | 68 | GAPM_PEER_NAME_IND, |
dudnwjs | 3:1e70387e1337 | 69 | /// Confirm connection to a specific device (Connection Operation in Selective mode) |
dudnwjs | 3:1e70387e1337 | 70 | GAPM_CONNECTION_CFM, |
dudnwjs | 3:1e70387e1337 | 71 | |
dudnwjs | 3:1e70387e1337 | 72 | /* Privacy update events */ |
dudnwjs | 3:1e70387e1337 | 73 | /// Privacy flag value has been updated |
dudnwjs | 3:1e70387e1337 | 74 | GAPM_UPDATED_PRIVACY_IND, |
dudnwjs | 3:1e70387e1337 | 75 | /// Reconnection address has been updated |
dudnwjs | 3:1e70387e1337 | 76 | GAPM_UPDATED_RECON_ADDR_IND, |
dudnwjs | 3:1e70387e1337 | 77 | |
dudnwjs | 3:1e70387e1337 | 78 | /* Security / Encryption Toolbox */ |
dudnwjs | 3:1e70387e1337 | 79 | /// Resolve address command |
dudnwjs | 3:1e70387e1337 | 80 | GAPM_RESOLV_ADDR_CMD, |
dudnwjs | 3:1e70387e1337 | 81 | /// Indicate that resolvable random address has been solved |
dudnwjs | 3:1e70387e1337 | 82 | GAPM_ADDR_SOLVED_IND, |
dudnwjs | 3:1e70387e1337 | 83 | /// Generate a random address. |
dudnwjs | 3:1e70387e1337 | 84 | GAPM_GEN_RAND_ADDR_CMD, |
dudnwjs | 3:1e70387e1337 | 85 | /// Use the AES-128 block in the controller |
dudnwjs | 3:1e70387e1337 | 86 | GAPM_USE_ENC_BLOCK_CMD, |
dudnwjs | 3:1e70387e1337 | 87 | /// AES-128 block result indication |
dudnwjs | 3:1e70387e1337 | 88 | GAPM_USE_ENC_BLOCK_IND, |
dudnwjs | 3:1e70387e1337 | 89 | /// Generate a 8-byte random number |
dudnwjs | 3:1e70387e1337 | 90 | GAPM_GEN_RAND_NB_CMD, |
dudnwjs | 3:1e70387e1337 | 91 | /// Random Number Indication |
dudnwjs | 3:1e70387e1337 | 92 | GAPM_GEN_RAND_NB_IND, |
dudnwjs | 3:1e70387e1337 | 93 | |
dudnwjs | 3:1e70387e1337 | 94 | /* Debug */ |
dudnwjs | 3:1e70387e1337 | 95 | /// Indication containing information about memory usage. |
dudnwjs | 3:1e70387e1337 | 96 | GAPM_DBG_MEM_INFO_IND, |
dudnwjs | 3:1e70387e1337 | 97 | |
dudnwjs | 3:1e70387e1337 | 98 | /* Local device information -cont */ |
dudnwjs | 3:1e70387e1337 | 99 | /// Advertising channel Tx power level |
dudnwjs | 3:1e70387e1337 | 100 | GAPM_DEV_ADV_TX_POWER_IND, |
dudnwjs | 3:1e70387e1337 | 101 | |
dudnwjs | 3:1e70387e1337 | 102 | /* Internal messages for timer events, not part of API*/ |
dudnwjs | 3:1e70387e1337 | 103 | /// Limited discoverable timeout indication |
dudnwjs | 3:1e70387e1337 | 104 | GAPM_LIM_DISC_TO_IND, |
dudnwjs | 3:1e70387e1337 | 105 | /// Scan timeout indication |
dudnwjs | 3:1e70387e1337 | 106 | GAPM_SCAN_TO_IND, |
dudnwjs | 3:1e70387e1337 | 107 | /// Address renewal timeout indication |
dudnwjs | 3:1e70387e1337 | 108 | GAPM_ADDR_RENEW_TO_IND, |
dudnwjs | 3:1e70387e1337 | 109 | }; |
dudnwjs | 3:1e70387e1337 | 110 | |
dudnwjs | 3:1e70387e1337 | 111 | /// GAP Manager operation type - application interface |
dudnwjs | 3:1e70387e1337 | 112 | enum gapm_operation |
dudnwjs | 3:1e70387e1337 | 113 | { |
dudnwjs | 3:1e70387e1337 | 114 | /* No Operation (if nothing has been requested) */ |
dudnwjs | 3:1e70387e1337 | 115 | /* ************************************************ */ |
dudnwjs | 3:1e70387e1337 | 116 | /// No operation. |
dudnwjs | 3:1e70387e1337 | 117 | GAPM_NO_OP = 0x00, |
dudnwjs | 3:1e70387e1337 | 118 | |
dudnwjs | 3:1e70387e1337 | 119 | /* Default operations */ |
dudnwjs | 3:1e70387e1337 | 120 | /* ************************************************ */ |
dudnwjs | 3:1e70387e1337 | 121 | /// Reset BLE subsystem: LL and HL. |
dudnwjs | 3:1e70387e1337 | 122 | GAPM_RESET, |
dudnwjs | 3:1e70387e1337 | 123 | /// Cancel currently executed operation. |
dudnwjs | 3:1e70387e1337 | 124 | GAPM_CANCEL, |
dudnwjs | 3:1e70387e1337 | 125 | |
dudnwjs | 3:1e70387e1337 | 126 | /* Configuration operations */ |
dudnwjs | 3:1e70387e1337 | 127 | /* ************************************************ */ |
dudnwjs | 3:1e70387e1337 | 128 | /// Set device configuration |
dudnwjs | 3:1e70387e1337 | 129 | GAPM_SET_DEV_CONFIG, |
dudnwjs | 3:1e70387e1337 | 130 | /// Set device name |
dudnwjs | 3:1e70387e1337 | 131 | GAPM_SET_DEV_NAME, |
dudnwjs | 3:1e70387e1337 | 132 | /// Set device channel map |
dudnwjs | 3:1e70387e1337 | 133 | GAPM_SET_CHANNEL_MAP, |
dudnwjs | 3:1e70387e1337 | 134 | |
dudnwjs | 3:1e70387e1337 | 135 | /* Retrieve device information */ |
dudnwjs | 3:1e70387e1337 | 136 | /* ************************************************ */ |
dudnwjs | 3:1e70387e1337 | 137 | /// Get Local device name |
dudnwjs | 3:1e70387e1337 | 138 | GAPM_GET_DEV_NAME, |
dudnwjs | 3:1e70387e1337 | 139 | /// Get Local device version |
dudnwjs | 3:1e70387e1337 | 140 | GAPM_GET_DEV_VERSION, |
dudnwjs | 3:1e70387e1337 | 141 | /// Get Local device BD Address |
dudnwjs | 3:1e70387e1337 | 142 | GAPM_GET_DEV_BDADDR, |
dudnwjs | 3:1e70387e1337 | 143 | |
dudnwjs | 3:1e70387e1337 | 144 | /* Operation on White list */ |
dudnwjs | 3:1e70387e1337 | 145 | /* ************************************************ */ |
dudnwjs | 3:1e70387e1337 | 146 | /// Get White List Size. |
dudnwjs | 3:1e70387e1337 | 147 | GAPM_GET_WLIST_SIZE, |
dudnwjs | 3:1e70387e1337 | 148 | /// Add devices in white list. |
dudnwjs | 3:1e70387e1337 | 149 | GAPM_ADD_DEV_IN_WLIST, |
dudnwjs | 3:1e70387e1337 | 150 | /// Remove devices form white list. |
dudnwjs | 3:1e70387e1337 | 151 | GAPM_RMV_DEV_FRM_WLIST, |
dudnwjs | 3:1e70387e1337 | 152 | /// Clear all devices from white list. |
dudnwjs | 3:1e70387e1337 | 153 | GAPM_CLEAR_WLIST, |
dudnwjs | 3:1e70387e1337 | 154 | |
dudnwjs | 3:1e70387e1337 | 155 | /* Advertise mode operations */ |
dudnwjs | 3:1e70387e1337 | 156 | /* ************************************************ */ |
dudnwjs | 3:1e70387e1337 | 157 | /// Start non connectable advertising |
dudnwjs | 3:1e70387e1337 | 158 | GAPM_ADV_NON_CONN, |
dudnwjs | 3:1e70387e1337 | 159 | /// Start undirected connectable advertising |
dudnwjs | 3:1e70387e1337 | 160 | GAPM_ADV_UNDIRECT, |
dudnwjs | 3:1e70387e1337 | 161 | /// Start directed connectable advertising |
dudnwjs | 3:1e70387e1337 | 162 | GAPM_ADV_DIRECT, |
dudnwjs | 3:1e70387e1337 | 163 | |
dudnwjs | 3:1e70387e1337 | 164 | /* Scan mode operations */ |
dudnwjs | 3:1e70387e1337 | 165 | /* ************************************************ */ |
dudnwjs | 3:1e70387e1337 | 166 | /// Start active scan operation |
dudnwjs | 3:1e70387e1337 | 167 | GAPM_SCAN_ACTIVE, |
dudnwjs | 3:1e70387e1337 | 168 | /// Start passive scan operation |
dudnwjs | 3:1e70387e1337 | 169 | GAPM_SCAN_PASSIVE, |
dudnwjs | 3:1e70387e1337 | 170 | |
dudnwjs | 3:1e70387e1337 | 171 | /* Connection mode operations */ |
dudnwjs | 3:1e70387e1337 | 172 | /* ************************************************ */ |
dudnwjs | 3:1e70387e1337 | 173 | /// Direct connection operation |
dudnwjs | 3:1e70387e1337 | 174 | GAPM_CONNECTION_DIRECT, |
dudnwjs | 3:1e70387e1337 | 175 | /// Automatic connection operation |
dudnwjs | 3:1e70387e1337 | 176 | GAPM_CONNECTION_AUTO, |
dudnwjs | 3:1e70387e1337 | 177 | /// Selective connection operation |
dudnwjs | 3:1e70387e1337 | 178 | GAPM_CONNECTION_SELECTIVE, |
dudnwjs | 3:1e70387e1337 | 179 | /// Name Request operation (requires to start a direct connection) |
dudnwjs | 3:1e70387e1337 | 180 | GAPM_CONNECTION_NAME_REQUEST, |
dudnwjs | 3:1e70387e1337 | 181 | |
dudnwjs | 3:1e70387e1337 | 182 | /* Security / Encryption Toolbox */ |
dudnwjs | 3:1e70387e1337 | 183 | /* ************************************************ */ |
dudnwjs | 3:1e70387e1337 | 184 | /// Resolve device address |
dudnwjs | 3:1e70387e1337 | 185 | GAPM_RESOLV_ADDR, |
dudnwjs | 3:1e70387e1337 | 186 | /// Generate a random address |
dudnwjs | 3:1e70387e1337 | 187 | GAPM_GEN_RAND_ADDR, |
dudnwjs | 3:1e70387e1337 | 188 | /// Use the controller's AES-128 block |
dudnwjs | 3:1e70387e1337 | 189 | GAPM_USE_ENC_BLOCK, |
dudnwjs | 3:1e70387e1337 | 190 | /// Generate a 8-byte random number |
dudnwjs | 3:1e70387e1337 | 191 | GAPM_GEN_RAND_NB, |
dudnwjs | 3:1e70387e1337 | 192 | |
dudnwjs | 3:1e70387e1337 | 193 | /* DEBUG */ |
dudnwjs | 3:1e70387e1337 | 194 | /* ************************************************ */ |
dudnwjs | 3:1e70387e1337 | 195 | /// Get memory usage |
dudnwjs | 3:1e70387e1337 | 196 | GAPM_DBG_GET_MEM_INFO, |
dudnwjs | 3:1e70387e1337 | 197 | /// Perform a platform reset |
dudnwjs | 3:1e70387e1337 | 198 | GAPM_PLF_RESET, |
dudnwjs | 3:1e70387e1337 | 199 | |
dudnwjs | 3:1e70387e1337 | 200 | /* Retrieve device information - cont */ |
dudnwjs | 3:1e70387e1337 | 201 | /* ************************************************ */ |
dudnwjs | 3:1e70387e1337 | 202 | /// Get device advertising power level |
dudnwjs | 3:1e70387e1337 | 203 | GAPM_GET_DEV_ADV_TX_POWER, |
dudnwjs | 3:1e70387e1337 | 204 | |
dudnwjs | 3:1e70387e1337 | 205 | /// Last GAPM operation flag |
dudnwjs | 3:1e70387e1337 | 206 | GAPM_LAST |
dudnwjs | 3:1e70387e1337 | 207 | }; |
dudnwjs | 3:1e70387e1337 | 208 | |
dudnwjs | 3:1e70387e1337 | 209 | }//namespace |
dudnwjs | 3:1e70387e1337 | 210 | |
dudnwjs | 3:1e70387e1337 | 211 | #endif//GAPM_TASK_H |