that should do the job
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:
parent
e65352818f
commit
93939f9541
@ -172,6 +172,35 @@ ReturnValue_t StarTrackerHandler::executeAction(ActionId_t actionId, MessageQueu
|
||||
ReturnValue_t result = returnvalue::OK;
|
||||
|
||||
switch (actionId) {
|
||||
case (startracker::ADD_SECONDARY_TM_TO_NORMAL_MODE): {
|
||||
if (size < 4) {
|
||||
return HasActionsIF::INVALID_PARAMETERS;
|
||||
}
|
||||
DeviceCommandId_t idToAdd;
|
||||
result =
|
||||
SerializeAdapter::deSerialize(&idToAdd, data, &size, SerializeIF::Endianness::NETWORK);
|
||||
if (result != returnvalue::OK) {
|
||||
return result;
|
||||
}
|
||||
addSecondaryTmForNormalMode(idToAdd);
|
||||
return EXECUTION_FINISHED;
|
||||
}
|
||||
case (startracker::RESET_SECONDARY_TM_SET): {
|
||||
resetSecondaryTmSet();
|
||||
return EXECUTION_FINISHED;
|
||||
}
|
||||
case (startracker::READ_SECONDARY_TM_SET): {
|
||||
std::vector<uint8_t> dataVec(additionalRequestedTm.size() * 4);
|
||||
unsigned idx = 0;
|
||||
size_t serLen = 0;
|
||||
for (const auto& cmd : additionalRequestedTm) {
|
||||
SerializeAdapter::serialize(&cmd, dataVec.data() + idx * 4, &serLen, dataVec.size(),
|
||||
SerializeIF::Endianness::NETWORK);
|
||||
idx++;
|
||||
}
|
||||
actionHelper.reportData(commandedBy, actionId, dataVec.data(), dataVec.size());
|
||||
return EXECUTION_FINISHED;
|
||||
}
|
||||
case (startracker::STOP_IMAGE_LOADER): {
|
||||
strHelper->stopProcess();
|
||||
return EXECUTION_FINISHED;
|
||||
@ -914,6 +943,15 @@ ReturnValue_t StarTrackerHandler::statusFieldCheck(const uint8_t* rawFrame) {
|
||||
return returnvalue::OK;
|
||||
}
|
||||
|
||||
void StarTrackerHandler::addSecondaryTmForNormalMode(DeviceCommandId_t cmd) {
|
||||
additionalRequestedTm.emplace(cmd);
|
||||
}
|
||||
|
||||
void StarTrackerHandler::resetSecondaryTmSet() {
|
||||
additionalRequestedTm.clear();
|
||||
additionalRequestedTm.emplace(startracker::REQ_TEMPERATURE);
|
||||
}
|
||||
|
||||
void StarTrackerHandler::bootBootloader() {
|
||||
if (internalState == InternalState::IDLE) {
|
||||
internalState = InternalState::BOOT_BOOTLOADER;
|
||||
|
@ -357,6 +357,18 @@ class StarTrackerHandler : public DeviceHandlerBase {
|
||||
*/
|
||||
ReturnValue_t executeFlashReadCommand(const uint8_t* commandData, size_t commandDataLen);
|
||||
|
||||
/**
|
||||
* Add a TM request to the list of telemetry which will be polled in the secondary step of
|
||||
* the device communication.
|
||||
* @param cmd
|
||||
*/
|
||||
void addSecondaryTmForNormalMode(DeviceCommandId_t cmd);
|
||||
|
||||
/**
|
||||
* Reset the secondary set, which will only contain a TEMPERATURE set request after the reset.
|
||||
*/
|
||||
void resetSecondaryTmSet();
|
||||
|
||||
/**
|
||||
* @brief Fills command buffer with data to boot image (works only when star tracker is
|
||||
* in bootloader mode).
|
||||
|
@ -365,6 +365,9 @@ static constexpr DeviceCommandId_t REQ_BLOB = 90;
|
||||
static constexpr DeviceCommandId_t REQ_BLOBS = 91;
|
||||
static constexpr DeviceCommandId_t REQ_CENTROID = 92;
|
||||
static constexpr DeviceCommandId_t REQ_CENTROIDS = 93;
|
||||
static constexpr DeviceCommandId_t ADD_SECONDARY_TM_TO_NORMAL_MODE = 94;
|
||||
static constexpr DeviceCommandId_t RESET_SECONDARY_TM_SET = 95;
|
||||
static constexpr DeviceCommandId_t READ_SECONDARY_TM_SET = 96;
|
||||
static const DeviceCommandId_t NONE = 0xFFFFFFFF;
|
||||
|
||||
static const uint32_t VERSION_SET_ID = REQ_VERSION;
|
||||
|
Loading…
Reference in New Issue
Block a user