diff --git a/obc/CMakeLists.txt b/obc/CMakeLists.txt index 1352aaa56..5eb84284c 100644 --- a/obc/CMakeLists.txt +++ b/obc/CMakeLists.txt @@ -74,6 +74,8 @@ elseif(${CMAKE_BUILD_TYPE} MATCHES Examples) target_include_directories (${OUT_FILE_NAME} PRIVATE examples/test_app_cc1120_spi) elseif(${EXAMPLE_TYPE} MATCHES RS) add_executable(${OUT_FILE_NAME} examples/test_app_rs/main.c) + elseif(${EXAMPLE_TYPE} MATCHES TELEM_FILE) + add_executable(${OUT_FILE_NAME} examples/test_app_telem_file/main.c) # ADD MORE EXAMPLES ABOVE THIS COMMENT else () diff --git a/obc/app/modules/telemetry_mgr/telemetry_fs_utils.c b/obc/app/modules/telemetry_mgr/telemetry_fs_utils.c index c24f97109..4d6b7f5a9 100644 --- a/obc/app/modules/telemetry_mgr/telemetry_fs_utils.c +++ b/obc/app/modules/telemetry_mgr/telemetry_fs_utils.c @@ -148,3 +148,16 @@ obc_error_code_t readNextTelemetryFromFile(int32_t telemFileId, telemetry_data_t return OBC_ERR_CODE_SUCCESS; } + +obc_error_code_t deleteSelectedTelemetryFromFile(const char *filePath) { + // Assume file exists and valid + obc_error_code_t errCode; + + if (filePath == NULL) { + return OBC_ERR_CODE_INVALID_ARG; + } + + RETURN_IF_ERROR_CODE(deleteFile(filePath)); + + return OBC_ERR_CODE_SUCCESS; +} diff --git a/obc/app/modules/telemetry_mgr/telemetry_fs_utils.h b/obc/app/modules/telemetry_mgr/telemetry_fs_utils.h index 4b7a76202..cd07d75e2 100644 --- a/obc/app/modules/telemetry_mgr/telemetry_fs_utils.h +++ b/obc/app/modules/telemetry_mgr/telemetry_fs_utils.h @@ -95,3 +95,12 @@ obc_error_code_t readNextTelemetryFromFile(int32_t telemFileId, telemetry_data_t * @return obc_error_code_t */ obc_error_code_t createAndOpenTelemetryFileRW(uint32_t telemBatchId, int32_t *telemFileId); + +/** + * @brief Deletes a telemetry file based on a specific file path + * + * @param filePath Path to the File + * @return obc_error_code_t + * @note Telemetry file must exist first + */ +obc_error_code_t deleteSelectedTelemetryFile(const char *filePath); diff --git a/obc/app/sys/fs_wrapper/obc_reliance_fs.h b/obc/app/sys/fs_wrapper/obc_reliance_fs.h index f873db31c..8a4c8da4b 100644 --- a/obc/app/sys/fs_wrapper/obc_reliance_fs.h +++ b/obc/app/sys/fs_wrapper/obc_reliance_fs.h @@ -76,3 +76,11 @@ obc_error_code_t getFileSize(int32_t fileId, size_t *fileSize); * @return obc_error_code_t OBC_ERR_CODE_SUCCESS if successful, otherwise error code */ obc_error_code_t openFile(const char *filePath, uint32_t openMode, int32_t *fileId); + +/** + * @brief Deletes a file + * + * @param filePath Path to the file + * @return obc_error_code_t OBC_ERR_CODE_SUCCESS if successful, otherwise error code + */ +obc_error_code_t deleteFile(const char *filePath); diff --git a/obc/examples/test_app_telem_file/main.c b/obc/examples/test_app_telem_file/main.c new file mode 100644 index 000000000..e9b5b1f9d --- /dev/null +++ b/obc/examples/test_app_telem_file/main.c @@ -0,0 +1,64 @@ +#include "telemetry_fs_utils.h" + +#include "obc_reliance_fs.h" +#include "obc_spi_io.h" +#include "obc_sci_io.h" +#include "obc_print.h" +#include "obc_errors.h" +#include "obc_gs_telemetry_data.h" +#include "obc_logging.h" + +#include +#include + +#include +#include +#include + +#include +#include + +static StaticTask_t taskBuffer; +static StackType_t taskStack[1024]; + +void vTask1(void *pvParameter) { + obc_error_code_t errCode; + + // Example Telem IDs: + uint32_t telemBatchId = 0; + uint32_t telemFileId = 0; + uint32_t *p_telemFileId = &telemFileId; + + // Example Telem Data: + telemetry_data_t telemData = {0}; + telemData.obcTemp = 100; + telemData.id = 67; + telemData.timestamp = 1000; + + // Init File System: + RETURN_IF_ERROR_CODE(setupFileSystem()); + // sciPrint("Initialized File System"); + + // Creating, Writing, and Reading from example file: + RETURN_IF_ERROR_CODE(createAndOpenTelemetryFileRW(telemBatchId, p_telemFileId)); + // sciPrint("Successfully created and opened telemetry file!"); + + RETURN_IF_ERROR_CODE(writeTelemetryToFile((int32_t)telemFileId, telemData)); +} + +int main(void) { + sciInit(); + spiInit(); + + initSciPrint(); + initSpiMutex(); + + sciPrintf("Starting Reliance Edge Demo\r\n"); + + xTaskCreateStatic(vTask1, "Delete Test", 1024, NULL, 1, taskStack, &taskBuffer); + + vTaskStartScheduler(); + + while (1) + ; +}