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

Dependencies:   mbed-http

Committer:
ocomeni
Date:
Sat Mar 23 16:28:34 2019 +0000
Revision:
81:637a87eb8170
Parent:
80:e8f0e92e3ac9
Child:
83:9c271a50a70b
first data queue/dequeue implemented for internet configuration.

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 81:637a87eb8170 74 typedef enum conn_scheme
ocomeni 81:637a87eb8170 75 {
ocomeni 81:637a87eb8170 76 INVALID_SCHEME,
ocomeni 81:637a87eb8170 77 ALWAYS_CONNECTED,
ocomeni 81:637a87eb8170 78 EXTERNAL_CONNECT
ocomeni 81:637a87eb8170 79 }conn_scheme_t;
ocomeni 81:637a87eb8170 80
ocomeni 79:a2187bbfa407 81
ocomeni 79:a2187bbfa407 82 typedef struct {
ocomeni 79:a2187bbfa407 83 wifi_cmd_t wifi_cmd; /* wifi command */
ocomeni 79:a2187bbfa407 84 } wifi_cmd_message_t;
ocomeni 79:a2187bbfa407 85
ocomeni 80:e8f0e92e3ac9 86 typedef struct {
ocomeni 81:637a87eb8170 87 at_cmd_resp_t at_resp; /* AT response */
ocomeni 81:637a87eb8170 88 } at_resp_message_t;
ocomeni 81:637a87eb8170 89
ocomeni 81:637a87eb8170 90 typedef struct {
ocomeni 80:e8f0e92e3ac9 91 wifi_cmd_t wifi_cmd; /* wifi data command */
ocomeni 81:637a87eb8170 92 int dataLen; /* size of data in buffer */
ocomeni 81:637a87eb8170 93 uint8_t buffer[TX_BUFFER_LEN]; /* buffer length */
ocomeni 80:e8f0e92e3ac9 94 } wifi_data_msg_t;
ocomeni 80:e8f0e92e3ac9 95
ocomeni 81:637a87eb8170 96 typedef struct {
ocomeni 81:637a87eb8170 97 at_cmd_resp_t at_resp; /* AT response */
ocomeni 81:637a87eb8170 98 int dataLen; /* size of data in buffer */
ocomeni 81:637a87eb8170 99 uint8_t buffer[TX_BUFFER_LEN]; /* buffer length */
ocomeni 81:637a87eb8170 100 } at_data_msg_t;
ocomeni 81:637a87eb8170 101
ocomeni 81:637a87eb8170 102 typedef struct {
ocomeni 81:637a87eb8170 103 string hostName; /* host name */
ocomeni 81:637a87eb8170 104 string contentType; /* content type */
ocomeni 81:637a87eb8170 105 int bodyLen; /* body length */
ocomeni 81:637a87eb8170 106 uint8_t body[900]; /* body */
ocomeni 81:637a87eb8170 107 } http_post_request_t;
ocomeni 81:637a87eb8170 108
ocomeni 81:637a87eb8170 109 typedef struct {
ocomeni 81:637a87eb8170 110 string contentType; /* content type */
ocomeni 81:637a87eb8170 111 int bodyLen; /* body length */
ocomeni 81:637a87eb8170 112 uint8_t body[900]; /* body */
ocomeni 81:637a87eb8170 113 } http_response_t;
ocomeni 81:637a87eb8170 114
ocomeni 81:637a87eb8170 115 typedef struct {
ocomeni 81:637a87eb8170 116 uint8_t peer_id ; /* peer id */
ocomeni 81:637a87eb8170 117 conn_scheme_t connectionScheme; /* connection scheme */
ocomeni 81:637a87eb8170 118 string url; /* body */
ocomeni 81:637a87eb8170 119 } internet_config_t;
ocomeni 81:637a87eb8170 120
ocomeni 79:a2187bbfa407 121
ocomeni 78:07bb86e3ce14 122 #endif // __COMMON_TYPES_H__