this is using the mbed os version 5-13-1

Dependencies:   mbed-http

Committer:
ocomeni
Date:
Fri Jul 19 16:49:26 2019 +0000
Branch:
PassingRegression
Revision:
129:590bdc2dcf5b
Parent:
103:7b566b522427
Implementation of Access token acquisition; 1. make request with credentials - DONE; 2. get response - DONE; 3. extract Id and refresh tokens from response - DONE; 4. integrate with code - DONE; Testing ongoing

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ocomeni 103:7b566b522427 1 /**
ocomeni 103:7b566b522427 2 ********************************************************************************
ocomeni 103:7b566b522427 3 * @file bluetooth.h
ocomeni 103:7b566b522427 4 * @brief Header file containing API for bluetooth.c
ocomeni 103:7b566b522427 5 *
ocomeni 103:7b566b522427 6 ********************************************************************************
ocomeni 103:7b566b522427 7 * @author TTP
ocomeni 103:7b566b522427 8 * @copyright (c) 2017 TTP (The Technology Partnership) plc
ocomeni 103:7b566b522427 9 *
ocomeni 103:7b566b522427 10 ********************************************************************************
ocomeni 103:7b566b522427 11 */
ocomeni 103:7b566b522427 12
ocomeni 103:7b566b522427 13 #ifndef BLUETOOTH_H
ocomeni 103:7b566b522427 14 #define BLUETOOTH_H
ocomeni 103:7b566b522427 15
ocomeni 103:7b566b522427 16 //-------- Includes ----------------------------------------------------------//
ocomeni 103:7b566b522427 17
ocomeni 103:7b566b522427 18 //-------- Defines -----------------------------------------------------------//
ocomeni 103:7b566b522427 19
ocomeni 103:7b566b522427 20 #define SEND_BLE_RESPONSE 0
ocomeni 103:7b566b522427 21 #define DO_NOT_SEND_BLE_RESPONSE 1
ocomeni 103:7b566b522427 22
ocomeni 103:7b566b522427 23 #define UBLOX_BLE_NAME_BYTES 24
ocomeni 103:7b566b522427 24 #define UBLOX_BLE_FW_VERSION_LEN_BYTES 9
ocomeni 103:7b566b522427 25
ocomeni 103:7b566b522427 26 #define UBLOX_DEFAULT_1_BAUD_RATE 115200
ocomeni 103:7b566b522427 27 #define UBLOX_DEFAULT_2_BAUD_RATE 230400
ocomeni 103:7b566b522427 28 #define UBLOX_MICRO_BAUD_RATE 230400 //115200 //230400
ocomeni 103:7b566b522427 29
ocomeni 103:7b566b522427 30 //-------- Constants & enums -------------------------------------------------//
ocomeni 103:7b566b522427 31
ocomeni 103:7b566b522427 32 /**
ocomeni 103:7b566b522427 33 * @brief Enumeration of the different modes of the Bluetooth state machine
ocomeni 103:7b566b522427 34 */
ocomeni 103:7b566b522427 35 typedef enum
ocomeni 103:7b566b522427 36 {
ocomeni 103:7b566b522427 37 UBLOX_IN_CMD_MODE = 0, ///<0
ocomeni 103:7b566b522427 38 UBLOX_IN_DATA_MODE = 1, ///<1
ocomeni 103:7b566b522427 39 UBLOX_IN_EDM_MODE = 2,
ocomeni 103:7b566b522427 40 UBLOX_IN_UPGRADE_MODE = 3,
ocomeni 103:7b566b522427 41
ocomeni 103:7b566b522427 42 } ublox_modes_e;
ocomeni 103:7b566b522427 43
ocomeni 103:7b566b522427 44 typedef enum
ocomeni 103:7b566b522427 45 {
ocomeni 103:7b566b522427 46 //NC = Not Connected
ocomeni 103:7b566b522427 47 //C = Connected
ocomeni 103:7b566b522427 48 //A = Active
ocomeni 103:7b566b522427 49 //NA = Not Active
ocomeni 103:7b566b522427 50 //E = Error
ocomeni 103:7b566b522427 51 //NE = No Error
ocomeni 103:7b566b522427 52
ocomeni 103:7b566b522427 53 BLE_LINK_A = 0x01,
ocomeni 103:7b566b522427 54 BLE_LINK_NA = 0x00,
ocomeni 103:7b566b522427 55
ocomeni 103:7b566b522427 56 BLE_PEER_C = 0x02,
ocomeni 103:7b566b522427 57 BLE_PEER_NC = 0x00,
ocomeni 103:7b566b522427 58
ocomeni 103:7b566b522427 59 WIFI_LINK_A = 0x04,
ocomeni 103:7b566b522427 60 WIFI_LINK_NA = 0x00,
ocomeni 103:7b566b522427 61
ocomeni 103:7b566b522427 62 WIFI_STATION_C = 0x08,
ocomeni 103:7b566b522427 63 WIFI_STATION_NC = 0x00,
ocomeni 103:7b566b522427 64
ocomeni 103:7b566b522427 65 CLOUD_E = 0x10,
ocomeni 103:7b566b522427 66 CLOUD_NE = 0x00,
ocomeni 103:7b566b522427 67
ocomeni 103:7b566b522427 68 CAP_E = 0x20,
ocomeni 103:7b566b522427 69 CAP_NE = 0x00
ocomeni 103:7b566b522427 70
ocomeni 103:7b566b522427 71 } comms_led_state_e;
ocomeni 103:7b566b522427 72
ocomeni 103:7b566b522427 73 /**
ocomeni 103:7b566b522427 74 * @brief Enumeration of the User to Base Unit BLE primitives.
ocomeni 103:7b566b522427 75 * Primitives here imply the first byte of a message that is transmitted
ocomeni 103:7b566b522427 76 */
ocomeni 103:7b566b522427 77 typedef enum
ocomeni 103:7b566b522427 78 {
ocomeni 103:7b566b522427 79 START_PCR = 'a', ///<a - 0x61 - 97(d)
ocomeni 103:7b566b522427 80 STOP_PCR = 'b', ///<b - 0x62 - 98(d)
ocomeni 103:7b566b522427 81 GET_BU_SOFTWARE_DETAILS = 'c', ///<c - 0x63 - 99(d)
ocomeni 103:7b566b522427 82 GET_CURRENT_PCR_STATE = 'd', ///<d - 0x64 - 100(d)
ocomeni 103:7b566b522427 83 GET_HEALTH_SENSOR_READINGS = 'e', ///<e - 0x65 - 101(d)
ocomeni 103:7b566b522427 84 HANDLE_PICTURES = 'f', ///<f - 0x66 - 102(d)
ocomeni 103:7b566b522427 85 SET_PCR_LED_INTENSITY = 'o', ///<o - 0x6F - 111(d)
ocomeni 103:7b566b522427 86 RESET_MICRO = '*', ///<* - 0x2a - 42(d)
ocomeni 103:7b566b522427 87 BLE_HANDSHAKE = '@', ///<@ - 0x40 - 100(d)
ocomeni 103:7b566b522427 88 TOGGLE_BU_SAFETY_CHECKS = 'z', ///<z - 0x7a - 122(d)
ocomeni 103:7b566b522427 89 EPOCH_TIMESTAMP = '%', ///<% - 0x25 - 37(d)
ocomeni 103:7b566b522427 90 ODIN_CHIP_CONTROL = '/' ///</ - 0X2F - 47(d)
ocomeni 103:7b566b522427 91
ocomeni 103:7b566b522427 92 } user_to_bu_ble_primitives_e;
ocomeni 103:7b566b522427 93
ocomeni 103:7b566b522427 94 /**
ocomeni 103:7b566b522427 95 * @brief Enumeration of the Base Unit BLE to User primitives.
ocomeni 103:7b566b522427 96 * Primitives here imply the first byte of a message that is transmitted
ocomeni 103:7b566b522427 97 */
ocomeni 103:7b566b522427 98 typedef enum
ocomeni 103:7b566b522427 99 {
ocomeni 103:7b566b522427 100 PCR_STARTED = 'A', ///<A - 0x41 - 65(d)
ocomeni 103:7b566b522427 101 BASE_UNIT_DETAILS = 'B', ///<B - 0x42 - 66(d)
ocomeni 103:7b566b522427 102 PCR_CURRENT_STATE = 'C', ///<C - 0x43 - 67(d)
ocomeni 103:7b566b522427 103 TRIGGER_CAMERA = 'D', ///<D - 0x44 - 68(d)
ocomeni 103:7b566b522427 104 SENSOR_READINGS = 'E', ///<E - 0x45 - 69(d)
ocomeni 103:7b566b522427 105 TIMESTAMP_RESPONSE = 'F', ///<F - 0x46 - 70(d)
ocomeni 103:7b566b522427 106 WIFI_CONFIG_RESP = 'G', ///<G - 0x47
ocomeni 103:7b566b522427 107
ocomeni 103:7b566b522427 108 START_OF_BLE_MESSAGE = 'X', ///<X - 0x58 - 88(d)
ocomeni 103:7b566b522427 109
ocomeni 103:7b566b522427 110 BASE_UNIT_NOTIFICATION = 'Y', ///<Y - 0x59 - 89(d)
ocomeni 103:7b566b522427 111 BASE_UNIT_ERROR = 'Z', ///<Z - 0x5A - 90(d)
ocomeni 103:7b566b522427 112
ocomeni 103:7b566b522427 113 } bu_to_user_ble_primitives_e;
ocomeni 103:7b566b522427 114
ocomeni 103:7b566b522427 115 //-------- Structs & typedefs ------------------------------------------------//
ocomeni 103:7b566b522427 116
ocomeni 103:7b566b522427 117
ocomeni 103:7b566b522427 118 //-------- Global variables --------------------------------------------------//
ocomeni 103:7b566b522427 119
ocomeni 103:7b566b522427 120
ocomeni 103:7b566b522427 121 //-------- Global function prototypes ----------------------------------------//
ocomeni 103:7b566b522427 122
ocomeni 103:7b566b522427 123 extern void initialise_ublox_module(void);
ocomeni 103:7b566b522427 124 extern void reset_ublox_module(void);
ocomeni 103:7b566b522427 125 extern UART_HandleTypeDef* get_uart3_address(void);
ocomeni 103:7b566b522427 126
ocomeni 103:7b566b522427 127 extern uint8_t* get_uart3_tx_buffer(void);
ocomeni 103:7b566b522427 128 extern void MX_UART3_Init(void);
ocomeni 103:7b566b522427 129 extern void MX_UART3_DeInit(void);
ocomeni 103:7b566b522427 130 extern void change_uart3_baud_rate(uint32_t baud_rate);
ocomeni 103:7b566b522427 131
ocomeni 103:7b566b522427 132 extern uint8_t is_ublox_module_configured(void);
ocomeni 103:7b566b522427 133
ocomeni 103:7b566b522427 134 extern HAL_StatusTypeDef write_bytes_to_ublox_uart3(uint8_t *p_buffer, uint16_t len_bytes);
ocomeni 103:7b566b522427 135 extern void process_uart3_interrupt_rx_data(void);
ocomeni 103:7b566b522427 136 extern void process_ublox_uart3_rx_msgs(void);
ocomeni 103:7b566b522427 137
ocomeni 103:7b566b522427 138 extern void transmit_picture_req_to_ble_user(uint8_t cycle_no, uint8_t cam_pic_id);
ocomeni 103:7b566b522427 139 extern void transmit_base_unit_error(uint8_t system_error);
ocomeni 103:7b566b522427 140 extern void transmit_base_unit_notification(uint8_t system_notification);
ocomeni 103:7b566b522427 141
ocomeni 103:7b566b522427 142 extern void process_start_pcr_req(uint8_t output_choice);
ocomeni 103:7b566b522427 143 extern void process_stop_pcr_req(uint8_t output_choice);
ocomeni 103:7b566b522427 144 extern void get_bu_software_details(uint8_t output_choice);
ocomeni 103:7b566b522427 145 extern void get_current_pcr_state(uint8_t output_choice);
ocomeni 103:7b566b522427 146 extern void transmit_health_sensor_readings(void);
ocomeni 103:7b566b522427 147
ocomeni 103:7b566b522427 148 extern void transmit_ublox_config_msg(void);
ocomeni 103:7b566b522427 149
ocomeni 103:7b566b522427 150 extern void read_one_byte_from_uart3(void);
ocomeni 103:7b566b522427 151
ocomeni 103:7b566b522427 152 extern void change_ublox_current_mode(uint8_t mode);
ocomeni 103:7b566b522427 153
ocomeni 103:7b566b522427 154 extern void reset_ublox_rx_buffer(void);
ocomeni 103:7b566b522427 155
ocomeni 103:7b566b522427 156 extern void process_ublox_at_event_pkt(const uint8_t* rx_data, uint16_t len_bytes);
ocomeni 103:7b566b522427 157
ocomeni 103:7b566b522427 158 extern void set_wifi_link_conn_status(uint8_t status);
ocomeni 103:7b566b522427 159
ocomeni 103:7b566b522427 160 extern uint8_t is_wifi_link_connected(void);
ocomeni 103:7b566b522427 161
ocomeni 103:7b566b522427 162 extern void set_ble_chan_conn_status(uint8_t status);
ocomeni 103:7b566b522427 163
ocomeni 103:7b566b522427 164 extern uint8_t is_ble_chan_connected(void);
ocomeni 103:7b566b522427 165
ocomeni 103:7b566b522427 166 extern void set_ble_peer_status(uint8_t status);
ocomeni 103:7b566b522427 167
ocomeni 103:7b566b522427 168 extern void set_ble_chan_id(uint8_t chan_id);
ocomeni 103:7b566b522427 169
ocomeni 103:7b566b522427 170 extern uint8_t get_ble_chan_id(void);
ocomeni 103:7b566b522427 171
ocomeni 103:7b566b522427 172 extern void set_ble_peer_id(uint8_t peer_id);
ocomeni 103:7b566b522427 173
ocomeni 103:7b566b522427 174 extern uint8_t get_ble_peer_id(void);
ocomeni 103:7b566b522427 175
ocomeni 103:7b566b522427 176 extern uint8_t is_ble_peer_connected(void);
ocomeni 103:7b566b522427 177
ocomeni 103:7b566b522427 178 extern uint8_t is_wifi_chan_connected(void);
ocomeni 103:7b566b522427 179
ocomeni 103:7b566b522427 180 extern uint8_t is_wifi_peer_connected(void);
ocomeni 103:7b566b522427 181
ocomeni 103:7b566b522427 182 extern void set_wifi_chan_id(uint8_t chan_id);
ocomeni 103:7b566b522427 183
ocomeni 103:7b566b522427 184 extern uint8_t get_wifi_chan_id(void);
ocomeni 103:7b566b522427 185
ocomeni 103:7b566b522427 186 extern void set_wifi_peer_id(uint8_t peer_id);
ocomeni 103:7b566b522427 187
ocomeni 103:7b566b522427 188 extern uint8_t get_wifi_peer_id(void);
ocomeni 103:7b566b522427 189
ocomeni 103:7b566b522427 190 extern void set_wifi_chan_conn_status(uint8_t status);
ocomeni 103:7b566b522427 191
ocomeni 103:7b566b522427 192 extern void set_wifi_peer_status(uint8_t status);
ocomeni 103:7b566b522427 193
ocomeni 103:7b566b522427 194 extern void process_ublox_data_event_pkt(const uint8_t* rx_data, uint16_t len_bytes);
ocomeni 103:7b566b522427 195
ocomeni 103:7b566b522427 196 extern void send_message_over_ble(const uint8_t* p_message, uint8_t len_bytes);
ocomeni 103:7b566b522427 197
ocomeni 103:7b566b522427 198 extern uint8_t update_ublox_firmware(void);
ocomeni 103:7b566b522427 199
ocomeni 103:7b566b522427 200 extern uint8_t configure_wifi_link(void);
ocomeni 103:7b566b522427 201
ocomeni 103:7b566b522427 202 extern uint8_t activate_wifi_link(void);
ocomeni 103:7b566b522427 203
ocomeni 103:7b566b522427 204 extern uint8_t deactivate_wifi_link(void);
ocomeni 103:7b566b522427 205
ocomeni 103:7b566b522427 206 extern uint8_t store_wifi_ssid(const char *ssid);
ocomeni 103:7b566b522427 207
ocomeni 103:7b566b522427 208 extern uint8_t store_wifi_pwd(const char *pwd);
ocomeni 103:7b566b522427 209
ocomeni 103:7b566b522427 210 extern uint8_t write_wifi_details_to_sd(void);
ocomeni 103:7b566b522427 211
ocomeni 103:7b566b522427 212 extern uint8_t store_web_addr(const char *web_addr);
ocomeni 103:7b566b522427 213
ocomeni 103:7b566b522427 214 extern uint8_t write_web_addr_to_sd(void);
ocomeni 103:7b566b522427 215
ocomeni 103:7b566b522427 216 extern const uint8_t* get_ublox_fw_ver_bytes(void);
ocomeni 103:7b566b522427 217
ocomeni 103:7b566b522427 218 extern void set_comms_indicator_leds();
ocomeni 103:7b566b522427 219
ocomeni 103:7b566b522427 220 extern void set_cloud_conn_error_status(uint8_t status);
ocomeni 103:7b566b522427 221
ocomeni 103:7b566b522427 222 extern void set_capsule_conn_error_status(uint8_t status);
ocomeni 103:7b566b522427 223
ocomeni 103:7b566b522427 224 extern void set_wifi_link_active_status(uint8_t status);
ocomeni 103:7b566b522427 225
ocomeni 103:7b566b522427 226 extern void read_wifi_details_from_sd(void);
ocomeni 103:7b566b522427 227
ocomeni 103:7b566b522427 228 extern void read_cloud_details_from_sd(void);
ocomeni 103:7b566b522427 229
ocomeni 103:7b566b522427 230 extern void print_wifi_details(void);
ocomeni 103:7b566b522427 231
ocomeni 103:7b566b522427 232 extern void print_cloud_details(void);
ocomeni 103:7b566b522427 233
ocomeni 103:7b566b522427 234 //----------------------------------------------------------------------------//
ocomeni 103:7b566b522427 235
ocomeni 103:7b566b522427 236 #endif /* BLUETOOTH_H */
ocomeni 103:7b566b522427 237