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 Jul 13 06:32:05 2015 +0000
Revision:
5:e11b23f9aacc
Parent:
4:60be78a172c2
Child:
9:fcf91f563147
Fota Service Add complete

Who changed what in which revision?

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