Set up scheduled program cycles #24
@@ -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();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user