stable firmware improvements
This commit is contained in:
parent
94d8cd9c53
commit
21c20db83e
BIN
gh_icon.png
BIN
gh_icon.png
Binary file not shown.
Before Width: | Height: | Size: 294 KiB |
Binary file not shown.
Binary file not shown.
@ -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
|
||||||
@ -373,7 +362,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;
|
||||||
@ -745,7 +733,7 @@ void alarm(){
|
|||||||
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){
|
||||||
|
|
||||||
@ -847,42 +835,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)){
|
|
||||||
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){
|
|
||||||
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){
|
|
||||||
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){
|
||||||
@ -894,7 +846,6 @@ void alarm(){
|
|||||||
} else {
|
} else {
|
||||||
hornOn(false);
|
hornOn(false);
|
||||||
codeWheelTimer = 0;
|
codeWheelTimer = 0;
|
||||||
twoWireTimer = 0;
|
|
||||||
}
|
}
|
||||||
if (fullAlarm){
|
if (fullAlarm){
|
||||||
alarmLedTimer++;
|
alarmLedTimer++;
|
||||||
@ -1036,7 +987,7 @@ void config(){
|
|||||||
char *main[] = {"Testing","Settings"}; //menu 0
|
char *main[] = {"Testing","Settings"}; //menu 0
|
||||||
char *mainTesting[] = {"Walk Test","Silent Wlk Test","Strobe Test"}; //menu 1
|
char *mainTesting[] = {"Walk Test","Silent Wlk Test","Strobe Test"}; //menu 1
|
||||||
char *mainSettings[] = {"Fire Alarm","Panel"}; //menu 2
|
char *mainSettings[] = {"Fire Alarm","Panel"}; //menu 2
|
||||||
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
|
||||||
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
|
||||||
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
|
||||||
char *mainSettingsFireAlarmSettingsPreAlarmSettings[] = {"Pre-Alarm:","Stage1 Time:"}; //menu 6
|
char *mainSettingsFireAlarmSettingsPreAlarmSettings[] = {"Pre-Alarm:","Stage1 Time:"}; //menu 6
|
||||||
@ -1147,11 +1098,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]);
|
||||||
@ -1181,17 +1128,13 @@ void config(){
|
|||||||
} else if (cursorPosition == 4) {
|
} else if (cursorPosition == 4) {
|
||||||
configLCDUpdate(5, (String)mainSettingsFireAlarmSettings[5], (String)mainSettingsFireAlarmSettings[0], false, false);
|
configLCDUpdate(5, (String)mainSettingsFireAlarmSettings[5], (String)mainSettingsFireAlarmSettings[0], false, false);
|
||||||
} else if (cursorPosition == 5){
|
} else if (cursorPosition == 5){
|
||||||
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]);
|
||||||
@ -1461,11 +1404,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();
|
||||||
|
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 |
Loading…
x
Reference in New Issue
Block a user