diff --git a/bsp_q7s/boardtest/Q7STestTask.cpp b/bsp_q7s/boardtest/Q7STestTask.cpp index cbd1fbed..f6745348 100644 --- a/bsp_q7s/boardtest/Q7STestTask.cpp +++ b/bsp_q7s/boardtest/Q7STestTask.cpp @@ -4,6 +4,7 @@ #include #include #include +#include #include #include #include @@ -19,11 +20,14 @@ #include "OBSWConfig.h" #include "bsp_q7s/fs/SdCardManager.h" #include "bsp_q7s/memory/scratchApi.h" +#include "bsp_q7s/fs/helpers.h" #include "fsfw/tasks/TaskFactory.h" #include "fsfw/timemanager/Stopwatch.h" #include "p60pdu.h" #include "test/DummyParameter.h" +using namespace returnvalue; + Q7STestTask::Q7STestTask(object_id_t objectId) : TestTask(objectId) { doTestSdCard = false; doTestScratchApi = false; @@ -71,7 +75,7 @@ ReturnValue_t Q7STestTask::performOneShotAction() { if (doTestProtHandler) { testProtHandler(); } - FsOpCodes opCode = FsOpCodes::APPEND_TO_FILE; + FsOpCodes opCode = FsOpCodes::CREATE_EMPTY_FILE_IN_TMP; testFileSystemHandlerDirect(opCode); return TestTask::performOneShotAction(); } @@ -365,7 +369,26 @@ void Q7STestTask::testGpsDaemonSocket() { sif::info << "Longitude: " << gps->fix.longitude << std::endl; } -void Q7STestTask::testFileSystemHandlerDirect(FsOpCodes opCode) {} +void Q7STestTask::testFileSystemHandlerDirect(FsOpCodes opCode) { + HostFilesystem hostFs; + auto* sdcMan = SdCardManager::instance(); + std::string mountPrefix = sdcMan->getCurrentMountPrefix(); + sif::info << "Current mount prefix: " << mountPrefix << std::endl; + auto prefixedPath = fshelpers::getPrefixedPath(*sdcMan, "conf/test.txt"); + sif::info << "Prefixed path: " << prefixedPath << std::endl; + if (opCode == FsOpCodes::CREATE_EMPTY_FILE_IN_TMP) { + FilesystemParams params("/tmp/hello.txt"); + auto res = hostFs.createFile(params); + if(res != OK) { + sif::warning << "Creating empty file in /tmp failed" << std::endl; + } + bool fileExists = std::filesystem::exists("/tmp/hello.txt"); + if(not fileExists) { + sif::warning << "File was not created!" << std::endl; + } + hostFs.removeFile("/tmp/hello.txt"); + } +} void Q7STestTask::xadcTest() { ReturnValue_t result = returnvalue::OK; diff --git a/bsp_q7s/core/InitMission.cpp b/bsp_q7s/core/InitMission.cpp index c6f7ce51..69da16f0 100644 --- a/bsp_q7s/core/InitMission.cpp +++ b/bsp_q7s/core/InitMission.cpp @@ -198,15 +198,6 @@ void initmission::initTasks() { } #endif /* OBSW_ADD_RTD_DEVICES */ - // FS task, task interval does not matter because it runs in permanent loop, priority low - // because it is a non-essential background task - PeriodicTaskIF* fsTask = factory->createPeriodicTask( - "FILE_SYSTEM_TASK", 25, PeriodicTaskIF::MINIMUM_STACK_SIZE, 0.4, missedDeadlineFunc); - result = fsTask->addComponent(objects::FILE_SYSTEM_HANDLER); - if (result != returnvalue::OK) { - initmission::printAddObjectError("FILE_SYSTEM_TASK", objects::FILE_SYSTEM_HANDLER); - } - #if OBSW_ADD_STAR_TRACKER == 1 PeriodicTaskIF* strHelperTask = factory->createPeriodicTask( "STR_HELPER", 20, PeriodicTaskIF::MINIMUM_STACK_SIZE, 0.2, missedDeadlineFunc); @@ -288,7 +279,6 @@ void initmission::initTasks() { ptmeTestTask->startTask(); #endif - fsTask->startTask(); #if OBSW_ADD_STAR_TRACKER == 1 strHelperTask->startTask(); #endif /* OBSW_ADD_STAR_TRACKER == 1 */ diff --git a/bsp_q7s/fs/helpers.cpp b/bsp_q7s/fs/helpers.cpp index 20ce8195..e233d514 100644 --- a/bsp_q7s/fs/helpers.cpp +++ b/bsp_q7s/fs/helpers.cpp @@ -1,6 +1,6 @@ #include "helpers.h" -std::filesystem::path fshelpers::buildPrefixedPath(SdCardManager &man, +std::filesystem::path fshelpers::getPrefixedPath(SdCardManager &man, std::filesystem::path pathWihtoutPrefix) { auto prefix = man.getCurrentMountPrefix(); auto resPath = prefix / pathWihtoutPrefix; diff --git a/bsp_q7s/fs/helpers.h b/bsp_q7s/fs/helpers.h index 0b13fc26..f78e5fbe 100644 --- a/bsp_q7s/fs/helpers.h +++ b/bsp_q7s/fs/helpers.h @@ -7,7 +7,7 @@ namespace fshelpers { -std::filesystem::path buildPrefixedPath(SdCardManager& man, +std::filesystem::path getPrefixedPath(SdCardManager& man, std::filesystem::path pathWihtoutPrefix); }