Final Part III
void inParse() {
Serial.print(ssNames[i]);
if (millis() < 5000) return; //Start-up clearance period.
dirc = -1;
if (was[i] == 0) dirc = 1;
parsed = 0;
// This function will parse input to perform function
if (ssNames[i] == "gl7" && dirc == -1) { // Green Light on!
digitalWrite(LG8, HIGH);
//See if push button was pressed recently
if ((millis() - last[6]) > 15000) { //ABSOLUTE REF!
eventName = "Key In";
beep(hzKeyIn, repKeyIn);
}
parsed = 1;
}
if (ssNames[i] == "gl7" && dirc == 1) { // Green Light off!
digitalWrite(LG8, LOW);
parsed = 1;
}
if (ssNames[i] == "pr8") {
pr8Hits = pr8Hits + 2;
if (pr8Hits < 3) {
pr8MS = millis(); // Set time to unset hit counter
}
if (pr8Hits > 9) { // Trigger
beep(hzDoorbell, repDoorbell);
pr8Hits = 0;
eventName = "Doorbell";
parsed = 1;
}
}
if (ssNames[i] == "dr7" && was[i] == 1) { // Door Close
eventName = "Door Closed";
doorMS = 999100200;
parsed = 1;
}
if (ssNames[i] == "dr7" && was[i] == 0) { // Door opens!
doorMS = millis() + delayDoorOpen; //Set timer for door open alarm
eventName = "Door Open.";
beepOn = 1;
beep(repDoorOpen, hzDoorOpen);
parsed = 1;
}
// Door Shove Alarm Requires Green Light
if (ssNames[i] == "bo7" && dirc == 1) {
eventName = "Bolting.";
beepOn = 0;
beep(repBolting, hzBolting);
parsed = 1;
}
if (ssNames[i] == "bo7" && dirc == -1) {
eventName = "UnBolting.";
parsed = 1;
}
if (ssNames[i] == "pb7" && dirc == 1) {
pexPush = millis();
pexUnlock = 0;
beepOn = 1;
beep(repPexPushed, hzPexPushed);
eventName = "PEX Pushed.";
parsed = 1;
}
if (ssNames[i] == "pr7" && dirc == 1) {
eventName = "PIR Motion";
parsed = 1;
pirMS = millis();
}
if (parsed == 1) {
eventOld = eventName + ">>" + eventOld;
Serial.print("eventOld:");
Serial.println(eventOld);
lcd.clear();
lcd.print(eventName);
lcd.backlight();
}
if (parsed == 0) {
}
}
void beep(int hz, int rep){}