Monitor for central heating system (e.g. 2zones+hw) Supports up to 15 temp probes (DS18B20/DS18S20) 3 valve monitors Gas pulse meter recording Use stand-alone or with nodeEnergyServer See http://robdobson.com/2015/09/central-heating-monitor
Dependencies: EthernetInterfacePlusHostname NTPClient Onewire RdWebServer SDFileSystem-RTOS mbed-rtos mbed-src
Logger.cpp
- Committer:
- Bobty
- Date:
- 2015-02-22
- Revision:
- 12:a52996515063
- Child:
- 20:7933076df5af
File content as of revision 12:a52996515063:
// Log to SD // Rob Dobson, 2015 #include "Logger.h" Logger::Logger(const char* eventLogFileName, const char* dataLogFileBase) { _eventLogFileName = eventLogFileName; _dataLogFileBase = dataLogFileBase; } void Logger::LogEvent(const char* format, ...) { char timeBuf[40]; time_t seconds = time(NULL); strftime(timeBuf, sizeof(timeBuf), "%Y-%m-%d\t%H:%M:%S\t", localtime(&seconds)); FILE* fp = fopen(_eventLogFileName, "a"); if (fp == NULL) { printf ("Event Log ... Filename %s not found\r\n", _eventLogFileName); } else { fprintf(fp, timeBuf); va_list argptr; va_start(argptr, format); vfprintf(fp, format, argptr); va_end(argptr); fprintf(fp, "\r\n"); fclose(fp); } } // Utility function to log data void Logger::LogData(const char* format, ...) { char fileNameBuf[60]; strcpy(fileNameBuf, _dataLogFileBase); time_t seconds = time(NULL); strftime(fileNameBuf+strlen(fileNameBuf), sizeof(fileNameBuf)-strlen(fileNameBuf), "Data_%Y%m%d.txt", localtime(&seconds)); FILE* fp = fopen(fileNameBuf, "a"); if (fp == NULL) { printf ("Data Log ... Filename %s not found\r\n", _eventLogFileName); } else { va_list argptr; va_start(argptr, format); vfprintf(fp, format, argptr); va_end(argptr); fprintf(fp, "\r\n"); fclose(fp); } }