1
0
forked from fsfw/fsfw

Split up FIFO into StaticFIFO and normale FIFO

This commit is contained in:
2020-07-05 23:53:13 +02:00
parent 2395e487ae
commit ebec074655
12 changed files with 309 additions and 84 deletions

View File

@ -7,16 +7,20 @@
#include <netinet/udp.h>
class TmTcUnixUdpBridge: public TmTcBridge {
friend class TcSocketPollingTask;
public:
// The ports chosen here should not be used by any other process.
// List of used ports on Linux: /etc/services
static constexpr int DEFAULT_UDP_SERVER_PORT = 7301;
static constexpr int DEFAULT_UDP_CLIENT_PORT = 7302;
static constexpr uint16_t DEFAULT_UDP_SERVER_PORT = 7301;
static constexpr uint16_t DEFAULT_UDP_CLIENT_PORT = 7302;
TmTcUnixUdpBridge(object_id_t objectId, object_id_t ccsdsPacketDistributor,
uint16_t serverPort = 0xFFFF,uint16_t clientPort = 0xFFFF);
virtual~ TmTcUnixUdpBridge();
void setTimeout(float timeoutSeconds);
void checkAndSetClientAddress(sockaddr_in clientAddress);
protected:
virtual ReturnValue_t receiveTc(uint8_t ** recvBuffer,
size_t * size) override;
@ -24,8 +28,16 @@ protected:
private:
int serverSocket = 0;
const int serverSocketOptions = 0;
struct sockaddr_in clientAddress;
socklen_t clientSocketLen = 0;
struct sockaddr_in serverAddress;
socklen_t serverSocketLen = 0;
//! Access to the client address is mutex protected as it is set
//! by another task.
MutexIF* mutex;
void handleSocketError();
void handleBindError();