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

Dependencies:   mbed-http

Committer:
ocomeni
Date:
Tue Mar 26 23:33:51 2019 +0000
Revision:
83:9c271a50a70b
Parent:
81:637a87eb8170
Child:
84:7c7add00f4bf
implemented parser for header

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 80:e8f0e92e3ac9 7 #include "common_config.h"
ocomeni 78:07bb86e3ce14 8 #define BLE_MAX_DEVICE_NAME_LEN 10
ocomeni 78:07bb86e3ce14 9 #define MAX_SSID_LEN 32
ocomeni 78:07bb86e3ce14 10 #define MAX_PASSKEY_LEN 32
ocomeni 78:07bb86e3ce14 11
ocomeni 78:07bb86e3ce14 12 /** ble configuration structure
ocomeni 78:07bb86e3ce14 13 */
ocomeni 78:07bb86e3ce14 14 typedef struct ble_config {
ocomeni 79:a2187bbfa407 15 char deviceName[BLE_MAX_DEVICE_NAME_LEN]; /* BLE Device Name */
ocomeni 79:a2187bbfa407 16 uint16_t advInterval; /* advertising interval in msecs */
ocomeni 79:a2187bbfa407 17 uint16_t advTimeout; /* advertising timeout in secs */
ocomeni 79:a2187bbfa407 18 //Passkey_t pairingKey; /* pairing Key */
ocomeni 79:a2187bbfa407 19 uint8_t pairingKey[6]; /* pairing Key */
ocomeni 78:07bb86e3ce14 20 } ble_config_t;
ocomeni 78:07bb86e3ce14 21
ocomeni 78:07bb86e3ce14 22 /** ble configuration structure
ocomeni 78:07bb86e3ce14 23 */
ocomeni 78:07bb86e3ce14 24 typedef struct wifi_config {
ocomeni 78:07bb86e3ce14 25 char ssid[MAX_SSID_LEN]; /* WiFi SSID */
ocomeni 78:07bb86e3ce14 26 char pass[MAX_PASSKEY_LEN]; /* WiFi Passkey */
ocomeni 78:07bb86e3ce14 27 nsapi_security_t security; /* WiFi security */
ocomeni 78:07bb86e3ce14 28 } wifi_config_t;
ocomeni 78:07bb86e3ce14 29
ocomeni 78:07bb86e3ce14 30 /** ble configuration structure
ocomeni 78:07bb86e3ce14 31 */
ocomeni 78:07bb86e3ce14 32 typedef struct app_config {
ocomeni 78:07bb86e3ce14 33 wifi_config_t wifi_config; /* wifi configuration */
ocomeni 78:07bb86e3ce14 34 ble_config_t ble_config; /* ble configuration */
ocomeni 78:07bb86e3ce14 35 } app_config_t;
ocomeni 78:07bb86e3ce14 36
ocomeni 78:07bb86e3ce14 37
ocomeni 79:a2187bbfa407 38 typedef enum wifi_cmd
ocomeni 79:a2187bbfa407 39 {
ocomeni 79:a2187bbfa407 40 WIFI_CMD_NONE,
ocomeni 81:637a87eb8170 41 WIFI_CMD_CONFIG,
ocomeni 81:637a87eb8170 42 WIFI_CMD_INTERNET_CONFIG,
ocomeni 79:a2187bbfa407 43 WIFI_CMD_SCAN,
ocomeni 81:637a87eb8170 44 WIFI_CMD_DETAILED_SCAN,
ocomeni 79:a2187bbfa407 45 WIFI_CMD_CONNECT,
ocomeni 79:a2187bbfa407 46 WIFI_CMD_DISCONNECT,
ocomeni 79:a2187bbfa407 47 WIFI_CMD_SEND_HTTPS_REQ,
ocomeni 79:a2187bbfa407 48 WIFI_CMD_SEND_HTTP_REQ
ocomeni 79:a2187bbfa407 49 }wifi_cmd_t;
ocomeni 79:a2187bbfa407 50
ocomeni 81:637a87eb8170 51 typedef enum at_cmd_resp
ocomeni 81:637a87eb8170 52 {
ocomeni 81:637a87eb8170 53 AT_RESP_NONE,
ocomeni 81:637a87eb8170 54 AT_SCAN_RESP,
ocomeni 81:637a87eb8170 55 AT_DETAILED_SCAN_RESP,
ocomeni 81:637a87eb8170 56 AT_CONNECT_RESP,
ocomeni 81:637a87eb8170 57 AT_DISCONNECT_RESP,
ocomeni 81:637a87eb8170 58 WIFI_RECONNECT_INFO,
ocomeni 81:637a87eb8170 59 WIFI_DISCONNECT_INFO,
ocomeni 81:637a87eb8170 60 AT_CONFIG_RESP,
ocomeni 81:637a87eb8170 61 AT_INTERNET_CONFIG_RESP,
ocomeni 81:637a87eb8170 62 AT_HTTPS_RESP,
ocomeni 81:637a87eb8170 63 AT_HTTP_RESP
ocomeni 81:637a87eb8170 64 }at_cmd_resp_t;
ocomeni 81:637a87eb8170 65
ocomeni 81:637a87eb8170 66
ocomeni 81:637a87eb8170 67 typedef enum at_data_mode
ocomeni 81:637a87eb8170 68 {
ocomeni 81:637a87eb8170 69 AT_CMD_DATA_MODE,
ocomeni 81:637a87eb8170 70 AT_STD_DATA_MODE,
ocomeni 81:637a87eb8170 71 AT_EXT_DATA_MODE
ocomeni 81:637a87eb8170 72 }at_data_mode_t;
ocomeni 81:637a87eb8170 73
ocomeni 83:9c271a50a70b 74 typedef enum edm_payload_id
ocomeni 83:9c271a50a70b 75 {
ocomeni 83:9c271a50a70b 76 CONNECT_EVENT = 0x0011,
ocomeni 83:9c271a50a70b 77 DISCONNECT_EVENT = 0x0021,
ocomeni 83:9c271a50a70b 78 DATA_EVENT = 0x0031,
ocomeni 83:9c271a50a70b 79 DATA_COMMAND = 0x0036,
ocomeni 83:9c271a50a70b 80 AT_REQUEST = 0x0044,
ocomeni 83:9c271a50a70b 81 AT_CONFIRMATION = 0x0045,
ocomeni 83:9c271a50a70b 82 AT_EVENT = 0x0041
ocomeni 83:9c271a50a70b 83 }edm_payload_id_t;
ocomeni 83:9c271a50a70b 84
ocomeni 81:637a87eb8170 85 typedef enum conn_scheme
ocomeni 81:637a87eb8170 86 {
ocomeni 81:637a87eb8170 87 INVALID_SCHEME,
ocomeni 81:637a87eb8170 88 ALWAYS_CONNECTED,
ocomeni 81:637a87eb8170 89 EXTERNAL_CONNECT
ocomeni 81:637a87eb8170 90 }conn_scheme_t;
ocomeni 81:637a87eb8170 91
ocomeni 79:a2187bbfa407 92
ocomeni 79:a2187bbfa407 93 typedef struct {
ocomeni 79:a2187bbfa407 94 wifi_cmd_t wifi_cmd; /* wifi command */
ocomeni 79:a2187bbfa407 95 } wifi_cmd_message_t;
ocomeni 79:a2187bbfa407 96
ocomeni 80:e8f0e92e3ac9 97 typedef struct {
ocomeni 81:637a87eb8170 98 at_cmd_resp_t at_resp; /* AT response */
ocomeni 81:637a87eb8170 99 } at_resp_message_t;
ocomeni 81:637a87eb8170 100
ocomeni 81:637a87eb8170 101 typedef struct {
ocomeni 80:e8f0e92e3ac9 102 wifi_cmd_t wifi_cmd; /* wifi data command */
ocomeni 81:637a87eb8170 103 int dataLen; /* size of data in buffer */
ocomeni 81:637a87eb8170 104 uint8_t buffer[TX_BUFFER_LEN]; /* buffer length */
ocomeni 80:e8f0e92e3ac9 105 } wifi_data_msg_t;
ocomeni 80:e8f0e92e3ac9 106
ocomeni 81:637a87eb8170 107 typedef struct {
ocomeni 81:637a87eb8170 108 at_cmd_resp_t at_resp; /* AT response */
ocomeni 81:637a87eb8170 109 int dataLen; /* size of data in buffer */
ocomeni 81:637a87eb8170 110 uint8_t buffer[TX_BUFFER_LEN]; /* buffer length */
ocomeni 81:637a87eb8170 111 } at_data_msg_t;
ocomeni 81:637a87eb8170 112
ocomeni 81:637a87eb8170 113 typedef struct {
ocomeni 81:637a87eb8170 114 string hostName; /* host name */
ocomeni 81:637a87eb8170 115 string contentType; /* content type */
ocomeni 81:637a87eb8170 116 int bodyLen; /* body length */
ocomeni 81:637a87eb8170 117 uint8_t body[900]; /* body */
ocomeni 81:637a87eb8170 118 } http_post_request_t;
ocomeni 81:637a87eb8170 119
ocomeni 81:637a87eb8170 120 typedef struct {
ocomeni 83:9c271a50a70b 121 uint8_t startByte; /* start Byte 0xAA */
ocomeni 83:9c271a50a70b 122 uint16_t payloadLen; /* payload Length */
ocomeni 83:9c271a50a70b 123 uint16_t payloadID; /* payload identifier */
ocomeni 83:9c271a50a70b 124 } edm_header_t;
ocomeni 83:9c271a50a70b 125
ocomeni 83:9c271a50a70b 126 typedef struct {
ocomeni 81:637a87eb8170 127 string contentType; /* content type */
ocomeni 81:637a87eb8170 128 int bodyLen; /* body length */
ocomeni 81:637a87eb8170 129 uint8_t body[900]; /* body */
ocomeni 81:637a87eb8170 130 } http_response_t;
ocomeni 81:637a87eb8170 131
ocomeni 81:637a87eb8170 132 typedef struct {
ocomeni 81:637a87eb8170 133 uint8_t peer_id ; /* peer id */
ocomeni 81:637a87eb8170 134 conn_scheme_t connectionScheme; /* connection scheme */
ocomeni 81:637a87eb8170 135 string url; /* body */
ocomeni 81:637a87eb8170 136 } internet_config_t;
ocomeni 81:637a87eb8170 137
ocomeni 83:9c271a50a70b 138 #define EDM_START_BYTE 0xAA
ocomeni 83:9c271a50a70b 139 #define EDM_STOP_BYTE 0x55
ocomeni 83:9c271a50a70b 140 #define EDM_HDR_LEN 5
ocomeni 83:9c271a50a70b 141 #define MAX_EDM_PAYLOAD_LEN (4096-1)
ocomeni 83:9c271a50a70b 142 #define MIN_EDM_PAYLOAD_LEN (2)
ocomeni 78:07bb86e3ce14 143 #endif // __COMMON_TYPES_H__