Lab_interaccio/2024/smartcitizen-kit-21-dev/lib/Shared/SckSerial.h

71 lines
2.8 KiB
C
Raw Normal View History

2025-02-25 21:29:42 +01:00
#pragma once
#include <HardwareSerial.h>
#include <Arduino.h>
#define NETBUFF_SIZE 512
enum SCKMessage {
SCKMES_PLACEHOLDER,
ESPMES_SET_CONFIG, // 1 SAM->ESP, Sends new config
ESPMES_GET_NETINFO, // 2 SAM->ESP, ESP return network info
ESPMES_GET_TIME, // 3 SAM->ESP, ESP returns epoch time
ESPMES_MQTT_HELLO, // 4 SAM->ESP, ESP publish Hello and returns result
ESPMES_MQTT_PUBLISH, // 5 SAM->ESP, ESP publish readings and returns results
ESPMES_CONNECT, // 6 SAM->ESP, ESP trys wifi conection
ESPMES_START_AP, // 7 SAM->ESP, ESP starts AP
ESPMES_STOP_AP, // 8 SAM->ESP, ESP stops AP
ESPMES_LED_OFF, // 9 SAM->ESP, ESP turns off led (esud before sleep)
ESPMES_MQTT_INVENTORY, // 10 SAM->ESP, ESP publish inventory and returns result
ESPMES_MQTT_INFO, // 11 SAM->ESP, ESP publish info and return result
ESPMES_MQTT_CUSTOM, // 12 SAM->ESP, ESP publish custom message on custom topic
ESPMES_WEBSERIAL, // 13 SAM->ESP, Send output of webserial command to ESP
ESPMES_GET_RSSI, // 14 SAM->ESP, ESP returns RRSI value
SAMMES_BOOTED, // 15 ESP->SAM, On finished booting
SAMMES_NETINFO, // 16 ESP->SAM, Send network info
SAMMES_WIFI_CONNECTED, // 17 ESP->SAM, On wifi succesfull conection
SAMMES_SSID_ERROR, // 18 ESP->SAM, On ssid not found
SAMMES_PASS_ERROR, // 19 ESP->SAM, On wrong password
SAMMES_WIFI_UNKNOWN_ERROR, // 20 ESP->SAM, On wifi unknown error
SAMMES_TIME, // 21 ESP->SAM, Epoch time
SAMMES_MQTT_HELLO_OK, // 22 ESP->SAM, On MQTT hello OK
SAMMES_MQTT_PUBLISH_OK, // 23 ESP->SAM, On MQTT publish ok
SAMMES_MQTT_PUBLISH_ERROR, // 24 ESP->SAM, On MQTT publish error
SAMMES_MQTT_INFO_OK, // 25 ESP->SAM, On MQTT info publish ok
SAMMES_MQTT_INFO_ERROR, // 26 ESP->SAM, On MQTT info publish error
SAMMES_MQTT_CUSTOM_OK, // 27 ESP->SAM, On MQQT custom publish OK
SAMMES_MQTT_CUSTOM_ERROR, // 28 ESP->SAM, On MQQT custom publish error
SAMMES_SET_CONFIG, // 29 ESP->SAM, Sends new config
SAMMES_RSSI, // 30 ESP->SAM, Sends RSSI value
SCKMES_COUNT
};
class SckSerial {
private:
HardwareSerial& _serial;
const uint8_t maxTry = 3;
bool _send();
void debugP(char *msg, bool force=false);
void debugPln(char *msg, bool force= false);
public:
SckSerial(HardwareSerial& _s): _serial(_s) {
_serial = _s;
}
void begin(uint32_t bauds=115200);
bool send(SCKMessage wichMessage);
bool send(SCKMessage wichMessage, const char *content);
void sendACK();
bool receive();
bool debug = false;
byte msg;
char buff[NETBUFF_SIZE];
bool error = false;
};