A simple WIP that logs data from a Grove sensor, and can send and receive information over USB and SMS.
Dependencies: DHT DS_1337 SDFileSystem USBDevice mbed
Handlers/SdHandler.h
- Committer:
- Joseph Radford
- Date:
- 2016-04-10
- Revision:
- 0:2df78a4443cd
File content as of revision 0:2df78a4443cd:
#ifndef __SD_HANDLER_H__ #define __SD_HANDLER_H__ #include "SDFileSystem.h" #include "AbstractHandler.h" class CircBuff; /*! * \brief The SdHandler class writes messages to file and handles SD card status * * A data CSV file is written with timestamps and the result from the GroveDht22. * A system log, not yet fully implemented, tracks system events for debugging purposes. */ class SdHandler : public AbstractHandler { public: SdHandler(MyTimers * _timer); ~SdHandler(); void run(); void setRequest(int request, void *data = 0); bool sdOk(); enum request_t { sdreq_SdNone, ///< to init sdreq_LogData, ///< Send struct containing a result and timestamp. This turns it into a line in a csv file sdreq_LogSystem ///< write raw string to system logging file (errors, events, etc) }; private: SDFileSystem * m_sdfs; FILE * m_data; FILE * m_syslog; enum mode_t{ sd_Start, ///< Set up the state machine sd_CheckSysLogBuffer, ///< See if any data should be written to the log file sd_CheckDataLogBuffer, ///< See if any data should be written to the data file sd_WaitError ///< Error. wait for a while }; mode_t mode; request_t m_lastRequest; // helpers void csvStart(time_t time); void csvData(const char * s, int len); void csvEnd(); void logEvent(const char * s); CircBuff *m_dataLogBuff; ///< Data waiting to be written to the data CSV file CircBuff *m_sysLogBuff; ///< Data waiting to be written to the system log file (not yet implemented) }; #endif // __SD_HANDLER_H__