Fan Control Demo

Dependencies:   mbed-rtos mbed

Fork of mbed_fota by KIM HyoengJun

Committer:
dudnwjs
Date:
Wed Sep 02 07:44:29 2015 +0000
Revision:
12:e3d3676753cc
Parent:
9:fcf91f563147
Child:
13:e6b38e2ebda2
Fan Control Demo

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 12:e3d3676753cc 40 #define APP_DIS_MODEL_NB_STR ("SC-BF-EXT")
dudnwjs 12:e3d3676753cc 41 #define APP_DIS_MODEL_NB_STR_LEN (9)
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 12:e3d3676753cc 62 #define APP_DFLT_ADV_DATA "\x09\x03\xF0\x18\xFF\x18\x0A\x18\xF1\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 12:e3d3676753cc 66 #define APP_DFLT_DEVICE_NAME ("FAN-00")
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 12:e3d3676753cc 133 * @brief Send enable request to Fan Control profile task.
dudnwjs 12:e3d3676753cc 134 * @param[in] BMH Ble Message Handler class reference
dudnwjs 12:e3d3676753cc 135 * @return void.
dudnwjs 12:e3d3676753cc 136 ****************************************************************************************
dudnwjs 12:e3d3676753cc 137 */
dudnwjs 12:e3d3676753cc 138 void app_fan_control_db_create(BleMsgHandler* BMH);
dudnwjs 12:e3d3676753cc 139 /**
dudnwjs 12:e3d3676753cc 140 ****************************************************************************************
dudnwjs 9:fcf91f563147 141 * @brief Send Start Advertising command to GAPM task.
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_adv_start(BleMsgHandler* BMH);
dudnwjs 9:fcf91f563147 147 /**
dudnwjs 9:fcf91f563147 148 ****************************************************************************************
dudnwjs 9:fcf91f563147 149 * @brief Set Bondabe mode.
dudnwjs 9:fcf91f563147 150 * @param[in] BMH Ble Message Handler class reference
dudnwjs 9:fcf91f563147 151 * @return void.
dudnwjs 9:fcf91f563147 152 ****************************************************************************************
dudnwjs 9:fcf91f563147 153 */
dudnwjs 4:60be78a172c2 154 void app_set_mode(BleMsgHandler* BMH);
dudnwjs 9:fcf91f563147 155 /**
dudnwjs 9:fcf91f563147 156 ****************************************************************************************
dudnwjs 9:fcf91f563147 157 * @brief Send enable request to DISS profile task.
dudnwjs 9:fcf91f563147 158 * @param[in] device Ble device info
dudnwjs 9:fcf91f563147 159 * @param[in] BMH Ble Message Handler class reference
dudnwjs 9:fcf91f563147 160 * @return void.
dudnwjs 9:fcf91f563147 161 ****************************************************************************************
dudnwjs 9:fcf91f563147 162 */
dudnwjs 9:fcf91f563147 163 void app_dis_enable(ble_dev *device,BleMsgHandler* BMH);
dudnwjs 9:fcf91f563147 164 /**
dudnwjs 9:fcf91f563147 165 ****************************************************************************************
dudnwjs 9:fcf91f563147 166 * @brief Send enable request to FOTA profile task.
dudnwjs 9:fcf91f563147 167 * @param[in] device Ble device info
dudnwjs 9:fcf91f563147 168 * @param[in] BMH Ble Message Handler class reference
dudnwjs 9:fcf91f563147 169 * @return void.
dudnwjs 9:fcf91f563147 170 ****************************************************************************************
dudnwjs 9:fcf91f563147 171 */
dudnwjs 5:e11b23f9aacc 172 void app_fota_server_enable(ble_dev *device,BleMsgHandler* BMH);
dudnwjs 9:fcf91f563147 173 /**
dudnwjs 9:fcf91f563147 174 ****************************************************************************************
dudnwjs 12:e3d3676753cc 175 * @brief Send enable request to fan_control profile task.
dudnwjs 12:e3d3676753cc 176 * @param[in] device Ble device info
dudnwjs 12:e3d3676753cc 177 * @param[in] BMH Ble Message Handler class reference
dudnwjs 12:e3d3676753cc 178 * @return void.
dudnwjs 12:e3d3676753cc 179 ****************************************************************************************
dudnwjs 12:e3d3676753cc 180 */
dudnwjs 12:e3d3676753cc 181 void app_fan_control_enable(ble_dev *device,BleMsgHandler* BMH);
dudnwjs 12:e3d3676753cc 182 /**
dudnwjs 12:e3d3676753cc 183 ****************************************************************************************
dudnwjs 9:fcf91f563147 184 * @brief Send connection confirmation.
dudnwjs 9:fcf91f563147 185 * param[in] auth Authentication requirements.
dudnwjs 9:fcf91f563147 186 * @param[in] device Ble device info
dudnwjs 9:fcf91f563147 187 * @param[in] BMH Ble Message Handler class reference
dudnwjs 9:fcf91f563147 188 * @return void.
dudnwjs 9:fcf91f563147 189 ****************************************************************************************
dudnwjs 9:fcf91f563147 190 */
dudnwjs 5:e11b23f9aacc 191 void app_connect_confirm(uint8_t auth,ble_dev *device,BleMsgHandler* BMH);
dudnwjs 9:fcf91f563147 192 /**
dudnwjs 9:fcf91f563147 193 ****************************************************************************************
dudnwjs 9:fcf91f563147 194 * @brief Send the GAPC_DISCONNECT_IND message to a task.
dudnwjs 9:fcf91f563147 195 * @param[in] dst Task id of the destination task.
dudnwjs 9:fcf91f563147 196 * @param[in] conhdl The conhdl parameter of the GAPC_DISCONNECT_IND message.
dudnwjs 9:fcf91f563147 197 * @param[in] reason The reason parameter of the GAPC_DISCONNECT_IND message.
dudnwjs 9:fcf91f563147 198 * @param[in] BMH Ble Message Handler class reference
dudnwjs 9:fcf91f563147 199 * @return void.
dudnwjs 9:fcf91f563147 200 ****************************************************************************************
dudnwjs 9:fcf91f563147 201 */
dudnwjs 5:e11b23f9aacc 202 void app_send_disconnect(uint16_t dst, uint16_t conhdl, uint8_t reason,BleMsgHandler* BMH);
dudnwjs 5:e11b23f9aacc 203
dudnwjs 3:1e70387e1337 204 }//namespace
dudnwjs 3:1e70387e1337 205
dudnwjs 9:fcf91f563147 206 /// @} dialog_fota module
dudnwjs 9:fcf91f563147 207
dudnwjs 3:1e70387e1337 208 #endif//APP_H