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@15:b63a539c3754, 2016-05-21 (annotated)
- Committer:
- Lucyjungz
- Date:
- Sat May 21 14:35:10 2016 +0000
- Revision:
- 15:b63a539c3754
- Parent:
- 14:4ba6147f067b
- Child:
- 16:c13dc589bb55
Bug fix log unit instead of variable name; SDFilename must be call in main function
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 | |
Lucyjungz | 14:4ba6147f067b | 11 | #define DEVICE_NAME "sd" /*!< Device directory */ |
Lucyjungz | 1:1f1f2b99756b | 12 | |
Lucyjungz | 1:1f1f2b99756b | 13 | // DEVICE_NAME must be put in between "/" for file name |
Lucyjungz | 14:4ba6147f067b | 14 | #define SETUP_FILE_NAME "/sd/RMS_Tester.xml" /*!< Setup File Name */ |
Lucyjungz | 14:4ba6147f067b | 15 | #define GPS_LOG_FILE_NAME "/sd/YYYY-MM-DD.gps.csv " /*!< GPS Log File Name */ |
Lucyjungz | 14:4ba6147f067b | 16 | #define RTL_LOG_FILE_NAME "/sd/YYYY-MM-DD.rtl.csv" /*!< RMS Log File Name */ |
Lucyjungz | 14:4ba6147f067b | 17 | #define VARIABLE_FILE_NAME "/sd/20160216185627_upload.xml" /*!< Mini RMS Log File Name */ |
nsrwsurasak | 0:a27e0d3581d1 | 18 | #define MINIRMS_LOG_FILE_NAME "/sd/miniRMS.log" |
nsrwsurasak | 0:a27e0d3581d1 | 19 | |
Lucyjungz | 11:e21d4c5bfd1b | 20 | /** XML Tag */ |
Lucyjungz | 14:4ba6147f067b | 21 | #define GPS_TAG "<Gps>" /*!< GPS Tag */ |
Lucyjungz | 14:4ba6147f067b | 22 | #define DATA_TAG "<Data>" /*!< Data Tag */ |
Lucyjungz | 14:4ba6147f067b | 23 | #define UPDATE_INTERVAL_TAG "<Update_Interval>" /*!< Update Internal Tag */ |
Lucyjungz | 14:4ba6147f067b | 24 | #define VAR_NAME_TAG "<varName>" /*!< Variable Name Tag */ |
Lucyjungz | 14:4ba6147f067b | 25 | #define VAR_ADDR_TAG "<varAddress>" /*!< Variable Address Tag */ |
Lucyjungz | 14:4ba6147f067b | 26 | #define VAR_TYPE_TAG "<varType>" /*!< Variable Type Tag */ |
Lucyjungz | 14:4ba6147f067b | 27 | #define VAR_LSB1_TAG "<LSB1>" /*!< Variable LSB1 Tag */ |
Lucyjungz | 14:4ba6147f067b | 28 | #define VAR_LSB2_TAG "<LSB2>" /*!< Variable LSB2 Tag */ |
Lucyjungz | 14:4ba6147f067b | 29 | #define VAR_BITMASK_TAG "<BitMask>" /*!< Variable Bit Mask Tag */ |
Lucyjungz | 14:4ba6147f067b | 30 | #define VAR_UNIT_TAG "<Unit>" /*!< Variable Unit Tag */ |
nsrwsurasak | 0:a27e0d3581d1 | 31 | |
Lucyjungz | 11:e21d4c5bfd1b | 32 | /** XML Text Size */ |
Lucyjungz | 14:4ba6147f067b | 33 | #define XMLTEXT_SIZE 20 /*!< XML Text Maximum size */ |
Lucyjungz | 14:4ba6147f067b | 34 | #define VAR_NAME_MAX_SIZE 20 /*!< Variable Name Maximum Size */ |
Lucyjungz | 14:4ba6147f067b | 35 | #define VAR_ADDR_MAX_SIZE 10 /*!< Variable Address Maximum Size */ |
Lucyjungz | 14:4ba6147f067b | 36 | #define VAR_TYPE_MAX_SIZE 3 /*!< Variable Type Maximum Size */ |
Lucyjungz | 14:4ba6147f067b | 37 | #define VAR_LSB1_MAX_SIZE 3 /*!< Variable LSB1 Maximum Size */ |
Lucyjungz | 14:4ba6147f067b | 38 | #define VAR_LSB2_MAX_SIZE 10 /*!< Variable LSB2 Maximum Size */ |
Lucyjungz | 14:4ba6147f067b | 39 | #define VAR_BITMASK_MAX_SIZE 5 /*!< Variable Bit Mask Maximum Size */ |
Lucyjungz | 14:4ba6147f067b | 40 | #define VAR_UNIT_MAX_SIZE 20 /*!< Variable Unit Maximum Size */ |
Lucyjungz | 14:4ba6147f067b | 41 | |
Lucyjungz | 14:4ba6147f067b | 42 | #define MAX_VAR 50 /*!< Maximum variable to be supported */ |
Lucyjungz | 5:7c513eee7b2b | 43 | |
Lucyjungz | 14:4ba6147f067b | 44 | #define RMS_HEADER_TIME "Time" /*!< RMS Header Time tag */ |
Lucyjungz | 14:4ba6147f067b | 45 | #define RMS_HEADER_MSECOND "MSecond" /*!< RMS MSecond Time tag */ |
Lucyjungz | 14:4ba6147f067b | 46 | #define READ_FILE_BUFFER_SIZE 1024 /*!< Read file buffer size */ |
Lucyjungz | 14:4ba6147f067b | 47 | #define RENAME_FILE_BUFFER_SIZE 5 /*!< Rename File buffer size */ |
nsrwsurasak | 0:a27e0d3581d1 | 48 | |
Lucyjungz | 14:4ba6147f067b | 49 | /** Offset for /sd/YYYY-MM-DD- string */ |
Lucyjungz | 14:4ba6147f067b | 50 | #define TIMESTAMP_YEAR_OFFSET 4 /*!< Offset for year */ |
Lucyjungz | 14:4ba6147f067b | 51 | #define TIMESTAMP_YEAR_SIZE 4 /*!< Size for year */ |
Lucyjungz | 14:4ba6147f067b | 52 | #define TIMESTAMP_MONTH_OFFSET 9 /*!< Offset for month */ |
Lucyjungz | 14:4ba6147f067b | 53 | #define TIMESTAMP_MONTH_SIZE 2 /*!< Size for month */ |
Lucyjungz | 14:4ba6147f067b | 54 | #define TIMESTAMP_DATE_OFFSET 12 /*!< Offset for date */ |
Lucyjungz | 14:4ba6147f067b | 55 | #define TIMESTAMP_DATE_SIZE 2 /*!< Size for date */ |
Lucyjungz | 14:4ba6147f067b | 56 | #define YEAR_4DIGITS_OFFSET 1900 /*!< Offset to convert 2 digits year to 4 digits */ |
Lucyjungz | 1:1f1f2b99756b | 57 | |
Lucyjungz | 3:6e08d0bba1bb | 58 | |
Lucyjungz | 3:6e08d0bba1bb | 59 | /* ############### Enum ################## */ |
Lucyjungz | 14:4ba6147f067b | 60 | |
Lucyjungz | 14:4ba6147f067b | 61 | /* Exported types ------------------------------------------------------------*/ |
Lucyjungz | 14:4ba6147f067b | 62 | /** @defgroup ReadingFileState Exported Types |
Lucyjungz | 14:4ba6147f067b | 63 | * @{ |
Lucyjungz | 14:4ba6147f067b | 64 | */ |
Lucyjungz | 14:4ba6147f067b | 65 | |
Lucyjungz | 14:4ba6147f067b | 66 | /** |
Lucyjungz | 14:4ba6147f067b | 67 | * @brief Reading File State structures definition |
Lucyjungz | 14:4ba6147f067b | 68 | */ |
nsrwsurasak | 0:a27e0d3581d1 | 69 | typedef enum { |
Lucyjungz | 14:4ba6147f067b | 70 | STATE_FINDING, /*!< Finding */ |
Lucyjungz | 14:4ba6147f067b | 71 | STATE_FOUND_DATA, /*!< Found Data tag */ |
Lucyjungz | 14:4ba6147f067b | 72 | STATE_FOUND_DATA_INTERVAL, /*!<< Found update internal of tag*/ |
Lucyjungz | 14:4ba6147f067b | 73 | STATE_FOUND_GPS, /*!< Found GPS tag */ |
Lucyjungz | 14:4ba6147f067b | 74 | STATE_FOUND_GPS_INTERVAL, /*!< Found update internal of GPS*/ |
nsrwsurasak | 0:a27e0d3581d1 | 75 | } ReadingFileState; |
nsrwsurasak | 0:a27e0d3581d1 | 76 | |
nsrwsurasak | 0:a27e0d3581d1 | 77 | |
Lucyjungz | 3:6e08d0bba1bb | 78 | /* ############### Structure ################## */ |
Lucyjungz | 3:6e08d0bba1bb | 79 | |
Lucyjungz | 14:4ba6147f067b | 80 | |
Lucyjungz | 14:4ba6147f067b | 81 | /** |
Lucyjungz | 14:4ba6147f067b | 82 | * @brief Structure of Variable List File |
Lucyjungz | 14:4ba6147f067b | 83 | */ |
nsrwsurasak | 0:a27e0d3581d1 | 84 | typedef struct { |
Lucyjungz | 14:4ba6147f067b | 85 | char varName[VAR_NAME_MAX_SIZE]; /*!< char array Variable Name */ |
Lucyjungz | 14:4ba6147f067b | 86 | char varAddress[VAR_ADDR_MAX_SIZE+1]; /*!< char array Variable Address */ |
Lucyjungz | 14:4ba6147f067b | 87 | char varType[VAR_TYPE_MAX_SIZE]; /*!< char array Variable Type */ |
Lucyjungz | 14:4ba6147f067b | 88 | char varLSB1[VAR_LSB1_MAX_SIZE]; /*!< char array Variable LSB1 */ |
Lucyjungz | 14:4ba6147f067b | 89 | char varLSB2[VAR_LSB2_MAX_SIZE]; /*!< char array Variable LSB2 */ |
Lucyjungz | 14:4ba6147f067b | 90 | char varBitMask[VAR_BITMASK_MAX_SIZE]; /*!< char array Variable Bit Mask */ |
Lucyjungz | 14:4ba6147f067b | 91 | char varUnit[VAR_UNIT_MAX_SIZE]; /*!< char array Variable Unit */ |
nsrwsurasak | 0:a27e0d3581d1 | 92 | } Variable_Data_TypeDef; |
nsrwsurasak | 0:a27e0d3581d1 | 93 | |
Lucyjungz | 3:6e08d0bba1bb | 94 | |
Lucyjungz | 3:6e08d0bba1bb | 95 | /* ############### Function Prototype ################## */ |
Lucyjungz | 14:4ba6147f067b | 96 | void FILEMANAGER_ReadSetupFile(); |
Lucyjungz | 14:4ba6147f067b | 97 | void FILEMANAGER_DeleteFile(char filename[]); |
Lucyjungz | 14:4ba6147f067b | 98 | int FILEMANAGER_GPSInterval(); |
Lucyjungz | 14:4ba6147f067b | 99 | int FILEMANAGER_DataInterval(); |
Lucyjungz | 14:4ba6147f067b | 100 | void FILEMANAGER_LogGPSData(time_t timestamp ,char lat[], char longti[]); |
Lucyjungz | 14:4ba6147f067b | 101 | void FILEMANAGER_LogSystemData(float gps_interval); |
Lucyjungz | 14:4ba6147f067b | 102 | Variable_Data_TypeDef * FILEMANAGER_ReadVarFile(); |
Lucyjungz | 14:4ba6147f067b | 103 | int FILEMANAGER_GetAmountVarList(); |
Lucyjungz | 14:4ba6147f067b | 104 | Variable_Data_TypeDef * FILEMANAGER_GetVarList(); |
Lucyjungz | 14:4ba6147f067b | 105 | void FILEMANAGER_LogRMSData(time_t timestamp ,float * var, int size); |
Lucyjungz | 14:4ba6147f067b | 106 | void FILEMANAGER_LogRMSHeader(time_t timestamp); |
Lucyjungz | 14:4ba6147f067b | 107 | bool FILEMANAGER_IsFileExist(char filename[]); |