sevencore fota solution development project

Dependencies:   mbed

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 app.h
dudnwjs 9:fcf91f563147 3 * @brief Application entry point
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-17
dudnwjs 9:fcf91f563147 9 */
dudnwjs 3:1e70387e1337 10 #ifndef APP_H
dudnwjs 3:1e70387e1337 11 #define APP_H
dudnwjs 3:1e70387e1337 12
dudnwjs 3:1e70387e1337 13 #include "BleMsgHandler.h"
dudnwjs 4:60be78a172c2 14 #include "app_sw_version.h"
dudnwjs 4:60be78a172c2 15 #include "diss_task.h"
dudnwjs 4:60be78a172c2 16 #include "dialog_fota_config.h"
dudnwjs 3:1e70387e1337 17
dudnwjs 3:1e70387e1337 18 namespace sevencore_fota{
dudnwjs 3:1e70387e1337 19
dudnwjs 9:fcf91f563147 20 /**
dudnwjs 9:fcf91f563147 21 ****************************************************************************************
dudnwjs 9:fcf91f563147 22 * @addtogroup dialog_fota module
dudnwjs 9:fcf91f563147 23 * @brief Application entry point Header.
dudnwjs 9:fcf91f563147 24 *
dudnwjs 9:fcf91f563147 25 * @{
dudnwjs 9:fcf91f563147 26 ****************************************************************************************
dudnwjs 9:fcf91f563147 27 */
dudnwjs 5:e11b23f9aacc 28
dudnwjs 5:e11b23f9aacc 29 #define KE_IDX_GET(uint16_t) (((uint16_t) >> 8) & 0xFF)
dudnwjs 5:e11b23f9aacc 30 #define KE_BUILD_ID(type, index) ( (uint16_t)(((index) << 8)|(type)) )
dudnwjs 5:e11b23f9aacc 31
dudnwjs 4:60be78a172c2 32 /*
dudnwjs 4:60be78a172c2 33 * DISS DEFINITIONS
dudnwjs 4:60be78a172c2 34 ****************************************************************************************
dudnwjs 4:60be78a172c2 35 */
dudnwjs 4:60be78a172c2 36 /// Manufacturer Name (up to 18 chars)
dudnwjs 5:e11b23f9aacc 37 #define APP_DIS_MANUFACTURER_NAME_STR ("SevenCore")
dudnwjs 5:e11b23f9aacc 38 #define APP_DIS_MANUFACTURER_NAME_STR_LEN (9)
dudnwjs 4:60be78a172c2 39 /// Model Number String (up to 18 chars)
dudnwjs 8:9eec2c246a85 40 #define APP_DIS_MODEL_NB_STR ("DA1458A")
dudnwjs 4:60be78a172c2 41 #define APP_DIS_MODEL_NB_STR_LEN (7)
dudnwjs 4:60be78a172c2 42 /// System ID - LSB -> MSB (FIXME)
dudnwjs 6:8dd20294b2aa 43 #define APP_DIS_SERIAL_NB_STR ("123-789")
dudnwjs 6:8dd20294b2aa 44 #define APP_DIS_SERIAL_NB_STR_LEN (7)
dudnwjs 5:e11b23f9aacc 45 /// System ID - LSB -> MSB (FIXME)
dudnwjs 4:60be78a172c2 46 #define APP_DIS_SYSTEM_ID ("\x12\x34\x56\xFF\xFE\x9A\xBC\xDE")
dudnwjs 4:60be78a172c2 47 #define APP_DIS_SYSTEM_ID_LEN (8)
dudnwjs 4:60be78a172c2 48
dudnwjs 4:60be78a172c2 49 #define APP_DIS_SW_REV DA14583_REFDES_SW_VERSION
dudnwjs 4:60be78a172c2 50 #define APP_DIS_FIRM_REV DA14583_SW_VERSION
dudnwjs 4:60be78a172c2 51 #define APP_DIS_FEATURES (DIS_MANUFACTURER_NAME_CHAR_SUP | DIS_MODEL_NB_STR_CHAR_SUP | DIS_SYSTEM_ID_CHAR_SUP | DIS_SW_REV_STR_CHAR_SUP | DIS_FIRM_REV_STR_CHAR_SUP | DIS_PNP_ID_CHAR_SUP)
dudnwjs 4:60be78a172c2 52 /// Advertising minimum interval
dudnwjs 4:60be78a172c2 53 #define APP_ADV_INT_MIN 0x800
dudnwjs 4:60be78a172c2 54 /// Advertising maximum interval
dudnwjs 4:60be78a172c2 55 #define APP_ADV_INT_MAX 0x800
dudnwjs 4:60be78a172c2 56 /// Advertising channel map
dudnwjs 4:60be78a172c2 57 #define APP_ADV_CHMAP 0x07
dudnwjs 4:60be78a172c2 58 /// Advertising data maximal length
dudnwjs 4:60be78a172c2 59 #define APP_ADV_DATA_MAX_SIZE (ADV_DATA_LEN - 3)
dudnwjs 4:60be78a172c2 60 /// Scan Response data maximal length
dudnwjs 4:60be78a172c2 61 #define APP_SCAN_RESP_DATA_MAX_SIZE (SCAN_RSP_DATA_LEN)
dudnwjs 8:9eec2c246a85 62 #define APP_DFLT_ADV_DATA "\x09\x03\xFF\x18\xFF\x18\x0A\x18\x0A\x18"
dudnwjs 4:60be78a172c2 63 #define APP_DFLT_ADV_DATA_LEN (8+2)
dudnwjs 4:60be78a172c2 64 #define APP_SCNRSP_DATA "\x09\xFF\x00\x60\x52\x57\x2D\x42\x4C\x45"
dudnwjs 4:60be78a172c2 65 #define APP_SCNRSP_DATA_LENGTH (10)
dudnwjs 8:9eec2c246a85 66 #define APP_DFLT_DEVICE_NAME ("DA1458A")
dudnwjs 5:e11b23f9aacc 67
dudnwjs 5:e11b23f9aacc 68
dudnwjs 5:e11b23f9aacc 69 typedef struct
dudnwjs 5:e11b23f9aacc 70 {
dudnwjs 5:e11b23f9aacc 71 unsigned char free;
dudnwjs 5:e11b23f9aacc 72 struct bd_addr adv_addr;
dudnwjs 5:e11b23f9aacc 73 unsigned short conidx;
dudnwjs 5:e11b23f9aacc 74 unsigned short conhdl;
dudnwjs 5:e11b23f9aacc 75 unsigned char idx;
dudnwjs 5:e11b23f9aacc 76 unsigned char rssi;
dudnwjs 5:e11b23f9aacc 77 unsigned char data_len;
dudnwjs 5:e11b23f9aacc 78 unsigned char data[ADV_DATA_LEN + 1];
dudnwjs 5:e11b23f9aacc 79
dudnwjs 5:e11b23f9aacc 80 } ble_dev;
dudnwjs 5:e11b23f9aacc 81
dudnwjs 5:e11b23f9aacc 82 #define MAX_SCAN_DEVICES 9
dudnwjs 4:60be78a172c2 83
dudnwjs 5:e11b23f9aacc 84 enum
dudnwjs 5:e11b23f9aacc 85 {
dudnwjs 5:e11b23f9aacc 86 /// Idle state
dudnwjs 5:e11b23f9aacc 87 APP_IDLE,
dudnwjs 5:e11b23f9aacc 88 /// Scanning state
dudnwjs 5:e11b23f9aacc 89 APP_CONNECTABLE,
dudnwjs 5:e11b23f9aacc 90 /// Connected state
dudnwjs 5:e11b23f9aacc 91 APP_CONNECTED,
dudnwjs 5:e11b23f9aacc 92 /// Number of defined states.
dudnwjs 5:e11b23f9aacc 93 APP_STATE_MAX,
dudnwjs 5:e11b23f9aacc 94 /// Scanning state
dudnwjs 5:e11b23f9aacc 95 APP_SCAN,
dudnwjs 5:e11b23f9aacc 96 };
dudnwjs 5:e11b23f9aacc 97
dudnwjs 5:e11b23f9aacc 98 struct app_env_tag
dudnwjs 5:e11b23f9aacc 99 {
dudnwjs 5:e11b23f9aacc 100 unsigned char state;
dudnwjs 5:e11b23f9aacc 101 unsigned char num_of_devices;
dudnwjs 5:e11b23f9aacc 102 ble_dev devices[MAX_SCAN_DEVICES];
dudnwjs 5:e11b23f9aacc 103 };
dudnwjs 5:e11b23f9aacc 104
dudnwjs 5:e11b23f9aacc 105 extern struct app_env_tag app_env;
dudnwjs 3:1e70387e1337 106
dudnwjs 9:fcf91f563147 107 /**
dudnwjs 9:fcf91f563147 108 ****************************************************************************************
dudnwjs 9:fcf91f563147 109 * @brief Send Reset request to GAPM task.
dudnwjs 9:fcf91f563147 110 * @param[in] BMH Ble Message Handler class reference
dudnwjs 9:fcf91f563147 111 * @return void.
dudnwjs 9:fcf91f563147 112 ****************************************************************************************
dudnwjs 9:fcf91f563147 113 */
dudnwjs 3:1e70387e1337 114 void app_rst_gap(BleMsgHandler *BMH);
dudnwjs 9:fcf91f563147 115 /**
dudnwjs 9:fcf91f563147 116 ****************************************************************************************
dudnwjs 9:fcf91f563147 117 * @brief Send enable request to DISS profile task.
dudnwjs 9:fcf91f563147 118 * @param[in] BMH Ble Message Handler class reference
dudnwjs 9:fcf91f563147 119 * @return void.
dudnwjs 9:fcf91f563147 120 ****************************************************************************************
dudnwjs 9:fcf91f563147 121 */
dudnwjs 4:60be78a172c2 122 void app_diss_db_create(BleMsgHandler* BMH);
dudnwjs 9:fcf91f563147 123 /**
dudnwjs 9:fcf91f563147 124 ****************************************************************************************
dudnwjs 9:fcf91f563147 125 * @brief Send enable request to FOTA profile task.
dudnwjs 9:fcf91f563147 126 * @param[in] BMH Ble Message Handler class reference
dudnwjs 9:fcf91f563147 127 * @return void.
dudnwjs 9:fcf91f563147 128 ****************************************************************************************
dudnwjs 9:fcf91f563147 129 */
dudnwjs 5:e11b23f9aacc 130 void app_fota_server_db_create(BleMsgHandler* BMH);
dudnwjs 9:fcf91f563147 131 /**
dudnwjs 9:fcf91f563147 132 ****************************************************************************************
dudnwjs 9:fcf91f563147 133 * @brief Send Start Advertising command to GAPM task.
dudnwjs 9:fcf91f563147 134 * @param[in] BMH Ble Message Handler class reference
dudnwjs 9:fcf91f563147 135 * @return void.
dudnwjs 9:fcf91f563147 136 ****************************************************************************************
dudnwjs 9:fcf91f563147 137 */
dudnwjs 4:60be78a172c2 138 void app_adv_start(BleMsgHandler* BMH);
dudnwjs 9:fcf91f563147 139 /**
dudnwjs 9:fcf91f563147 140 ****************************************************************************************
dudnwjs 9:fcf91f563147 141 * @brief Set Bondabe mode.
dudnwjs 9:fcf91f563147 142 * @param[in] BMH Ble Message Handler class reference
dudnwjs 9:fcf91f563147 143 * @return void.
dudnwjs 9:fcf91f563147 144 ****************************************************************************************
dudnwjs 9:fcf91f563147 145 */
dudnwjs 4:60be78a172c2 146 void app_set_mode(BleMsgHandler* BMH);
dudnwjs 9:fcf91f563147 147 /**
dudnwjs 9:fcf91f563147 148 ****************************************************************************************
dudnwjs 9:fcf91f563147 149 * @brief Send enable request to DISS profile task.
dudnwjs 9:fcf91f563147 150 * @param[in] device Ble device info
dudnwjs 9:fcf91f563147 151 * @param[in] BMH Ble Message Handler class reference
dudnwjs 9:fcf91f563147 152 * @return void.
dudnwjs 9:fcf91f563147 153 ****************************************************************************************
dudnwjs 9:fcf91f563147 154 */
dudnwjs 9:fcf91f563147 155 void app_dis_enable(ble_dev *device,BleMsgHandler* BMH);
dudnwjs 9:fcf91f563147 156 /**
dudnwjs 9:fcf91f563147 157 ****************************************************************************************
dudnwjs 9:fcf91f563147 158 * @brief Send enable request to FOTA profile task.
dudnwjs 9:fcf91f563147 159 * @param[in] device Ble device info
dudnwjs 9:fcf91f563147 160 * @param[in] BMH Ble Message Handler class reference
dudnwjs 9:fcf91f563147 161 * @return void.
dudnwjs 9:fcf91f563147 162 ****************************************************************************************
dudnwjs 9:fcf91f563147 163 */
dudnwjs 5:e11b23f9aacc 164 void app_fota_server_enable(ble_dev *device,BleMsgHandler* BMH);
dudnwjs 9:fcf91f563147 165 /**
dudnwjs 9:fcf91f563147 166 ****************************************************************************************
dudnwjs 9:fcf91f563147 167 * @brief Send connection confirmation.
dudnwjs 9:fcf91f563147 168 * param[in] auth Authentication requirements.
dudnwjs 9:fcf91f563147 169 * @param[in] device Ble device info
dudnwjs 9:fcf91f563147 170 * @param[in] BMH Ble Message Handler class reference
dudnwjs 9:fcf91f563147 171 * @return void.
dudnwjs 9:fcf91f563147 172 ****************************************************************************************
dudnwjs 9:fcf91f563147 173 */
dudnwjs 5:e11b23f9aacc 174 void app_connect_confirm(uint8_t auth,ble_dev *device,BleMsgHandler* BMH);
dudnwjs 9:fcf91f563147 175 /**
dudnwjs 9:fcf91f563147 176 ****************************************************************************************
dudnwjs 9:fcf91f563147 177 * @brief Send the GAPC_DISCONNECT_IND message to a task.
dudnwjs 9:fcf91f563147 178 * @param[in] dst Task id of the destination task.
dudnwjs 9:fcf91f563147 179 * @param[in] conhdl The conhdl parameter of the GAPC_DISCONNECT_IND message.
dudnwjs 9:fcf91f563147 180 * @param[in] reason The reason parameter of the GAPC_DISCONNECT_IND message.
dudnwjs 9:fcf91f563147 181 * @param[in] BMH Ble Message Handler class reference
dudnwjs 9:fcf91f563147 182 * @return void.
dudnwjs 9:fcf91f563147 183 ****************************************************************************************
dudnwjs 9:fcf91f563147 184 */
dudnwjs 5:e11b23f9aacc 185 void app_send_disconnect(uint16_t dst, uint16_t conhdl, uint8_t reason,BleMsgHandler* BMH);
dudnwjs 5:e11b23f9aacc 186
dudnwjs 3:1e70387e1337 187 }//namespace
dudnwjs 3:1e70387e1337 188
dudnwjs 9:fcf91f563147 189 /// @} dialog_fota module
dudnwjs 9:fcf91f563147 190
dudnwjs 3:1e70387e1337 191 #endif//APP_H