dhb2normal #313

Merged
muellerr merged 19 commits from dhb2normal into develop 2022-11-03 15:36:24 +01:00
6 changed files with 30 additions and 24 deletions
Showing only changes of commit ce743e238b - Show all commits

View File

@ -10,6 +10,9 @@ list yields a list of all related PRs for each release.
# [unreleased] # [unreleased]
- Extended TM funnels to allow multiple TM recipients.
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/312
# [v1.15.0] 27.10.2022 # [v1.15.0] 27.10.2022
- Consistent device file naming - Consistent device file naming

View File

@ -4,7 +4,7 @@
#include <fsfw/tmtcservices/PusServiceBase.h> #include <fsfw/tmtcservices/PusServiceBase.h>
#include <mission/controller/ThermalController.h> #include <mission/controller/ThermalController.h>
#include <mission/core/GenericFactory.h> #include <mission/core/GenericFactory.h>
#include <mission/tmtc/TmFunnel.h> #include <mission/tmtc/TmFunnelHandler.h>
#include <objects/systemObjectList.h> #include <objects/systemObjectList.h>
#include <tmtc/pusIds.h> #include <tmtc/pusIds.h>
@ -59,7 +59,9 @@ void Factory::setStaticFrameworkObjectIds() {
void ObjectFactory::produce(void* args) { void ObjectFactory::produce(void* args) {
Factory::setStaticFrameworkObjectIds(); Factory::setStaticFrameworkObjectIds();
ObjectFactory::produceGenericObjects(); PusTmFunnel* pusFunnel;
CfdpTmFunnel* cfdpFunnel;
ObjectFactory::produceGenericObjects(nullptr, &pusFunnel, &cfdpFunnel);
dummy::DummyCfg cfg; dummy::DummyCfg cfg;
dummy::createDummies(cfg); dummy::createDummies(cfg);

View File

@ -91,11 +91,9 @@
#include "mission/devices/devicedefinitions/RwDefinitions.h" #include "mission/devices/devicedefinitions/RwDefinitions.h"
#include "mission/devices/devicedefinitions/SyrlinksDefinitions.h" #include "mission/devices/devicedefinitions/SyrlinksDefinitions.h"
#include "mission/devices/devicedefinitions/payloadPcduDefinitions.h" #include "mission/devices/devicedefinitions/payloadPcduDefinitions.h"
#include "mission/system/objects/AcsBoardAssembly.h" #include "mission/system/objects/AcsBoardAssembly.h"
#include "mission/tmtc/CcsdsIpCoreHandler.h" #include "mission/tmtc/CcsdsIpCoreHandler.h"
#include "mission/tmtc/TmFunnelHandler.h" #include "mission/tmtc/TmFunnelHandler.h"
#include "mission/tmtc/VirtualChannel.h" #include "mission/tmtc/VirtualChannel.h"
ResetArgs RESET_ARGS_GNSS; ResetArgs RESET_ARGS_GNSS;

View File

@ -18,16 +18,15 @@
#include <mission/devices/SusHandler.h> #include <mission/devices/SusHandler.h>
#include <mission/system/fdir/RtdFdir.h> #include <mission/system/fdir/RtdFdir.h>
#include <mission/system/fdir/SusFdir.h> #include <mission/system/fdir/SusFdir.h>
#include <mission/system/objects/SusAssembly.h>
#include <mission/system/objects/TcsBoardAssembly.h>
#include "mission/system/tree/acsModeTree.h"
#include "OBSWConfig.h" #include "OBSWConfig.h"
#include "devConf.h" #include "devConf.h"
#include "devices/addresses.h" #include "devices/addresses.h"
#include "devices/gpioIds.h" #include "devices/gpioIds.h"
#include "eive/definitions.h" #include "eive/definitions.h"
#include "mission/system/objects/SusAssembly.h"
#include "mission/system/objects/TcsBoardAssembly.h"
#include "mission/system/tree/acsModeTree.h"
void ObjectFactory::createSunSensorComponents(GpioIF* gpioComIF, SpiComIF* spiComIF, void ObjectFactory::createSunSensorComponents(GpioIF* gpioComIF, SpiComIF* spiComIF,
PowerSwitchIF* pwrSwitcher, std::string spiDev) { PowerSwitchIF* pwrSwitcher, std::string spiDev) {

View File

@ -69,14 +69,16 @@ ReturnValue_t CfdpTmFunnel::handlePacket(TmTcMessage& msg) {
store_address_t origStoreId = newStoreId; store_address_t origStoreId = newStoreId;
for (unsigned int idx = 0; idx < destinations.size(); idx++) { for (unsigned int idx = 0; idx < destinations.size(); idx++) {
const auto& destVcidPair = destinations[idx]; const auto& destVcidPair = destinations[idx];
if (idx <= destinations.size() - 1) { if (destinations.size() > 1) {
// Create copy of data to ensure each TM recipient has its own copy. That way, we don't need if (idx <= destinations.size() - 1) {
// to bother with send order and where the data is deleted. // Create copy of data to ensure each TM recipient has its own copy. That way, we don't need
store_address_t storeId; // to bother with send order and where the data is deleted.
result = tmStore.addData(&storeId, newPacketData, serSize); store_address_t storeId;
msg.setStorageId(storeId); result = tmStore.addData(&storeId, newPacketData, serSize);
} else { msg.setStorageId(storeId);
msg.setStorageId(origStoreId); } else {
msg.setStorageId(origStoreId);
}
} }
result = tmQueue->sendMessage(destVcidPair.first, &msg); result = tmQueue->sendMessage(destVcidPair.first, &msg);
if (result != returnvalue::OK) { if (result != returnvalue::OK) {

View File

@ -50,14 +50,16 @@ ReturnValue_t PusTmFunnel::handlePacket(TmTcMessage &message) {
for (unsigned int idx = 0; idx < destinations.size(); idx++) { for (unsigned int idx = 0; idx < destinations.size(); idx++) {
const auto &destVcidPair = destinations[idx]; const auto &destVcidPair = destinations[idx];
if (idx <= destinations.size() - 1) { if (destinations.size() > 1) {
// Create copy of data to ensure each TM recipient has its own copy. That way, we don't need if (idx <= destinations.size() - 1) {
// to bother with send order and where the data is deleted. // Create copy of data to ensure each TM recipient has its own copy. That way, we don't need
store_address_t storeId; // to bother with send order and where the data is deleted.
result = tmStore.addData(&storeId, packetData, size); store_address_t storeId;
message.setStorageId(storeId); result = tmStore.addData(&storeId, packetData, size);
} else { message.setStorageId(storeId);
message.setStorageId(origStoreId); } else {
message.setStorageId(origStoreId);
}
} }
result = tmQueue->sendMessage(destVcidPair.first, &message); result = tmQueue->sendMessage(destVcidPair.first, &message);
if (result != returnvalue::OK) { if (result != returnvalue::OK) {