Surasak Nasuriwong / FileManager

Dependencies:   SDFileSystem

Dependents:   RwSDCard_Xml_GPS

FileManager.h

Committer:
Lucyjungz
Date:
2016-05-17
Revision:
7:ab015947e368
Parent:
6:5bd75c0f607c
Child:
10:a8003d357cf2

File content as of revision 7:ab015947e368:

/* ###############  Constant Defination  ################## */

#define DEVICE_NAME             "sd"

// DEVICE_NAME must be put in between "/" for file name 
#define SETUP_FILE_NAME         "/sd/RMS_Tester.xml"
#define GPS_LOG_FILE_NAME       "/sd/YYYY-MM-DD.gps.csv "
#define RTL_LOG_FILE_NAME       "/sd/YYYY-MM-DD.rtl.csv"
#define VARIABLE_FILE_NAME      "/sd/20160216185627_upload.xml"
#define MINIRMS_LOG_FILE_NAME   "/sd/miniRMS.log"

#define GPS_TAG                 "<Gps>"
#define DATA_TAG                "<Data>"
#define UPDATE_INTERVAL_TAG     "<Update_Interval>"
#define VAR_NAME_TAG            "<varName>"
#define VAR_ADDR_TAG            "<varAddress>"
#define VAR_LSB1_TAG            "<LSB1>"
#define VAR_LSB2_TAG            "<LSB2>"
#define VAR_BITMASK_TAG         "<BitMask>"
#define VAR_UNIT_TAG            "<Unit>"
#define XMLTEXT_SIZE            20

#define VAR_NAME_MAX_SIZE       20
#define VAR_ADDR_MAX_SIZE       10
#define VAR_LSB1_MAX_SIZE       3
#define VAR_LSB2_MAX_SIZE       10
#define VAR_BITMASK_MAX_SIZE    5
#define VAR_UNIT_MAX_SIZE       20

#define MAX_VAR                 50

#define RMS_HEADER_TIME         "Time"
#define RMS_MSECOND             "MSecond"


/* ###############  Enum  ################## */
typedef enum  {
    STATE_FINDING,    /** Finding */
    STATE_FOUND_DATA,  /** Found Data tag */
    STATE_FOUND_DATA_INTERVAL,  /**< Found update internal of tag*/
    STATE_FOUND_GPS,  /** Found GPS tag */
    STATE_FOUND_GPS_INTERVAL,  /** Found update internal of GPS*/
} ReadingFileState;


/* ###############  Structure   ################## */

typedef struct {
    char varName[VAR_NAME_MAX_SIZE];
    char varAddress[VAR_ADDR_MAX_SIZE+1];
    char varLSB1[VAR_LSB1_MAX_SIZE];
    char varLSB2[VAR_LSB2_MAX_SIZE];
    char varBitMask[VAR_BITMASK_MAX_SIZE];
    char varUnit[VAR_UNIT_MAX_SIZE];
} Variable_Data_TypeDef;


/* ###############  Function Prototype  ################## */
void FileManager_ReadSetupFile();
void FileManager_DeleteFile(char filename[]);
int FileManager_GPSInterval();
int FileManager_DataInterval();
void FileManager_LogGPSData(time_t timestamp ,char lat[], char longti[]);
void FileManager_LogSystemData(float gps_interval);
Variable_Data_TypeDef * FileManager_ReadVarFile();
int FileManager_GetAmountVarList();
Variable_Data_TypeDef * FileManager_GetVarList();
void FileManager_LogRMSData(time_t timestamp ,float * var, int size);
void FileManager_LogRMSHeader(time_t timestamp);
bool FileManager_IsFileExist(char filename[]);