Bluetooth Low Energy based Firmware Over The Air with Mbed. Mbed part is a external processor of the IoT devices and communicate with a Bluetooth module. The Bluetooth module have to support BLE and implement BLE FOTA profile designed by ours. BLE FOTA profile specification is available from our GIT hub wiki(https://github.com/sevencore/BLEFOTA).

Dependencies:   mbed

Fork of mbed_fota by KIM HyoengJun

Bluetooth Low Energy based Firmware Over The Air with Mbed. Mbed part is a external processor of the IoT devices and communicate with a Bluetooth module. The Bluetooth module have to support BLE and implement BLE FOTA profile designed by ours. BLE FOTA profile specification is available from our GIT hub wiki.

Committer:
dudnwjs
Date:
Mon Aug 24 03:24:19 2015 +0000
Revision:
11:1ed93accb3fb
Parent:
9:fcf91f563147
Modify app_task.cpp comment

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dudnwjs 9:fcf91f563147 1 /**
dudnwjs 9:fcf91f563147 2 * @file dialog_fota_config.h
dudnwjs 9:fcf91f563147 3 * @brief Compile configuration file.
dudnwjs 9:fcf91f563147 4 * Copyright 2015 SEVENCORE Co., Ltd.
dudnwjs 9:fcf91f563147 5 *
dudnwjs 9:fcf91f563147 6 * @author HyeongJun Kim
dudnwjs 9:fcf91f563147 7 * @version 1.0.0
dudnwjs 9:fcf91f563147 8 * @date 2015-08-20
dudnwjs 9:fcf91f563147 9 */
dudnwjs 3:1e70387e1337 10 #ifndef DIALOG_FOTA_CONFIG_H
dudnwjs 3:1e70387e1337 11 #define DIALOG_FOTA_CONFIG_H
dudnwjs 4:60be78a172c2 12 #include "mbed.h"
dudnwjs 9:fcf91f563147 13 /**
dudnwjs 9:fcf91f563147 14 ****************************************************************************************
dudnwjs 9:fcf91f563147 15 * @addtogroup dialog_fota module
dudnwjs 9:fcf91f563147 16 * @brief Compile configuration.
dudnwjs 9:fcf91f563147 17 *
dudnwjs 9:fcf91f563147 18 * @{
dudnwjs 9:fcf91f563147 19 ****************************************************************************************
dudnwjs 9:fcf91f563147 20 */
dudnwjs 3:1e70387e1337 21 namespace sevencore_fota{
dudnwjs 4:60be78a172c2 22
dudnwjs 4:60be78a172c2 23 #define BD_ADDR_LEN 0x06
dudnwjs 4:60be78a172c2 24 #define ADV_DATA_LEN 0x1F
dudnwjs 4:60be78a172c2 25 #define SCAN_RSP_DATA_LEN 0x1F
dudnwjs 5:e11b23f9aacc 26
dudnwjs 4:60be78a172c2 27 #define CO_ERROR_NO_ERROR 0x00
dudnwjs 4:60be78a172c2 28
dudnwjs 4:60be78a172c2 29
dudnwjs 3:1e70387e1337 30 enum KE_TASK_TYPE
dudnwjs 3:1e70387e1337 31 {
dudnwjs 3:1e70387e1337 32 TASK_NONE = 0xFF,
dudnwjs 3:1e70387e1337 33
dudnwjs 3:1e70387e1337 34 // Link Layer Tasks
dudnwjs 3:1e70387e1337 35 TASK_LLM = 0 ,
dudnwjs 3:1e70387e1337 36 TASK_LLC = 1 ,
dudnwjs 3:1e70387e1337 37 TASK_LLD = 2 ,
dudnwjs 3:1e70387e1337 38 TASK_DBG = 3 ,
dudnwjs 3:1e70387e1337 39
dudnwjs 3:1e70387e1337 40 TASK_L2CM = 4 ,
dudnwjs 3:1e70387e1337 41 TASK_L2CC = 5 ,
dudnwjs 3:1e70387e1337 42 TASK_SMPM = 6 ,
dudnwjs 3:1e70387e1337 43 TASK_SMPC = 7 ,
dudnwjs 3:1e70387e1337 44 TASK_ATTM = 8 , // Attribute Protocol Manager Task
dudnwjs 3:1e70387e1337 45 TASK_ATTC = 9 , // Attribute Protocol Client Task
dudnwjs 3:1e70387e1337 46
dudnwjs 3:1e70387e1337 47 TASK_ATTS = 10 , // Attribute Protocol Server Task
dudnwjs 3:1e70387e1337 48 TASK_GATTM = 11 , // Generic Attribute Profile Manager Task
dudnwjs 3:1e70387e1337 49 TASK_GATTC = 12 , // Generic Attribute Profile Controller Task
dudnwjs 3:1e70387e1337 50 TASK_GAPM = 13 , // Generic Access Profile Manager
dudnwjs 3:1e70387e1337 51 TASK_GAPC = 14 , // Generic Access Profile Controller
dudnwjs 3:1e70387e1337 52
dudnwjs 3:1e70387e1337 53 TASK_PROXM = 15 , // Proximity Monitor Task
dudnwjs 3:1e70387e1337 54 TASK_PROXR = 16 , // Proximity Reporter Task
dudnwjs 3:1e70387e1337 55 TASK_FINDL = 17 , // Find Me Locator Task
dudnwjs 3:1e70387e1337 56 TASK_FINDT = 18 , // Find Me Target Task
dudnwjs 3:1e70387e1337 57 TASK_HTPC = 19 , // Health Thermometer Collector Task
dudnwjs 3:1e70387e1337 58 TASK_HTPT = 20 , // Health Thermometer Sensor Task
dudnwjs 3:1e70387e1337 59 TASK_ACCEL = 21 , // Accelerometer Sensor Task
dudnwjs 3:1e70387e1337 60 TASK_BLPS = 22 , // Blood Pressure Sensor Task
dudnwjs 3:1e70387e1337 61 TASK_BLPC = 23 , // Blood Pressure Collector Task
dudnwjs 3:1e70387e1337 62 TASK_HRPS = 24 , // Heart Rate Sensor Task
dudnwjs 3:1e70387e1337 63 TASK_HRPC = 25 , // Heart Rate Collector Task
dudnwjs 3:1e70387e1337 64 TASK_TIPS = 26 , // Time Server Task
dudnwjs 3:1e70387e1337 65 TASK_TIPC = 27 , // Time Client Task
dudnwjs 3:1e70387e1337 66 TASK_DISS = 28 , // Device Information Service Server Task
dudnwjs 3:1e70387e1337 67 TASK_DISC = 29 , // Device Information Service Client Task
dudnwjs 3:1e70387e1337 68 TASK_SCPPS = 30 , // Scan Parameter Profile Server Task
dudnwjs 3:1e70387e1337 69 TASK_SCPPC = 31 , // Scan Parameter Profile Client Task
dudnwjs 3:1e70387e1337 70 TASK_BASS = 32 , // Battery Service Server Task
dudnwjs 3:1e70387e1337 71 TASK_BASC = 33 , // Battery Service Client Task
dudnwjs 3:1e70387e1337 72 TASK_HOGPD = 34 , // HID Device Task
dudnwjs 3:1e70387e1337 73 TASK_HOGPBH = 35 , // HID Boot Host Task
dudnwjs 3:1e70387e1337 74 TASK_HOGPRH = 36 , // HID Report Host Task
dudnwjs 3:1e70387e1337 75 TASK_GLPS = 37 , // Glucose Profile Sensor Task
dudnwjs 3:1e70387e1337 76 TASK_GLPC = 38 , // Glucose Profile Collector Task
dudnwjs 3:1e70387e1337 77 TASK_NBPS = 39 , // Nebulizer Profile Server Task
dudnwjs 3:1e70387e1337 78 TASK_NBPC = 40 , // Nebulizer Profile Client Task
dudnwjs 3:1e70387e1337 79 TASK_RSCPS = 41 , // Running Speed and Cadence Profile Server Task
dudnwjs 3:1e70387e1337 80 TASK_RSCPC = 42 , // Running Speed and Cadence Profile Collector Task
dudnwjs 3:1e70387e1337 81 TASK_CSCPS = 43 , // Cycling Speed and Cadence Profile Server Task
dudnwjs 3:1e70387e1337 82 TASK_CSCPC = 44 , // Cycling Speed and Cadence Profile Client Task
dudnwjs 3:1e70387e1337 83 TASK_ANPS = 45 , // Alert Notification Profile Server Task
dudnwjs 3:1e70387e1337 84 TASK_ANPC = 46 , // Alert Notification Profile Client Task
dudnwjs 3:1e70387e1337 85 TASK_PASPS = 47 , // Phone Alert Status Profile Server Task
dudnwjs 3:1e70387e1337 86 TASK_PASPC = 48 , // Phone Alert Status Profile Client Task
dudnwjs 3:1e70387e1337 87
dudnwjs 3:1e70387e1337 88 TASK_LANS = 49 , // Location and Navigation Profile Server Task
dudnwjs 3:1e70387e1337 89 TASK_APP = 50 , // Do not Alter.
dudnwjs 3:1e70387e1337 90
dudnwjs 3:1e70387e1337 91 TASK_LANC = 51 , // Location and Navigation Profile Client Task
dudnwjs 3:1e70387e1337 92
dudnwjs 3:1e70387e1337 93 TASK_CPPS = 52 , // Cycling Power Profile Server Task
dudnwjs 3:1e70387e1337 94 TASK_CPPC = 53 , // Cycling Power Profile Client Task
dudnwjs 3:1e70387e1337 95
dudnwjs 3:1e70387e1337 96 // Start of conditionally assigned task types
dudnwjs 5:e11b23f9aacc 97 TASK_FOTA_SERVER = 54 ,
dudnwjs 3:1e70387e1337 98
dudnwjs 3:1e70387e1337 99 #if (BLE_SAMPLE128)
dudnwjs 3:1e70387e1337 100 TASK_SAMPLE128 , // Sample128 Task
dudnwjs 3:1e70387e1337 101 #endif
dudnwjs 3:1e70387e1337 102
dudnwjs 3:1e70387e1337 103 #if (BLE_SPOTA_RECEIVER)
dudnwjs 3:1e70387e1337 104 TASK_SPOTAR , // SPOTA Receiver task
dudnwjs 3:1e70387e1337 105 #endif
dudnwjs 3:1e70387e1337 106
dudnwjs 3:1e70387e1337 107 #if (BLE_STREAMDATA_DEVICE)
dudnwjs 3:1e70387e1337 108 TASK_STREAMDATAD , // Stream Data Device Server task
dudnwjs 3:1e70387e1337 109 #endif
dudnwjs 3:1e70387e1337 110
dudnwjs 3:1e70387e1337 111 #if (BLE_STREAMDATA_HOST)
dudnwjs 3:1e70387e1337 112 TASK_STREAMDATAH , // Stream Data Device Server task
dudnwjs 3:1e70387e1337 113 #endif
dudnwjs 3:1e70387e1337 114
dudnwjs 3:1e70387e1337 115 #if (BLE_ANC_CLIENT)
dudnwjs 3:1e70387e1337 116 TASK_ANCC , // ANCS Client Task
dudnwjs 3:1e70387e1337 117 #endif
dudnwjs 3:1e70387e1337 118
dudnwjs 3:1e70387e1337 119 #if (BLE_WPT_CLIENT)
dudnwjs 3:1e70387e1337 120 TASK_WPTC , // A4WP Wireless Power Transfer Client Profile Task
dudnwjs 3:1e70387e1337 121 #endif
dudnwjs 3:1e70387e1337 122
dudnwjs 3:1e70387e1337 123 #if (BLE_WPTS)
dudnwjs 3:1e70387e1337 124 TASK_WPTS , // A4WP Wireless Power Transfer Server Profile Task
dudnwjs 3:1e70387e1337 125 #endif
dudnwjs 3:1e70387e1337 126
dudnwjs 3:1e70387e1337 127 #if (BLE_APP_PTU)
dudnwjs 3:1e70387e1337 128 TASK_APP_PTU , // A4WP Wireless Power Transfer Client App Task
dudnwjs 3:1e70387e1337 129 #endif
dudnwjs 3:1e70387e1337 130
dudnwjs 3:1e70387e1337 131 #if (BLE_IEU)
dudnwjs 3:1e70387e1337 132 TASK_IEU , // Integrated Environmantal Unit Task
dudnwjs 3:1e70387e1337 133 #endif
dudnwjs 3:1e70387e1337 134
dudnwjs 3:1e70387e1337 135 #if (BLE_MPU)
dudnwjs 3:1e70387e1337 136 TASK_MPU , // Motion Processing Unit Task
dudnwjs 3:1e70387e1337 137 #endif
dudnwjs 3:1e70387e1337 138
dudnwjs 3:1e70387e1337 139 #if (BLE_WSS_SERVER)
dudnwjs 3:1e70387e1337 140 TASK_WSSS , // Weight Scale Server Task
dudnwjs 3:1e70387e1337 141 #endif
dudnwjs 3:1e70387e1337 142
dudnwjs 3:1e70387e1337 143 #if (BLE_UDS_SERVER)
dudnwjs 3:1e70387e1337 144 TASK_UDSS , // User Data Server Task
dudnwjs 3:1e70387e1337 145 #endif
dudnwjs 3:1e70387e1337 146
dudnwjs 3:1e70387e1337 147 #if (BLE_SPS_SERVER)
dudnwjs 3:1e70387e1337 148 TASK_SPS_SERVER , // Serial Proert Service Server Task
dudnwjs 3:1e70387e1337 149 #endif
dudnwjs 3:1e70387e1337 150
dudnwjs 3:1e70387e1337 151 #if (BLE_SPS_CLIENT)
dudnwjs 3:1e70387e1337 152 TASK_SPS_CLIENT , // Serial Proert Service Server Task
dudnwjs 3:1e70387e1337 153 #endif
dudnwjs 3:1e70387e1337 154
dudnwjs 3:1e70387e1337 155 #if (BLE_ADC_NOTIFY)
dudnwjs 3:1e70387e1337 156 TASK_ADC_NOTIFY , // Serial Proert Service Server Task
dudnwjs 3:1e70387e1337 157 #endif
dudnwjs 3:1e70387e1337 158
dudnwjs 3:1e70387e1337 159 #if (BLE_DEVICE_CONFIG)
dudnwjs 3:1e70387e1337 160 TASK_DEVICE_CONFIG , // Serial Proert Service Server Task
dudnwjs 3:1e70387e1337 161 #endif
dudnwjs 3:1e70387e1337 162
dudnwjs 3:1e70387e1337 163 // End of conditionally assigned task types
dudnwjs 3:1e70387e1337 164
dudnwjs 3:1e70387e1337 165 TASK_HCI = 60 ,
dudnwjs 3:1e70387e1337 166 TASK_HCIH = 61 ,
dudnwjs 3:1e70387e1337 167
dudnwjs 3:1e70387e1337 168 TASK_GTL = 63 ,
dudnwjs 3:1e70387e1337 169
dudnwjs 3:1e70387e1337 170 #if (USE_AES)
dudnwjs 3:1e70387e1337 171 TASK_AES = 62 , // Task for asynchronous AES API
dudnwjs 3:1e70387e1337 172 #endif
dudnwjs 3:1e70387e1337 173
dudnwjs 3:1e70387e1337 174 TASK_MAX = 64, //MAX is 64. Do not exceed.
dudnwjs 3:1e70387e1337 175 };
dudnwjs 3:1e70387e1337 176
dudnwjs 3:1e70387e1337 177
dudnwjs 4:60be78a172c2 178 ///BD Address structure
dudnwjs 4:60be78a172c2 179 struct bd_addr
dudnwjs 4:60be78a172c2 180 {
dudnwjs 4:60be78a172c2 181 ///6-byte array address value
dudnwjs 4:60be78a172c2 182 uint8_t addr[BD_ADDR_LEN];
dudnwjs 4:60be78a172c2 183 };
dudnwjs 3:1e70387e1337 184
dudnwjs 4:60be78a172c2 185
dudnwjs 4:60be78a172c2 186 ///Advertising report structure
dudnwjs 4:60be78a172c2 187 struct adv_report
dudnwjs 4:60be78a172c2 188 {
dudnwjs 4:60be78a172c2 189 ///Event type:
dudnwjs 4:60be78a172c2 190 /// - ADV_CONN_UNDIR: Connectable Undirected advertising
dudnwjs 4:60be78a172c2 191 /// - ADV_CONN_DIR: Connectable directed advertising
dudnwjs 4:60be78a172c2 192 /// - ADV_DISC_UNDIR: Discoverable undirected advertising
dudnwjs 4:60be78a172c2 193 /// - ADV_NONCONN_UNDIR: Non-connectable undirected advertising
dudnwjs 4:60be78a172c2 194 uint8_t evt_type;
dudnwjs 4:60be78a172c2 195 ///Advertising address type: public/random
dudnwjs 4:60be78a172c2 196 uint8_t adv_addr_type;
dudnwjs 4:60be78a172c2 197 ///Advertising address value
dudnwjs 4:60be78a172c2 198 struct bd_addr adv_addr;
dudnwjs 4:60be78a172c2 199 ///Data length in advertising packet
dudnwjs 4:60be78a172c2 200 uint8_t data_len;
dudnwjs 4:60be78a172c2 201 ///Data of advertising packet
dudnwjs 4:60be78a172c2 202 uint8_t data[ADV_DATA_LEN];
dudnwjs 4:60be78a172c2 203 ///RSSI value for advertising packet
dudnwjs 4:60be78a172c2 204 uint8_t rssi;
dudnwjs 4:60be78a172c2 205 };
dudnwjs 4:60be78a172c2 206
dudnwjs 5:e11b23f9aacc 207 /// Connection type
dudnwjs 5:e11b23f9aacc 208 enum prf_con_type
dudnwjs 5:e11b23f9aacc 209 {
dudnwjs 5:e11b23f9aacc 210 ///Discovery type connection
dudnwjs 5:e11b23f9aacc 211 PRF_CON_DISCOVERY = 0x00,
dudnwjs 5:e11b23f9aacc 212 /// Normal type connection
dudnwjs 5:e11b23f9aacc 213 PRF_CON_NORMAL = 0x01,
dudnwjs 5:e11b23f9aacc 214 };
dudnwjs 5:e11b23f9aacc 215
dudnwjs 4:60be78a172c2 216 }//namespace
dudnwjs 3:1e70387e1337 217
dudnwjs 9:fcf91f563147 218 /// @} dialog_fota module
dudnwjs 9:fcf91f563147 219
dudnwjs 3:1e70387e1337 220 #endif//DIALOG_FOTA_CONFIG_H