Arianna autonomous DAQ firmware
Dependencies: mbed SDFileSystemFilinfo AriSnProtocol NetServicesMin AriSnComm MODSERIAL PowerControlClkPatch DS1820OW
SnSDUtils.h
- Committer:
- uci1
- Date:
- 2012-07-20
- Revision:
- 1:e392595b4b76
- Parent:
- 0:664899e0b988
- Child:
- 2:e67f7c158087
File content as of revision 1:e392595b4b76:
#ifndef SN_SnSDUtils #define SN_SnSDUtils #include <stdio.h> #include <stdint.h> #include "SnCommWin.h" class SnEventFrame; class SnConfigFrame; // a namespace-like class to handle the i/o with the SD card class SnSDUtils { public: static const char* const kSDsubDir; static const uint8_t kFNBufSize=128; static const uint8_t kIOvers; // file I/O version private: static FILE* OpenSDFile(const char* name); static uint16_t GetSeqNum(const uint64_t macadr, const uint32_t run); static const char* GetOutFileName(const uint64_t macadr, const uint32_t run, const uint16_t seq); static void DeleteFile(FILE*& f, const char* fname); static char fgCurFileName[kFNBufSize]; static FILE* fgCurFile; public: SnSDUtils() {} virtual ~SnSDUtils() {} static int CloseOutputFile(FILE* f) { return (f!=0) ? fclose(f) : 0; } static FILE* OpenNewOutputFile(const uint64_t macadr, const uint32_t run); static FILE* OpenExistingFile(const char* name); static SnCommWin::ECommWinResult SendAllFiles(SnCommWin* comm, const bool doDelete); static const char* GetCurFileName() { return fgCurFileName; } static FILE* GetCurFile() { return fgCurFile; } static bool WriteEventTo(FILE* efile, char* const evtBuf, const SnEventFrame& evt, const SnConfigFrame& conf); static bool WriteConfig(FILE* efile, const SnConfigFrame& conf); static bool WriteFileHeader(FILE* f, const uint64_t macadr); friend class SnSDUtilsWhisperer; // to restrict access to specific functions }; class SnSDUtilsWhisperer { static void DeleteFile(FILE*& f, const char* fname) { return SnSDUtils::DeleteFile(f, fname); } friend class SnCommWin; // the one who's allowed to use me }; #endif // SN_SnSDUtils