From f4287eba7b0edb88ade4340c13993f62ea46d31a Mon Sep 17 00:00:00 2001 From: mattbk Date: Fri, 15 Sep 2023 21:44:19 -0500 Subject: [PATCH 1/2] Control WPM from webform. --- vulpes/src/main.cpp | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/vulpes/src/main.cpp b/vulpes/src/main.cpp index 2fdae51..54d7474 100644 --- a/vulpes/src/main.cpp +++ b/vulpes/src/main.cpp @@ -67,6 +67,8 @@ int yourInputNtransmitters; long start_millis = 0; long stop_millis = 0; long pause_until_millis = 0; +float wpm = 10; +float ms_per_dit = 1000 * (60 / (50 * wpm)); // HTML web page to handle 3 input fields (inputString, inputSend, inputFloat) const char index_html[] PROGMEM = R"rawliteral( @@ -136,7 +138,10 @@ const char index_html[] PROGMEM = R"rawliteral( -

+
+ + Speed: WPM +

Cycle Settings

Only applies when Sending Program is set to "2 - Cycle". You cannot set a cycle start date more than a month in advance.

@@ -157,7 +162,6 @@ const char index_html[] PROGMEM = R"rawliteral( - @@ -245,15 +249,8 @@ String processor(const String& var){ // Set up arduinomorse pin and default WPM -LEDMorseSender sender_blink(blinker, 10.0f) ; // the 'f' makes sure this is a float -LEDMorseSender sender_key(keyer, 10.0f) ; // the 'f' makes sure this is a float - -// Speed is milliseconds per dit, which is 1000 * (60 / (50 * WPM)) -// 60 is 20 wpm, 120 is 10 wpm, 90 is 15 wpm, etc. -// https://morsecode.world/international/timing.html -float wpm = 10; -float ms_per_dit = 1000 * (60 / (50 * wpm)); -int word_space_ms = ms_per_dit * 7; +LEDMorseSender sender_blink(blinker, wpm); +LEDMorseSender sender_key(keyer, wpm); //================================================================================ // setup(): stuff that only gets done once, after power up (KB1OIQ's description) @@ -322,6 +319,9 @@ void setup() { yourInputStepLength = readFile(SPIFFS, "/inputStepLength.txt").toInt(); yourInputCycleID = readFile(SPIFFS, "/inputCycleID.txt").toInt(); yourInputNtransmitters = readFile(SPIFFS, "/inputNtransmitters.txt").toInt(); + // Set WPM from saved value + sender_blink.setWPM(yourInputWPM); + sender_key.setWPM(yourInputWPM); // On restart, keep doing what you were doing before yourInputMsg_old = yourInputMsg; @@ -385,7 +385,9 @@ void setup() { if (request->hasParam(PARAM_WPM)) { inputMessage = request->getParam(PARAM_WPM)->value(); writeFile(SPIFFS, "/inputWPM.txt", inputMessage.c_str()); - yourInputWPM = inputMessage.toInt(); + yourInputWPM = inputMessage.toFloat(); + sender_blink.setWPM(yourInputWPM); + sender_key.setWPM(yourInputWPM); } // GET inputMsg value on /get?inputMsg= if (request->hasParam(PARAM_MSG)) { From d973bbf19ad60f7d293be79a0d0f0340b85c860c Mon Sep 17 00:00:00 2001 From: mattbk Date: Sat, 16 Sep 2023 09:16:35 -0500 Subject: [PATCH 2/2] Clean up. --- vulpes/src/main.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/vulpes/src/main.cpp b/vulpes/src/main.cpp index 54d7474..8de70ea 100644 --- a/vulpes/src/main.cpp +++ b/vulpes/src/main.cpp @@ -67,8 +67,6 @@ int yourInputNtransmitters; long start_millis = 0; long stop_millis = 0; long pause_until_millis = 0; -float wpm = 10; -float ms_per_dit = 1000 * (60 / (50 * wpm)); // HTML web page to handle 3 input fields (inputString, inputSend, inputFloat) const char index_html[] PROGMEM = R"rawliteral( @@ -249,8 +247,8 @@ String processor(const String& var){ // Set up arduinomorse pin and default WPM -LEDMorseSender sender_blink(blinker, wpm); -LEDMorseSender sender_key(keyer, wpm); +LEDMorseSender sender_blink(blinker, 10.0f); //f makes it a float +LEDMorseSender sender_key(keyer, 10.0f); //================================================================================ // setup(): stuff that only gets done once, after power up (KB1OIQ's description) @@ -312,7 +310,7 @@ void setup() { // Read in existing data yourInputString = readFile(SPIFFS, "/inputString.txt"); yourInputSend = readFile(SPIFFS, "/inputSend.txt").toInt(); - yourInputWPM = readFile(SPIFFS, "/inputWPM.txt").toInt(); + yourInputWPM = readFile(SPIFFS, "/inputWPM.txt").toFloat(); yourInputMsg = readFile(SPIFFS, "/inputMsg.txt").toInt(); yourInputFloat = readFile(SPIFFS, "/inputFloat.txt").toFloat(); yourInputStartTimeUnix = readFile(SPIFFS, "/inputStartTimeUnix.txt").toInt();