Only send cycles when program is running.

This commit is contained in:
mattbk 2023-09-09 16:01:41 -05:00
parent 2127d4a75a
commit 70decbbcca

View File

@ -53,8 +53,8 @@ int yourInputMsg_old; // to save previous state and check changes
float yourInputFloat; float yourInputFloat;
uint32_t yourInputTime; //to keep time uint32_t yourInputTime; //to keep time
uint32_t yourInputStartTimeUnix; uint32_t yourInputStartTimeUnix;
bool yourProgramRunning; bool startProgram;
bool yourProgramRunning_old; bool programRunning;
int step_length = 30000; // 30 secs int step_length = 30000; // 30 secs
int cycle_id = 1; // number of this transmitter in cycle int cycle_id = 1; // number of this transmitter in cycle
int n_transmitters = 2; //number of transmitters total int n_transmitters = 2; //number of transmitters total
@ -318,7 +318,7 @@ auto morses_sequence = JLedSequence(JLedSequence::eMode::SEQUENCE, morses);
//================================================================================ //================================================================================
bool start_program(){ bool start_program(){
Serial.println("The scheduled program has started."); Serial.println("The scheduled program has started.");
yourProgramRunning = true; startProgram = true;
return false; return false;
} }
@ -436,7 +436,8 @@ void setup() {
yourInputSend = inputMessage.toInt(); yourInputSend = inputMessage.toInt();
// if not running a program, set the program running off // if not running a program, set the program running off
if(yourInputSend != 2){ if(yourInputSend != 2){
yourProgramRunning = false; startProgram = false;
programRunning = false;
} }
} }
// GET inputWPM value on <ESP_IP>/get?inputWPM=<inputMessage> // GET inputWPM value on <ESP_IP>/get?inputWPM=<inputMessage>
@ -538,12 +539,12 @@ void loop() {
// This statement from https://github.com/garrysblog/DS3231-Alarm-With-Adafruit-RTClib-Library/blob/master/DS3231-RTClib-Adafruit-Alarm-Poll-alarmFired/DS3231-RTClib-Adafruit-Alarm-Poll-alarmFired.ino // This statement from https://github.com/garrysblog/DS3231-Alarm-With-Adafruit-RTClib-Library/blob/master/DS3231-RTClib-Adafruit-Alarm-Poll-alarmFired/DS3231-RTClib-Adafruit-Alarm-Poll-alarmFired.ino
// Check if alarm by polling SQW alarm pin // Check if alarm by polling SQW alarm pin
if ((yourInputSend == 2) & (digitalRead(alarmPin) == LOW)) { if((yourInputSend == 2) & (digitalRead(alarmPin) == LOW)) {
// Print current time and date // Print current time and date
DateTime now = rtc.now(); // Get the current time DateTime now = rtc.now(); // Get the current time
char buff[] = "Alarm triggered at hh:mm:ss DDD, DD MMM YYYY"; char buff[] = "Alarm triggered at hh:mm:ss DDD, DD MMM YYYY";
Serial.println(now.toString(buff)); Serial.println(now.toString(buff));
yourProgramRunning = true; startProgram = true;
// Disable and clear alarm // Disable and clear alarm
rtc.clearAlarm(1); rtc.clearAlarm(1);
@ -551,9 +552,10 @@ void loop() {
} }
// Once alarm has started the program, set things up to run // Once alarm has started the program, set things up to run
if(yourProgramRunning == true){ if(startProgram == true){
morses_sequence.Forever().Update(); morses_sequence.Forever().Update();
yourProgramRunning = false; programRunning = true;
startProgram = false;
} else } else
// See which message we are sending // See which message we are sending
// Only do this when the message has been updated. // Only do this when the message has been updated.
@ -578,7 +580,7 @@ void loop() {
morseToSend = morseMO5; morseToSend = morseMO5;
morseToSend_blink = morseMO5_blink; morseToSend_blink = morseMO5_blink;
} }
// Keeps the key from locking up // Keeps the key/led from locking up
yourInputMsg_old = yourInputMsg; yourInputMsg_old = yourInputMsg;
} }
@ -595,22 +597,25 @@ void loop() {
morseToSend_blink.Update(); morseToSend_blink.Update();
// if you want to send cycle code and it is sending, keep sending // if you want to send cycle code and it is sending, keep sending
} else if((yourInputSend == 2) & (morses_sequence.Update() == true)){ } else if((yourInputSend == 2) & (programRunning == true) &(morses_sequence.Update() == true)){
morseToSend.Update(); morseToSend.Update();
//morseToSend_blink.Update(); //morseToSend_blink.Update();
morses_sequence.Update(); morses_sequence.Update();
// if you want to send cycle code and it's not sending, then start it up // if you want to send cycle code and it's not sending, then start it up
} else if((yourInputSend == 2) & (morses_sequence.Update() == false)){ } else if((yourInputSend == 2) & (programRunning == true) & (morses_sequence.Update() == false)){
morseToSend.Reset().Update(); morseToSend.Reset().Update();
//morseToSend_blink.Reset().Update(); //morseToSend_blink.Reset().Update();
morses_sequence.Reset(); morses_sequence.Reset();
// if the cycle program is not running
} else if((yourInputSend == 2 & (programRunning == false))){
morses_sequence.Stop();
// if you don't want to send code // if you don't want to send code
} else { } else {
// stop sending and make sure the pin is off // stop sending and make sure the pin is off
morseToSend.Stop(JLed::eStopMode::FULL_OFF).Update(); morseToSend.Stop(JLed::eStopMode::FULL_OFF).Update();
morseToSend_blink.Stop(JLed::eStopMode::FULL_OFF).Update(); morseToSend_blink.Stop(JLed::eStopMode::FULL_OFF).Update();
morses_sequence.Stop();
} }
//morseToSend.Update(); //morseToSend.Update();