i hate this stupid class
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
735c60d4c2
commit
e9d48687d7
@ -1,3 +1,4 @@
|
|||||||
|
#include <fsfw/globalfunctions/arrayprinter.h>
|
||||||
#include <fsfw/ipc/QueueFactory.h>
|
#include <fsfw/ipc/QueueFactory.h>
|
||||||
#include <fsfw/timemanager/Stopwatch.h>
|
#include <fsfw/timemanager/Stopwatch.h>
|
||||||
#include <mission/acs/str/StarTrackerHandler.h>
|
#include <mission/acs/str/StarTrackerHandler.h>
|
||||||
@ -466,12 +467,14 @@ ReturnValue_t StarTrackerHandler::buildCommandFromCommand(DeviceCommandId_t devi
|
|||||||
}
|
}
|
||||||
case (startracker::SET_TIME): {
|
case (startracker::SET_TIME): {
|
||||||
SetTimeActionRequest setTimeRequest;
|
SetTimeActionRequest setTimeRequest;
|
||||||
time_t epoch;
|
|
||||||
timeval tv;
|
timeval tv;
|
||||||
Clock::getClock(&tv);
|
Clock::getClock(&tv);
|
||||||
epoch = tv.tv_sec;
|
|
||||||
setTimeRequest.unixTime = epoch;
|
|
||||||
arc_pack_settime_action_req(&setTimeRequest, commandBuffer, &rawPacketLen);
|
arc_pack_settime_action_req(&setTimeRequest, commandBuffer, &rawPacketLen);
|
||||||
|
size_t serLen = 0;
|
||||||
|
// Time in milliseconds. Manual serialization because arcsec API ignores endianness.
|
||||||
|
SerializeAdapter::serialize(&setTimeRequest.unixTime, commandBuffer + 2, &serLen,
|
||||||
|
sizeof(commandBuffer), SerializeIF::Endianness::NETWORK);
|
||||||
|
rawPacket = commandBuffer;
|
||||||
return returnvalue::OK;
|
return returnvalue::OK;
|
||||||
}
|
}
|
||||||
case (startracker::REQ_TIME): {
|
case (startracker::REQ_TIME): {
|
||||||
@ -886,6 +889,7 @@ ReturnValue_t StarTrackerHandler::scanForReply(const uint8_t* start, size_t rema
|
|||||||
switch (startracker::getReplyFrameType(start)) {
|
switch (startracker::getReplyFrameType(start)) {
|
||||||
case TMTC_ACTIONREPLY: {
|
case TMTC_ACTIONREPLY: {
|
||||||
*foundLen = remainingSize;
|
*foundLen = remainingSize;
|
||||||
|
arrayprinter::print(start, remainingSize);
|
||||||
return scanForActionReply(startracker::getId(start), foundId);
|
return scanForActionReply(startracker::getId(start), foundId);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -918,6 +922,10 @@ ReturnValue_t StarTrackerHandler::interpretDeviceReply(DeviceCommandId_t id,
|
|||||||
ReturnValue_t result = returnvalue::OK;
|
ReturnValue_t result = returnvalue::OK;
|
||||||
|
|
||||||
switch (id) {
|
switch (id) {
|
||||||
|
case (startracker::SET_TIME): {
|
||||||
|
result = handleActionReply(packet);
|
||||||
|
break;
|
||||||
|
}
|
||||||
case (startracker::REQ_TIME): {
|
case (startracker::REQ_TIME): {
|
||||||
result = handleTm(packet, timeSet, startracker::TimeSet::SIZE, "REQ_TIME");
|
result = handleTm(packet, timeSet, startracker::TimeSet::SIZE, "REQ_TIME");
|
||||||
break;
|
break;
|
||||||
@ -1882,7 +1890,7 @@ ReturnValue_t StarTrackerHandler::handleSetParamReply(const uint8_t* rawFrame) {
|
|||||||
uint8_t status = startracker::getStatusField(rawFrame);
|
uint8_t status = startracker::getStatusField(rawFrame);
|
||||||
if (status != startracker::STATUS_OK) {
|
if (status != startracker::STATUS_OK) {
|
||||||
sif::warning << "StarTrackerHandler::handleSetParamReply: Failed to execute parameter set "
|
sif::warning << "StarTrackerHandler::handleSetParamReply: Failed to execute parameter set "
|
||||||
" command with parameter ID"
|
"command with parameter ID "
|
||||||
<< static_cast<unsigned int>(*(rawFrame + PARAMETER_ID_OFFSET)) << std::endl;
|
<< static_cast<unsigned int>(*(rawFrame + PARAMETER_ID_OFFSET)) << std::endl;
|
||||||
if (internalState != InternalState::IDLE) {
|
if (internalState != InternalState::IDLE) {
|
||||||
internalState = InternalState::IDLE;
|
internalState = InternalState::IDLE;
|
||||||
@ -1897,14 +1905,18 @@ ReturnValue_t StarTrackerHandler::handleSetParamReply(const uint8_t* rawFrame) {
|
|||||||
|
|
||||||
ReturnValue_t StarTrackerHandler::handleActionReply(const uint8_t* rawFrame) {
|
ReturnValue_t StarTrackerHandler::handleActionReply(const uint8_t* rawFrame) {
|
||||||
uint8_t status = startracker::getStatusField(rawFrame);
|
uint8_t status = startracker::getStatusField(rawFrame);
|
||||||
|
ReturnValue_t result = returnvalue::OK;
|
||||||
if (status != startracker::STATUS_OK) {
|
if (status != startracker::STATUS_OK) {
|
||||||
sif::warning << "StarTrackerHandler::handleActionReply: Failed to execute action "
|
sif::warning << "StarTrackerHandler::handleActionReply: Failed to execute action "
|
||||||
<< "command with action ID "
|
<< "command with action ID "
|
||||||
<< static_cast<unsigned int>(*(rawFrame + ACTION_ID_OFFSET)) << " and status "
|
<< static_cast<unsigned int>(*(rawFrame + ACTION_ID_OFFSET)) << " and status "
|
||||||
<< static_cast<unsigned int>(status) << std::endl;
|
<< static_cast<unsigned int>(status) << std::endl;
|
||||||
return ACTION_FAILED;
|
result = ACTION_FAILED;
|
||||||
}
|
}
|
||||||
return returnvalue::OK;
|
if (internalState != InternalState::IDLE) {
|
||||||
|
handleStartup(*rawFrame, *(rawFrame + PARAMETER_ID_OFFSET));
|
||||||
|
}
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
ReturnValue_t StarTrackerHandler::handleChecksumReply(const uint8_t* rawFrame) {
|
ReturnValue_t StarTrackerHandler::handleChecksumReply(const uint8_t* rawFrame) {
|
||||||
|
Loading…
Reference in New Issue
Block a user