removed hardcoded ip information
fsfw/fsfw/pipeline/head There was a failure building this commit Details

This commit is contained in:
Ulrich Mohr 2023-07-10 16:17:05 +02:00
parent 14a7dd885b
commit 531d8c45e8
3 changed files with 22 additions and 12 deletions

View File

@ -136,7 +136,8 @@ void ActionHelper::prepareExecution(MessageQueueId_t commandedBy, size_t offset,
CommandMessage message;
TmMessage::setCommand(&message, replyStoreId, dataAddress);
ipcStore->deleteData(dataAddress);
TmMessage::setCommand(&message, replyStoreId, store_address_t());
queueToUse->sendMessage(information.reportingQueue, &message);

View File

@ -13,11 +13,15 @@
#include "FsfwProtocolHeader.h"
#include "TmMessage.h"
UdpTmTcBridgeNew::UdpTmTcBridgeNew(object_id_t objectId, object_id_t tmStoreId,
object_id_t tcStoreId)
: SystemObject(objectId), defaultDestination(nullptr), defaultDestinationLen(0) {
UdpTmTcBridgeNew::UdpTmTcBridgeNew(object_id_t objectId, uint16_t listeningPort,
const sockaddr *defaultDestination_in,
socklen_t defaultDestinationLen)
: SystemObject(objectId),
listeningPort(listeningPort),
defaultDestinationLen(defaultDestinationLen) {
messageQueue =
QueueFactory::instance()->createMessageQueue(50, MessageQueueMessage::MAX_MESSAGE_SIZE);
memcpy(&this->defaultDestination, defaultDestination_in, defaultDestinationLen);
}
UdpTmTcBridgeNew::~UdpTmTcBridgeNew() {}
@ -58,7 +62,7 @@ ReturnValue_t UdpTmTcBridgeNew::initialize() {
memset(&serverAddr, 0, sizeof(serverAddr));
serverAddr.sin6_family = AF_INET6;
serverAddr.sin6_port = htons(6667);
serverAddr.sin6_port = htons(listeningPort);
serverAddr.sin6_addr = IN6ADDR_ANY_INIT;
retval = bind(serverSocket, (struct sockaddr *)&serverAddr, sizeof(serverAddr));
@ -131,10 +135,6 @@ void UdpTmTcBridgeNew::handleTC() {
ssize_t receivedLen = recvfrom(serverSocket, applicationData, peekLen, 0,
(struct sockaddr *)(bufferPointer + 1), &senderlen);
printf("type %i, port %i, senderlen %i, sizeof4 %li, sizeof6 %li\n", sender.ss_family,
ntohs(((sockaddr_in *)&sender)->sin_port), senderlen, sizeof(sockaddr_in),
sizeof(sockaddr_in6));
if (receivedLen == -1) {
return;
}
@ -202,7 +202,7 @@ void UdpTmTcBridgeNew::handleTM() {
size_t tcDataSize;
result = IPCStore->getData(tc, &tcData, &tcDataSize);
if (result != returnvalue::OK) {
receiver = defaultDestination;
receiver = (const sockaddr *)&defaultDestination;
receiverLen = defaultDestinationLen;
} else {
if (*tcData != IP6) {
@ -218,6 +218,9 @@ void UdpTmTcBridgeNew::handleTM() {
result = IPCStore->getData(tm, &tmData, &tmDataSize);
if (result != returnvalue::OK) {
// nothing to send
if (tc != store_address_t()) {
IPCStore->deleteData(tc);
}
return;
}
@ -226,4 +229,8 @@ void UdpTmTcBridgeNew::handleTM() {
if (res == -1) {
sif::error << "UdpTmTcBridge::handleTM: sendto failed with " << errno << std::endl;
}
IPCStore->deleteData(tm);
if (tc != store_address_t()) {
IPCStore->deleteData(tc);
}
}

View File

@ -14,7 +14,8 @@ class UdpTmTcBridgeNew : public SystemObject,
enum PerformOperationCode { BOTH = 0, TM, TC };
static const size_t MINIMAL_LENGTH = 4 + 2; // ObjectId, interface, function
UdpTmTcBridgeNew(object_id_t objectId, object_id_t tmStoreId, object_id_t tcStoreId);
UdpTmTcBridgeNew(object_id_t objectId, uint16_t listeningPort, const sockaddr* defaultDestination,
socklen_t defaultDestinationLen);
virtual ~UdpTmTcBridgeNew();
ReturnValue_t initialize() override;
@ -24,11 +25,12 @@ class UdpTmTcBridgeNew : public SystemObject,
MessageQueueId_t getReportReceptionQueue() const override;
private:
uint16_t listeningPort;
MessageQueueIF* messageQueue;
int serverSocket;
StorageManagerIF* IPCStore;
const sockaddr* const defaultDestination;
sockaddr_storage defaultDestination;
const socklen_t defaultDestinationLen;
void handleTC();