Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
FileManager.h
- Committer:
- Lucyjungz
- Date:
- 2016-05-19
- Revision:
- 14:4ba6147f067b
- Parent:
- 11:e21d4c5bfd1b
- Child:
- 15:b63a539c3754
File content as of revision 14:4ba6147f067b:
/** ****************************************************************************** * @file FileManager.h * @author Narut T * @version V1 * @date 19/05/2016 * @brief Header file for File Manager ******************************************************************************/ /* ############### Constant Defination ################## */ #define DEVICE_NAME "sd" /*!< Device directory */ // DEVICE_NAME must be put in between "/" for file name #define SETUP_FILE_NAME "/sd/RMS_Tester.xml" /*!< Setup File Name */ #define GPS_LOG_FILE_NAME "/sd/YYYY-MM-DD.gps.csv " /*!< GPS Log File Name */ #define RTL_LOG_FILE_NAME "/sd/YYYY-MM-DD.rtl.csv" /*!< RMS Log File Name */ #define VARIABLE_FILE_NAME "/sd/20160216185627_upload.xml" /*!< Mini RMS Log File Name */ #define MINIRMS_LOG_FILE_NAME "/sd/miniRMS.log" /** XML Tag */ #define GPS_TAG "<Gps>" /*!< GPS Tag */ #define DATA_TAG "<Data>" /*!< Data Tag */ #define UPDATE_INTERVAL_TAG "<Update_Interval>" /*!< Update Internal Tag */ #define VAR_NAME_TAG "<varName>" /*!< Variable Name Tag */ #define VAR_ADDR_TAG "<varAddress>" /*!< Variable Address Tag */ #define VAR_TYPE_TAG "<varType>" /*!< Variable Type Tag */ #define VAR_LSB1_TAG "<LSB1>" /*!< Variable LSB1 Tag */ #define VAR_LSB2_TAG "<LSB2>" /*!< Variable LSB2 Tag */ #define VAR_BITMASK_TAG "<BitMask>" /*!< Variable Bit Mask Tag */ #define VAR_UNIT_TAG "<Unit>" /*!< Variable Unit Tag */ /** XML Text Size */ #define XMLTEXT_SIZE 20 /*!< XML Text Maximum size */ #define VAR_NAME_MAX_SIZE 20 /*!< Variable Name Maximum Size */ #define VAR_ADDR_MAX_SIZE 10 /*!< Variable Address Maximum Size */ #define VAR_TYPE_MAX_SIZE 3 /*!< Variable Type Maximum Size */ #define VAR_LSB1_MAX_SIZE 3 /*!< Variable LSB1 Maximum Size */ #define VAR_LSB2_MAX_SIZE 10 /*!< Variable LSB2 Maximum Size */ #define VAR_BITMASK_MAX_SIZE 5 /*!< Variable Bit Mask Maximum Size */ #define VAR_UNIT_MAX_SIZE 20 /*!< Variable Unit Maximum Size */ #define MAX_VAR 50 /*!< Maximum variable to be supported */ #define RMS_HEADER_TIME "Time" /*!< RMS Header Time tag */ #define RMS_HEADER_MSECOND "MSecond" /*!< RMS MSecond Time tag */ #define READ_FILE_BUFFER_SIZE 1024 /*!< Read file buffer size */ #define RENAME_FILE_BUFFER_SIZE 5 /*!< Rename File buffer size */ /** Offset for /sd/YYYY-MM-DD- string */ #define TIMESTAMP_YEAR_OFFSET 4 /*!< Offset for year */ #define TIMESTAMP_YEAR_SIZE 4 /*!< Size for year */ #define TIMESTAMP_MONTH_OFFSET 9 /*!< Offset for month */ #define TIMESTAMP_MONTH_SIZE 2 /*!< Size for month */ #define TIMESTAMP_DATE_OFFSET 12 /*!< Offset for date */ #define TIMESTAMP_DATE_SIZE 2 /*!< Size for date */ #define YEAR_4DIGITS_OFFSET 1900 /*!< Offset to convert 2 digits year to 4 digits */ /* ############### Enum ################## */ /* Exported types ------------------------------------------------------------*/ /** @defgroup ReadingFileState Exported Types * @{ */ /** * @brief Reading File State structures definition */ 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 ################## */ /** * @brief Structure of Variable List File */ typedef struct { char varName[VAR_NAME_MAX_SIZE]; /*!< char array Variable Name */ char varAddress[VAR_ADDR_MAX_SIZE+1]; /*!< char array Variable Address */ char varType[VAR_TYPE_MAX_SIZE]; /*!< char array Variable Type */ char varLSB1[VAR_LSB1_MAX_SIZE]; /*!< char array Variable LSB1 */ char varLSB2[VAR_LSB2_MAX_SIZE]; /*!< char array Variable LSB2 */ char varBitMask[VAR_BITMASK_MAX_SIZE]; /*!< char array Variable Bit Mask */ char varUnit[VAR_UNIT_MAX_SIZE]; /*!< char array Variable Unit */ } 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[]); void FILEMANAGER_Init(void);