From 2618d82e12127b38bf399dec4f699797ff964754 Mon Sep 17 00:00:00 2001 From: mattbk Date: Sat, 16 Sep 2023 09:51:39 -0500 Subject: [PATCH] Add custom message ability --- vulpes/src/main.cpp | 40 ++++++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/vulpes/src/main.cpp b/vulpes/src/main.cpp index 8de70ea..9d019fc 100644 --- a/vulpes/src/main.cpp +++ b/vulpes/src/main.cpp @@ -38,10 +38,10 @@ const int alarmPin = 4; // pin to monitor for RTC alarms const char* ssid = WIFI_SSID; const char* password = WIFI_PASSWORD; -const char* PARAM_STRING = "inputString"; const char* PARAM_SEND = "inputSend"; const char* PARAM_WPM = "inputWPM"; const char* PARAM_MSG = "inputMsg"; +const char* PARAM_CMSG = "inputCustomMsg"; const char* PARAM_FLOAT = "inputFloat"; const char* PARAM_TIME = "inputTimeUnix"; const char* PARAM_START = "inputStartTimeUnix"; @@ -51,11 +51,11 @@ const char* PARAM_CYCLEID = "inputCycleID"; const char* PARAM_NTRANS = "inputNtransmitters"; // Global variables -String yourInputString; int yourInputSend; int yourInputWPM; int yourInputMsg; int yourInputMsg_old; // to save previous state and check changes +String yourInputCustomMsg; float yourInputFloat; uint32_t yourInputTime; //to keep time uint32_t yourInputStartTimeUnix; @@ -68,7 +68,7 @@ long start_millis = 0; long stop_millis = 0; long pause_until_millis = 0; -// HTML web page to handle 3 input fields (inputString, inputSend, inputFloat) +// HTML web page to handle input fields const char index_html[] PROGMEM = R"rawliteral( @@ -130,13 +130,15 @@ const char index_html[] PROGMEM = R"rawliteral( Message:
+ + Custom message:
Speed: WPM

@@ -160,7 +162,6 @@ const char index_html[] PROGMEM = R"rawliteral( - @@ -211,8 +212,8 @@ void writeFile(fs::FS &fs, const char * path, const char * message){ // Replaces placeholder in web UI with stored values String processor(const String& var){ //Serial.println(var); - if(var == "inputString"){ - return readFile(SPIFFS, "/inputString.txt"); + if(var == "inputCustomMsg"){ + return readFile(SPIFFS, "/inputCustomMsg.txt"); } else if(var == "inputSend"){ return readFile(SPIFFS, "/inputSend.txt"); @@ -308,7 +309,7 @@ void setup() { } // Read in existing data - yourInputString = readFile(SPIFFS, "/inputString.txt"); + yourInputCustomMsg = readFile(SPIFFS, "/inputCustomMsg.txt"); yourInputSend = readFile(SPIFFS, "/inputSend.txt").toInt(); yourInputWPM = readFile(SPIFFS, "/inputWPM.txt").toFloat(); yourInputMsg = readFile(SPIFFS, "/inputMsg.txt").toInt(); @@ -324,8 +325,8 @@ void setup() { // On restart, keep doing what you were doing before yourInputMsg_old = yourInputMsg; if(yourInputMsg == 0){ - sender_blink.setMessage(String("test test test de w1cdn ")); - sender_key.setMessage(String("test test test de w1cdn ")); + sender_blink.setMessage(yourInputCustomMsg); + sender_key.setMessage(yourInputCustomMsg); } else if(yourInputMsg == 1){ sender_blink.setMessage(String("moe ")); sender_key.setMessage(String("moe ")); @@ -358,14 +359,17 @@ void setup() { request->send_P(200, "text/html", index_html, processor); }); - // Send a GET request to /get?inputString= + // Send a GET request to /get?inputCustomMsg= server.on("/get", HTTP_GET, [] (AsyncWebServerRequest *request) { String inputMessage; - // GET inputString value on /get?inputString= - if (request->hasParam(PARAM_STRING)) { - inputMessage = request->getParam(PARAM_STRING)->value(); - writeFile(SPIFFS, "/inputString.txt", inputMessage.c_str()); - yourInputString = inputMessage; + // GET inputCustomMsg value on /get?inputCustomMsg= + if (request->hasParam(PARAM_CMSG)) { + inputMessage = request->getParam(PARAM_CMSG)->value(); + // arduinomorse needs lowercase characters + std::transform(inputMessage.begin(), inputMessage.end(), inputMessage.begin(), ::tolower); + writeFile(SPIFFS, "/inputCustomMsg.txt", inputMessage.c_str()); + yourInputCustomMsg = inputMessage; + } // GET inputSend value on /get?inputSend= if (request->hasParam(PARAM_SEND)) { @@ -397,8 +401,8 @@ void setup() { // Check the message every time the form is submitted. if(yourInputMsg == 0){ - sender_blink.setMessage(String("test test test de w1cdn ")); - sender_key.setMessage(String("test test test de w1cdn ")); + sender_blink.setMessage(yourInputCustomMsg); + sender_key.setMessage(yourInputCustomMsg); } else if(yourInputMsg == 1){ sender_blink.setMessage(String("moe ")); sender_key.setMessage(String("moe "));