Merge remote-tracking branch 'origin/main' into cfdp-source-handler
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
This commit is contained in:
commit
35f287ff23
18
CHANGELOG.md
18
CHANGELOG.md
@ -24,6 +24,22 @@ will consitute of a breaking change warranting a new major release:
|
|||||||
|
|
||||||
- Host build fixes
|
- Host build fixes
|
||||||
|
|
||||||
|
## Changed
|
||||||
|
|
||||||
|
- The primary and the secondary temperature sensors for the PLOC mission boards are exchanged.
|
||||||
|
- ACS parameters for the SUSMGM (FLP) safe mode have been adjusted. This safe mode is now the
|
||||||
|
default one.
|
||||||
|
|
||||||
|
# [v6.4.1] 2023-08-21
|
||||||
|
|
||||||
|
## Fixed
|
||||||
|
|
||||||
|
- `PDEC_CONFIG_CORRUPTED` event now actually contains the readback instead of the expected
|
||||||
|
config
|
||||||
|
- Magnetic field vector was not calculated if only MGM4 was available, but still written to
|
||||||
|
the dataset. This would result in a NaN vector. Allowance for usage of MGM4 is now checked
|
||||||
|
before entering calculation.
|
||||||
|
|
||||||
# [v6.4.0] 2023-08-16
|
# [v6.4.0] 2023-08-16
|
||||||
|
|
||||||
- `eive-tmtc`: v5.4.3
|
- `eive-tmtc`: v5.4.3
|
||||||
@ -32,6 +48,8 @@ will consitute of a breaking change warranting a new major release:
|
|||||||
|
|
||||||
- The handling function of the GPS data is only called once per GPS read. This should remove
|
- The handling function of the GPS data is only called once per GPS read. This should remove
|
||||||
the fake fix-has-changed events.
|
the fake fix-has-changed events.
|
||||||
|
- Fix for PLOC SUPV HK set parsing.
|
||||||
|
- The timestamp for the `POSSIBLE_FILE_CORRUPTION` event will be generated properly now.
|
||||||
|
|
||||||
## Changed
|
## Changed
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ cmake_minimum_required(VERSION 3.13)
|
|||||||
|
|
||||||
set(OBSW_VERSION_MAJOR 6)
|
set(OBSW_VERSION_MAJOR 6)
|
||||||
set(OBSW_VERSION_MINOR 4)
|
set(OBSW_VERSION_MINOR 4)
|
||||||
set(OBSW_VERSION_REVISION 0)
|
set(OBSW_VERSION_REVISION 1)
|
||||||
|
|
||||||
# set(CMAKE_VERBOSE TRUE)
|
# set(CMAKE_VERBOSE TRUE)
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* @brief Auto-generated event translation file. Contains 305 translations.
|
* @brief Auto-generated event translation file. Contains 305 translations.
|
||||||
* @details
|
* @details
|
||||||
* Generated on: 2023-09-04 11:19:49
|
* Generated on: 2023-09-07 16:12:51
|
||||||
*/
|
*/
|
||||||
#include "translateEvents.h"
|
#include "translateEvents.h"
|
||||||
|
|
||||||
|
@ -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-09-04 11:19:49
|
* Generated on: 2023-09-07 16:12:51
|
||||||
*/
|
*/
|
||||||
#include "translateObjects.h"
|
#include "translateObjects.h"
|
||||||
|
|
||||||
|
@ -339,6 +339,7 @@ Full ID (hex); Name; Description; Unique ID; Subsytem Name; File Path
|
|||||||
0x3704;CFDP_DestNameEmpty;No description;4;CFDP_HANDLER;fsfw/src/fsfw/cfdp/handler/defs.h
|
0x3704;CFDP_DestNameEmpty;No description;4;CFDP_HANDLER;fsfw/src/fsfw/cfdp/handler/defs.h
|
||||||
0x3705;CFDP_WrongRemoteCfgEntityId;No description;5;CFDP_HANDLER;fsfw/src/fsfw/cfdp/handler/defs.h
|
0x3705;CFDP_WrongRemoteCfgEntityId;No description;5;CFDP_HANDLER;fsfw/src/fsfw/cfdp/handler/defs.h
|
||||||
0x3706;CFDP_TargetMsgQueueFull;No description;6;CFDP_HANDLER;fsfw/src/fsfw/cfdp/handler/defs.h
|
0x3706;CFDP_TargetMsgQueueFull;No description;6;CFDP_HANDLER;fsfw/src/fsfw/cfdp/handler/defs.h
|
||||||
|
0x3707;CFDP_TmStoreFull;No description;7;CFDP_HANDLER;fsfw/src/fsfw/cfdp/handler/defs.h
|
||||||
0x3801;TSI_BadTimestamp;No description;1;TIME_STAMPER_IF;fsfw/src/fsfw/timemanager/TimeStampIF.h
|
0x3801;TSI_BadTimestamp;No description;1;TIME_STAMPER_IF;fsfw/src/fsfw/timemanager/TimeStampIF.h
|
||||||
0x39a1;SGP4_InvalidEccentricity;No description;161;SGP4PROPAGATOR_CLASS;fsfw/src/fsfw/coordinates/Sgp4Propagator.h
|
0x39a1;SGP4_InvalidEccentricity;No description;161;SGP4PROPAGATOR_CLASS;fsfw/src/fsfw/coordinates/Sgp4Propagator.h
|
||||||
0x39a2;SGP4_InvalidMeanMotion;No description;162;SGP4PROPAGATOR_CLASS;fsfw/src/fsfw/coordinates/Sgp4Propagator.h
|
0x39a2;SGP4_InvalidMeanMotion;No description;162;SGP4PROPAGATOR_CLASS;fsfw/src/fsfw/coordinates/Sgp4Propagator.h
|
||||||
|
|
@ -339,6 +339,7 @@ Full ID (hex); Name; Description; Unique ID; Subsytem Name; File Path
|
|||||||
0x3704;CFDP_DestNameEmpty;No description;4;CFDP_HANDLER;fsfw/src/fsfw/cfdp/handler/defs.h
|
0x3704;CFDP_DestNameEmpty;No description;4;CFDP_HANDLER;fsfw/src/fsfw/cfdp/handler/defs.h
|
||||||
0x3705;CFDP_WrongRemoteCfgEntityId;No description;5;CFDP_HANDLER;fsfw/src/fsfw/cfdp/handler/defs.h
|
0x3705;CFDP_WrongRemoteCfgEntityId;No description;5;CFDP_HANDLER;fsfw/src/fsfw/cfdp/handler/defs.h
|
||||||
0x3706;CFDP_TargetMsgQueueFull;No description;6;CFDP_HANDLER;fsfw/src/fsfw/cfdp/handler/defs.h
|
0x3706;CFDP_TargetMsgQueueFull;No description;6;CFDP_HANDLER;fsfw/src/fsfw/cfdp/handler/defs.h
|
||||||
|
0x3707;CFDP_TmStoreFull;No description;7;CFDP_HANDLER;fsfw/src/fsfw/cfdp/handler/defs.h
|
||||||
0x3801;TSI_BadTimestamp;No description;1;TIME_STAMPER_IF;fsfw/src/fsfw/timemanager/TimeStampIF.h
|
0x3801;TSI_BadTimestamp;No description;1;TIME_STAMPER_IF;fsfw/src/fsfw/timemanager/TimeStampIF.h
|
||||||
0x39a1;SGP4_InvalidEccentricity;No description;161;SGP4PROPAGATOR_CLASS;fsfw/src/fsfw/coordinates/Sgp4Propagator.h
|
0x39a1;SGP4_InvalidEccentricity;No description;161;SGP4PROPAGATOR_CLASS;fsfw/src/fsfw/coordinates/Sgp4Propagator.h
|
||||||
0x39a2;SGP4_InvalidMeanMotion;No description;162;SGP4PROPAGATOR_CLASS;fsfw/src/fsfw/coordinates/Sgp4Propagator.h
|
0x39a2;SGP4_InvalidMeanMotion;No description;162;SGP4PROPAGATOR_CLASS;fsfw/src/fsfw/coordinates/Sgp4Propagator.h
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* @brief Auto-generated event translation file. Contains 305 translations.
|
* @brief Auto-generated event translation file. Contains 305 translations.
|
||||||
* @details
|
* @details
|
||||||
* Generated on: 2023-09-04 11:19:49
|
* Generated on: 2023-09-07 16:12:51
|
||||||
*/
|
*/
|
||||||
#include "translateEvents.h"
|
#include "translateEvents.h"
|
||||||
|
|
||||||
|
@ -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-09-04 11:19:49
|
* Generated on: 2023-09-07 16:12:51
|
||||||
*/
|
*/
|
||||||
#include "translateObjects.h"
|
#include "translateObjects.h"
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* @brief Auto-generated event translation file. Contains 305 translations.
|
* @brief Auto-generated event translation file. Contains 305 translations.
|
||||||
* @details
|
* @details
|
||||||
* Generated on: 2023-09-04 11:19:49
|
* Generated on: 2023-09-07 16:12:51
|
||||||
*/
|
*/
|
||||||
#include "translateEvents.h"
|
#include "translateEvents.h"
|
||||||
|
|
||||||
|
@ -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-09-04 11:19:49
|
* Generated on: 2023-09-07 16:12:51
|
||||||
*/
|
*/
|
||||||
#include "translateObjects.h"
|
#include "translateObjects.h"
|
||||||
|
|
||||||
|
@ -595,9 +595,10 @@ void PdecHandler::checkConfig() {
|
|||||||
sif::warning << "PdecHandler::checkConfig: Failed to create second word" << std::endl;
|
sif::warning << "PdecHandler::checkConfig: Failed to create second word" << std::endl;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (firstWord != pdecConfig.readbackFirstWord() or
|
uint32_t readbackFirstWord = pdecConfig.readbackFirstWord();
|
||||||
secondWord != pdecConfig.readbackSecondWord()) {
|
uint32_t readbackSecondWord = pdecConfig.readbackSecondWord();
|
||||||
triggerEvent(PDEC_CONFIG_CORRUPTED, firstWord, secondWord);
|
if (firstWord != readbackFirstWord or secondWord != readbackSecondWord) {
|
||||||
|
triggerEvent(PDEC_CONFIG_CORRUPTED, readbackFirstWord, readbackSecondWord);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1372,12 +1372,13 @@ void ThermalController::ctrlPlPcduBoard() {
|
|||||||
tooHotHandler(objects::PLPCDU_HANDLER, tooHotFlags.eBandTooHotFlag);
|
tooHotHandler(objects::PLPCDU_HANDLER, tooHotFlags.eBandTooHotFlag);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ToDo: remove one of the following 2
|
||||||
void ThermalController::ctrlPlocMissionBoard() {
|
void ThermalController::ctrlPlocMissionBoard() {
|
||||||
ctrlCtx.thermalComponent = tcsCtrl::PLOCMISSION_BOARD;
|
ctrlCtx.thermalComponent = tcsCtrl::PLOCMISSION_BOARD;
|
||||||
sensors[0].first = sensorTemperatures.plocHeatspreader.isValid();
|
sensors[0].first = sensorTemperatures.plocMissionboard.isValid();
|
||||||
sensors[0].second = sensorTemperatures.plocHeatspreader.value;
|
sensors[0].second = sensorTemperatures.plocMissionboard.value;
|
||||||
sensors[1].first = sensorTemperatures.plocMissionboard.isValid();
|
sensors[1].first = sensorTemperatures.plocHeatspreader.isValid();
|
||||||
sensors[1].second = sensorTemperatures.plocMissionboard.value;
|
sensors[1].second = sensorTemperatures.plocHeatspreader.value;
|
||||||
sensors[2].first = sensorTemperatures.dacHeatspreader.isValid();
|
sensors[2].first = sensorTemperatures.dacHeatspreader.isValid();
|
||||||
sensors[2].second = sensorTemperatures.dacHeatspreader.value;
|
sensors[2].second = sensorTemperatures.dacHeatspreader.value;
|
||||||
numSensors = 3;
|
numSensors = 3;
|
||||||
|
@ -79,7 +79,7 @@ class AcsParameters : public HasParametersIF {
|
|||||||
float mgm13variance[3] = {pow(1.5e-8, 2), pow(1.5e-8, 2), pow(1.5e-8, 2)};
|
float mgm13variance[3] = {pow(1.5e-8, 2), pow(1.5e-8, 2), pow(1.5e-8, 2)};
|
||||||
float mgm4variance[3] = {pow(1.7e-6, 2), pow(1.7e-6, 2), pow(1.7e-6, 2)};
|
float mgm4variance[3] = {pow(1.7e-6, 2), pow(1.7e-6, 2), pow(1.7e-6, 2)};
|
||||||
float mgmVectorFilterWeight = 0.85;
|
float mgmVectorFilterWeight = 0.85;
|
||||||
float mgmDerivativeFilterWeight = 0.85;
|
float mgmDerivativeFilterWeight = 0.99;
|
||||||
uint8_t useMgm4 = false;
|
uint8_t useMgm4 = false;
|
||||||
} mgmHandlingParameters;
|
} mgmHandlingParameters;
|
||||||
|
|
||||||
@ -771,7 +771,7 @@ class AcsParameters : public HasParametersIF {
|
|||||||
-0.000889232196185857, -0.00168429567131815}};
|
-0.000889232196185857, -0.00168429567131815}};
|
||||||
float susBrightnessThreshold = 0.7;
|
float susBrightnessThreshold = 0.7;
|
||||||
float susVectorFilterWeight = .85;
|
float susVectorFilterWeight = .85;
|
||||||
float susRateFilterWeight = .85;
|
float susRateFilterWeight = .99;
|
||||||
} susHandlingParameters;
|
} susHandlingParameters;
|
||||||
|
|
||||||
struct GyrHandlingParameters {
|
struct GyrHandlingParameters {
|
||||||
@ -834,15 +834,15 @@ class AcsParameters : public HasParametersIF {
|
|||||||
double k_alignGyr = 4.0e-5;
|
double k_alignGyr = 4.0e-5;
|
||||||
double k_parallelGyr = 3.75e-4;
|
double k_parallelGyr = 3.75e-4;
|
||||||
|
|
||||||
double k_orthoSusMgm = 1.1e-2;
|
double k_orthoSusMgm = 4.4e-3;
|
||||||
double k_alignSusMgm = 2.0e-5;
|
double k_alignSusMgm = 4.0e-5;
|
||||||
double k_parallelSusMgm = 4.4e-4;
|
double k_parallelSusMgm = 3.75e-4;
|
||||||
|
|
||||||
double sunTargetDirLeop[3] = {0, sqrt(.5), sqrt(.5)};
|
double sunTargetDirLeop[3] = {0, sqrt(.5), sqrt(.5)};
|
||||||
double sunTargetDir[3] = {0, 0, 1};
|
double sunTargetDir[3] = {0, 0, 1};
|
||||||
|
|
||||||
uint8_t useMekf = false;
|
uint8_t useMekf = false;
|
||||||
uint8_t useGyr = true;
|
uint8_t useGyr = false;
|
||||||
uint8_t dampingDuringEclipse = true;
|
uint8_t dampingDuringEclipse = true;
|
||||||
|
|
||||||
float sineLimitSunRotRate = 0.24;
|
float sineLimitSunRotRate = 0.24;
|
||||||
|
@ -25,7 +25,8 @@ void SensorProcessing::processMgm(const float *mgm0Value, bool mgm0valid, const
|
|||||||
gpsDataProcessed->altitude.value, timeOfMgmMeasurement, magIgrfModel);
|
gpsDataProcessed->altitude.value, timeOfMgmMeasurement, magIgrfModel);
|
||||||
gpsValid = true;
|
gpsValid = true;
|
||||||
}
|
}
|
||||||
if (!mgm0valid && !mgm1valid && !mgm2valid && !mgm3valid && !mgm4valid) {
|
if (not mgm0valid and not mgm1valid and not mgm2valid and not mgm3valid and
|
||||||
|
(not mgm4valid or not mgmParameters->useMgm4)) {
|
||||||
{
|
{
|
||||||
PoolReadGuard pg(mgmDataProcessed);
|
PoolReadGuard pg(mgmDataProcessed);
|
||||||
if (pg.getReadResult() == returnvalue::OK) {
|
if (pg.getReadResult() == returnvalue::OK) {
|
||||||
|
@ -134,16 +134,16 @@ void ObjectFactory::produceGenericObjects(HealthTableIF** healthTable_, PusTmFun
|
|||||||
|
|
||||||
#if OBSW_ADD_TCPIP_SERVERS == 1
|
#if OBSW_ADD_TCPIP_SERVERS == 1
|
||||||
#if OBSW_ADD_TMTC_UDP_SERVER == 1
|
#if OBSW_ADD_TMTC_UDP_SERVER == 1
|
||||||
auto udpBridge =
|
auto udpBridge = new UdpTmTcBridge(objects::UDP_TMTC_SERVER, objects::CCSDS_PACKET_DISTRIBUTOR,
|
||||||
new UdpTmTcBridge(objects::UDP_TMTC_SERVER, objects::CCSDS_PACKET_DISTRIBUTOR, config::UDP_MSG_QUEUE_DEPTH);
|
config::UDP_MSG_QUEUE_DEPTH);
|
||||||
new UdpTcPollingTask(objects::UDP_TMTC_POLLING_TASK, objects::UDP_TMTC_SERVER);
|
new UdpTcPollingTask(objects::UDP_TMTC_POLLING_TASK, objects::UDP_TMTC_SERVER);
|
||||||
sif::info << "Created UDP server for TMTC commanding with listener port "
|
sif::info << "Created UDP server for TMTC commanding with listener port "
|
||||||
<< udpBridge->getUdpPort() << std::endl;
|
<< udpBridge->getUdpPort() << std::endl;
|
||||||
udpBridge->setMaxNumberOfPacketsStored(config::UDP_MAX_STORED_CMDS);
|
udpBridge->setMaxNumberOfPacketsStored(config::UDP_MAX_STORED_CMDS);
|
||||||
#endif
|
#endif
|
||||||
#if OBSW_ADD_TMTC_TCP_SERVER == 1
|
#if OBSW_ADD_TMTC_TCP_SERVER == 1
|
||||||
auto tcpBridge =
|
auto tcpBridge = new TcpTmTcBridge(objects::TCP_TMTC_SERVER, objects::CCSDS_PACKET_DISTRIBUTOR,
|
||||||
new TcpTmTcBridge(objects::TCP_TMTC_SERVER, objects::CCSDS_PACKET_DISTRIBUTOR, config::TCP_MSG_QUEUE_DEPTH);
|
config::TCP_MSG_QUEUE_DEPTH);
|
||||||
TcpTmTcServer::TcpConfig cfg(true, true);
|
TcpTmTcServer::TcpConfig cfg(true, true);
|
||||||
auto tcpServer = new TcpTmTcServer(objects::TCP_TMTC_POLLING_TASK, objects::TCP_TMTC_SERVER, cfg);
|
auto tcpServer = new TcpTmTcServer(objects::TCP_TMTC_POLLING_TASK, objects::TCP_TMTC_SERVER, cfg);
|
||||||
// TCP is stream based. Use packet ID as start marker when parsing for space packets
|
// TCP is stream based. Use packet ID as start marker when parsing for space packets
|
||||||
@ -230,8 +230,8 @@ void ObjectFactory::produceGenericObjects(HealthTableIF** healthTable_, PusTmFun
|
|||||||
if (routeToPersistentStores) {
|
if (routeToPersistentStores) {
|
||||||
fileStoreDest = stores.cfdpStore->getReportReceptionQueue(0);
|
fileStoreDest = stores.cfdpStore->getReportReceptionQueue(0);
|
||||||
}
|
}
|
||||||
*cfdpFunnel = new CfdpTmFunnel(cfdpFunnelCfg, fileStoreDest,
|
*cfdpFunnel =
|
||||||
*ramToFileStore, config::EIVE_CFDP_APID);
|
new CfdpTmFunnel(cfdpFunnelCfg, fileStoreDest, *ramToFileStore, config::EIVE_CFDP_APID);
|
||||||
|
|
||||||
#if OBSW_ADD_TCPIP_SERVERS == 1
|
#if OBSW_ADD_TCPIP_SERVERS == 1
|
||||||
#if OBSW_ADD_TMTC_UDP_SERVER == 1
|
#if OBSW_ADD_TMTC_UDP_SERVER == 1
|
||||||
|
@ -4,7 +4,8 @@
|
|||||||
#include "fsfw/tmtcpacket/ccsds/SpacePacketCreator.h"
|
#include "fsfw/tmtcpacket/ccsds/SpacePacketCreator.h"
|
||||||
#include "fsfw/tmtcservices/TmTcMessage.h"
|
#include "fsfw/tmtcservices/TmTcMessage.h"
|
||||||
|
|
||||||
CfdpTmFunnel::CfdpTmFunnel(TmFunnelBase::FunnelCfg cfg, std::optional<MessageQueueId_t> fileStoreDest,
|
CfdpTmFunnel::CfdpTmFunnel(TmFunnelBase::FunnelCfg cfg,
|
||||||
|
std::optional<MessageQueueId_t> fileStoreDest,
|
||||||
StorageManagerIF& ramToFileStore, uint16_t cfdpInCcsdsApid)
|
StorageManagerIF& ramToFileStore, uint16_t cfdpInCcsdsApid)
|
||||||
: TmFunnelBase(cfg),
|
: TmFunnelBase(cfg),
|
||||||
fileStoreDest(fileStoreDest),
|
fileStoreDest(fileStoreDest),
|
||||||
@ -42,7 +43,8 @@ ReturnValue_t CfdpTmFunnel::performOperation(uint8_t) {
|
|||||||
}
|
}
|
||||||
if (handledPackets > 0) {
|
if (handledPackets > 0) {
|
||||||
// Very useful for profiling and debugging
|
// Very useful for profiling and debugging
|
||||||
//sif::debug << "CfdpFunnel: Handled " << handledPackets << " packets in one cycle" << std::endl;
|
// sif::debug << "CfdpFunnel: Handled " << handledPackets << " packets in one cycle" <<
|
||||||
|
// std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (status == MessageQueueIF::EMPTY) {
|
if (status == MessageQueueIF::EMPTY) {
|
||||||
@ -101,9 +103,9 @@ ReturnValue_t CfdpTmFunnel::handlePacket(TmTcMessage& msg) {
|
|||||||
if (result == returnvalue::OK) {
|
if (result == returnvalue::OK) {
|
||||||
tmQueue->sendMessage(fileStoreDest.value(), &fileMsg);
|
tmQueue->sendMessage(fileStoreDest.value(), &fileMsg);
|
||||||
} else if (result == StorageManagerIF::DATA_STORAGE_FULL) {
|
} else if (result == StorageManagerIF::DATA_STORAGE_FULL) {
|
||||||
sif::error << "CfdpTmFunnel::handlePacket: RAM to File Store too full to create data copy" << std::endl;
|
sif::error << "CfdpTmFunnel::handlePacket: RAM to File Store too full to create data copy"
|
||||||
|
<< std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
return demultiplexLivePackets(origStoreId, newPacketData, packetLen);
|
return demultiplexLivePackets(origStoreId, newPacketData, packetLen);
|
||||||
}
|
}
|
||||||
|
@ -320,6 +320,7 @@ ReturnValue_t PersistentTmStore::loadNextDumpFile() {
|
|||||||
}
|
}
|
||||||
// File will change, reset this field for correct state-keeping.
|
// File will change, reset this field for correct state-keeping.
|
||||||
dumpParams.currentSameFileIdx = std::nullopt;
|
dumpParams.currentSameFileIdx = std::nullopt;
|
||||||
|
dumpParams.currentFileUnixStamp = dumpParams.dumpIter->epoch;
|
||||||
// Increment iterator for next cycle.
|
// Increment iterator for next cycle.
|
||||||
dumpParams.dumpIter++;
|
dumpParams.dumpIter++;
|
||||||
};
|
};
|
||||||
|
@ -9,7 +9,8 @@ ReturnValue_t PusLiveDemux::demultiplexPackets(StorageManagerIF& tmStore,
|
|||||||
store_address_t origStoreId, const uint8_t* tmData,
|
store_address_t origStoreId, const uint8_t* tmData,
|
||||||
size_t tmSize) {
|
size_t tmSize) {
|
||||||
ReturnValue_t result = returnvalue::OK;
|
ReturnValue_t result = returnvalue::OK;
|
||||||
// sif::debug << "tm size: " << tmSize << " for " << destinations.size() << " destinations" << std::endl;
|
// sif::debug << "tm size: " << tmSize << " for " << destinations.size() << " destinations" <<
|
||||||
|
// std::endl;
|
||||||
for (unsigned int idx = 0; idx < destinations.size(); idx++) {
|
for (unsigned int idx = 0; idx < destinations.size(); idx++) {
|
||||||
const auto& dest = destinations[idx];
|
const auto& dest = destinations[idx];
|
||||||
if ((destinations.size() > 1) and (idx < (destinations.size() - 1))) {
|
if ((destinations.size() > 1) and (idx < (destinations.size() - 1))) {
|
||||||
|
2
tmtc
2
tmtc
@ -1 +1 @@
|
|||||||
Subproject commit 649deac81bbc59d70f0cd1f2e442f434d089bbef
|
Subproject commit 5fc3d8de996e5640adb7205cd3897d499eb3da60
|
Loading…
Reference in New Issue
Block a user