
this is using the mbed os version 5-13-1
source/ublox.h@129:590bdc2dcf5b, 2019-07-19 (annotated)
- 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?
User | Revision | Line number | New 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 |