set time for star tracker
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
This commit is contained in:
parent
b7e6315be7
commit
67351d5ada
@ -331,6 +331,11 @@ ReturnValue_t StarTrackerHandler::buildTransitionDeviceCommand(DeviceCommandId_t
|
|||||||
*id = startracker::REQ_VERSION;
|
*id = startracker::REQ_VERSION;
|
||||||
return buildCommandFromCommand(*id, nullptr, 0);
|
return buildCommandFromCommand(*id, nullptr, 0);
|
||||||
}
|
}
|
||||||
|
case(FwBootState::SET_TIME): {
|
||||||
|
bootState = FwBootState::WAIT_FOR_EXECUTION;
|
||||||
|
*id = startracker::SET_TIME;
|
||||||
|
return buildCommandFromCommand(*id, nullptr, 0);
|
||||||
|
}
|
||||||
case (FwBootState::LOGLEVEL): {
|
case (FwBootState::LOGLEVEL): {
|
||||||
bootState = FwBootState::WAIT_FOR_EXECUTION;
|
bootState = FwBootState::WAIT_FOR_EXECUTION;
|
||||||
*id = startracker::LOGLEVEL;
|
*id = startracker::LOGLEVEL;
|
||||||
@ -441,6 +446,16 @@ ReturnValue_t StarTrackerHandler::buildCommandFromCommand(DeviceCommandId_t devi
|
|||||||
preparePingRequest();
|
preparePingRequest();
|
||||||
return returnvalue::OK;
|
return returnvalue::OK;
|
||||||
}
|
}
|
||||||
|
case(startracker::SET_TIME): {
|
||||||
|
SetTimeActionRequest setTimeRequest;
|
||||||
|
time_t epoch;
|
||||||
|
timeval tv;
|
||||||
|
Clock::getClock(&tv);
|
||||||
|
epoch = tv.tv_sec;
|
||||||
|
setTimeRequest.unixTime = epoch;
|
||||||
|
arc_pack_settime_action_req(&setTimeRequest, commandBuffer, &rawPacketLen);
|
||||||
|
return returnvalue::OK;
|
||||||
|
}
|
||||||
case (startracker::REQ_TIME): {
|
case (startracker::REQ_TIME): {
|
||||||
prepareTimeRequest();
|
prepareTimeRequest();
|
||||||
return returnvalue::OK;
|
return returnvalue::OK;
|
||||||
@ -637,6 +652,8 @@ void StarTrackerHandler::fillCommandAndReplyMap() {
|
|||||||
startracker::MAX_FRAME_SIZE * 2 + 2);
|
startracker::MAX_FRAME_SIZE * 2 + 2);
|
||||||
this->insertInCommandAndReplyMap(startracker::LOGLEVEL, 3, nullptr,
|
this->insertInCommandAndReplyMap(startracker::LOGLEVEL, 3, nullptr,
|
||||||
startracker::MAX_FRAME_SIZE * 2 + 2);
|
startracker::MAX_FRAME_SIZE * 2 + 2);
|
||||||
|
this->insertInCommandAndReplyMap(startracker::SET_TIME, 3, nullptr,
|
||||||
|
startracker::MAX_FRAME_SIZE * 2 + 2);
|
||||||
this->insertInCommandAndReplyMap(startracker::LOGSUBSCRIPTION, 3, nullptr,
|
this->insertInCommandAndReplyMap(startracker::LOGSUBSCRIPTION, 3, nullptr,
|
||||||
startracker::MAX_FRAME_SIZE * 2 + 2);
|
startracker::MAX_FRAME_SIZE * 2 + 2);
|
||||||
this->insertInCommandAndReplyMap(startracker::DEBUG_CAMERA, 3, nullptr,
|
this->insertInCommandAndReplyMap(startracker::DEBUG_CAMERA, 3, nullptr,
|
||||||
@ -1349,6 +1366,10 @@ ReturnValue_t StarTrackerHandler::scanForActionReply(uint8_t replyId, DeviceComm
|
|||||||
*foundId = startracker::UPLOAD_IMAGE;
|
*foundId = startracker::UPLOAD_IMAGE;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case(ARC_ACTION_REQ_SETTIME_ID): {
|
||||||
|
*foundId = startracker::SET_TIME;
|
||||||
|
break;
|
||||||
|
}
|
||||||
case (startracker::ID::CHECKSUM): {
|
case (startracker::ID::CHECKSUM): {
|
||||||
*foundId = startracker::CHECKSUM;
|
*foundId = startracker::CHECKSUM;
|
||||||
break;
|
break;
|
||||||
@ -1851,7 +1872,7 @@ ReturnValue_t StarTrackerHandler::handleSetParamReply(const uint8_t* rawFrame) {
|
|||||||
return SET_PARAM_FAILED;
|
return SET_PARAM_FAILED;
|
||||||
}
|
}
|
||||||
if (internalState != InternalState::IDLE) {
|
if (internalState != InternalState::IDLE) {
|
||||||
handleStartup(*(rawFrame + PARAMETER_ID_OFFSET));
|
handleStartup(*rawFrame, *(rawFrame + PARAMETER_ID_OFFSET));
|
||||||
}
|
}
|
||||||
return returnvalue::OK;
|
return returnvalue::OK;
|
||||||
}
|
}
|
||||||
@ -2038,7 +2059,18 @@ ReturnValue_t StarTrackerHandler::handleActionReplySet(const uint8_t* rawFrame,
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
void StarTrackerHandler::handleStartup(uint8_t parameterId) {
|
void StarTrackerHandler::handleStartup(uint8_t tmType, uint8_t parameterId) {
|
||||||
|
switch(tmType) {
|
||||||
|
case(TMTC_ACTIONREPLY): {
|
||||||
|
case(ARC_ACTION_REQ_SETTIME_ID): {
|
||||||
|
bootState = FwBootState::LOGLEVEL;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
default: {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
switch (parameterId) {
|
switch (parameterId) {
|
||||||
case (startracker::ID::LOG_LEVEL): {
|
case (startracker::ID::LOG_LEVEL): {
|
||||||
bootState = FwBootState::LIMITS;
|
bootState = FwBootState::LIMITS;
|
||||||
@ -2048,7 +2080,7 @@ void StarTrackerHandler::handleStartup(uint8_t parameterId) {
|
|||||||
bootState = FwBootState::TRACKING;
|
bootState = FwBootState::TRACKING;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case (startracker::ID::TRACKING): {
|
case (ARC_PARAM_TRACKING_ID): {
|
||||||
bootState = FwBootState::MOUNTING;
|
bootState = FwBootState::MOUNTING;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
#include <mission/acs/str/ArcsecJsonParamBase.h>
|
#include <mission/acs/str/ArcsecJsonParamBase.h>
|
||||||
#include <mission/acs/str/strHelpers.h>
|
#include <mission/acs/str/strHelpers.h>
|
||||||
#include <mission/acs/str/strJsonCommands.h>
|
#include <mission/acs/str/strJsonCommands.h>
|
||||||
|
#include <thirdparty/sagittactl/wire/common/genericstructs.h>
|
||||||
|
|
||||||
#include <thread>
|
#include <thread>
|
||||||
|
|
||||||
@ -16,7 +17,7 @@
|
|||||||
#include "fsfw/timemanager/Countdown.h"
|
#include "fsfw/timemanager/Countdown.h"
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#include <wire/common/SLIP.h>
|
#include <wire/common/genericstructs.h>
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -267,6 +268,7 @@ class StarTrackerHandler : public DeviceHandlerBase {
|
|||||||
BOOT_DELAY,
|
BOOT_DELAY,
|
||||||
REQ_VERSION,
|
REQ_VERSION,
|
||||||
VERIFY_BOOT,
|
VERIFY_BOOT,
|
||||||
|
SET_TIME,
|
||||||
LOGLEVEL,
|
LOGLEVEL,
|
||||||
LIMITS,
|
LIMITS,
|
||||||
TRACKING,
|
TRACKING,
|
||||||
@ -471,7 +473,7 @@ class StarTrackerHandler : public DeviceHandlerBase {
|
|||||||
/**
|
/**
|
||||||
* @brief Handles the startup state machine
|
* @brief Handles the startup state machine
|
||||||
*/
|
*/
|
||||||
void handleStartup(uint8_t parameterId);
|
void handleStartup(uint8_t tmType, uint8_t parameterId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Handles telemtry replies and fills the appropriate dataset
|
* @brief Handles telemtry replies and fills the appropriate dataset
|
||||||
|
@ -326,6 +326,7 @@ static const DeviceCommandId_t DEBUG_CAMERA = 83;
|
|||||||
static const DeviceCommandId_t FIRMWARE_UPDATE = 84;
|
static const DeviceCommandId_t FIRMWARE_UPDATE = 84;
|
||||||
static const DeviceCommandId_t DISABLE_TIMESTAMP_GENERATION = 85;
|
static const DeviceCommandId_t DISABLE_TIMESTAMP_GENERATION = 85;
|
||||||
static const DeviceCommandId_t ENABLE_TIMESTAMP_GENERATION = 86;
|
static const DeviceCommandId_t ENABLE_TIMESTAMP_GENERATION = 86;
|
||||||
|
static constexpr DeviceCommandId_t SET_TIME = 87;
|
||||||
static const DeviceCommandId_t NONE = 0xFFFFFFFF;
|
static const DeviceCommandId_t NONE = 0xFFFFFFFF;
|
||||||
|
|
||||||
static const uint32_t VERSION_SET_ID = REQ_VERSION;
|
static const uint32_t VERSION_SET_ID = REQ_VERSION;
|
||||||
@ -396,7 +397,6 @@ static const uint8_t ALGO = 16;
|
|||||||
static const uint8_t REBOOT = 7;
|
static const uint8_t REBOOT = 7;
|
||||||
static const uint8_t UPLOAD_IMAGE = 10;
|
static const uint8_t UPLOAD_IMAGE = 10;
|
||||||
static const uint8_t POWER = 11;
|
static const uint8_t POWER = 11;
|
||||||
static const uint8_t SET_TIME = 14;
|
|
||||||
static const uint8_t SUBSCRIPTION = 18;
|
static const uint8_t SUBSCRIPTION = 18;
|
||||||
static const uint8_t SOLUTION = 24;
|
static const uint8_t SOLUTION = 24;
|
||||||
static const uint8_t TEMPERATURE = 27;
|
static const uint8_t TEMPERATURE = 27;
|
||||||
|
Loading…
Reference in New Issue
Block a user