PLOC SUPV periodic HK #781
@ -16,7 +16,9 @@ will consitute of a breaking change warranting a new major release:
|
|||||||
|
|
||||||
# [unreleased]
|
# [unreleased]
|
||||||
|
|
||||||
- `eive-tmtc`:
|
# [v6.4.0] 2023-08-15
|
||||||
|
|
||||||
|
- `eive-tmtc`: v5.4.3
|
||||||
|
|
||||||
## Fixed
|
## Fixed
|
||||||
|
|
||||||
@ -35,6 +37,7 @@ will consitute of a breaking change warranting a new major release:
|
|||||||
|
|
||||||
## Added
|
## Added
|
||||||
|
|
||||||
|
- The PLOC SUPV HK set is requested and downlinked periodically if the SUPV is on now.
|
||||||
- SGP4 Propagator is now used for propagating the position of EIVE. It will only work once
|
- SGP4 Propagator is now used for propagating the position of EIVE. It will only work once
|
||||||
a TLE has been uploaded with the newly added action command for the ACS Controller. In
|
a TLE has been uploaded with the newly added action command for the ACS Controller. In
|
||||||
return the actual GPS data will be ignored once SPG4 is running. However, by setting the
|
return the actual GPS data will be ignored once SPG4 is running. However, by setting the
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
cmake_minimum_required(VERSION 3.13)
|
cmake_minimum_required(VERSION 3.13)
|
||||||
|
|
||||||
set(OBSW_VERSION_MAJOR 6)
|
set(OBSW_VERSION_MAJOR 6)
|
||||||
set(OBSW_VERSION_MINOR 3)
|
set(OBSW_VERSION_MINOR 4)
|
||||||
set(OBSW_VERSION_REVISION 0)
|
set(OBSW_VERSION_REVISION 0)
|
||||||
|
|
||||||
# set(CMAKE_VERBOSE TRUE)
|
# set(CMAKE_VERBOSE TRUE)
|
||||||
|
@ -155,12 +155,15 @@ void PlocSupervisorHandler::doStartUp() {
|
|||||||
startupState = StartupState::ON;
|
startupState = StartupState::ON;
|
||||||
}
|
}
|
||||||
if (startupState == StartupState::ON) {
|
if (startupState == StartupState::ON) {
|
||||||
|
hkset.setReportingEnabled(true);
|
||||||
setMode(_MODE_TO_ON);
|
setMode(_MODE_TO_ON);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void PlocSupervisorHandler::doShutDown() {
|
void PlocSupervisorHandler::doShutDown() {
|
||||||
setMode(_MODE_POWER_DOWN);
|
setMode(_MODE_POWER_DOWN);
|
||||||
|
hkset.setReportingEnabled(false);
|
||||||
|
hkset.setValidity(false, true);
|
||||||
shutdownCmdSent = false;
|
shutdownCmdSent = false;
|
||||||
packetInBuffer = false;
|
packetInBuffer = false;
|
||||||
nextReplyId = supv::NONE;
|
nextReplyId = supv::NONE;
|
||||||
@ -170,6 +173,10 @@ void PlocSupervisorHandler::doShutDown() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ReturnValue_t PlocSupervisorHandler::buildNormalDeviceCommand(DeviceCommandId_t* id) {
|
ReturnValue_t PlocSupervisorHandler::buildNormalDeviceCommand(DeviceCommandId_t* id) {
|
||||||
|
if (not commandIsExecuting(GET_HK_REPORT)) {
|
||||||
|
*id = GET_HK_REPORT;
|
||||||
|
return buildCommandFromCommand(*id, nullptr, 0);
|
||||||
|
}
|
||||||
return NOTHING_TO_SEND;
|
return NOTHING_TO_SEND;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -430,7 +437,7 @@ void PlocSupervisorHandler::fillCommandAndReplyMap() {
|
|||||||
insertInReplyMap(MEMORY_CHECK, 5, nullptr, 0, false);
|
insertInReplyMap(MEMORY_CHECK, 5, nullptr, 0, false);
|
||||||
|
|
||||||
// TM replies
|
// TM replies
|
||||||
insertInReplyMap(HK_REPORT, 3, &hkset, SIZE_HK_REPORT);
|
insertInReplyMap(HK_REPORT, 3, &hkset);
|
||||||
insertInReplyMap(BOOT_STATUS_REPORT, 3, &bootStatusReport, SIZE_BOOT_STATUS_REPORT);
|
insertInReplyMap(BOOT_STATUS_REPORT, 3, &bootStatusReport, SIZE_BOOT_STATUS_REPORT);
|
||||||
insertInReplyMap(LATCHUP_REPORT, 3, &latchupStatusReport, SIZE_LATCHUP_STATUS_REPORT);
|
insertInReplyMap(LATCHUP_REPORT, 3, &latchupStatusReport, SIZE_LATCHUP_STATUS_REPORT);
|
||||||
insertInReplyMap(LOGGING_REPORT, 3, &loggingReport, SIZE_LOGGING_REPORT);
|
insertInReplyMap(LOGGING_REPORT, 3, &loggingReport, SIZE_LOGGING_REPORT);
|
||||||
@ -790,6 +797,8 @@ ReturnValue_t PlocSupervisorHandler::initializeLocalDataPool(localpool::DataPool
|
|||||||
localDataPoolMap.emplace(supv::ADC_ENG_14, new PoolEntry<uint16_t>({0}));
|
localDataPoolMap.emplace(supv::ADC_ENG_14, new PoolEntry<uint16_t>({0}));
|
||||||
localDataPoolMap.emplace(supv::ADC_ENG_15, new PoolEntry<uint16_t>({0}));
|
localDataPoolMap.emplace(supv::ADC_ENG_15, new PoolEntry<uint16_t>({0}));
|
||||||
|
|
||||||
|
poolManager.subscribeForRegularPeriodicPacket(
|
||||||
|
subdp::RegularHkPeriodicParams(hkset.getSid(), false, 10.0));
|
||||||
return returnvalue::OK;
|
return returnvalue::OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -918,7 +927,7 @@ ReturnValue_t PlocSupervisorHandler::handleExecutionReport(const uint8_t* data)
|
|||||||
ReturnValue_t PlocSupervisorHandler::handleHkReport(const uint8_t* data) {
|
ReturnValue_t PlocSupervisorHandler::handleHkReport(const uint8_t* data) {
|
||||||
ReturnValue_t result = returnvalue::OK;
|
ReturnValue_t result = returnvalue::OK;
|
||||||
|
|
||||||
result = verifyPacket(data, supv::SIZE_HK_REPORT);
|
result = verifyPacket(data, tmReader.getFullPacketLen());
|
||||||
|
|
||||||
if (result == result::CRC_FAILURE) {
|
if (result == result::CRC_FAILURE) {
|
||||||
sif::error << "PlocSupervisorHandler::handleHkReport: Hk report has invalid crc" << std::endl;
|
sif::error << "PlocSupervisorHandler::handleHkReport: Hk report has invalid crc" << std::endl;
|
||||||
|
@ -139,7 +139,6 @@ enum ReplyId : DeviceCommandId_t {
|
|||||||
// Size of complete space packet (6 byte header + size of data + 2 byte CRC)
|
// Size of complete space packet (6 byte header + size of data + 2 byte CRC)
|
||||||
static const uint16_t SIZE_ACK_REPORT = 14;
|
static const uint16_t SIZE_ACK_REPORT = 14;
|
||||||
static const uint16_t SIZE_EXE_REPORT = 14;
|
static const uint16_t SIZE_EXE_REPORT = 14;
|
||||||
static const uint16_t SIZE_HK_REPORT = 52;
|
|
||||||
static const uint16_t SIZE_BOOT_STATUS_REPORT = 24;
|
static const uint16_t SIZE_BOOT_STATUS_REPORT = 24;
|
||||||
static const uint16_t SIZE_LATCHUP_STATUS_REPORT = 31;
|
static const uint16_t SIZE_LATCHUP_STATUS_REPORT = 31;
|
||||||
static const uint16_t SIZE_LOGGING_REPORT = 73;
|
static const uint16_t SIZE_LOGGING_REPORT = 73;
|
||||||
|
@ -134,7 +134,7 @@ void EiveSystem::handleEventMessages() {
|
|||||||
if (event.getParameter1() == pdec::FRAME_DIRTY_RETVAL) {
|
if (event.getParameter1() == pdec::FRAME_DIRTY_RETVAL) {
|
||||||
frameDirtyErrorCounter++;
|
frameDirtyErrorCounter++;
|
||||||
// Check whether threshold was reached after 10 seconds.
|
// Check whether threshold was reached after 10 seconds.
|
||||||
if(frameDirtyErrorCounter == 1) {
|
if (frameDirtyErrorCounter == 1) {
|
||||||
frameDirtyCheckCd.resetTimer();
|
frameDirtyCheckCd.resetTimer();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
2
tmtc
2
tmtc
@ -1 +1 @@
|
|||||||
Subproject commit f76cd9453593375974bc67fa7ce3906c6eb4443a
|
Subproject commit b50c75c13cdbbc3d34d2f072d2bf1cb2fbe734b5
|
Loading…
Reference in New Issue
Block a user