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

Dependencies:   mbed-http

Committer:
ocomeni
Date:
Mon Apr 22 11:11:41 2019 +0000
Revision:
99:05398b3184f8
Parent:
95:290859010c8c
Child:
100:80ef4bc31b7a
failing at internet url configuration and verification.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ocomeni 78:07bb86e3ce14 1 #ifndef __COMMON_TYPES_H__
ocomeni 78:07bb86e3ce14 2 #define __COMMON_TYPES_H__
ocomeni 78:07bb86e3ce14 3 #include <mbed.h>
ocomeni 81:637a87eb8170 4 #include <string>
ocomeni 79:a2187bbfa407 5 #include "ble/BLE.h"
ocomeni 79:a2187bbfa407 6 #include "SecurityManager.h"
ocomeni 84:7c7add00f4bf 7 #include "http_request.h"
ocomeni 80:e8f0e92e3ac9 8 #include "common_config.h"
ocomeni 78:07bb86e3ce14 9 #define BLE_MAX_DEVICE_NAME_LEN 10
ocomeni 78:07bb86e3ce14 10 #define MAX_SSID_LEN 32
ocomeni 78:07bb86e3ce14 11 #define MAX_PASSKEY_LEN 32
ocomeni 84:7c7add00f4bf 12 #define EDM_START_BYTE 0xAA
ocomeni 84:7c7add00f4bf 13 #define EDM_STOP_BYTE 0x55
ocomeni 90:ed0267eca7b5 14 #define EDM_HDR_LEN 6
ocomeni 84:7c7add00f4bf 15 #define MAX_EDM_PAYLOAD_LEN (4096-1)
ocomeni 84:7c7add00f4bf 16 #define MIN_EDM_PAYLOAD_LEN (2)
ocomeni 84:7c7add00f4bf 17 #define MAX_HTTP_HEADER_LINES
ocomeni 84:7c7add00f4bf 18 #define MAX_URL_LEN 100
ocomeni 78:07bb86e3ce14 19
ocomeni 78:07bb86e3ce14 20 /** ble configuration structure
ocomeni 78:07bb86e3ce14 21 */
ocomeni 92:ec9550034276 22 typedef struct {
ocomeni 79:a2187bbfa407 23 char deviceName[BLE_MAX_DEVICE_NAME_LEN]; /* BLE Device Name */
ocomeni 79:a2187bbfa407 24 uint16_t advInterval; /* advertising interval in msecs */
ocomeni 79:a2187bbfa407 25 uint16_t advTimeout; /* advertising timeout in secs */
ocomeni 79:a2187bbfa407 26 //Passkey_t pairingKey; /* pairing Key */
ocomeni 79:a2187bbfa407 27 uint8_t pairingKey[6]; /* pairing Key */
ocomeni 78:07bb86e3ce14 28 } ble_config_t;
ocomeni 78:07bb86e3ce14 29
ocomeni 78:07bb86e3ce14 30 /** ble configuration structure
ocomeni 78:07bb86e3ce14 31 */
ocomeni 92:ec9550034276 32 typedef struct {
ocomeni 78:07bb86e3ce14 33 char ssid[MAX_SSID_LEN]; /* WiFi SSID */
ocomeni 78:07bb86e3ce14 34 char pass[MAX_PASSKEY_LEN]; /* WiFi Passkey */
ocomeni 78:07bb86e3ce14 35 nsapi_security_t security; /* WiFi security */
ocomeni 78:07bb86e3ce14 36 } wifi_config_t;
ocomeni 78:07bb86e3ce14 37
ocomeni 78:07bb86e3ce14 38 /** ble configuration structure
ocomeni 78:07bb86e3ce14 39 */
ocomeni 92:ec9550034276 40 typedef struct {
ocomeni 78:07bb86e3ce14 41 wifi_config_t wifi_config; /* wifi configuration */
ocomeni 78:07bb86e3ce14 42 ble_config_t ble_config; /* ble configuration */
ocomeni 78:07bb86e3ce14 43 } app_config_t;
ocomeni 78:07bb86e3ce14 44
ocomeni 78:07bb86e3ce14 45
ocomeni 92:ec9550034276 46 typedef enum
ocomeni 79:a2187bbfa407 47 {
ocomeni 95:290859010c8c 48 WIFI_CONFIG_RESET,
ocomeni 95:290859010c8c 49 WIFI_CONFIG_STORE,
ocomeni 95:290859010c8c 50 WIFI_CONFIG_LOAD,
ocomeni 95:290859010c8c 51 WIFI_CONFIG_ACTIVATE,
ocomeni 95:290859010c8c 52 WIFI_CONFIG_DEACTIVATE
ocomeni 95:290859010c8c 53 }action_id_t;
ocomeni 95:290859010c8c 54
ocomeni 95:290859010c8c 55
ocomeni 95:290859010c8c 56 typedef enum
ocomeni 95:290859010c8c 57 {
ocomeni 79:a2187bbfa407 58 WIFI_CMD_NONE,
ocomeni 81:637a87eb8170 59 WIFI_CMD_CONFIG,
ocomeni 81:637a87eb8170 60 WIFI_CMD_INTERNET_CONFIG,
ocomeni 79:a2187bbfa407 61 WIFI_CMD_SCAN,
ocomeni 81:637a87eb8170 62 WIFI_CMD_DETAILED_SCAN,
ocomeni 79:a2187bbfa407 63 WIFI_CMD_CONNECT,
ocomeni 79:a2187bbfa407 64 WIFI_CMD_DISCONNECT,
ocomeni 95:290859010c8c 65 WIFI_CMD_NETWORK_STATUS,
ocomeni 95:290859010c8c 66 WIFI_CMD_WIFI_STATUS,
ocomeni 79:a2187bbfa407 67 WIFI_CMD_SEND_HTTPS_REQ,
ocomeni 79:a2187bbfa407 68 WIFI_CMD_SEND_HTTP_REQ
ocomeni 79:a2187bbfa407 69 }wifi_cmd_t;
ocomeni 79:a2187bbfa407 70
ocomeni 92:ec9550034276 71 typedef enum
ocomeni 81:637a87eb8170 72 {
ocomeni 81:637a87eb8170 73 AT_RESP_NONE,
ocomeni 81:637a87eb8170 74 AT_SCAN_RESP,
ocomeni 81:637a87eb8170 75 AT_DETAILED_SCAN_RESP,
ocomeni 81:637a87eb8170 76 AT_CONNECT_RESP,
ocomeni 81:637a87eb8170 77 AT_DISCONNECT_RESP,
ocomeni 81:637a87eb8170 78 WIFI_RECONNECT_INFO,
ocomeni 81:637a87eb8170 79 WIFI_DISCONNECT_INFO,
ocomeni 81:637a87eb8170 80 AT_CONFIG_RESP,
ocomeni 81:637a87eb8170 81 AT_INTERNET_CONFIG_RESP,
ocomeni 95:290859010c8c 82 AT_NETWORK_STATUS_RESP,
ocomeni 95:290859010c8c 83 AT_WIFI_STATUS_RESP,
ocomeni 81:637a87eb8170 84 AT_HTTPS_RESP,
ocomeni 89:45f6db09a76d 85 AT_HTTPS_RESP_DOWNLOAD,
ocomeni 89:45f6db09a76d 86 AT_HTTP_RESP,
ocomeni 93:06e755a80187 87 AT_HTTP_RESP_DOWNLOAD,
ocomeni 99:05398b3184f8 88 CONNECT_EVENT,
ocomeni 99:05398b3184f8 89 DATA_EVENT,
ocomeni 93:06e755a80187 90 AT_COMMAND_FAILED
ocomeni 81:637a87eb8170 91 }at_cmd_resp_t;
ocomeni 81:637a87eb8170 92
ocomeni 90:ed0267eca7b5 93 typedef enum edm_msg_id
ocomeni 90:ed0267eca7b5 94 {
ocomeni 90:ed0267eca7b5 95 CONNECT_MSG_ID = 0x0010,
ocomeni 90:ed0267eca7b5 96 DISCONNECT_MSG_ID = 0x0020,
ocomeni 90:ed0267eca7b5 97 DATA_MSG_ID = 0x0030,
ocomeni 90:ed0267eca7b5 98 AT_MSG_ID = 0x0040
ocomeni 90:ed0267eca7b5 99 }edm_msg_id_t;
ocomeni 90:ed0267eca7b5 100
ocomeni 90:ed0267eca7b5 101
ocomeni 90:ed0267eca7b5 102 typedef enum edm_msg_type
ocomeni 90:ed0267eca7b5 103 {
ocomeni 90:ed0267eca7b5 104 EVENT_MSG_TYPE = 0x01,
ocomeni 90:ed0267eca7b5 105 INDICATION_MSG_TYPE = 0x02,
ocomeni 90:ed0267eca7b5 106 RESPONSE_MSG_TYPE = 0x03,
ocomeni 90:ed0267eca7b5 107 REQUEST_MSG_TYPE = 0x04,
ocomeni 90:ed0267eca7b5 108 CONFIRMATION_MSG_TYPE = 0x05,
ocomeni 90:ed0267eca7b5 109 COMMAND_MSG_TYPE = 0x06
ocomeni 90:ed0267eca7b5 110 }edm_msg_type_t;
ocomeni 90:ed0267eca7b5 111
ocomeni 90:ed0267eca7b5 112 typedef enum channel_id
ocomeni 90:ed0267eca7b5 113 {
ocomeni 90:ed0267eca7b5 114 WIFI_CHANNEL = 0x00,
ocomeni 93:06e755a80187 115 BLE_CHANNEL = 0x01,
ocomeni 93:06e755a80187 116 NO_CHANNEL = 0xFF
ocomeni 90:ed0267eca7b5 117 }channel_id_t;
ocomeni 90:ed0267eca7b5 118
ocomeni 90:ed0267eca7b5 119
ocomeni 81:637a87eb8170 120
ocomeni 81:637a87eb8170 121 typedef enum at_data_mode
ocomeni 81:637a87eb8170 122 {
ocomeni 81:637a87eb8170 123 AT_CMD_DATA_MODE,
ocomeni 81:637a87eb8170 124 AT_STD_DATA_MODE,
ocomeni 81:637a87eb8170 125 AT_EXT_DATA_MODE
ocomeni 81:637a87eb8170 126 }at_data_mode_t;
ocomeni 81:637a87eb8170 127
ocomeni 83:9c271a50a70b 128 typedef enum edm_payload_id
ocomeni 83:9c271a50a70b 129 {
ocomeni 99:05398b3184f8 130 CONNECT_EVENT_ID = 0x0011,
ocomeni 99:05398b3184f8 131 DISCONNECT_EVENT_ID = 0x0021,
ocomeni 99:05398b3184f8 132 DATA_EVENT_ID = 0x0031,
ocomeni 99:05398b3184f8 133 DATA_COMMAND_ID = 0x0036,
ocomeni 99:05398b3184f8 134 AT_REQUEST_ID = 0x0044,
ocomeni 99:05398b3184f8 135 AT_CONFIRMATION_ID = 0x0045,
ocomeni 99:05398b3184f8 136 AT_EVENT_ID = 0x0041
ocomeni 83:9c271a50a70b 137 }edm_payload_id_t;
ocomeni 83:9c271a50a70b 138
ocomeni 81:637a87eb8170 139 typedef enum conn_scheme
ocomeni 81:637a87eb8170 140 {
ocomeni 81:637a87eb8170 141 INVALID_SCHEME,
ocomeni 81:637a87eb8170 142 ALWAYS_CONNECTED,
ocomeni 81:637a87eb8170 143 EXTERNAL_CONNECT
ocomeni 81:637a87eb8170 144 }conn_scheme_t;
ocomeni 81:637a87eb8170 145
ocomeni 79:a2187bbfa407 146
ocomeni 79:a2187bbfa407 147 typedef struct {
ocomeni 79:a2187bbfa407 148 wifi_cmd_t wifi_cmd; /* wifi command */
ocomeni 93:06e755a80187 149 uint8_t padding[4-sizeof(wifi_cmd_t)]; /* padding */
ocomeni 79:a2187bbfa407 150 } wifi_cmd_message_t;
ocomeni 79:a2187bbfa407 151
ocomeni 80:e8f0e92e3ac9 152 typedef struct {
ocomeni 81:637a87eb8170 153 at_cmd_resp_t at_resp; /* AT response */
ocomeni 81:637a87eb8170 154 } at_resp_message_t;
ocomeni 81:637a87eb8170 155
ocomeni 81:637a87eb8170 156 typedef struct {
ocomeni 80:e8f0e92e3ac9 157 wifi_cmd_t wifi_cmd; /* wifi data command */
ocomeni 93:06e755a80187 158 uint8_t padding[4-sizeof(wifi_cmd_t)]; /* padding */
ocomeni 81:637a87eb8170 159 int dataLen; /* size of data in buffer */
ocomeni 81:637a87eb8170 160 uint8_t buffer[TX_BUFFER_LEN]; /* buffer length */
ocomeni 80:e8f0e92e3ac9 161 } wifi_data_msg_t;
ocomeni 80:e8f0e92e3ac9 162
ocomeni 81:637a87eb8170 163 typedef struct {
ocomeni 81:637a87eb8170 164 at_cmd_resp_t at_resp; /* AT response */
ocomeni 81:637a87eb8170 165 int dataLen; /* size of data in buffer */
ocomeni 81:637a87eb8170 166 uint8_t buffer[TX_BUFFER_LEN]; /* buffer length */
ocomeni 81:637a87eb8170 167 } at_data_msg_t;
ocomeni 81:637a87eb8170 168
ocomeni 81:637a87eb8170 169 typedef struct {
ocomeni 84:7c7add00f4bf 170 http_method method; /* POST/GET etc... */
ocomeni 90:ed0267eca7b5 171 char * request_URI; /* request URI/path */
ocomeni 90:ed0267eca7b5 172 char * http_version; /* http verstion HTTP/1.1 */
ocomeni 90:ed0267eca7b5 173 char * hostName; /* host name */
ocomeni 90:ed0267eca7b5 174 char * AcceptVal; /* types accepted */
ocomeni 90:ed0267eca7b5 175 char * contentType; /* content type */
ocomeni 90:ed0267eca7b5 176 char * contentLen; /* content length */
ocomeni 90:ed0267eca7b5 177 uint8_t * body; /* body */
ocomeni 90:ed0267eca7b5 178 uint8_t buffer[TX_BUFFER_LEN - 8*sizeof(char *)
ocomeni 90:ed0267eca7b5 179 - sizeof(http_method)]; // buffer
ocomeni 84:7c7add00f4bf 180 } http_request_t;
ocomeni 81:637a87eb8170 181
ocomeni 81:637a87eb8170 182 typedef struct {
ocomeni 83:9c271a50a70b 183 uint8_t startByte; /* start Byte 0xAA */
ocomeni 83:9c271a50a70b 184 uint16_t payloadLen; /* payload Length */
ocomeni 83:9c271a50a70b 185 uint16_t payloadID; /* payload identifier */
ocomeni 90:ed0267eca7b5 186 channel_id_t channel_id; /* channel_id_t*/
ocomeni 83:9c271a50a70b 187 } edm_header_t;
ocomeni 83:9c271a50a70b 188
ocomeni 83:9c271a50a70b 189 typedef struct {
ocomeni 81:637a87eb8170 190 string contentType; /* content type */
ocomeni 81:637a87eb8170 191 int bodyLen; /* body length */
ocomeni 81:637a87eb8170 192 uint8_t body[900]; /* body */
ocomeni 81:637a87eb8170 193 } http_response_t;
ocomeni 81:637a87eb8170 194
ocomeni 81:637a87eb8170 195 typedef struct {
ocomeni 81:637a87eb8170 196 uint8_t peer_id ; /* peer id */
ocomeni 81:637a87eb8170 197 conn_scheme_t connectionScheme; /* connection scheme */
ocomeni 90:ed0267eca7b5 198 char url[MAX_URL_LEN]; /* url string */
ocomeni 81:637a87eb8170 199 } internet_config_t;
ocomeni 81:637a87eb8170 200
ocomeni 78:07bb86e3ce14 201 #endif // __COMMON_TYPES_H__