added several features

This commit is contained in:
Lexzach 2022-09-19 20:46:43 -04:00
parent 40ecbb3f5c
commit a7feff71d3
Signed by: Lexzach
GPG Key ID: B574880929E6F1F0
3 changed files with 189 additions and 73 deletions

2
facp/.gitignore vendored
View File

@ -3,3 +3,5 @@
.vscode/c_cpp_properties.json .vscode/c_cpp_properties.json
.vscode/launch.json .vscode/launch.json
.vscode/ipch .vscode/ipch
.vscode

View File

@ -8,7 +8,7 @@ int EEPROMVersion = 1; //version control to rewrite eeprom after update
int EEPROMBuild = 1; int EEPROMBuild = 1;
//RUNTIME VARIABLES //----------------------------------------------------------------------------- RUNTIME VARIABLES
bool fullAlarm = false; //bool to control if this is a full alarm that requres a panel reset to clear bool fullAlarm = false; //bool to control if this is a full alarm that requres a panel reset to clear
bool silenced = false; bool silenced = false;
bool keyInserted = false; //if the control panel has a key inserted bool keyInserted = false; //if the control panel has a key inserted
@ -53,7 +53,7 @@ String configBottom;
String currentConfigTop; //configuration menu strings for current lcd display String currentConfigTop; //configuration menu strings for current lcd display
String currentConfigBottom; String currentConfigBottom;
//CONFIG VARIABLES (Set these by default in case eeprom fails to load, and it cannot be reset. Allows the FACP to still run with a default configuration) //Default EEPROM values in the case that the EEPROM fails to load
bool keyRequired = false; //determine if key switch is required to operate buttons bool keyRequired = false; //determine if key switch is required to operate buttons
bool isVerification = true; //is verification turned on bool isVerification = true; //is verification turned on
bool eolResistor = true; //is the EOL resistor enabled bool eolResistor = true; //is the EOL resistor enabled
@ -81,50 +81,76 @@ int readyLedPin = 27;
int silenceLedPin = 26; int silenceLedPin = 26;
int alarmLedPin = 25; int alarmLedPin = 25;
int keySwitchPin = 33; int keySwitchPin = 33;
int resetSwitchPin = 32; int resetButtonPin = 32;
int silenceSwitchPin = 35; int silenceButtonPin = 35;
int drillSwitchPin = 34; int drillButtonPin = 34;
int sclPin = 22; int sclPin = 22;
int sdaPin = 21; int sdaPin = 21;
//----------------------------------------------------------------------------- RUNTIME VARIABLES
//----------------------------------------------------------------------------- EEPROM RESET
void resetEEPROM() { void resetEEPROM() {
for (int i=0; i<=1024; i++){ //write all 255's from 0-1024 address for (int i=0; i<=1024; i++){ //write all 255's from 0-1024 address
EEPROM.write(i,255); EEPROM.write(i,255);
} }
Serial.println("Erased EEPROM");
EEPROM.write(0,76);EEPROM.write(1,101);EEPROM.write(2,120);EEPROM.write(3,122);EEPROM.write(4,97);EEPROM.write(5,99);EEPROM.write(6,104); //write Lexzach to addresses 0-6 EEPROM.write(0,76);EEPROM.write(1,101);EEPROM.write(2,120);EEPROM.write(3,122);EEPROM.write(4,97);EEPROM.write(5,99);EEPROM.write(6,104); //write Lexzach to addresses 0-6
EEPROM.write(7,0); //code-3 default Serial.println("Wrote LEXZACH header");
EEPROM.write(8,0); //key not required by default EEPROM.write(7,0); //code-3 default
EEPROM.write(9,1); //verification is turned on by default Serial.println("Configured Code-3");
EEPROM.write(10,25); //default verification time of 2.5 seconds EEPROM.write(8,0); //key not required by default
Serial.println("Disabled key");
EEPROM.write(9,1); //verification is turned on by default
Serial.println("Turned on verification");
EEPROM.write(10,25); //default verification time of 2.5 seconds
Serial.println("Set verification time of 2.5 seconds");
//system name "ANTIGNEOUS" //system name "ANTIGNEOUS"
EEPROM.write(11,65);EEPROM.write(12,78);EEPROM.write(13,84);EEPROM.write(14,73);EEPROM.write(15,71);EEPROM.write(16,78);EEPROM.write(17,69);EEPROM.write(18,79);EEPROM.write(19,85);EEPROM.write(20,83); EEPROM.write(11,65);EEPROM.write(12,78);EEPROM.write(13,84);EEPROM.write(14,73);EEPROM.write(15,71);EEPROM.write(16,78);EEPROM.write(17,69);EEPROM.write(18,79);EEPROM.write(19,85);EEPROM.write(20,83);
for (int i=21; i<=26; i++){ //write all 0's from 23-71 address Serial.println("Wrote system name 'ANTIGNEOUS'");
EEPROM.write(i,0); for (int i=21; i<=26; i++){ //write all 0's from 21-26 address
} EEPROM.write(i,32);
}
Serial.println("Wrote 6 blank spaces");
EEPROM.write(50, EEPROMVersion); //write current version and build EEPROM.write(50, EEPROMVersion); //write current version and build
EEPROM.write(51, EEPROMBuild); EEPROM.write(51, EEPROMBuild);
EEPROM.write(72,125); //EOL lenience 500 by default (take the value stored and multiply by 4 to get actual value) Serial.println("Wrote EEPROM version and build");
EEPROM.write(73,1); //EOL resistor is enabled by default EEPROM.write(72,125); //EOL lenience 500 by default (take the value stored and multiply by 4 to get actual value)
EEPROM.write(74,0); //pre-alarm disabled by default Serial.println("Set EOL lenience to 500");
EEPROM.write(75,1); //pre-alarm first-stage is 1 minute by default EEPROM.write(73,1); //EOL resistor is enabled by default
EEPROM.write(76,0); //smoke detector pre-alarm is disable by default Serial.println("Enabled EOL resistor");
EEPROM.write(77,5); //smoke detector timeout is five minutes by default EEPROM.write(74,0); //pre-alarm disabled by default
EEPROM.write(78,0); //homescreen is panel name by default Serial.println("Disabled pre-alarm");
EEPROM.write(79,1); //audible silence is enabled by default EEPROM.write(75,1); //pre-alarm first-stage is 1 minute by default
EEPROM.write(80,0); //lcd timeout is disabled by default (time in MS found by taking value and multiplying it by 15000) Serial.println("Set pre-alarm first stage to 1 minute");
EEPROM.write(76,0); //smoke detector pre-alarm is disable by default
Serial.println("Disabled smoke detector pre-alarm");
EEPROM.write(77,5); //smoke detector timeout is five minutes by default
Serial.println("Set smoke detector timeout to 5 minutes");
EEPROM.write(78,0); //homescreen is panel name by default
Serial.println("Set panel name as homescreen");
EEPROM.write(79,1); //audible silence is enabled by default
Serial.println("Enabled audible silence");
EEPROM.write(80,0); //lcd timeout is disabled by default (time in MS found by taking value and multiplying it by 15000)
Serial.println("Disabled LCD timeout");
EEPROM.commit(); EEPROM.commit();
Serial.println("Wrote changes to EEPROM");
} }
//----------------------------------------------------------------------------- EEPROM RESET
void setup() { void setup() {
EEPROM.begin(1025); //allocate memory address 0-1024 for EEPROM
Serial.println("Configured EEPROM for addresses 0-1024");
Serial.begin(115200); //begin serial Serial.begin(115200); //begin serial
Serial.println("Lexzach's Low-Cost FACP v1"); Serial.println("Lexzach's Low-Cost FACP v1");
Serial.println("Booting..."); Serial.println("Booting...");
//----------------------------------------------------------------------------- SETUP PINS
pinMode(hornPin, OUTPUT); //horn pinMode(hornPin, OUTPUT); //horn
pinMode(strobePin, OUTPUT); //strobe pinMode(strobePin, OUTPUT); //strobe
pinMode(smokeDetectorPin, OUTPUT); //smoke relay pinMode(smokeDetectorPin, OUTPUT); //smoke relay
@ -132,9 +158,9 @@ void setup() {
pinMode(silenceLedPin, OUTPUT); //silence LED pinMode(silenceLedPin, OUTPUT); //silence LED
pinMode(alarmLedPin, OUTPUT); //alarm LED pinMode(alarmLedPin, OUTPUT); //alarm LED
pinMode(keySwitchPin, INPUT); //key switch pinMode(keySwitchPin, INPUT); //key switch
pinMode(resetSwitchPin, INPUT); //reset switch pinMode(resetButtonPin, INPUT); //reset switch
pinMode(silenceSwitchPin, INPUT); //silence switch pinMode(silenceButtonPin, INPUT); //silence switch
pinMode(resetSwitchPin, INPUT); //drill switch pinMode(drillButtonPin, INPUT); //drill switch
pinMode(zone1Pin, INPUT); //zone 1 pinMode(zone1Pin, INPUT); //zone 1
pinMode(zone2Pin, INPUT); //zone 2 pinMode(zone2Pin, INPUT); //zone 2
@ -146,33 +172,78 @@ void setup() {
pinMode(sclPin, OUTPUT); //scl pinMode(sclPin, OUTPUT); //scl
pinMode(sdaPin, OUTPUT); //sda pinMode(sdaPin, OUTPUT); //sda
//----------------------------------------------------------------------------- SETUP PINS
Serial.println("Initializing LCD..."); Serial.println("Initializing LCD...");
lcd.init(); //initialize LCD lcd.init(); //initialize LCD
lcd.backlight(); lcd.backlight();
//----------------------------------------------------------------------------- EEPROM RESET BUTTONS
if (digitalRead(resetButtonPin)==HIGH and digitalRead(silenceButtonPin)==HIGH and digitalRead(drillButtonPin)==HIGH){ //reset EEPROM if all buttons are pressed
for(int i=5; i!=0; i--){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("TO RESET EEPROM");
lcd.setCursor(0,1);
lcd.print((String)"HOLD BUTTONS - "+i);
delay(1000);
}
if (digitalRead(resetButtonPin)==HIGH and digitalRead(silenceButtonPin)==HIGH and digitalRead(drillButtonPin)==HIGH){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("RESETTING TO");
lcd.setCursor(0,1);
lcd.print("FACTORY SETTINGS");
resetEEPROM();
delay(4000);
ESP.restart();
} else {
lcd.clear();
lcd.setCursor(0,0);
lcd.print("EEPROM RESET");
lcd.setCursor(0,1);
lcd.print("CANCELLED");
delay(3000);
}
}
//----------------------------------------------------------------------------- EEPROM RESET BUTTONS
lcd.clear(); lcd.clear();
lcd.setCursor(4,0); lcd.setCursor(4,0);
lcd.print("Booting..."); lcd.print("Booting...");
Serial.println("Configured all pins"); Serial.println("Configured all pins");
EEPROM.begin(1025); //allocate memory address 0-1024 for EEPROM //EEPROM.write(0,255); //-------------------------------------------------------UNCOMMENT TO INVALIDATE EEPROM AND REFLASH IT AFTER EVERY RESTART
Serial.println("Configured EEPROM for addresses 0-1024"); //EEPROM.commit();
// EEPROM.write(0,255); //UNCOMMENT TO INVALIDATE EEPROM AND REFLASH IT AFTER EVERY RESTART
// EEPROM.commit();
Serial.println("Verifying EEPROM configuration integrity..."); Serial.println("Verifying EEPROM configuration integrity...");
if (EEPROM.read(0) != 76 or EEPROM.read(6) != 104 or EEPROM.read(7) > 5 or EEPROM.read(8) > 1 or EEPROM.read(50) != EEPROMVersion or EEPROM.read(51) != EEPROMBuild){ //EEPROM verification, check essential-to-run components, listing all conditions that cannot exist in a correct EEPROM //----------------------------------------------------------------------------- EEPROM INTEGRETY
Serial.println("EEPROM verification failed. Re-writing EEPROM"); if (EEPROM.read(0) != 76 or EEPROM.read(6) != 104 or EEPROM.read(7) > 5 or EEPROM.read(8) > 1 or EEPROM.read(50) != EEPROMVersion or EEPROM.read(51) != EEPROMBuild){
resetEEPROM(); Serial.println("EEPROM verification failed.");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("ERROR 1");
lcd.setCursor(0,1);
lcd.print("check manual");
while(digitalRead(resetButtonPin) == LOW and digitalRead(drillButtonPin) == LOW){ //wait until button is pressed
delay(1);
}
if(digitalRead(resetButtonPin) == HIGH){
Serial.println("Resetting...");
ESP.restart();
} else if (digitalRead(drillButtonPin) == HIGH){
resetEEPROM();
}
} else { } else {
Serial.println("EEPROM verification finished"); Serial.println("EEPROM verification finished");
} }
//----------------------------------------------------------------------------- EEPROM INTEGRETY
Serial.println("Current EEPROM:");
Serial.println("Current EEPROM dump:"); //dump EEPROM into serial monitor
for (int i=0; i<=1024; i++){ for (int i=0; i<=1024; i++){
Serial.print(EEPROM.read(i)); Serial.print(EEPROM.read(i));
Serial.print(" "); Serial.print(" ");
@ -219,7 +290,7 @@ void setup() {
panelHomescreen = EEPROM.read(78); panelHomescreen = EEPROM.read(78);
lcdTimeout = EEPROM.read(80)*15000; lcdTimeout = EEPROM.read(80)*15000;
int x=0; int x=0;
for (int i=11; i<=71; i++){ //read panel name for (int i=11; i<=26; i++){ //read panel name
if (EEPROM.read(i) != 0){ if (EEPROM.read(i) != 0){
panelName = panelName + (char)EEPROM.read(i); panelName = panelName + (char)EEPROM.read(i);
panelNameList[x] = EEPROM.read(i); panelNameList[x] = EEPROM.read(i);
@ -265,6 +336,7 @@ void checkKey(){
} }
} }
//----------------------------------------------------------------------------- CHECK ACTIVATION DEVICES
void checkDevices(){ void checkDevices(){
if (walkTest == 0){ if (walkTest == 0){
@ -330,6 +402,8 @@ void checkDevices(){
troubleTimer = 0; troubleTimer = 0;
} }
} }
//----------------------------------------------------------------------------- CHECK ACTIVATION DEVICES
void troubleCheck(){ void troubleCheck(){
if (trouble == true){ if (trouble == true){
@ -359,9 +433,8 @@ void troubleCheck(){
} }
} }
void checkButtons(){ void reboot(){
if (digitalRead(resetSwitchPin) == HIGH){ //RESET BUTTON lcd.clear();
lcd.clear();
lcd.setCursor(2,0); lcd.setCursor(2,0);
lcd.print("Resetting..."); lcd.print("Resetting...");
tone(); tone();
@ -374,12 +447,17 @@ void checkButtons(){
delay(2500); delay(2500);
noTone(); noTone();
digitalWrite(readyLedPin, LOW); //ready LED digitalWrite(readyLedPin, LOW); //ready LED
digitalWrite(silenceLedPin, HIGH); //silence LED digitalWrite(silenceLedPin, LOW); //silence LED
digitalWrite(alarmLedPin, HIGH); //alarm LED digitalWrite(alarmLedPin, LOW); //alarm LED
ESP.restart(); ESP.restart();
}
void checkButtons(){
if (digitalRead(resetButtonPin) == HIGH){ //RESET BUTTON
reboot();
} }
if (digitalRead(silenceSwitchPin) == HIGH){ //SILENCE BUTTON if (digitalRead(silenceButtonPin) == HIGH){ //SILENCE BUTTON
if (horn == true){ //if horns are not silenced, silence the horns if (horn == true){ //if horns are not silenced, silence the horns
digitalWrite(silenceLedPin, HIGH); digitalWrite(silenceLedPin, HIGH);
digitalWrite(alarmLedPin, HIGH); digitalWrite(alarmLedPin, HIGH);
@ -410,8 +488,8 @@ void checkButtons(){
silencePressed = false; silencePressed = false;
} }
if (digitalRead(drillSwitchPin) == HIGH and horn != true){ //DRILL BUTTON if (digitalRead(drillButtonPin) == HIGH and horn != true){ //DRILL BUTTON
if (drill == 2000){ if (drill >= 2000){
activateNAC(); activateNAC();
} else { } else {
drill++; drill++;
@ -609,29 +687,29 @@ void config(){
char *mainPanelSettings[] = {"Panel Name","Panel Security","LCD Dim:","Factory Reset","About"}; //menu 8 char *mainPanelSettings[] = {"Panel Name","Panel Security","LCD Dim:","Factory Reset","About"}; //menu 8
char *mainPanelSettingsPanelSecurity[] = {"None","Keyswitch","Passcode"}; //menu 9 char *mainPanelSettingsPanelSecurity[] = {"None","Keyswitch","Passcode"}; //menu 9
char *mainPanelSettingsPanelName[] = {"Enter Name:"}; //menu 10 char *mainPanelSettingsPanelName[] = {"Enter Name:"}; //menu 10
char *mainPanelSettingsFactoryReset[] = {"Are you sure?"}; //menu 11
char *mainPanelSettingsAbout[] = {"ANTIGNEOUS OS","Firmware:",firmwareRev,"by Lexzach"}; //menu 12 char *mainPanelSettingsAbout[] = {"ANTIGNEOUS OS","Firmware:",firmwareRev,"by Lexzach"}; //menu 12
// char *mainPanelSettingsHomescreen[] = {"Panel Name", "Stats for Nerds"}; //menu 10 // char *mainPanelSettingsHomescreen[] = {"Panel Name", "Stats for Nerds"}; //menu 10
// char *mainPanelSettingsHomescreenStatsForNerds[] = {"Zone Input Voltages"}; //menu 11 // char *mainPanelSettingsHomescreenStatsForNerds[] = {"Zone Input Voltages"}; //menu 11
if (digitalRead(resetSwitchPin) == HIGH){ //RESET BUTTON if (digitalRead(resetButtonPin) == HIGH){ //RESET BUTTON
resetPressed = true; resetPressed = true;
} else { } else {
resetPressed = false; resetPressed = false;
resetStillPressed = false; resetStillPressed = false;
} }
if (digitalRead(silenceSwitchPin) == HIGH){ //SILENCE BUTTON if (digitalRead(silenceButtonPin) == HIGH){ //SILENCE BUTTON
silencePressed = true; silencePressed = true;
} else { } else {
silencePressed = false; silencePressed = false;
silenceStillPressed = false; silenceStillPressed = false;
} }
if (digitalRead(drillSwitchPin) == HIGH){ //DRILL BUTTON if (digitalRead(drillButtonPin) == HIGH){ //DRILL BUTTON
drillPressed = true; drillPressed = true;
} else { } else {
drillPressed = false; drillPressed = false;
drillStillPressed = false; drillStillPressed = false;
} }
//----------------------------------------------------------------------------- MAIN MENU
if (configPage == 0){ if (configPage == 0){
if (resetPressed == true and resetStillPressed == false){ if (resetPressed == true and resetStillPressed == false){
if (cursorPosition == 0){ //main screen if (cursorPosition == 0){ //main screen
@ -660,6 +738,9 @@ void config(){
configBottom = (String)mainSettings[1]; configBottom = (String)mainSettings[1];
} }
} }
//----------------------------------------------------------------------------- MAIN MENU
//----------------------------------------------------------------------------- TESTING
} else if (configPage == 1){ } else if (configPage == 1){
if (resetPressed == true and resetStillPressed == false){ if (resetPressed == true and resetStillPressed == false){
if (cursorPosition == 0){ if (cursorPosition == 0){
@ -706,6 +787,9 @@ void config(){
} }
} }
} }
//----------------------------------------------------------------------------- TESTING
//----------------------------------------------------------------------------- SETTINGS
} else if (configPage == 2){ } else if (configPage == 2){
if (resetPressed == true and resetStillPressed == false){ if (resetPressed == true and resetStillPressed == false){
if (cursorPosition == 0){ //main screen if (cursorPosition == 0){ //main screen
@ -735,6 +819,9 @@ void config(){
configBottom = (String)mainPanelSettings[1]; configBottom = (String)mainPanelSettings[1];
} }
} }
//----------------------------------------------------------------------------- SETTINGS
//----------------------------------------------------------------------------- SETTINGS > FIRE ALARM
} else if (configPage == 3){ } else if (configPage == 3){
if (resetPressed == true and resetStillPressed == false){ if (resetPressed == true and resetStillPressed == false){
if (cursorPosition == 0){ if (cursorPosition == 0){
@ -797,6 +884,9 @@ void config(){
configBottom = (String)mainSettingsFireAlarmSettings[0]; configBottom = (String)mainSettingsFireAlarmSettings[0];
} }
} }
//----------------------------------------------------------------------------- SETTINGS > FIRE ALARM
//----------------------------------------------------------------------------- SETTINGS > PANEL
} else if (configPage == 8){ } else if (configPage == 8){
if (resetPressed == true and resetStillPressed == false){ if (resetPressed == true and resetStillPressed == false){
if (cursorPosition == 0){ if (cursorPosition == 0){
@ -877,11 +967,16 @@ void config(){
configTop = (String)mainPanelSettings[2] + lcdTimeout/60000+"m"; configTop = (String)mainPanelSettings[2] + lcdTimeout/60000+"m";
} }
} else if (cursorPosition == 3){ } else if (cursorPosition == 3){
//factory reset configBottom = "drill = yes";
configTop = "silence = no";
configPage = 5;
} else if (cursorPosition == 4){ } else if (cursorPosition == 4){
//firmware version //firmware version
} }
} }
//----------------------------------------------------------------------------- SETTINGS > PANEL
//----------------------------------------------------------------------------- SETTINGS > PANEL > PANEL NAME
} else if (configPage == 10){ //panel rename routine } else if (configPage == 10){ //panel rename routine
if (resetPressed == true and resetStillPressed == false){ if (resetPressed == true and resetStillPressed == false){
@ -916,7 +1011,7 @@ void config(){
configBottom = (String)mainPanelSettings[1]; configBottom = (String)mainPanelSettings[1];
x=0; x=0;
panelName = ""; panelName = "";
for (int i=11; i<=71; i++){ //read panel name for (int i=11; i<=26; i++){ //read panel name
if (EEPROM.read(i) != 0){ if (EEPROM.read(i) != 0){
panelName = panelName + (char)EEPROM.read(i); panelName = panelName + (char)EEPROM.read(i);
panelNameList[x] = EEPROM.read(i); panelNameList[x] = EEPROM.read(i);
@ -937,6 +1032,31 @@ void config(){
configBottom = configBottom + (char)panelNameList[i]; configBottom = configBottom + (char)panelNameList[i];
} }
} }
//----------------------------------------------------------------------------- SETTINGS > PANEL > PANEL NAME
//----------------------------------------------------------------------------- SETTINGS > PANEL > FACTORY RESET
} else if (configPage == 5){
configBottom = "drill = yes";
configTop = "silence = no";
if (silencePressed == true and silenceStillPressed == false){
configPage = 8;
cursorPosition = 0;
configTop = (String)mainPanelSettings[0];
configBottom = (String)mainPanelSettings[1];
} else if (drillPressed == true and drillStillPressed == false){
digitalWrite(readyLedPin, LOW); //ready LED
lcd.clear();
lcd.setCursor(0,0);
lcd.print("RESETTING TO");
lcd.setCursor(0,1);
lcd.print("FACTORY SETTINGS");
resetEEPROM();
delay(4000);
ESP.restart();
}
//----------------------------------------------------------------------------- SETTINGS > PANEL > FACTORY RESET
//----------------------------------------------------------------------------- SETTINGS > FIRE ALARM > CODING
} else if (configPage == 5){ } else if (configPage == 5){
if (resetPressed == true and resetStillPressed == false){ if (resetPressed == true and resetStillPressed == false){
if (cursorPosition == 0){ if (cursorPosition == 0){
@ -1028,7 +1148,10 @@ void config(){
} }
codeWheel = EEPROM.read(7); //codeWheel setting address codeWheel = EEPROM.read(7); //codeWheel setting address
} }
//----------------------------------------------------------------------------- SETTINGS > FIRE ALARM > CODING
} }
// if (resetPressed == true and resetStillPressed == false){ // if (resetPressed == true and resetStillPressed == false){
@ -1054,13 +1177,13 @@ void config(){
if (digitalRead(resetSwitchPin) == HIGH){ //RESET BUTTON if (digitalRead(resetButtonPin) == HIGH){ //RESET BUTTON
resetStillPressed = true; resetStillPressed = true;
} }
if (digitalRead(silenceSwitchPin) == HIGH){ //SILENCE BUTTON if (digitalRead(silenceButtonPin) == HIGH){ //SILENCE BUTTON
silenceStillPressed = true; silenceStillPressed = true;
} }
if (digitalRead(drillSwitchPin) == HIGH){ //DRILL BUTTON if (digitalRead(drillButtonPin) == HIGH){ //DRILL BUTTON
drillStillPressed = true; drillStillPressed = true;
} }
} }
@ -1072,9 +1195,11 @@ void loop() {
} else if (backlightOn == true) { } else if (backlightOn == true) {
lcdTimeoutTimer++; lcdTimeoutTimer++;
} }
if ((drillPressed == true or silencePressed == true or resetPressed == true or fullAlarm == true or trouble == true) and backlightOn == false){ if (drillPressed == true or silencePressed == true or resetPressed == true or fullAlarm == true or trouble == true){
lcdTimeoutTimer = 0; lcdTimeoutTimer = 0;
lcd.backlight(); if (backlightOn == false){
lcd.backlight();
}
backlightOn = true; backlightOn = true;
} }
} }

View File

@ -1,11 +0,0 @@
This directory is intended for PlatformIO Unit Testing and project tests.
Unit Testing is a software testing method by which individual units of
source code, sets of one or more MCU program modules together with associated
control data, usage procedures, and operating procedures, are tested to
determine whether they are fit for use. Unit testing finds problems early
in the development cycle.
More information about PlatformIO Unit Testing:
- https://docs.platformio.org/page/plus/unit-testing.html