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

Dependencies:   mbed-http

Committer:
ocomeni
Date:
Mon Apr 01 08:00:41 2019 +0000
Revision:
89:45f6db09a76d
Parent:
87:99b37d26ff2a
Child:
90:ed0267eca7b5
download working ok. still need to fix memory leak.

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 84:7c7add00f4bf 14 #define EDM_HDR_LEN 5
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 78:07bb86e3ce14 22 typedef struct ble_config {
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 78:07bb86e3ce14 32 typedef struct wifi_config {
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 78:07bb86e3ce14 40 typedef struct app_config {
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 79:a2187bbfa407 46 typedef enum wifi_cmd
ocomeni 79:a2187bbfa407 47 {
ocomeni 79:a2187bbfa407 48 WIFI_CMD_NONE,
ocomeni 81:637a87eb8170 49 WIFI_CMD_CONFIG,
ocomeni 81:637a87eb8170 50 WIFI_CMD_INTERNET_CONFIG,
ocomeni 79:a2187bbfa407 51 WIFI_CMD_SCAN,
ocomeni 81:637a87eb8170 52 WIFI_CMD_DETAILED_SCAN,
ocomeni 79:a2187bbfa407 53 WIFI_CMD_CONNECT,
ocomeni 79:a2187bbfa407 54 WIFI_CMD_DISCONNECT,
ocomeni 79:a2187bbfa407 55 WIFI_CMD_SEND_HTTPS_REQ,
ocomeni 79:a2187bbfa407 56 WIFI_CMD_SEND_HTTP_REQ
ocomeni 79:a2187bbfa407 57 }wifi_cmd_t;
ocomeni 79:a2187bbfa407 58
ocomeni 81:637a87eb8170 59 typedef enum at_cmd_resp
ocomeni 81:637a87eb8170 60 {
ocomeni 81:637a87eb8170 61 AT_RESP_NONE,
ocomeni 81:637a87eb8170 62 AT_SCAN_RESP,
ocomeni 81:637a87eb8170 63 AT_DETAILED_SCAN_RESP,
ocomeni 81:637a87eb8170 64 AT_CONNECT_RESP,
ocomeni 81:637a87eb8170 65 AT_DISCONNECT_RESP,
ocomeni 81:637a87eb8170 66 WIFI_RECONNECT_INFO,
ocomeni 81:637a87eb8170 67 WIFI_DISCONNECT_INFO,
ocomeni 81:637a87eb8170 68 AT_CONFIG_RESP,
ocomeni 81:637a87eb8170 69 AT_INTERNET_CONFIG_RESP,
ocomeni 81:637a87eb8170 70 AT_HTTPS_RESP,
ocomeni 89:45f6db09a76d 71 AT_HTTPS_RESP_DOWNLOAD,
ocomeni 89:45f6db09a76d 72 AT_HTTP_RESP,
ocomeni 89:45f6db09a76d 73 AT_HTTP_RESP_DOWNLOAD
ocomeni 81:637a87eb8170 74 }at_cmd_resp_t;
ocomeni 81:637a87eb8170 75
ocomeni 81:637a87eb8170 76
ocomeni 81:637a87eb8170 77 typedef enum at_data_mode
ocomeni 81:637a87eb8170 78 {
ocomeni 81:637a87eb8170 79 AT_CMD_DATA_MODE,
ocomeni 81:637a87eb8170 80 AT_STD_DATA_MODE,
ocomeni 81:637a87eb8170 81 AT_EXT_DATA_MODE
ocomeni 81:637a87eb8170 82 }at_data_mode_t;
ocomeni 81:637a87eb8170 83
ocomeni 83:9c271a50a70b 84 typedef enum edm_payload_id
ocomeni 83:9c271a50a70b 85 {
ocomeni 83:9c271a50a70b 86 CONNECT_EVENT = 0x0011,
ocomeni 83:9c271a50a70b 87 DISCONNECT_EVENT = 0x0021,
ocomeni 83:9c271a50a70b 88 DATA_EVENT = 0x0031,
ocomeni 83:9c271a50a70b 89 DATA_COMMAND = 0x0036,
ocomeni 83:9c271a50a70b 90 AT_REQUEST = 0x0044,
ocomeni 83:9c271a50a70b 91 AT_CONFIRMATION = 0x0045,
ocomeni 83:9c271a50a70b 92 AT_EVENT = 0x0041
ocomeni 83:9c271a50a70b 93 }edm_payload_id_t;
ocomeni 83:9c271a50a70b 94
ocomeni 81:637a87eb8170 95 typedef enum conn_scheme
ocomeni 81:637a87eb8170 96 {
ocomeni 81:637a87eb8170 97 INVALID_SCHEME,
ocomeni 81:637a87eb8170 98 ALWAYS_CONNECTED,
ocomeni 81:637a87eb8170 99 EXTERNAL_CONNECT
ocomeni 81:637a87eb8170 100 }conn_scheme_t;
ocomeni 81:637a87eb8170 101
ocomeni 79:a2187bbfa407 102
ocomeni 79:a2187bbfa407 103 typedef struct {
ocomeni 79:a2187bbfa407 104 wifi_cmd_t wifi_cmd; /* wifi command */
ocomeni 79:a2187bbfa407 105 } wifi_cmd_message_t;
ocomeni 79:a2187bbfa407 106
ocomeni 80:e8f0e92e3ac9 107 typedef struct {
ocomeni 81:637a87eb8170 108 at_cmd_resp_t at_resp; /* AT response */
ocomeni 81:637a87eb8170 109 } at_resp_message_t;
ocomeni 81:637a87eb8170 110
ocomeni 81:637a87eb8170 111 typedef struct {
ocomeni 80:e8f0e92e3ac9 112 wifi_cmd_t wifi_cmd; /* wifi data command */
ocomeni 81:637a87eb8170 113 int dataLen; /* size of data in buffer */
ocomeni 81:637a87eb8170 114 uint8_t buffer[TX_BUFFER_LEN]; /* buffer length */
ocomeni 80:e8f0e92e3ac9 115 } wifi_data_msg_t;
ocomeni 80:e8f0e92e3ac9 116
ocomeni 81:637a87eb8170 117 typedef struct {
ocomeni 81:637a87eb8170 118 at_cmd_resp_t at_resp; /* AT response */
ocomeni 81:637a87eb8170 119 int dataLen; /* size of data in buffer */
ocomeni 81:637a87eb8170 120 uint8_t buffer[TX_BUFFER_LEN]; /* buffer length */
ocomeni 81:637a87eb8170 121 } at_data_msg_t;
ocomeni 81:637a87eb8170 122
ocomeni 81:637a87eb8170 123 typedef struct {
ocomeni 84:7c7add00f4bf 124 http_method method; /* POST/GET etc... */
ocomeni 87:99b37d26ff2a 125 std::string request_URI; /* request URI/path */
ocomeni 87:99b37d26ff2a 126 std::string http_version; /* http verstion HTTP/1.1 */
ocomeni 87:99b37d26ff2a 127 std::string hostName; /* host name */
ocomeni 87:99b37d26ff2a 128 std::string AcceptVal; /* types accepted */
ocomeni 87:99b37d26ff2a 129 std::string contentType; /* content type */
ocomeni 87:99b37d26ff2a 130 std::string contentLen; /* content length as string */
ocomeni 81:637a87eb8170 131 uint8_t body[900]; /* body */
ocomeni 84:7c7add00f4bf 132 } http_request_t;
ocomeni 81:637a87eb8170 133
ocomeni 81:637a87eb8170 134 typedef struct {
ocomeni 83:9c271a50a70b 135 uint8_t startByte; /* start Byte 0xAA */
ocomeni 83:9c271a50a70b 136 uint16_t payloadLen; /* payload Length */
ocomeni 83:9c271a50a70b 137 uint16_t payloadID; /* payload identifier */
ocomeni 83:9c271a50a70b 138 } edm_header_t;
ocomeni 83:9c271a50a70b 139
ocomeni 83:9c271a50a70b 140 typedef struct {
ocomeni 81:637a87eb8170 141 string contentType; /* content type */
ocomeni 81:637a87eb8170 142 int bodyLen; /* body length */
ocomeni 81:637a87eb8170 143 uint8_t body[900]; /* body */
ocomeni 81:637a87eb8170 144 } http_response_t;
ocomeni 81:637a87eb8170 145
ocomeni 81:637a87eb8170 146 typedef struct {
ocomeni 81:637a87eb8170 147 uint8_t peer_id ; /* peer id */
ocomeni 81:637a87eb8170 148 conn_scheme_t connectionScheme; /* connection scheme */
ocomeni 84:7c7add00f4bf 149 //string * url; /* body */
ocomeni 84:7c7add00f4bf 150 char url[MAX_URL_LEN]; /* body */
ocomeni 81:637a87eb8170 151 } internet_config_t;
ocomeni 81:637a87eb8170 152
ocomeni 78:07bb86e3ce14 153 #endif // __COMMON_TYPES_H__