OneDigg OneDiggFromXPathNodeFactory::createDigg(pugi::xpath_node &node) { ValuesFromNodeExtractor extractor; auto title = extractor.getValueFromNode(node, (InputFileConstants::getDiggNameNodeName()+"/text()").c_str()); auto description = extractor.getValueFromNode(node, (InputFileConstants::getDiggDescriptionNodeName()+"/text()").c_str()); int diggsCount = getDiggsCount(node, extractor); std::string date = fetchDate(node, extractor); std::string time = fetchTime(node, extractor); std::string dateWithTime = extractor.getValueFromNode(node, (InputFileConstants::getDiggTimeNodeName()+"/text()").c_str()); return OneDigg(title, description, diggsCount, date, dateWithTime); }
void setup() { //wdt_disable(); wdt_reset(); // Set the watchdog timer to 8 seconds wdt_enable(WDTO_8S); // start the serial library: Serial.begin(9600); //debug messages Serial1.begin(9600); //RFID Serial.println("Artifactory Door\r\n Booting"); auxSetup(); fetchTime(); lcdDisplayTime(1); if (SD.begin(SD_CS_PIN)) { /* if(SD.exists(logFile)){ //if there is an active log file archiveLog(); } */ nextFileName(logFile, logFilePrefix, logFileSuffix); fileWrite(logFile, "booting", "", true); Serial.print("logFile = "); Serial.println(logFile); openFile = SD.open(fullFile); //can we open the full members file? if (openFile) { fileWrite(logFile, "full members file open success: ", fullFile, true); SDcardPresent = true; } openFile.close(); openFile = SD.open(restFile); if (openFile) { fileWrite(logFile, "restricted members file open success: ", restFile, true); } openFile.close(); openFile = SD.open(assocFile); //can we open the full members file? if (openFile) { fileWrite(logFile, "associate members file open success: ", assocFile, true); } openFile.close(); } lcd.clear(); lcd.setCursor(0, 0); lcd.print("Artifactory Door"); lcd.setCursor(0, 1); lcd.print(" Booting"); /* if (Ethernet.begin(mac) == 0) { Serial.println("DHCP failed."); // initialize the ethernet device not using DHCP: Ethernet.begin(mac, ip, gateway, subnet); } Serial.print("IP = "); for (byte thisByte = 0; thisByte < 4; thisByte++) { Serial.print(Ethernet.localIP()[thisByte], DEC); Serial.print("."); } Serial.println(); if(serverWrite("booting", "", false) == true) { Serial.println("telnet sending"); } else { Serial.println("telnet send failed"); } */ //fast timers are measured against micros() fastTimers[TIMERSECOND].period = 1 S; fastTimers[TIMERSECOND].start = micros(); fastTimers[TIMERSECOND].active = true; fastTimers[TIMERSECOND].expire = theTimeIncrement; fastTimers[TIMERSLOWPOLL].period = 2 S; fastTimers[TIMERSLOWPOLL].start = micros(); fastTimers[TIMERSLOWPOLL].active = true; fastTimers[TIMERSLOWPOLL].expire = pollSlowTimers; fastTimers[TIMERSTRIKE].period = 5 S; fastTimers[TIMERSTRIKE].active = false; fastTimers[TIMERSTRIKE].expire = closeTheDoor; fastTimers[TIMERLEDBLINK].period = 1 S; // Seconds fastTimers[TIMERLEDBLINK].active = false; fastTimers[TIMERLEDBLINK].expire = ledBlink; fastTimers[TIMERLEDFADER].period = 10 MS; fastTimers[TIMERLEDFADER].active = false; fastTimers[TIMERLEDFADER].expire = ledFade; /* fastTimers[TIMERSERVER].period = 10 S; fastTimers[TIMERSERVER].active = false; fastTimers[TIMERSERVER].expire = serverTimeout; */ //slow timers are measured against theTime slowTimers[TIMERLOGDUMP].period = 86400; // seconds slowTimers[TIMERLOGDUMP].start = theTime; slowTimers[TIMERLOGDUMP].active = true; slowTimers[TIMERLOGDUMP].expire = dumpLogs; slowTimers[TIMERRTCREFRESH].period = 86400; // ten hours //slowTimers[TIMERRTCREFRESH].period = 15; // ten hours slowTimers[TIMERRTCREFRESH].start = theTime; slowTimers[TIMERRTCREFRESH].active = true; slowTimers[TIMERRTCREFRESH].expire = fetchTime; slowTimers[TIMERLCDTIME].period = 2; // seconds slowTimers[TIMERLCDTIME].start = theTime; slowTimers[TIMERLCDTIME].active = true; slowTimers[TIMERLCDTIME].expire = LCDrefresh; slowTimers[TIMERDOORBELL].period = 2; // seconds slowTimers[TIMERDOORBELL].active = false; slowTimers[TIMERDOORBELL].expire = DoorBellRefresh; slowTimers[TIMERDOORSTATUS].period = 2; // seconds slowTimers[TIMERDOORSTATUS].active = false; slowTimers[TIMERDOORSTATUS].expire = DoorStatusRefresh; slowTimers[TIMEREXITGRACE].period = 60; // Give a 1 minute grace period post lockup slowTimers[TIMEREXITGRACE].active = false; slowTimers[TIMEREXITGRACE].expire = closeSpaceFinal; //slowTimers[TIMERINDUCEDEATH].period = 10; //slowTimers[TIMERINDUCEDEATH].active = true; //slowTimers[TIMERINDUCEDEATH].expire = induceDeath; PCICR |= (1 << PCIE2); //enable port-change interrupt on port-change-byte 2 PCMSK2 |= DOORBELLBIT; PCMSK2 |= REEDSWITCHBIT; PCMSK2 |= GUESTOKBIT; PCMSK2 |= LOCKUPBIT; pinMode(DOORSTRIKE, OUTPUT); pinMode(LCDBACKLIGHT, OUTPUT); pinMode(DOORBELL, INPUT); pinMode(REEDSWITCH, INPUT); pinMode(GUESTOKSWITCH, INPUT); pinMode(LOCKUPBUTTON, INPUT); digitalWrite(LCDBACKLIGHT, HIGH); digitalWrite(DOORBELL, HIGH); //pullup resistors digitalWrite(REEDSWITCH, HIGH); digitalWrite(GUESTOKSWITCH, HIGH); digitalWrite(LOCKUPBUTTON, HIGH); // interruptFlags = 0; pinMode(DOORBELLLED, OUTPUT); pinMode(GUESTOKLED, OUTPUT); pinMode(LOCKUPLED, OUTPUT); digitalWrite(DOORBELLLED, LOW); digitalWrite(GUESTOKLED, LOW); digitalWrite(LOCKUPLED, LOW); pinMode(STATUS_R, OUTPUT); pinMode(STATUS_G, OUTPUT); pinMode(STATUS_B, OUTPUT); digitalWrite(STATUS_R, LOW); digitalWrite(STATUS_G, LOW); digitalWrite(STATUS_B, LOW); }