Compare commits
6 Commits
nightly-fi
...
stable-v1.
Author | SHA1 | Date | |
---|---|---|---|
5e98be43ed | |||
a924b6d243 | |||
21c20db83e | |||
94d8cd9c53 | |||
9263e47355 | |||
969e449376 |
42
README.md
42
README.md
@ -1,40 +1,6 @@
|
|||||||
# ⚠️ TESTED FIRMWARE IS IN [RELEASES](https://code.lexza.ch/Lexzach/antigneous/releases) ⚠️
|
# Stable Release v1.5
|
||||||
|
|
||||||
[](https://discord.gg/fwqYtBrfqs)
|
## Instruction Manuals 📄
|
||||||
|
📕 [Basic Assembly and Operation Manual](https://code.lexza.ch/Lexzach/antigneous/src/branch/stable-v1.5/instructions/antigneous_instructions.pdf) - [Download](https://code.lexza.ch/Lexzach/antigneous/raw/branch/stable-v1.5/instructions/antigneous_instructions.pdf)
|
||||||

|
|
||||||
# What is this? 🔥
|
|
||||||
Antigneous is an open-source conventional fire alarm control panel, 3 years in the making. A fire alarm control panel is the device responsible for controlling all of the devices in a fire alarm system, such as smoke detectors, pull stations, and notification devices. Normally, a fire alarm control panel will run you back hundreds, if not thousands of dollars. This project strives to fix that issue by allowing for anyone to build their own reliable fire alarm control panel without breaking the bank.
|
|
||||||
|
|
||||||
# What do you mean by "open-source" 🔓
|
|
||||||
**You do not have to give a single cent to me in order to build this panel.**
|
|
||||||
|
|
||||||
The code that is being ran in an Antigneous fire alarm control panel is completely visible to everyone and anyone, [right here](https://code.lexza.ch/Lexzach/antigneous/src/branch/nightly-firmware/main/main.ino)! Don't like something about Antigneous, you can change it (or even better submit an issue or pull request). All hardware that is used in the making of an Antigneous panel is available to anyone. The wiring diagram for making your own is also available to anyone.
|
|
||||||
|
|
||||||
# Instruction Manuals 📄
|
|
||||||
📕 [Basic Assembly and Operation Manual](https://code.lexza.ch/Lexzach/antigneous/src/branch/nightly-firmware/instructions/antigneous_instructions.pdf) - [Download](https://code.lexza.ch/Lexzach/antigneous/raw/branch/nightly-firmware/instructions/antigneous_instructions.pdf)
|
|
||||||
|
|
||||||
📚 [Technical Instruction Manual](https://code.lexza.ch/Lexzach/antigneous/src/branch/nightly-firmware/instructions/antigneous_tech_instructions.pdf) - [Download](https://code.lexza.ch/Lexzach/antigneous/raw/branch/nightly-firmware/instructions/antigneous_tech_instructions.pdf)
|
|
||||||
|
|
||||||
# Features and Limitations ⚖️
|
|
||||||
Although I have tried to make Antigneous as feature-rich as possible, there are some limitations to take into consideration...
|
|
||||||
|
|
||||||
## Features ✅
|
|
||||||
- LCD display
|
|
||||||
- Very customizable, tinker friendly design
|
|
||||||
- Many coding selections: Temporal three, Code 4-4, Marchtime, Continuous, California Code, and Slower Marchtime
|
|
||||||
- Togglable keyless silence
|
|
||||||
- Walk test, silent walk test, and strobe test
|
|
||||||
- EOL resistor support for activating loop
|
|
||||||
- Pull station and smoke detector verification
|
|
||||||
- Fail-safe mode in case of unbootable panel
|
|
||||||
- Selectable security levels, electronic keyswitch or no keyswitch
|
|
||||||
- Strobe Sync support for System Sensor and Wheelock (more will be added)
|
|
||||||
|
|
||||||
## Current Limitations ❎
|
|
||||||
- **NOT OFFICIALLY TESTED**! This should *not* be used in place of a fire panel from a name brand company
|
|
||||||
- No EOL support for NAC circuit
|
|
||||||
- No SmartSync, or two wire sync (CURRENTLY)
|
|
||||||
- No support for 2 wire smoke detectors
|
|
||||||
- Only 2 zones
|
|
||||||
|
|
||||||
|
📚 [Technical Instruction Manual](https://code.lexza.ch/Lexzach/antigneous/src/branch/stable-v1.5/instructions/antigneous_tech_instructions.pdf) - [Download](https://code.lexza.ch/Lexzach/antigneous/raw/branch/stable-v1.5/instructions/antigneous_tech_instructions.pdf)
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
179
main/main.ino
179
main/main.ino
@ -13,15 +13,6 @@ char *firmwareRev = "v1.5"; //VERSION
|
|||||||
int EEPROMVersion = 1; //version control to rewrite eeprom after update
|
int EEPROMVersion = 1; //version control to rewrite eeprom after update
|
||||||
int EEPROMBuild = 5;
|
int EEPROMBuild = 5;
|
||||||
|
|
||||||
//patents
|
|
||||||
// https://patents.google.com/patent/US5559492 - simplex
|
|
||||||
// https://patents.google.com/patent/US6281789 - simplex smartsync
|
|
||||||
// https://patents.google.com/patent/US6194994 - wheelock
|
|
||||||
// https://patents.google.com/patent/US5659287A/en - gentex strobe sync
|
|
||||||
// https://patents.google.com/patent/US5959528 - gentex smartsync
|
|
||||||
// https://patents.google.com/patent/US8928191B2/en - potter weird universal sync
|
|
||||||
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------------- 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;
|
||||||
@ -86,8 +77,6 @@ bool preAlarm = false; //use pre-alarm?
|
|||||||
bool smokeDetectorVerification = false; //should smoke detectors activate first stage
|
bool smokeDetectorVerification = false; //should smoke detectors activate first stage
|
||||||
bool smokeDetectorCurrentlyInVerification = false; //Is a smoke detector currently in verification?
|
bool smokeDetectorCurrentlyInVerification = false; //Is a smoke detector currently in verification?
|
||||||
bool audibleSilence = true;
|
bool audibleSilence = true;
|
||||||
bool useTwoWire = false; //does the panel use 2 wire for alarms
|
|
||||||
int twoWireTimer = 0; //timer for 2 wire alarms
|
|
||||||
int smokeDetectorTimeout = 60000; //how long to wait before toggling smoke detectors back on
|
int smokeDetectorTimeout = 60000; //how long to wait before toggling smoke detectors back on
|
||||||
int smokeDetectorPostRestartTimer = 0; //variable to keep track of the 60 seconds post-power up that the panel watches the smoke detector
|
int smokeDetectorPostRestartTimer = 0; //variable to keep track of the 60 seconds post-power up that the panel watches the smoke detector
|
||||||
int smokeDetectorPostRestartVerificationTime = 120000; //time in ms that the smoke detector should be monitored
|
int smokeDetectorPostRestartVerificationTime = 120000; //time in ms that the smoke detector should be monitored
|
||||||
@ -284,20 +273,23 @@ void setup() {
|
|||||||
lcd.print((String)"HOLD BUTTONS - "+i);
|
lcd.print((String)"HOLD BUTTONS - "+i);
|
||||||
delay(1000);
|
delay(1000);
|
||||||
}
|
}
|
||||||
|
if (digitalRead(resetButtonPin) and digitalRead(silenceButtonPin) and digitalRead(drillButtonPin)){
|
||||||
lcd.clear();
|
lcd.clear();
|
||||||
lcd.setCursor(0,0);
|
lcd.setCursor(0,0);
|
||||||
if (digitalRead(resetButtonPin) and digitalRead(silenceButtonPin) and digitalRead(drillButtonPin)){
|
|
||||||
lcd.print("RESETTING TO");
|
lcd.print("RESETTING TO");
|
||||||
lcd.setCursor(0,1);
|
lcd.setCursor(0,1);
|
||||||
lcd.print("FACTORY SETTINGS");
|
lcd.print("FACTORY SETTINGS");
|
||||||
resetEEPROM();
|
resetEEPROM();
|
||||||
|
delay(4000);
|
||||||
|
ESP.restart();
|
||||||
} else {
|
} else {
|
||||||
|
lcd.clear();
|
||||||
|
lcd.setCursor(0,0);
|
||||||
lcd.print("FACTORY RESET");
|
lcd.print("FACTORY RESET");
|
||||||
lcd.setCursor(0,1);
|
lcd.setCursor(0,1);
|
||||||
lcd.print("CANCELLED");
|
lcd.print("CANCELLED");
|
||||||
}
|
|
||||||
delay(3000);
|
delay(3000);
|
||||||
ESP.restart();
|
}
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------- EEPROM RESET BUTTONS
|
//----------------------------------------------------------------------------- EEPROM RESET BUTTONS
|
||||||
|
|
||||||
@ -366,7 +358,6 @@ void setup() {
|
|||||||
smokeDetectorVerification = EEPROM.read(76) == 1 ? true : false;
|
smokeDetectorVerification = EEPROM.read(76) == 1 ? true : false;
|
||||||
audibleSilence = EEPROM.read(79) == 1 ? true : false;
|
audibleSilence = EEPROM.read(79) == 1 ? true : false;
|
||||||
keylessSilence = EEPROM.read(27) == 1 ? true : false;
|
keylessSilence = EEPROM.read(27) == 1 ? true : false;
|
||||||
useTwoWire = EEPROM.read(30) == 1 ? true : false;
|
|
||||||
smokeDetectorTimeout = EEPROM.read(77)*5000;
|
smokeDetectorTimeout = EEPROM.read(77)*5000;
|
||||||
smokeDetectorPostRestartVerificationTime = EEPROM.read(28)*5000;
|
smokeDetectorPostRestartVerificationTime = EEPROM.read(28)*5000;
|
||||||
firstStageTime = EEPROM.read(75)*60000;
|
firstStageTime = EEPROM.read(75)*60000;
|
||||||
@ -722,41 +713,23 @@ void checkButtons(){
|
|||||||
//----------------------------------------------------------------------------- NAC ACTIVATION
|
//----------------------------------------------------------------------------- NAC ACTIVATION
|
||||||
void alarm(){
|
void alarm(){
|
||||||
if (strobe){
|
if (strobe){
|
||||||
if (strobeSync == 0){ //add more strobesyncs in the future
|
if (strobeSync != 1 and strobeSync != 2){ //add more strobesyncs in the future
|
||||||
strobeOn(true);
|
strobeOn(true);
|
||||||
} else {
|
} else if (strobeSync == 1 or strobeSync == 2){
|
||||||
strobeSyncTimer++;
|
|
||||||
if (strobeSync == 1 or strobeSync == 4){
|
|
||||||
if (strobeSyncTimer >= 1000){
|
if (strobeSyncTimer >= 1000){
|
||||||
strobeSyncTimer=0;
|
strobeSyncTimer=0;
|
||||||
} else if (strobeSyncTimer >= 975){
|
} else if (strobeSyncTimer >= 975){
|
||||||
strobeOn(false);
|
strobeOn(false);
|
||||||
} else if (strobeSyncTimer <= 25){
|
} else if (strobeSyncTimer <= 10){
|
||||||
strobeOn(true);
|
strobeOn(true);
|
||||||
}
|
}
|
||||||
} else if (strobeSync == 2) {
|
strobeSyncTimer++;
|
||||||
if (strobeSyncTimer >= 2000){
|
|
||||||
strobeSyncTimer=0;
|
|
||||||
} else if (strobeSyncTimer >= 1968){
|
|
||||||
strobeOn(false);
|
|
||||||
} else if (strobeSyncTimer <= 32){
|
|
||||||
strobeOn(true);
|
|
||||||
}
|
|
||||||
} else if (strobeSync == 3) {
|
|
||||||
if (strobeSyncTimer >= 2000){
|
|
||||||
strobeSyncTimer=0;
|
|
||||||
} else if (strobeSyncTimer >= 1985){
|
|
||||||
strobeOn(false);
|
|
||||||
} else if (strobeSyncTimer <= 15){
|
|
||||||
strobeOn(true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
strobeOn(false);
|
strobeOn(false);
|
||||||
strobeSyncTimer = 0;
|
strobeSyncTimer = 0;
|
||||||
}
|
}
|
||||||
if (horn and not useTwoWire){
|
if (horn){
|
||||||
if (not preAlarm or secondStage){ //yes, preAlarm == false is redundant but in the case that second stage == false, but pre-alarm is off, the full alarm will still sound
|
if (not preAlarm or secondStage){ //yes, preAlarm == false is redundant but in the case that second stage == false, but pre-alarm is off, the full alarm will still sound
|
||||||
if (codeWheel == 0){
|
if (codeWheel == 0){
|
||||||
|
|
||||||
@ -787,7 +760,7 @@ void alarm(){
|
|||||||
codeWheelTimer = -1;
|
codeWheelTimer = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (codeWheel == 2) { //--------- 4-4
|
} else if (codeWheel == 2) { //---------- 4-4
|
||||||
|
|
||||||
if (codeWheelTimer == 0) {
|
if (codeWheelTimer == 0) {
|
||||||
hornOn(true);
|
hornOn(true);
|
||||||
@ -826,7 +799,7 @@ void alarm(){
|
|||||||
codeWheelTimer = -1;
|
codeWheelTimer = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (codeWheel == 3) { //--------- continuous
|
} else if (codeWheel == 3) { //---------- continuous
|
||||||
hornOn(true);
|
hornOn(true);
|
||||||
} else if (codeWheel == 5) {
|
} else if (codeWheel == 5) {
|
||||||
if (codeWheelTimer == 0){ //---------- marchtime slower
|
if (codeWheelTimer == 0){ //---------- marchtime slower
|
||||||
@ -858,42 +831,6 @@ void alarm(){
|
|||||||
codeWheelTimer = -1;
|
codeWheelTimer = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
codeWheelTimer++;
|
|
||||||
firstStageTimer++;
|
|
||||||
if (firstStageTimer>=firstStageTime){
|
|
||||||
codeWheelTimer = 0;
|
|
||||||
secondStage = true;
|
|
||||||
currentScreen = -1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else if (useTwoWire){ //-------------------------------- DO MORE TESTING WITH THIS!!!!
|
|
||||||
if (horn and (not preAlarm or secondStage)){ //2 wire alarm
|
|
||||||
if (twoWireTimer >= 1000){
|
|
||||||
twoWireTimer = 0;
|
|
||||||
} else if (twoWireTimer >= 975){
|
|
||||||
hornOn(false);
|
|
||||||
} else if (twoWireTimer <= 10){
|
|
||||||
hornOn(true);
|
|
||||||
}
|
|
||||||
twoWireTimer++;
|
|
||||||
} else if (not horn and silenced and audibleSilence){ //2 wire silence
|
|
||||||
if (twoWireTimer >= 1000){
|
|
||||||
twoWireTimer = 0;
|
|
||||||
} else if (twoWireTimer >= 965){
|
|
||||||
hornOn(false);
|
|
||||||
} else if (twoWireTimer <= 10){
|
|
||||||
hornOn(true);
|
|
||||||
}
|
|
||||||
twoWireTimer++;
|
|
||||||
} else if (horn and preAlarm and not secondStage){ //2 wire pre-alarm
|
|
||||||
if (codeWheelTimer == 0){
|
|
||||||
hornOn(true);
|
|
||||||
} else if (codeWheelTimer == 75){
|
|
||||||
hornOn(false);
|
|
||||||
} else if (codeWheelTimer >= 5075){
|
|
||||||
codeWheelTimer = -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
codeWheelTimer++;
|
codeWheelTimer++;
|
||||||
firstStageTimer++;
|
firstStageTimer++;
|
||||||
if (firstStageTimer>=firstStageTime){
|
if (firstStageTimer>=firstStageTime){
|
||||||
@ -905,7 +842,6 @@ void alarm(){
|
|||||||
} else {
|
} else {
|
||||||
hornOn(false);
|
hornOn(false);
|
||||||
codeWheelTimer = 0;
|
codeWheelTimer = 0;
|
||||||
twoWireTimer = 0;
|
|
||||||
}
|
}
|
||||||
if (fullAlarm){
|
if (fullAlarm){
|
||||||
alarmLedTimer++;
|
alarmLedTimer++;
|
||||||
@ -1044,18 +980,18 @@ void configLCDUpdate(int cursor, String top, String bottom, bool replaceTop = fa
|
|||||||
}
|
}
|
||||||
|
|
||||||
void config(){
|
void config(){
|
||||||
const char *main[] = {"Testing","Settings"}; //menu 0
|
char *main[] = {"Testing","Settings"}; //menu 0
|
||||||
const char *mainTesting[] = {"Walk Test","Silent Wlk Test","Strobe Test"}; //menu 1
|
char *mainTesting[] = {"Walk Test","Silent Wlk Test","Strobe Test"}; //menu 1
|
||||||
const char *mainSettings[] = {"Fire Alarm","Panel"}; //menu 2
|
char *mainSettings[] = {"Fire Alarm","Panel"}; //menu 2
|
||||||
const char *mainSettingsFireAlarmSettings[] = {"Coding","Verification","Pre-Alarm","Audible Sil.:","No-Key Sil.:","Strobe Sync","2 Wire:"}; //menu 3
|
char *mainSettingsFireAlarmSettings[] = {"Coding","Verification","Pre-Alarm","Audible Sil.:","No-Key Sil.:","Strobe Sync"}; //menu 3
|
||||||
const char *mainSettingsVerificationSettings[] = {"Verification:","V.Time:","Det.Verif.:","Det.Timeout:","Det.Watch:"}; //menu 4
|
char *mainSettingsVerificationSettings[] = {"Verification:","V.Time:","Det.Verif.:","Det.Timeout:","Det.Watch:"}; //menu 4
|
||||||
const char *mainSettingsFireAlarmSettingsCoding[] = {"Temporal Three","Marchtime","4-4","Continuous","California","Slow Marchtime"}; //menu 5
|
char *mainSettingsFireAlarmSettingsCoding[] = {"Temporal Three","Marchtime","4-4","Continuous","California","Slow Marchtime"}; //menu 5
|
||||||
const char *mainSettingsFireAlarmSettingsPreAlarmSettings[] = {"Pre-Alarm:","Stage1 Time:"}; //menu 6
|
char *mainSettingsFireAlarmSettingsPreAlarmSettings[] = {"Pre-Alarm:","Stage1 Time:"}; //menu 6
|
||||||
const 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
|
||||||
const char *mainPanelSettingsPanelSecurity[] = {"None","Keyswitch","Passcode"}; //menu 9
|
char *mainPanelSettingsPanelSecurity[] = {"None","Keyswitch","Passcode"}; //menu 9
|
||||||
const char *mainPanelSettingsPanelName[] = {"Enter Name:"}; //menu 10
|
char *mainPanelSettingsPanelName[] = {"Enter Name:"}; //menu 10
|
||||||
const char *mainSettingsFireAlarmSettingsStrobeSync[] = {"None","System Sensor","Wheelock", "Gentex","Simplex"}; //menu 11
|
char *mainSettingsFireAlarmSettingsStrobeSync[] = {"None","System Sensor","Wheelock"}; //menu 11
|
||||||
const char *mainPanelSettingsAbout[] = {"Antigneous FACP","Nightly ","Made by Lexzach","Hrs On: "}; //menu 12
|
char *mainPanelSettingsAbout[] = {"Antigneous FACP","Stable ","Made by Lexzach","Hrs On: "}; //menu 12
|
||||||
|
|
||||||
if (digitalRead(resetButtonPin)){ //RESET BUTTON
|
if (digitalRead(resetButtonPin)){ //RESET BUTTON
|
||||||
resetPressed = true;
|
resetPressed = true;
|
||||||
@ -1158,11 +1094,7 @@ void config(){
|
|||||||
} else if (drillPressed and not drillStillPressed){
|
} else if (drillPressed and not drillStillPressed){
|
||||||
if (cursorPosition == 0){
|
if (cursorPosition == 0){
|
||||||
configPage = 3; //change screen to facp settings
|
configPage = 3; //change screen to facp settings
|
||||||
if (useTwoWire){
|
|
||||||
configLCDUpdate(0, (String)mainSettingsFireAlarmSettings[0] + " off", (String)mainSettingsFireAlarmSettings[1]);
|
|
||||||
} else {
|
|
||||||
configLCDUpdate(0, (String)mainSettingsFireAlarmSettings[0], (String)mainSettingsFireAlarmSettings[1]);
|
configLCDUpdate(0, (String)mainSettingsFireAlarmSettings[0], (String)mainSettingsFireAlarmSettings[1]);
|
||||||
}
|
|
||||||
} else if (cursorPosition == 1){
|
} else if (cursorPosition == 1){
|
||||||
configPage = 8; //change screen to facp settings
|
configPage = 8; //change screen to facp settings
|
||||||
configLCDUpdate(0, (String)mainPanelSettings[0], (String)mainPanelSettings[1]);
|
configLCDUpdate(0, (String)mainPanelSettings[0], (String)mainPanelSettings[1]);
|
||||||
@ -1190,25 +1122,15 @@ void config(){
|
|||||||
configLCDUpdate(4, (String)mainSettingsFireAlarmSettings[4]+"off", (String)mainSettingsFireAlarmSettings[5], false, false);
|
configLCDUpdate(4, (String)mainSettingsFireAlarmSettings[4]+"off", (String)mainSettingsFireAlarmSettings[5], false, false);
|
||||||
}
|
}
|
||||||
} else if (cursorPosition == 4) {
|
} else if (cursorPosition == 4) {
|
||||||
configLCDUpdate(5, (String)mainSettingsFireAlarmSettings[5], (String)mainSettingsFireAlarmSettings[6]+useTwoWire, false, true);
|
configLCDUpdate(5, (String)mainSettingsFireAlarmSettings[5], (String)mainSettingsFireAlarmSettings[0], false, false);
|
||||||
} else if (cursorPosition == 5){
|
} else if (cursorPosition == 5){
|
||||||
if (useTwoWire){
|
|
||||||
configLCDUpdate(6, (String)mainSettingsFireAlarmSettings[6]+useTwoWire, (String)mainSettingsFireAlarmSettings[0]+"off", true, false);
|
|
||||||
} else {
|
|
||||||
configLCDUpdate(6, (String)mainSettingsFireAlarmSettings[6]+useTwoWire, (String)mainSettingsFireAlarmSettings[0], true, false);
|
|
||||||
}
|
|
||||||
} else if (cursorPosition == 6){
|
|
||||||
if (useTwoWire){
|
|
||||||
configLCDUpdate(0, (String)mainSettingsFireAlarmSettings[0] + " off", (String)mainSettingsFireAlarmSettings[1]);
|
|
||||||
} else {
|
|
||||||
configLCDUpdate(0, (String)mainSettingsFireAlarmSettings[0], (String)mainSettingsFireAlarmSettings[1]);
|
configLCDUpdate(0, (String)mainSettingsFireAlarmSettings[0], (String)mainSettingsFireAlarmSettings[1]);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
} else if (silencePressed and not silenceStillPressed){
|
} else if (silencePressed and not silenceStillPressed){
|
||||||
configPage = 2;
|
configPage = 2;
|
||||||
configLCDUpdate(0, (String)mainSettings[0], (String)mainSettings[1]);
|
configLCDUpdate(0, (String)mainSettings[0], (String)mainSettings[1]);
|
||||||
} else if (drillPressed and not drillStillPressed){
|
} else if (drillPressed and not drillStillPressed){
|
||||||
if (cursorPosition == 0 and not useTwoWire){
|
if (cursorPosition == 0){
|
||||||
configPage = 5;
|
configPage = 5;
|
||||||
if (codeWheel == 0){
|
if (codeWheel == 0){
|
||||||
configLCDUpdate(0, (String)mainSettingsFireAlarmSettingsCoding[0] + "*", (String)mainSettingsFireAlarmSettingsCoding[1]);
|
configLCDUpdate(0, (String)mainSettingsFireAlarmSettingsCoding[0] + "*", (String)mainSettingsFireAlarmSettingsCoding[1]);
|
||||||
@ -1264,20 +1186,6 @@ void config(){
|
|||||||
} else {
|
} else {
|
||||||
configLCDUpdate(0, (String)mainSettingsFireAlarmSettingsStrobeSync[0], (String)mainSettingsFireAlarmSettingsStrobeSync[1]);
|
configLCDUpdate(0, (String)mainSettingsFireAlarmSettingsStrobeSync[0], (String)mainSettingsFireAlarmSettingsStrobeSync[1]);
|
||||||
}
|
}
|
||||||
} else if (cursorPosition == 6){
|
|
||||||
if (useTwoWire){
|
|
||||||
useTwoWire = false;
|
|
||||||
EEPROM.write(30,0);
|
|
||||||
} else {
|
|
||||||
useTwoWire = true;
|
|
||||||
EEPROM.write(30,1);
|
|
||||||
}
|
|
||||||
EEPROM.commit();
|
|
||||||
if (useTwoWire){
|
|
||||||
configLCDUpdate(cursorPosition, (String)mainSettingsFireAlarmSettings[6]+useTwoWire, (String)mainSettingsFireAlarmSettings[0] + " off", true, false);
|
|
||||||
} else {
|
|
||||||
configLCDUpdate(cursorPosition, (String)mainSettingsFireAlarmSettings[6]+useTwoWire, (String)mainSettingsFireAlarmSettings[0], true, false);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------- SETTINGS > FIRE ALARM
|
//----------------------------------------------------------------------------- SETTINGS > FIRE ALARM
|
||||||
@ -1492,11 +1400,7 @@ void config(){
|
|||||||
}
|
}
|
||||||
} else if (silencePressed and not silenceStillPressed){
|
} else if (silencePressed and not silenceStillPressed){
|
||||||
configPage = 3; //change screen to facp settings
|
configPage = 3; //change screen to facp settings
|
||||||
if (useTwoWire){
|
|
||||||
configLCDUpdate(0, (String)mainSettingsFireAlarmSettings[0] + " off", (String)mainSettingsFireAlarmSettings[1]);
|
|
||||||
} else {
|
|
||||||
configLCDUpdate(0, (String)mainSettingsFireAlarmSettings[0], (String)mainSettingsFireAlarmSettings[1]);
|
configLCDUpdate(0, (String)mainSettingsFireAlarmSettings[0], (String)mainSettingsFireAlarmSettings[1]);
|
||||||
}
|
|
||||||
} else if (drillPressed and not drillStillPressed){
|
} else if (drillPressed and not drillStillPressed){
|
||||||
EEPROM.write(7,cursorPosition); //write the new codewheel settings to eeprom
|
EEPROM.write(7,cursorPosition); //write the new codewheel settings to eeprom
|
||||||
EEPROM.commit();
|
EEPROM.commit();
|
||||||
@ -1849,29 +1753,13 @@ void config(){
|
|||||||
}
|
}
|
||||||
} else if (cursorPosition == 1) {
|
} else if (cursorPosition == 1) {
|
||||||
if (strobeSync == 2){
|
if (strobeSync == 2){
|
||||||
configLCDUpdate(2, (String)mainSettingsFireAlarmSettingsStrobeSync[2]+"*", (String)mainSettingsFireAlarmSettingsStrobeSync[3]);
|
configLCDUpdate(2, (String)mainSettingsFireAlarmSettingsStrobeSync[2]+"*", (String)mainSettingsFireAlarmSettingsStrobeSync[0]);
|
||||||
} else if (strobeSync == 3){
|
} else if (strobeSync == 0){
|
||||||
configLCDUpdate(2, (String)mainSettingsFireAlarmSettingsStrobeSync[2], (String)mainSettingsFireAlarmSettingsStrobeSync[3]+"*");
|
configLCDUpdate(2, (String)mainSettingsFireAlarmSettingsStrobeSync[2], (String)mainSettingsFireAlarmSettingsStrobeSync[0]+"*");
|
||||||
} else{
|
} else{
|
||||||
configLCDUpdate(2, (String)mainSettingsFireAlarmSettingsStrobeSync[2], (String)mainSettingsFireAlarmSettingsStrobeSync[3]);
|
configLCDUpdate(2, (String)mainSettingsFireAlarmSettingsStrobeSync[2], (String)mainSettingsFireAlarmSettingsStrobeSync[0]);
|
||||||
}
|
}
|
||||||
} else if (cursorPosition == 2) {
|
} else if (cursorPosition == 2) {
|
||||||
if (strobeSync == 3){
|
|
||||||
configLCDUpdate(3, (String)mainSettingsFireAlarmSettingsStrobeSync[3]+"*", (String)mainSettingsFireAlarmSettingsStrobeSync[4]);
|
|
||||||
} else if (strobeSync == 4){
|
|
||||||
configLCDUpdate(3, (String)mainSettingsFireAlarmSettingsStrobeSync[3], (String)mainSettingsFireAlarmSettingsStrobeSync[4]+"*");
|
|
||||||
} else{
|
|
||||||
configLCDUpdate(3, (String)mainSettingsFireAlarmSettingsStrobeSync[3], (String)mainSettingsFireAlarmSettingsStrobeSync[4]);
|
|
||||||
}
|
|
||||||
} else if (cursorPosition == 3) {
|
|
||||||
if (strobeSync == 4){
|
|
||||||
configLCDUpdate(4, (String)mainSettingsFireAlarmSettingsStrobeSync[4]+"*", (String)mainSettingsFireAlarmSettingsStrobeSync[0]);
|
|
||||||
} else if (strobeSync == 5){
|
|
||||||
configLCDUpdate(4, (String)mainSettingsFireAlarmSettingsStrobeSync[4], (String)mainSettingsFireAlarmSettingsStrobeSync[0]+"*");
|
|
||||||
} else{
|
|
||||||
configLCDUpdate(4, (String)mainSettingsFireAlarmSettingsStrobeSync[4], (String)mainSettingsFireAlarmSettingsStrobeSync[0]);
|
|
||||||
}
|
|
||||||
} else if (cursorPosition == 4) {
|
|
||||||
if (strobeSync == 0){
|
if (strobeSync == 0){
|
||||||
configLCDUpdate(0, (String)mainSettingsFireAlarmSettingsStrobeSync[0]+"*", (String)mainSettingsFireAlarmSettingsStrobeSync[1]);
|
configLCDUpdate(0, (String)mainSettingsFireAlarmSettingsStrobeSync[0]+"*", (String)mainSettingsFireAlarmSettingsStrobeSync[1]);
|
||||||
} else if (strobeSync == 1){
|
} else if (strobeSync == 1){
|
||||||
@ -1882,11 +1770,11 @@ void config(){
|
|||||||
}
|
}
|
||||||
} else if (silencePressed and not silenceStillPressed){
|
} else if (silencePressed and not silenceStillPressed){
|
||||||
configPage = 3; //change screen to facp settings
|
configPage = 3; //change screen to facp settings
|
||||||
configLCDUpdate(5, (String)mainSettingsFireAlarmSettings[5], (String)mainSettingsFireAlarmSettings[6]+useTwoWire, false, true);
|
configLCDUpdate(5, (String)mainSettingsFireAlarmSettings[5], (String)mainSettingsFireAlarmSettings[0], false, false);
|
||||||
} else if (drillPressed and not drillStillPressed){
|
} else if (drillPressed and not drillStillPressed){
|
||||||
EEPROM.write(29,cursorPosition); //write strobe sync settings
|
EEPROM.write(29,cursorPosition); //write strobe sync settings
|
||||||
EEPROM.commit();
|
EEPROM.commit();
|
||||||
if (cursorPosition == 4){
|
if (cursorPosition == 2){
|
||||||
configLCDUpdate(cursorPosition, (String)mainSettingsFireAlarmSettingsStrobeSync[cursorPosition]+"*", (String)mainSettingsFireAlarmSettingsStrobeSync[0]);
|
configLCDUpdate(cursorPosition, (String)mainSettingsFireAlarmSettingsStrobeSync[cursorPosition]+"*", (String)mainSettingsFireAlarmSettingsStrobeSync[0]);
|
||||||
} else {
|
} else {
|
||||||
configLCDUpdate(cursorPosition, (String)mainSettingsFireAlarmSettingsStrobeSync[cursorPosition]+"*", (String)mainSettingsFireAlarmSettingsStrobeSync[cursorPosition+1]);
|
configLCDUpdate(cursorPosition, (String)mainSettingsFireAlarmSettingsStrobeSync[cursorPosition]+"*", (String)mainSettingsFireAlarmSettingsStrobeSync[cursorPosition+1]);
|
||||||
@ -2049,7 +1937,6 @@ void failsafe(){ //--------------------------------------------- FAILSAFE MODE I
|
|||||||
digitalWrite(silenceLed,LOW);
|
digitalWrite(silenceLed,LOW);
|
||||||
digitalWrite(alarmLed,LOW);
|
digitalWrite(alarmLed,LOW);
|
||||||
digitalWrite(readyLed,LOW);
|
digitalWrite(readyLed,LOW);
|
||||||
delay(500);
|
|
||||||
ESP.restart();
|
ESP.restart();
|
||||||
}
|
}
|
||||||
if (troubleLedTimer >= 2000){
|
if (troubleLedTimer >= 2000){
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 582 KiB |
BIN
misc/ascii.jpg
BIN
misc/ascii.jpg
Binary file not shown.
Before Width: | Height: | Size: 533 KiB |
BIN
misc/eol.png
BIN
misc/eol.png
Binary file not shown.
Before Width: | Height: | Size: 21 KiB |
BIN
misc/gh_icon.png
BIN
misc/gh_icon.png
Binary file not shown.
Before Width: | Height: | Size: 294 KiB |
Loading…
x
Reference in New Issue
Block a user