Merge branch 'main' into pl-pcdu-tweaks
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
This commit is contained in:
commit
a0e4f0a438
12
CHANGELOG.md
12
CHANGELOG.md
@ -20,14 +20,16 @@ will consitute of a breaking change warranting a new major release:
|
|||||||
|
|
||||||
- Small SCEX fix: The temperatur check option was not passed
|
- Small SCEX fix: The temperatur check option was not passed
|
||||||
on for commands with a user data size larger than 1.
|
on for commands with a user data size larger than 1.
|
||||||
- ACS Controller strategy is now actually written to the dataset for detumbling
|
- SCEX: Properly check whether filesystem is usable for filesystem checks.
|
||||||
- During detumble the fused rotation rate is now calculated
|
- ACS Controller strategy is now actually written to the dataset for detumbling.
|
||||||
- Detumbling is now exited when its exit value is undercut and not its entry value
|
- During detumble the fused rotation rate is now calculated.
|
||||||
|
- Detumbling is now exited when its exit value is undercut and not its entry value.
|
||||||
- `EiveSystem`: Add a small delay between triggering an event for FDIR reboots and sending the
|
- `EiveSystem`: Add a small delay between triggering an event for FDIR reboots and sending the
|
||||||
command to the core controller.
|
command to the core controller.
|
||||||
|
|
||||||
## Changed
|
## Changed
|
||||||
|
|
||||||
|
- SCEX: Only perform filesystem checks when not in OFF mode.
|
||||||
- The `EiveSystem` now only sends reboot commands targetting the same image.
|
- The `EiveSystem` now only sends reboot commands targetting the same image.
|
||||||
- Added 200 ms delay between switching HPA/MPA/TX/X8 and DRO GPIP pin OFF.
|
- Added 200 ms delay between switching HPA/MPA/TX/X8 and DRO GPIP pin OFF.
|
||||||
- PL PCDU ADC set is now automatically enabled for `NORMAL` mode transitions. It is automatically
|
- PL PCDU ADC set is now automatically enabled for `NORMAL` mode transitions. It is automatically
|
||||||
@ -37,6 +39,10 @@ will consitute of a breaking change warranting a new major release:
|
|||||||
|
|
||||||
- PL PCDU for EM build.
|
- PL PCDU for EM build.
|
||||||
|
|
||||||
|
## Added
|
||||||
|
|
||||||
|
- SCEX: Add warning event if filesystem is unusable.
|
||||||
|
|
||||||
# [v6.2.0] 2023-07-26
|
# [v6.2.0] 2023-07-26
|
||||||
|
|
||||||
- `eive-tmtc`: v5.3.1
|
- `eive-tmtc`: v5.3.1
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* @brief Auto-generated event translation file. Contains 301 translations.
|
* @brief Auto-generated event translation file. Contains 302 translations.
|
||||||
* @details
|
* @details
|
||||||
* Generated on: 2023-07-26 12:51:20
|
* Generated on: 2023-08-02 09:40:31
|
||||||
*/
|
*/
|
||||||
#include "translateEvents.h"
|
#include "translateEvents.h"
|
||||||
|
|
||||||
@ -261,6 +261,7 @@ const char *TX_OFF_STRING = "TX_OFF";
|
|||||||
const char *MISSING_PACKET_STRING = "MISSING_PACKET";
|
const char *MISSING_PACKET_STRING = "MISSING_PACKET";
|
||||||
const char *EXPERIMENT_TIMEDOUT_STRING = "EXPERIMENT_TIMEDOUT";
|
const char *EXPERIMENT_TIMEDOUT_STRING = "EXPERIMENT_TIMEDOUT";
|
||||||
const char *MULTI_PACKET_COMMAND_DONE_STRING = "MULTI_PACKET_COMMAND_DONE";
|
const char *MULTI_PACKET_COMMAND_DONE_STRING = "MULTI_PACKET_COMMAND_DONE";
|
||||||
|
const char *FS_UNUSABLE_STRING = "FS_UNUSABLE";
|
||||||
const char *SET_CONFIGFILEVALUE_FAILED_STRING = "SET_CONFIGFILEVALUE_FAILED";
|
const char *SET_CONFIGFILEVALUE_FAILED_STRING = "SET_CONFIGFILEVALUE_FAILED";
|
||||||
const char *GET_CONFIGFILEVALUE_FAILED_STRING = "GET_CONFIGFILEVALUE_FAILED";
|
const char *GET_CONFIGFILEVALUE_FAILED_STRING = "GET_CONFIGFILEVALUE_FAILED";
|
||||||
const char *INSERT_CONFIGFILEVALUE_FAILED_STRING = "INSERT_CONFIGFILEVALUE_FAILED";
|
const char *INSERT_CONFIGFILEVALUE_FAILED_STRING = "INSERT_CONFIGFILEVALUE_FAILED";
|
||||||
@ -821,6 +822,8 @@ const char *translateEvents(Event event) {
|
|||||||
return EXPERIMENT_TIMEDOUT_STRING;
|
return EXPERIMENT_TIMEDOUT_STRING;
|
||||||
case (13802):
|
case (13802):
|
||||||
return MULTI_PACKET_COMMAND_DONE_STRING;
|
return MULTI_PACKET_COMMAND_DONE_STRING;
|
||||||
|
case (13803):
|
||||||
|
return FS_UNUSABLE_STRING;
|
||||||
case (13901):
|
case (13901):
|
||||||
return SET_CONFIGFILEVALUE_FAILED_STRING;
|
return SET_CONFIGFILEVALUE_FAILED_STRING;
|
||||||
case (13902):
|
case (13902):
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* @brief Auto-generated object translation file.
|
* @brief Auto-generated object translation file.
|
||||||
* @details
|
* @details
|
||||||
* Contains 171 translations.
|
* Contains 171 translations.
|
||||||
* Generated on: 2023-07-26 12:51:20
|
* Generated on: 2023-08-02 09:40:31
|
||||||
*/
|
*/
|
||||||
#include "translateObjects.h"
|
#include "translateObjects.h"
|
||||||
|
|
||||||
|
@ -255,6 +255,7 @@ Event ID (dec); Event ID (hex); Name; Severity; Description; File Path
|
|||||||
13800;0x35e8;MISSING_PACKET;LOW;No description;mission/payload/scexHelpers.h
|
13800;0x35e8;MISSING_PACKET;LOW;No description;mission/payload/scexHelpers.h
|
||||||
13801;0x35e9;EXPERIMENT_TIMEDOUT;LOW;No description;mission/payload/scexHelpers.h
|
13801;0x35e9;EXPERIMENT_TIMEDOUT;LOW;No description;mission/payload/scexHelpers.h
|
||||||
13802;0x35ea;MULTI_PACKET_COMMAND_DONE;INFO;No description;mission/payload/scexHelpers.h
|
13802;0x35ea;MULTI_PACKET_COMMAND_DONE;INFO;No description;mission/payload/scexHelpers.h
|
||||||
|
13803;0x35eb;FS_UNUSABLE;LOW;No description;mission/payload/scexHelpers.h
|
||||||
13901;0x364d;SET_CONFIGFILEVALUE_FAILED;MEDIUM;No description;mission/utility/GlobalConfigHandler.h
|
13901;0x364d;SET_CONFIGFILEVALUE_FAILED;MEDIUM;No description;mission/utility/GlobalConfigHandler.h
|
||||||
13902;0x364e;GET_CONFIGFILEVALUE_FAILED;MEDIUM;No description;mission/utility/GlobalConfigHandler.h
|
13902;0x364e;GET_CONFIGFILEVALUE_FAILED;MEDIUM;No description;mission/utility/GlobalConfigHandler.h
|
||||||
13903;0x364f;INSERT_CONFIGFILEVALUE_FAILED;MEDIUM;No description;mission/utility/GlobalConfigHandler.h
|
13903;0x364f;INSERT_CONFIGFILEVALUE_FAILED;MEDIUM;No description;mission/utility/GlobalConfigHandler.h
|
||||||
|
|
@ -255,6 +255,7 @@ Event ID (dec); Event ID (hex); Name; Severity; Description; File Path
|
|||||||
13800;0x35e8;MISSING_PACKET;LOW;No description;mission/payload/scexHelpers.h
|
13800;0x35e8;MISSING_PACKET;LOW;No description;mission/payload/scexHelpers.h
|
||||||
13801;0x35e9;EXPERIMENT_TIMEDOUT;LOW;No description;mission/payload/scexHelpers.h
|
13801;0x35e9;EXPERIMENT_TIMEDOUT;LOW;No description;mission/payload/scexHelpers.h
|
||||||
13802;0x35ea;MULTI_PACKET_COMMAND_DONE;INFO;No description;mission/payload/scexHelpers.h
|
13802;0x35ea;MULTI_PACKET_COMMAND_DONE;INFO;No description;mission/payload/scexHelpers.h
|
||||||
|
13803;0x35eb;FS_UNUSABLE;LOW;No description;mission/payload/scexHelpers.h
|
||||||
13901;0x364d;SET_CONFIGFILEVALUE_FAILED;MEDIUM;No description;mission/utility/GlobalConfigHandler.h
|
13901;0x364d;SET_CONFIGFILEVALUE_FAILED;MEDIUM;No description;mission/utility/GlobalConfigHandler.h
|
||||||
13902;0x364e;GET_CONFIGFILEVALUE_FAILED;MEDIUM;No description;mission/utility/GlobalConfigHandler.h
|
13902;0x364e;GET_CONFIGFILEVALUE_FAILED;MEDIUM;No description;mission/utility/GlobalConfigHandler.h
|
||||||
13903;0x364f;INSERT_CONFIGFILEVALUE_FAILED;MEDIUM;No description;mission/utility/GlobalConfigHandler.h
|
13903;0x364f;INSERT_CONFIGFILEVALUE_FAILED;MEDIUM;No description;mission/utility/GlobalConfigHandler.h
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* @brief Auto-generated event translation file. Contains 301 translations.
|
* @brief Auto-generated event translation file. Contains 302 translations.
|
||||||
* @details
|
* @details
|
||||||
* Generated on: 2023-07-26 12:51:20
|
* Generated on: 2023-08-02 09:40:31
|
||||||
*/
|
*/
|
||||||
#include "translateEvents.h"
|
#include "translateEvents.h"
|
||||||
|
|
||||||
@ -261,6 +261,7 @@ const char *TX_OFF_STRING = "TX_OFF";
|
|||||||
const char *MISSING_PACKET_STRING = "MISSING_PACKET";
|
const char *MISSING_PACKET_STRING = "MISSING_PACKET";
|
||||||
const char *EXPERIMENT_TIMEDOUT_STRING = "EXPERIMENT_TIMEDOUT";
|
const char *EXPERIMENT_TIMEDOUT_STRING = "EXPERIMENT_TIMEDOUT";
|
||||||
const char *MULTI_PACKET_COMMAND_DONE_STRING = "MULTI_PACKET_COMMAND_DONE";
|
const char *MULTI_PACKET_COMMAND_DONE_STRING = "MULTI_PACKET_COMMAND_DONE";
|
||||||
|
const char *FS_UNUSABLE_STRING = "FS_UNUSABLE";
|
||||||
const char *SET_CONFIGFILEVALUE_FAILED_STRING = "SET_CONFIGFILEVALUE_FAILED";
|
const char *SET_CONFIGFILEVALUE_FAILED_STRING = "SET_CONFIGFILEVALUE_FAILED";
|
||||||
const char *GET_CONFIGFILEVALUE_FAILED_STRING = "GET_CONFIGFILEVALUE_FAILED";
|
const char *GET_CONFIGFILEVALUE_FAILED_STRING = "GET_CONFIGFILEVALUE_FAILED";
|
||||||
const char *INSERT_CONFIGFILEVALUE_FAILED_STRING = "INSERT_CONFIGFILEVALUE_FAILED";
|
const char *INSERT_CONFIGFILEVALUE_FAILED_STRING = "INSERT_CONFIGFILEVALUE_FAILED";
|
||||||
@ -821,6 +822,8 @@ const char *translateEvents(Event event) {
|
|||||||
return EXPERIMENT_TIMEDOUT_STRING;
|
return EXPERIMENT_TIMEDOUT_STRING;
|
||||||
case (13802):
|
case (13802):
|
||||||
return MULTI_PACKET_COMMAND_DONE_STRING;
|
return MULTI_PACKET_COMMAND_DONE_STRING;
|
||||||
|
case (13803):
|
||||||
|
return FS_UNUSABLE_STRING;
|
||||||
case (13901):
|
case (13901):
|
||||||
return SET_CONFIGFILEVALUE_FAILED_STRING;
|
return SET_CONFIGFILEVALUE_FAILED_STRING;
|
||||||
case (13902):
|
case (13902):
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* @brief Auto-generated object translation file.
|
* @brief Auto-generated object translation file.
|
||||||
* @details
|
* @details
|
||||||
* Contains 175 translations.
|
* Contains 175 translations.
|
||||||
* Generated on: 2023-07-26 12:51:20
|
* Generated on: 2023-08-02 09:40:31
|
||||||
*/
|
*/
|
||||||
#include "translateObjects.h"
|
#include "translateObjects.h"
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* @brief Auto-generated event translation file. Contains 301 translations.
|
* @brief Auto-generated event translation file. Contains 302 translations.
|
||||||
* @details
|
* @details
|
||||||
* Generated on: 2023-07-26 12:51:20
|
* Generated on: 2023-08-02 09:40:31
|
||||||
*/
|
*/
|
||||||
#include "translateEvents.h"
|
#include "translateEvents.h"
|
||||||
|
|
||||||
@ -261,6 +261,7 @@ const char *TX_OFF_STRING = "TX_OFF";
|
|||||||
const char *MISSING_PACKET_STRING = "MISSING_PACKET";
|
const char *MISSING_PACKET_STRING = "MISSING_PACKET";
|
||||||
const char *EXPERIMENT_TIMEDOUT_STRING = "EXPERIMENT_TIMEDOUT";
|
const char *EXPERIMENT_TIMEDOUT_STRING = "EXPERIMENT_TIMEDOUT";
|
||||||
const char *MULTI_PACKET_COMMAND_DONE_STRING = "MULTI_PACKET_COMMAND_DONE";
|
const char *MULTI_PACKET_COMMAND_DONE_STRING = "MULTI_PACKET_COMMAND_DONE";
|
||||||
|
const char *FS_UNUSABLE_STRING = "FS_UNUSABLE";
|
||||||
const char *SET_CONFIGFILEVALUE_FAILED_STRING = "SET_CONFIGFILEVALUE_FAILED";
|
const char *SET_CONFIGFILEVALUE_FAILED_STRING = "SET_CONFIGFILEVALUE_FAILED";
|
||||||
const char *GET_CONFIGFILEVALUE_FAILED_STRING = "GET_CONFIGFILEVALUE_FAILED";
|
const char *GET_CONFIGFILEVALUE_FAILED_STRING = "GET_CONFIGFILEVALUE_FAILED";
|
||||||
const char *INSERT_CONFIGFILEVALUE_FAILED_STRING = "INSERT_CONFIGFILEVALUE_FAILED";
|
const char *INSERT_CONFIGFILEVALUE_FAILED_STRING = "INSERT_CONFIGFILEVALUE_FAILED";
|
||||||
@ -821,6 +822,8 @@ const char *translateEvents(Event event) {
|
|||||||
return EXPERIMENT_TIMEDOUT_STRING;
|
return EXPERIMENT_TIMEDOUT_STRING;
|
||||||
case (13802):
|
case (13802):
|
||||||
return MULTI_PACKET_COMMAND_DONE_STRING;
|
return MULTI_PACKET_COMMAND_DONE_STRING;
|
||||||
|
case (13803):
|
||||||
|
return FS_UNUSABLE_STRING;
|
||||||
case (13901):
|
case (13901):
|
||||||
return SET_CONFIGFILEVALUE_FAILED_STRING;
|
return SET_CONFIGFILEVALUE_FAILED_STRING;
|
||||||
case (13902):
|
case (13902):
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* @brief Auto-generated object translation file.
|
* @brief Auto-generated object translation file.
|
||||||
* @details
|
* @details
|
||||||
* Contains 175 translations.
|
* Contains 175 translations.
|
||||||
* Generated on: 2023-07-26 12:51:20
|
* Generated on: 2023-08-02 09:40:31
|
||||||
*/
|
*/
|
||||||
#include "translateObjects.h"
|
#include "translateObjects.h"
|
||||||
|
|
||||||
|
@ -19,11 +19,16 @@ using namespace returnvalue;
|
|||||||
|
|
||||||
ScexDeviceHandler::ScexDeviceHandler(object_id_t objectId, ScexUartReader& reader, CookieIF* cookie,
|
ScexDeviceHandler::ScexDeviceHandler(object_id_t objectId, ScexUartReader& reader, CookieIF* cookie,
|
||||||
SdCardMountedIF& sdcMan)
|
SdCardMountedIF& sdcMan)
|
||||||
: DeviceHandlerBase(objectId, reader.getObjectId(), cookie), sdcMan(sdcMan), reader(reader) {}
|
: DeviceHandlerBase(objectId, reader.getObjectId(), cookie), sdcMan(sdcMan), reader(reader) {
|
||||||
|
fsUnusableEventCd.timeOut();
|
||||||
|
}
|
||||||
|
|
||||||
ScexDeviceHandler::~ScexDeviceHandler() {}
|
ScexDeviceHandler::~ScexDeviceHandler() {}
|
||||||
|
|
||||||
void ScexDeviceHandler::doStartUp() { setMode(MODE_ON); }
|
void ScexDeviceHandler::doStartUp() {
|
||||||
|
filesystemChecks();
|
||||||
|
setMode(MODE_ON);
|
||||||
|
}
|
||||||
|
|
||||||
void ScexDeviceHandler::doShutDown() {
|
void ScexDeviceHandler::doShutDown() {
|
||||||
reader.reset();
|
reader.reset();
|
||||||
@ -215,8 +220,12 @@ ReturnValue_t ScexDeviceHandler::interpretDeviceReply(DeviceCommandId_t id, cons
|
|||||||
}
|
}
|
||||||
fileNameSet = true;
|
fileNameSet = true;
|
||||||
} else {
|
} else {
|
||||||
ofstream out(fileName,
|
if (!sdcMan.isSdCardUsable(std::nullopt)) {
|
||||||
ofstream::binary | ofstream::app); // append
|
fsUnsableEvent();
|
||||||
|
return returnvalue::FAILED;
|
||||||
|
}
|
||||||
|
// Append to existing file.
|
||||||
|
ofstream out(fileName, ofstream::binary | ofstream::app);
|
||||||
if (out.bad()) {
|
if (out.bad()) {
|
||||||
sif::error << "ScexDeviceHandler::handleValidReply: Could not open file " << fileName
|
sif::error << "ScexDeviceHandler::handleValidReply: Could not open file " << fileName
|
||||||
<< std::endl;
|
<< std::endl;
|
||||||
@ -280,18 +289,8 @@ ReturnValue_t ScexDeviceHandler::interpretDeviceReply(DeviceCommandId_t id, cons
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ScexDeviceHandler::performOperationHook() {
|
void ScexDeviceHandler::performOperationHook() {
|
||||||
auto mntPrefix = sdcMan.getCurrentMountPrefix();
|
if (getMode() != MODE_OFF) {
|
||||||
if (mntPrefix != nullptr) {
|
filesystemChecks();
|
||||||
std::filesystem::path fullFilePath = mntPrefix;
|
|
||||||
std::error_code e;
|
|
||||||
fullFilePath /= "scex";
|
|
||||||
bool fileExists = std::filesystem::exists(fullFilePath, e);
|
|
||||||
if (not fileExists) {
|
|
||||||
bool created = std::filesystem::create_directory(fullFilePath, e);
|
|
||||||
if (not created) {
|
|
||||||
sif::error << "Could not create SCEX directory: " << e << std::endl;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
uint32_t remainingMillis = finishCountdown.getRemainingMillis();
|
uint32_t remainingMillis = finishCountdown.getRemainingMillis();
|
||||||
if (commandActive and finishCountdown.hasTimedOut()) {
|
if (commandActive and finishCountdown.hasTimedOut()) {
|
||||||
@ -319,6 +318,33 @@ ReturnValue_t ScexDeviceHandler::initializeLocalDataPool(localpool::DataPool& lo
|
|||||||
return OK;
|
return OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ScexDeviceHandler::filesystemChecks() {
|
||||||
|
auto mntPrefix = sdcMan.getCurrentMountPrefix();
|
||||||
|
if (mntPrefix == nullptr or !sdcMan.isSdCardUsable(std::nullopt)) {
|
||||||
|
sif::warning << "SCEX: Filesystem currently unavailable" << std::endl;
|
||||||
|
fsUnsableEvent();
|
||||||
|
} else {
|
||||||
|
std::filesystem::path fullFilePath = mntPrefix;
|
||||||
|
std::error_code e;
|
||||||
|
fullFilePath /= "scex";
|
||||||
|
bool fileExists = std::filesystem::exists(fullFilePath, e);
|
||||||
|
if (not fileExists) {
|
||||||
|
bool created = std::filesystem::create_directory(fullFilePath, e);
|
||||||
|
if (not created) {
|
||||||
|
sif::error << "Could not create SCEX directory: " << e << std::endl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ScexDeviceHandler::fsUnsableEvent() {
|
||||||
|
if (fsUnusableEventCd.isBusy()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
triggerEvent(scex::FS_UNUSABLE);
|
||||||
|
fsUnusableEventCd.resetTimer();
|
||||||
|
}
|
||||||
|
|
||||||
ReturnValue_t ScexDeviceHandler::generateNewScexFile(const char* cmdName) {
|
ReturnValue_t ScexDeviceHandler::generateNewScexFile(const char* cmdName) {
|
||||||
char timeString[64]{};
|
char timeString[64]{};
|
||||||
auto activeSd = sdcMan.getActiveSdCard();
|
auto activeSd = sdcMan.getActiveSdCard();
|
||||||
@ -328,7 +354,8 @@ ReturnValue_t ScexDeviceHandler::generateNewScexFile(const char* cmdName) {
|
|||||||
|
|
||||||
std::ostringstream oss;
|
std::ostringstream oss;
|
||||||
auto prefix = sdcMan.getCurrentMountPrefix();
|
auto prefix = sdcMan.getCurrentMountPrefix();
|
||||||
if (prefix == nullptr) {
|
if (prefix == nullptr or !sdcMan.isSdCardUsable(std::nullopt)) {
|
||||||
|
fsUnsableEvent();
|
||||||
return returnvalue::FAILED;
|
return returnvalue::FAILED;
|
||||||
}
|
}
|
||||||
timeval tv;
|
timeval tv;
|
||||||
|
@ -42,6 +42,7 @@ class ScexDeviceHandler : public DeviceHandlerBase {
|
|||||||
scex::Cmds currCmd = scex::Cmds::PING;
|
scex::Cmds currCmd = scex::Cmds::PING;
|
||||||
SdCardMountedIF &sdcMan;
|
SdCardMountedIF &sdcMan;
|
||||||
Countdown finishCountdown = Countdown(LONG_CD);
|
Countdown finishCountdown = Countdown(LONG_CD);
|
||||||
|
Countdown fsUnusableEventCd = Countdown(10000);
|
||||||
|
|
||||||
// DeviceHandlerBase private function implementation
|
// DeviceHandlerBase private function implementation
|
||||||
void doStartUp() override;
|
void doStartUp() override;
|
||||||
@ -49,12 +50,15 @@ class ScexDeviceHandler : public DeviceHandlerBase {
|
|||||||
ScexHelper helper;
|
ScexHelper helper;
|
||||||
ScexUartReader &reader;
|
ScexUartReader &reader;
|
||||||
|
|
||||||
|
void fsUnsableEvent();
|
||||||
|
|
||||||
void performOperationHook() override;
|
void performOperationHook() override;
|
||||||
ReturnValue_t buildNormalDeviceCommand(DeviceCommandId_t *id) override;
|
ReturnValue_t buildNormalDeviceCommand(DeviceCommandId_t *id) override;
|
||||||
ReturnValue_t buildTransitionDeviceCommand(DeviceCommandId_t *id) override;
|
ReturnValue_t buildTransitionDeviceCommand(DeviceCommandId_t *id) override;
|
||||||
ReturnValue_t buildCommandFromCommand(DeviceCommandId_t deviceCommand, const uint8_t *commandData,
|
ReturnValue_t buildCommandFromCommand(DeviceCommandId_t deviceCommand, const uint8_t *commandData,
|
||||||
size_t commandDataLen) override;
|
size_t commandDataLen) override;
|
||||||
void fillCommandAndReplyMap() override;
|
void fillCommandAndReplyMap() override;
|
||||||
|
void filesystemChecks();
|
||||||
ReturnValue_t scanForReply(const uint8_t *start, size_t remainingSize, DeviceCommandId_t *foundId,
|
ReturnValue_t scanForReply(const uint8_t *start, size_t remainingSize, DeviceCommandId_t *foundId,
|
||||||
size_t *foundLen) override;
|
size_t *foundLen) override;
|
||||||
ReturnValue_t interpretDeviceReply(DeviceCommandId_t id, const uint8_t *packet) override;
|
ReturnValue_t interpretDeviceReply(DeviceCommandId_t id, const uint8_t *packet) override;
|
||||||
|
@ -20,6 +20,7 @@ static constexpr Event EXPERIMENT_TIMEDOUT = event::makeEvent(SUBSYSTEM_ID, 1, s
|
|||||||
//! FRAM, One Cell or All cells command finished. P1: Command ID
|
//! FRAM, One Cell or All cells command finished. P1: Command ID
|
||||||
static constexpr Event MULTI_PACKET_COMMAND_DONE =
|
static constexpr Event MULTI_PACKET_COMMAND_DONE =
|
||||||
event::makeEvent(SUBSYSTEM_ID, 2, severity::INFO);
|
event::makeEvent(SUBSYSTEM_ID, 2, severity::INFO);
|
||||||
|
static constexpr Event FS_UNUSABLE = event::makeEvent(SUBSYSTEM_ID, 3, severity::LOW);
|
||||||
|
|
||||||
enum Cmds : DeviceCommandId_t {
|
enum Cmds : DeviceCommandId_t {
|
||||||
PING = 0b00111,
|
PING = 0b00111,
|
||||||
|
Loading…
Reference in New Issue
Block a user