#pragma once #include #include #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; };