Lab_interaccio/2017/SmartCitizen/SmartCitizenKit/Bridge.h

128 lines
3.7 KiB
C
Raw Normal View History

2025-02-25 21:29:42 +01:00
#pragma once
#include <EasyTransfer.h>
#define ONE_DAY_IN_SECONDS 86400
enum EspCommand {
ESP_NULL,
// ------ Events
ESP_FACTORY_RESET_EVENT,
ESP_DEBUG_EVENT,
// ------ Configuration
ESP_WIFI_CONNECT_COM, //
ESP_WIFI_DISCONNECT_COM,//
ESP_GET_WIFI_COM, // @params uint8_t (the index of the network to retrieve)
ESP_GET_BEST_WIFI_COM, // Get best configured network
ESP_SET_WIFI_COM, // @params String ssid, String password
ESP_CLEAR_WIFI_COM, // @params uint8_t index (the index of the network to be cleared)
ESP_GET_IP_COM,
ESP_SET_TOKEN_COM, // @params String Token
ESP_GET_TOKEN_COM,
ESP_CLEAR_TOKEN_COM,
ESP_SET_CONF_COM, // @params struct Configuration
// @return bool: true if configuration saved, false otherwise
ESP_GET_CONF_COM, // @return struct Configuration
// ------ Control
ESP_START_AP_COM,
ESP_STOP_AP_COM,
ESP_START_WEB_COM,
ESP_STOP_WEB_COM,
ESP_DEEP_SLEEP_COM,
ESP_GET_VERSION_COM,
// ------ Get data
ESP_GET_APCOUNT_COM,
ESP_GET_APLIST_COM, // @return String apList (json formatted)
ESP_GET_TIME_COM, // @return String: epoch time
ESP_SYNC_HTTP_TIME_COM,
ESP_MQTT_CONNECT_COM, // @params int persistent flag
ESP_MQTT_HELLOW_COM,
ESP_MQTT_PUBLISH_COM, // @params String payload, int QoS
ESP_MQTT_SYNC_COM,
ESP_MQTT_CLEAR_STATUS,
ESP_GET_FREE_HEAP_COM,
// ------ State
ESP_GET_STATUS_COM, // @return struct espStatus:
// -- wifi: ESP_WIFI_CONNECTED_EVENT, ESP_WIFI_ERROR_EVENT, ESP_WIFI_ERROR_PASS_EVENT, ESP_WIFI_ERROR_AP_EVENT
// -- net: ESP_PING_OK, ESP_PING_ERROR
// -- mqtt: ESP_MQTT_HELLO_OK, ESP_MQTT_PUBLISH_OK, ESP_MQTT_ERROR_EVENT
// -- time: ESP_TIME_FAIL, ESP_TIME_UPDATED
// -- ap: ESP_AP_ON, ESP_AP_OFF
// -- web: ESP_WEB_ON, ESP_WEB_OFF
// -- conf: ESP_CONF_NOT_CHANGED, ESP_CONF_CHANGED
ESP_WEB_CONFIG_SUCCESS, // Something has changed succsesfully via web server
ESP_GET_LAST_EVENT_COM, // @return espEvents
ESP_SERIAL_DEBUG_ON, // Turn on serial debug output
ESP_SERIAL_DEBUG_OFF, // Turn off serial debug output
ESP_LED_OFF, // Turn off both leds
ESP_LED_ON // Turn on both leds
};
// @return struct espStatus:
// -- wifi: ESP_WIFI_CONNECTED, ESP_WIFI_ERROR, ESP_WIFI_ERROR_PASS, ESP_WIFI_ERROR_AP
#define ESP_WIFI_CONNECTED_EVENT 1
#define ESP_WIFI_ERROR_EVENT 2
#define ESP_WIFI_ERROR_PASS_EVENT 3
#define ESP_WIFI_ERROR_AP_EVENT 4
// -- net: ESP_PING_OK, ESP_PING_ERROR
#define ESP_PING_OK_EVENT 1
#define ESP_PING_ERROR_EVENT 2
// -- mqtt: ESP_MQTT_HELLO_OK, ESP_MQTT_PUBLISH_OK, ESP_MQTT_ERROR_EVENT
#define ESP_MQTT_HELLO_OK_EVENT 1
#define ESP_MQTT_PUBLISH_OK_EVENT 2
#define ESP_MQTT_ERROR_EVENT 3
// -- time: ESP_TIME_FAIL, ESP_TIME_UPDATED
#define ESP_TIME_FAIL_EVENT 1
#define ESP_TIME_UPDATED_EVENT 2
// -- ap: ESP_AP_ON, ESP_AP_OFF
#define ESP_AP_ON_EVENT 1
#define ESP_AP_OFF_EVENT 2
// -- web: ESP_WEB_ON, ESP_WEB_OFF
#define ESP_WEB_ON_EVENT 1
#define ESP_WEB_OFF_EVENT 2
// -- conf: ESP_CONF_NOT_CHANGED, ESP_CONF_CHANGED
#define ESP_CONF_NOT_CHANGED_EVENT 1
#define ESP_CONF_CHANGED_EVENT 2
struct BUS_Serial {
uint8_t com;
char param[240];
bool waitAnswer = false;
};
struct Credentials {
uint32_t time = 0; // epoch time
char ssid[64] = "ssid";
char password[64] = "password";
};
struct ESPstatus {
// uint8_t wifi = ESP_NULL;
// uint8_t net = ESP_NULL;
// uint8_t mqtt = ESP_NULL;
// uint8_t time = ESP_NULL;
// uint8_t ap = ESP_NULL;
// uint8_t web = ESP_NULL;
// uint8_t conf = ESP_NULL;
// VERSION SENCILLA
uint8_t wifi = 0;
uint8_t net = 0;
uint8_t mqtt = 0;
uint8_t time = 0;
uint8_t ap = 0;
uint8_t web = 0;
uint8_t conf = 0;
};
struct Configuration {
uint32_t readInterval = 30; // in seconds
};