merged develop
This commit is contained in:
@ -4,6 +4,11 @@
|
||||
#include <iostream>
|
||||
#include <cstdlib>
|
||||
|
||||
enum SdCard {
|
||||
SDC0,
|
||||
SDC1
|
||||
};
|
||||
|
||||
FileSystemTest::FileSystemTest() {
|
||||
using namespace std;
|
||||
SdCard sdCard = SdCard::SDC0;
|
||||
|
@ -1,11 +1,6 @@
|
||||
#ifndef BSP_Q7S_BOARDTEST_FILESYSTEMTEST_H_
|
||||
#define BSP_Q7S_BOARDTEST_FILESYSTEMTEST_H_
|
||||
|
||||
enum SdCard {
|
||||
SDC0,
|
||||
SDC1
|
||||
};
|
||||
|
||||
class FileSystemTest {
|
||||
public:
|
||||
FileSystemTest();
|
||||
|
@ -24,8 +24,8 @@ ReturnValue_t Q7STestTask::performOneShotAction() {
|
||||
//testScratchApi();
|
||||
//testJsonLibDirect();
|
||||
//testDummyParams();
|
||||
FsOpCodes opCode = FsOpCodes::ATTEMPT_DIR_REMOVAL_NON_EMPTY;
|
||||
testFileSystemHandlerDirect(opCode);
|
||||
//FsOpCodes opCode = FsOpCodes::ATTEMPT_DIR_REMOVAL_NON_EMPTY;
|
||||
//testFileSystemHandlerDirect(opCode);
|
||||
return TestTask::performOneShotAction();
|
||||
}
|
||||
|
||||
|
@ -23,8 +23,8 @@ CoreController::Chip CoreController::currentChip = Chip::NO_CHIP;
|
||||
CoreController::Copy CoreController::currentCopy = Copy::NO_COPY;
|
||||
|
||||
CoreController::CoreController(object_id_t objectId):
|
||||
ExtendedControllerBase(objectId, objects::NO_OBJECT, 5),
|
||||
opDivider(5) {
|
||||
ExtendedControllerBase(objectId, objects::NO_OBJECT, 5),
|
||||
opDivider(5) {
|
||||
ReturnValue_t result = HasReturnvaluesIF::RETURN_OK;
|
||||
try {
|
||||
result = initWatchdogFifo();
|
||||
@ -49,7 +49,7 @@ CoreController::CoreController(object_id_t objectId):
|
||||
}
|
||||
|
||||
ReturnValue_t CoreController::handleCommandMessage(CommandMessage *message) {
|
||||
return HasReturnvaluesIF::RETURN_OK;
|
||||
return ExtendedControllerBase::handleCommandMessage(message);
|
||||
}
|
||||
|
||||
void CoreController::performControlOperation() {
|
||||
@ -74,7 +74,7 @@ ReturnValue_t CoreController::initialize() {
|
||||
"count failed" << std::endl;
|
||||
}
|
||||
|
||||
return HasReturnvaluesIF::RETURN_OK;
|
||||
return ExtendedControllerBase::initialize();
|
||||
}
|
||||
|
||||
ReturnValue_t CoreController::checkModeCommand(Mode_t mode, Submode_t submode,
|
||||
@ -159,8 +159,7 @@ ReturnValue_t CoreController::executeAction(ActionId_t actionId, MessageQueueId_
|
||||
return actionListDirectoryIntoFile(actionId, commandedBy, data, size);
|
||||
}
|
||||
case(REBOOT_OBC): {
|
||||
return HasReturnvaluesIF::RETURN_OK;
|
||||
break;
|
||||
return actionPerformReboot(data, size);
|
||||
}
|
||||
default: {
|
||||
return HasActionsIF::INVALID_ACTION_ID;
|
||||
@ -457,6 +456,43 @@ void CoreController::initPrint() {
|
||||
#endif
|
||||
}
|
||||
|
||||
ReturnValue_t CoreController::actionPerformReboot(const uint8_t *data, size_t size) {
|
||||
if(size < 1) {
|
||||
return HasActionsIF::INVALID_PARAMETERS;
|
||||
}
|
||||
bool rebootSameBootCopy = data[0];
|
||||
if(rebootSameBootCopy) {
|
||||
#if OBSW_VERBOSE_LEVEL >= 1
|
||||
sif::info << "CoreController::actionPerformReboot: Rebooting on current image" << std::endl;
|
||||
#endif
|
||||
// Attempt graceful shutdown by unmounting and switching off SD cards
|
||||
SdCardManager::instance()->switchOffSdCard(sd::SdCard::SLOT_0);
|
||||
SdCardManager::instance()->switchOffSdCard(sd::SdCard::SLOT_1);
|
||||
int result = std::system("xsc_boot_copy -r");
|
||||
if(result != 0) {
|
||||
utility::handleSystemError(result, "CoreController::executeAction");
|
||||
return HasReturnvaluesIF::RETURN_FAILED;
|
||||
}
|
||||
return HasActionsIF::EXECUTION_FINISHED;
|
||||
}
|
||||
if(size < 3) {
|
||||
return HasActionsIF::INVALID_PARAMETERS;
|
||||
}
|
||||
#if OBSW_VERBOSE_LEVEL >= 1
|
||||
sif::info << "CoreController::actionPerformReboot: Rebooting on " <<
|
||||
static_cast<int>(data[1]) << " " << static_cast<int>(data[2]) << std::endl;
|
||||
#endif
|
||||
// The second byte in data is the target chip, the third byte is the target copy
|
||||
std::string cmdString = "xsc_boot_copy " + std::to_string(data[1]) + " " +
|
||||
std::to_string(data[2]);
|
||||
int result = std::system(cmdString.c_str());
|
||||
if(result != 0) {
|
||||
utility::handleSystemError(result, "CoreController::executeAction");
|
||||
return HasReturnvaluesIF::RETURN_FAILED;
|
||||
}
|
||||
return HasActionsIF::EXECUTION_FINISHED;
|
||||
}
|
||||
|
||||
void CoreController::performWatchdogControlOperation() {
|
||||
// Only perform each fifth iteration
|
||||
if(watchdogFifoFd != 0 and opDivider.checkAndIncrement()) {
|
||||
|
@ -24,7 +24,7 @@ public:
|
||||
};
|
||||
|
||||
static constexpr ActionId_t LIST_DIRECTORY_INTO_FILE = 0;
|
||||
static constexpr ActionId_t REBOOT_OBC = 1;
|
||||
static constexpr ActionId_t REBOOT_OBC = 32;
|
||||
|
||||
static constexpr uint8_t SUBSYSTEM_ID = SUBSYSTEM_ID::CORE;
|
||||
|
||||
@ -68,6 +68,7 @@ private:
|
||||
|
||||
ReturnValue_t actionListDirectoryIntoFile(ActionId_t actionId, MessageQueueId_t commandedBy,
|
||||
const uint8_t *data, size_t size);
|
||||
ReturnValue_t actionPerformReboot(const uint8_t *data, size_t size);
|
||||
|
||||
void initPrint();
|
||||
|
||||
|
@ -48,15 +48,15 @@
|
||||
#include "mission/utility/TmFunnel.h"
|
||||
#include "linux/obc/CCSDSIPCoreBridge.h"
|
||||
|
||||
#include "fsfw/hal/linux/uart/UartComIF.h"
|
||||
#include "fsfw/hal/linux/uart/UartCookie.h"
|
||||
#include "fsfw/hal/devicehandlers/GyroL3GD20Handler.h"
|
||||
#include "fsfw/hal/linux/i2c/I2cCookie.h"
|
||||
#include "fsfw/hal/linux/i2c/I2cComIF.h"
|
||||
#include "fsfw/hal/linux/spi/SpiCookie.h"
|
||||
#include "fsfw/hal/linux/spi/SpiComIF.h"
|
||||
#include "fsfw/hal/linux/gpio/LinuxLibgpioIF.h"
|
||||
#include "fsfw/hal/common/gpio/GpioCookie.h"
|
||||
#include "fsfw_hal/linux/uart/UartComIF.h"
|
||||
#include "fsfw_hal/linux/uart/UartCookie.h"
|
||||
#include "fsfw_hal/devicehandlers/GyroL3GD20Handler.h"
|
||||
#include "fsfw_hal/linux/i2c/I2cCookie.h"
|
||||
#include "fsfw_hal/linux/i2c/I2cComIF.h"
|
||||
#include "fsfw_hal/linux/spi/SpiCookie.h"
|
||||
#include "fsfw_hal/linux/spi/SpiComIF.h"
|
||||
#include "fsfw_hal/linux/gpio/LinuxLibgpioIF.h"
|
||||
#include "fsfw_hal/common/gpio/GpioCookie.h"
|
||||
|
||||
#include "fsfw/datapoollocal/LocalDataPoolManager.h"
|
||||
#include "fsfw/tmtcservices/CommandingServiceBase.h"
|
||||
|
@ -1,8 +1,8 @@
|
||||
#include "gpioCallbacks.h"
|
||||
#include <devices/gpioIds.h>
|
||||
|
||||
#include <fsfw/hal/linux/gpio/LinuxLibgpioIF.h>
|
||||
#include <fsfw/hal/common/gpio/GpioCookie.h>
|
||||
#include <fsfw_hal/linux/gpio/LinuxLibgpioIF.h>
|
||||
#include <fsfw_hal/common/gpio/GpioCookie.h>
|
||||
#include <fsfw/serviceinterface/ServiceInterface.h>
|
||||
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
#ifndef LINUX_GPIO_GPIOCALLBACKS_H_
|
||||
#define LINUX_GPIO_GPIOCALLBACKS_H_
|
||||
|
||||
#include <fsfw/hal/common/gpio/gpioDefinitions.h>
|
||||
#include <fsfw/hal/common/gpio/GpioIF.h>
|
||||
#include <fsfw_hal/common/gpio/gpioDefinitions.h>
|
||||
#include <fsfw_hal/common/gpio/GpioIF.h>
|
||||
|
||||
|
||||
namespace gpioCallbacks {
|
||||
|
@ -226,7 +226,7 @@ ReturnValue_t FileSystemHandler::removeDirectory(const char *repositoryPath,
|
||||
else {
|
||||
// Check error code. Most probably denied permissions because folder is not empty
|
||||
sif::warning << "FileSystemHandler::removeDirectory: Deleting directory failed with "
|
||||
"code" << err.value() << ": " << strerror(err.value()) << std::endl;
|
||||
"code " << err.value() << ": " << strerror(err.value()) << std::endl;
|
||||
if(err.value() == ENOTEMPTY) {
|
||||
return DIRECTORY_NOT_EMPTY;
|
||||
}
|
||||
@ -242,7 +242,7 @@ ReturnValue_t FileSystemHandler::removeDirectory(const char *repositoryPath,
|
||||
}
|
||||
else {
|
||||
sif::warning << "FileSystemHandler::removeDirectory: Deleting directory failed with "
|
||||
"code" << err.value() << ": " << strerror(err.value()) << std::endl;
|
||||
"code " << err.value() << ": " << strerror(err.value()) << std::endl;
|
||||
// Check error code
|
||||
if(err.value() == ENOTEMPTY) {
|
||||
return DIRECTORY_NOT_EMPTY;
|
||||
|
@ -1,7 +1,7 @@
|
||||
#ifndef BSP_Q7S_SPI_Q7SSPICOMIF_H_
|
||||
#define BSP_Q7S_SPI_Q7SSPICOMIF_H_
|
||||
|
||||
#include <fsfw/hal/linux/spi/SpiComIF.h>
|
||||
#include <fsfw_hal/linux/spi/SpiComIF.h>
|
||||
|
||||
|
||||
/**
|
||||
|
@ -1,8 +1,8 @@
|
||||
#include <bsp_q7s/spiCallbacks/rwSpiCallback.h>
|
||||
#include <fsfw/serviceinterface/ServiceInterface.h>
|
||||
#include <mission/devices/RwHandler.h>
|
||||
#include <fsfw/hal/linux/spi/SpiCookie.h>
|
||||
#include <fsfw/hal/linux/UnixFileGuard.h>
|
||||
#include <fsfw_hal/linux/spi/SpiCookie.h>
|
||||
#include <fsfw_hal/linux/UnixFileGuard.h>
|
||||
#include "devices/gpioIds.h"
|
||||
|
||||
namespace rwSpiCallback {
|
||||
|
@ -2,8 +2,8 @@
|
||||
#define BSP_Q7S_RW_SPI_CALLBACK_H_
|
||||
|
||||
#include <fsfw/returnvalues/HasReturnvaluesIF.h>
|
||||
#include <fsfw/hal/linux/spi/SpiComIF.h>
|
||||
#include <fsfw/hal/common/gpio/GpioCookie.h>
|
||||
#include <fsfw_hal/linux/spi/SpiComIF.h>
|
||||
#include <fsfw_hal/common/gpio/GpioCookie.h>
|
||||
|
||||
|
||||
namespace rwSpiCallback {
|
||||
|
Reference in New Issue
Block a user