File manager
FileManager.h@38:e2799f75940f, 2016-09-20 (annotated)
- Committer:
- nsrwsurasak
- Date:
- Tue Sep 20 07:39:16 2016 +0000
- Revision:
- 38:e2799f75940f
- Parent:
- 36:09e662a69c50
Fix bug and delete print message.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Lucyjungz | 14:4ba6147f067b | 1 | /** |
Lucyjungz | 14:4ba6147f067b | 2 | ****************************************************************************** |
Lucyjungz | 14:4ba6147f067b | 3 | * @file FileManager.h |
Lucyjungz | 14:4ba6147f067b | 4 | * @author Narut T |
Lucyjungz | 14:4ba6147f067b | 5 | * @version V1 |
Lucyjungz | 14:4ba6147f067b | 6 | * @date 19/05/2016 |
Lucyjungz | 14:4ba6147f067b | 7 | * @brief Header file for File Manager |
Lucyjungz | 14:4ba6147f067b | 8 | ******************************************************************************/ |
Lucyjungz | 3:6e08d0bba1bb | 9 | /* ############### Constant Defination ################## */ |
Lucyjungz | 3:6e08d0bba1bb | 10 | |
nsrwsurasak | 16:c13dc589bb55 | 11 | #ifndef FILEMANAGER_H |
nsrwsurasak | 16:c13dc589bb55 | 12 | #define FILEMANAGER_H |
nsrwsurasak | 16:c13dc589bb55 | 13 | |
Lucyjungz | 14:4ba6147f067b | 14 | #define DEVICE_NAME "sd" /*!< Device directory */ |
Lucyjungz | 1:1f1f2b99756b | 15 | |
Lucyjungz | 1:1f1f2b99756b | 16 | // DEVICE_NAME must be put in between "/" for file name |
Lucyjungz | 21:0c52dbc23f52 | 17 | #define PREFIX_FILE_NAME "/sd/" /*!< Prefix File Name */ |
Lucyjungz | 14:4ba6147f067b | 18 | #define SETUP_FILE_NAME "/sd/RMS_Tester.xml" /*!< Setup File Name */ |
Lucyjungz | 14:4ba6147f067b | 19 | #define GPS_LOG_FILE_NAME "/sd/YYYY-MM-DD.gps.csv " /*!< GPS Log File Name */ |
Lucyjungz | 14:4ba6147f067b | 20 | #define RTL_LOG_FILE_NAME "/sd/YYYY-MM-DD.rtl.csv" /*!< RMS Log File Name */ |
Lucyjungz | 14:4ba6147f067b | 21 | #define VARIABLE_FILE_NAME "/sd/20160216185627_upload.xml" /*!< Mini RMS Log File Name */ |
nsrwsurasak | 0:a27e0d3581d1 | 22 | #define MINIRMS_LOG_FILE_NAME "/sd/miniRMS.log" |
nsrwsurasak | 0:a27e0d3581d1 | 23 | |
Lucyjungz | 11:e21d4c5bfd1b | 24 | /** XML Tag */ |
Lucyjungz | 14:4ba6147f067b | 25 | #define GPS_TAG "<Gps>" /*!< GPS Tag */ |
Lucyjungz | 14:4ba6147f067b | 26 | #define DATA_TAG "<Data>" /*!< Data Tag */ |
Lucyjungz | 21:0c52dbc23f52 | 27 | #define VAR_LIST_FILE_TAG "<List_File_Name>" /*!< Variable List File Name Tag */ |
Lucyjungz | 29:964610d82f8d | 28 | #define RMS_DEVICE_TAG "<Device>" /*!< RMS Device Tag */ |
Lucyjungz | 29:964610d82f8d | 29 | #define RMS_KEY_TAG "<Key>" /*!< RMS Key Tag*/ |
Lucyjungz | 14:4ba6147f067b | 30 | #define UPDATE_INTERVAL_TAG "<Update_Interval>" /*!< Update Internal Tag */ |
Lucyjungz | 14:4ba6147f067b | 31 | #define VAR_NAME_TAG "<varName>" /*!< Variable Name Tag */ |
Lucyjungz | 14:4ba6147f067b | 32 | #define VAR_ADDR_TAG "<varAddress>" /*!< Variable Address Tag */ |
Lucyjungz | 14:4ba6147f067b | 33 | #define VAR_TYPE_TAG "<varType>" /*!< Variable Type Tag */ |
Lucyjungz | 14:4ba6147f067b | 34 | #define VAR_LSB1_TAG "<LSB1>" /*!< Variable LSB1 Tag */ |
Lucyjungz | 14:4ba6147f067b | 35 | #define VAR_LSB2_TAG "<LSB2>" /*!< Variable LSB2 Tag */ |
Lucyjungz | 14:4ba6147f067b | 36 | #define VAR_BITMASK_TAG "<BitMask>" /*!< Variable Bit Mask Tag */ |
Lucyjungz | 14:4ba6147f067b | 37 | #define VAR_UNIT_TAG "<Unit>" /*!< Variable Unit Tag */ |
nsrwsurasak | 0:a27e0d3581d1 | 38 | |
Lucyjungz | 11:e21d4c5bfd1b | 39 | /** XML Text Size */ |
Lucyjungz | 14:4ba6147f067b | 40 | #define XMLTEXT_SIZE 20 /*!< XML Text Maximum size */ |
Lucyjungz | 14:4ba6147f067b | 41 | #define VAR_NAME_MAX_SIZE 20 /*!< Variable Name Maximum Size */ |
Lucyjungz | 14:4ba6147f067b | 42 | #define VAR_ADDR_MAX_SIZE 10 /*!< Variable Address Maximum Size */ |
Lucyjungz | 14:4ba6147f067b | 43 | #define VAR_TYPE_MAX_SIZE 3 /*!< Variable Type Maximum Size */ |
Lucyjungz | 14:4ba6147f067b | 44 | #define VAR_LSB1_MAX_SIZE 3 /*!< Variable LSB1 Maximum Size */ |
Lucyjungz | 14:4ba6147f067b | 45 | #define VAR_LSB2_MAX_SIZE 10 /*!< Variable LSB2 Maximum Size */ |
Lucyjungz | 14:4ba6147f067b | 46 | #define VAR_BITMASK_MAX_SIZE 5 /*!< Variable Bit Mask Maximum Size */ |
Lucyjungz | 14:4ba6147f067b | 47 | #define VAR_UNIT_MAX_SIZE 20 /*!< Variable Unit Maximum Size */ |
Lucyjungz | 14:4ba6147f067b | 48 | |
Lucyjungz | 21:0c52dbc23f52 | 49 | #define MAX_FILE_NAME_SIZE 40 /*!< Maximum File name size to be supported */ |
Lucyjungz | 14:4ba6147f067b | 50 | #define MAX_VAR 50 /*!< Maximum variable to be supported */ |
Lucyjungz | 5:7c513eee7b2b | 51 | |
Lucyjungz | 14:4ba6147f067b | 52 | #define RMS_HEADER_TIME "Time" /*!< RMS Header Time tag */ |
Lucyjungz | 14:4ba6147f067b | 53 | #define RMS_HEADER_MSECOND "MSecond" /*!< RMS MSecond Time tag */ |
Lucyjungz | 14:4ba6147f067b | 54 | #define READ_FILE_BUFFER_SIZE 1024 /*!< Read file buffer size */ |
Lucyjungz | 14:4ba6147f067b | 55 | #define RENAME_FILE_BUFFER_SIZE 5 /*!< Rename File buffer size */ |
nsrwsurasak | 0:a27e0d3581d1 | 56 | |
Lucyjungz | 14:4ba6147f067b | 57 | /** Offset for /sd/YYYY-MM-DD- string */ |
Lucyjungz | 14:4ba6147f067b | 58 | #define TIMESTAMP_YEAR_OFFSET 4 /*!< Offset for year */ |
Lucyjungz | 14:4ba6147f067b | 59 | #define TIMESTAMP_YEAR_SIZE 4 /*!< Size for year */ |
Lucyjungz | 14:4ba6147f067b | 60 | #define TIMESTAMP_MONTH_OFFSET 9 /*!< Offset for month */ |
Lucyjungz | 14:4ba6147f067b | 61 | #define TIMESTAMP_MONTH_SIZE 2 /*!< Size for month */ |
Lucyjungz | 14:4ba6147f067b | 62 | #define TIMESTAMP_DATE_OFFSET 12 /*!< Offset for date */ |
Lucyjungz | 14:4ba6147f067b | 63 | #define TIMESTAMP_DATE_SIZE 2 /*!< Size for date */ |
Lucyjungz | 14:4ba6147f067b | 64 | #define YEAR_4DIGITS_OFFSET 1900 /*!< Offset to convert 2 digits year to 4 digits */ |
Lucyjungz | 1:1f1f2b99756b | 65 | |
nsrwsurasak | 22:2fc64ad66e35 | 66 | extern bool m_sdCardIsPresent; |
Lucyjungz | 3:6e08d0bba1bb | 67 | /* ############### Enum ################## */ |
Lucyjungz | 14:4ba6147f067b | 68 | |
Lucyjungz | 14:4ba6147f067b | 69 | /* Exported types ------------------------------------------------------------*/ |
Lucyjungz | 14:4ba6147f067b | 70 | /** @defgroup ReadingFileState Exported Types |
Lucyjungz | 14:4ba6147f067b | 71 | * @{ |
Lucyjungz | 14:4ba6147f067b | 72 | */ |
Lucyjungz | 14:4ba6147f067b | 73 | |
Lucyjungz | 14:4ba6147f067b | 74 | /** |
Lucyjungz | 14:4ba6147f067b | 75 | * @brief Reading File State structures definition |
Lucyjungz | 14:4ba6147f067b | 76 | */ |
nsrwsurasak | 0:a27e0d3581d1 | 77 | typedef enum { |
Lucyjungz | 14:4ba6147f067b | 78 | STATE_FINDING, /*!< Finding */ |
Lucyjungz | 14:4ba6147f067b | 79 | STATE_FOUND_DATA, /*!< Found Data tag */ |
Lucyjungz | 14:4ba6147f067b | 80 | STATE_FOUND_DATA_INTERVAL, /*!<< Found update internal of tag*/ |
Lucyjungz | 14:4ba6147f067b | 81 | STATE_FOUND_GPS, /*!< Found GPS tag */ |
Lucyjungz | 14:4ba6147f067b | 82 | STATE_FOUND_GPS_INTERVAL, /*!< Found update internal of GPS*/ |
nsrwsurasak | 0:a27e0d3581d1 | 83 | } ReadingFileState; |
nsrwsurasak | 0:a27e0d3581d1 | 84 | |
nsrwsurasak | 36:09e662a69c50 | 85 | /** |
nsrwsurasak | 36:09e662a69c50 | 86 | * @brief Write File Status structures definition |
nsrwsurasak | 36:09e662a69c50 | 87 | */ |
nsrwsurasak | 36:09e662a69c50 | 88 | typedef enum { |
nsrwsurasak | 36:09e662a69c50 | 89 | FILE_ERROR, |
nsrwsurasak | 36:09e662a69c50 | 90 | FILE_OK |
nsrwsurasak | 36:09e662a69c50 | 91 | } WritingFileStatus; |
nsrwsurasak | 36:09e662a69c50 | 92 | |
nsrwsurasak | 0:a27e0d3581d1 | 93 | |
Lucyjungz | 3:6e08d0bba1bb | 94 | /* ############### Structure ################## */ |
Lucyjungz | 3:6e08d0bba1bb | 95 | |
Lucyjungz | 14:4ba6147f067b | 96 | |
Lucyjungz | 14:4ba6147f067b | 97 | /** |
Lucyjungz | 14:4ba6147f067b | 98 | * @brief Structure of Variable List File |
Lucyjungz | 14:4ba6147f067b | 99 | */ |
nsrwsurasak | 0:a27e0d3581d1 | 100 | typedef struct { |
Lucyjungz | 14:4ba6147f067b | 101 | char varName[VAR_NAME_MAX_SIZE]; /*!< char array Variable Name */ |
Lucyjungz | 14:4ba6147f067b | 102 | char varAddress[VAR_ADDR_MAX_SIZE+1]; /*!< char array Variable Address */ |
Lucyjungz | 14:4ba6147f067b | 103 | char varType[VAR_TYPE_MAX_SIZE]; /*!< char array Variable Type */ |
Lucyjungz | 14:4ba6147f067b | 104 | char varLSB1[VAR_LSB1_MAX_SIZE]; /*!< char array Variable LSB1 */ |
Lucyjungz | 14:4ba6147f067b | 105 | char varLSB2[VAR_LSB2_MAX_SIZE]; /*!< char array Variable LSB2 */ |
Lucyjungz | 14:4ba6147f067b | 106 | char varBitMask[VAR_BITMASK_MAX_SIZE]; /*!< char array Variable Bit Mask */ |
Lucyjungz | 14:4ba6147f067b | 107 | char varUnit[VAR_UNIT_MAX_SIZE]; /*!< char array Variable Unit */ |
nsrwsurasak | 0:a27e0d3581d1 | 108 | } Variable_Data_TypeDef; |
nsrwsurasak | 0:a27e0d3581d1 | 109 | |
Lucyjungz | 3:6e08d0bba1bb | 110 | |
Lucyjungz | 20:61f5769a0716 | 111 | |
Lucyjungz | 3:6e08d0bba1bb | 112 | /* ############### Function Prototype ################## */ |
Lucyjungz | 14:4ba6147f067b | 113 | void FILEMANAGER_ReadSetupFile(); |
Lucyjungz | 14:4ba6147f067b | 114 | void FILEMANAGER_DeleteFile(char filename[]); |
Lucyjungz | 14:4ba6147f067b | 115 | int FILEMANAGER_GPSInterval(); |
Lucyjungz | 14:4ba6147f067b | 116 | int FILEMANAGER_DataInterval(); |
Lucyjungz | 14:4ba6147f067b | 117 | void FILEMANAGER_LogGPSData(time_t timestamp ,char lat[], char longti[]); |
nsrwsurasak | 27:b0eb0f36110e | 118 | void FILEMANAGER_LogSystemData(float gps_interval,float rms_interval,bool isResetCausedByWdg = false); |
Lucyjungz | 14:4ba6147f067b | 119 | Variable_Data_TypeDef * FILEMANAGER_ReadVarFile(); |
Lucyjungz | 14:4ba6147f067b | 120 | int FILEMANAGER_GetAmountVarList(); |
Lucyjungz | 14:4ba6147f067b | 121 | Variable_Data_TypeDef * FILEMANAGER_GetVarList(); |
nsrwsurasak | 25:7f3420c04178 | 122 | void FILEMANAGER_LogRMSData(time_t timestamp ,float * var, int size, bool * p_headerRequired, uint32_t msec); |
Lucyjungz | 33:dd67a980e9d8 | 123 | void FILEMANAGER_LogRMSHeader(FILE *fp, time_t timestamp, char file_name[]); |
Lucyjungz | 14:4ba6147f067b | 124 | bool FILEMANAGER_IsFileExist(char filename[]); |
Lucyjungz | 32:69b7c870d69c | 125 | void FILEMANAGER_listDir(Serial* serial); |
Lucyjungz | 32:69b7c870d69c | 126 | void FILEMANAGER_DisplayFile(Serial* serial, char* filename); |
nsrwsurasak | 38:e2799f75940f | 127 | void FILEMANAGER_AddPrefixFilename(char* in, char* out); |
nsrwsurasak | 36:09e662a69c50 | 128 | WritingFileStatus FILEMANAGER_WriteFile(Serial* serial, char* filename, char* input); |
Lucyjungz | 32:69b7c870d69c | 129 | void FILEMANAGER_Deletefile(char filename[]); |
Lucyjungz | 29:964610d82f8d | 130 | uint32_t FILEMANAGER_GetRxID(); |
Lucyjungz | 29:964610d82f8d | 131 | uint32_t FILEMANAGER_GetTxID(); |
nsrwsurasak | 16:c13dc589bb55 | 132 | #endif |