F´ Flight Software - C/C++ Documentation  devel
A framework for building embedded system applications to NASA flight quality standards.
Drv::UdpComponentImpl Class Reference

#include <Drv/Udp/UdpComponentImpl.hpp>

Inheritance diagram for Drv::UdpComponentImpl:
Drv::UdpComponentBase Drv::SocketComponentHelper Fw::PassiveComponentBase Fw::ObjBase

Public Member Functions

 UdpComponentImpl (const char *const compName)
 construct the TcpClient component. More...
 
 ~UdpComponentImpl ()
 Destroy the component. More...
 
SocketIpStatus configureSend (const char *hostname, const U16 port, const U32 send_timeout_seconds=SOCKET_SEND_TIMEOUT_SECONDS, const U32 send_timeout_microseconds=SOCKET_SEND_TIMEOUT_MICROSECONDS)
 Configures the Udp send settings but does not open the connection. More...
 
SocketIpStatus configureRecv (const char *hostname, const U16 port, FwSizeType buffer_size=1024)
 Configures the Udp receive settings but does not open the connection. More...
 
U16 getRecvPort ()
 get the port being received on More...
 
- Public Member Functions inherited from Drv::UdpComponentBase
void init (FwEnumStoreType instance=0)
 Initialize UdpComponentBase object. More...
 
Drv::InputByteStreamSendPortget_send_InputPort (FwIndexType portNum)
 
void set_allocate_OutputPort (FwIndexType portNum, Fw::InputBufferGetPort *port)
 Connect port to allocate[portNum]. More...
 
void set_deallocate_OutputPort (FwIndexType portNum, Fw::InputBufferSendPort *port)
 Connect port to deallocate[portNum]. More...
 
void set_ready_OutputPort (FwIndexType portNum, Drv::InputByteStreamReadyPort *port)
 Connect port to ready[portNum]. More...
 
void set_recv_OutputPort (FwIndexType portNum, Drv::InputByteStreamRecvPort *port)
 Connect port to recv[portNum]. More...
 
- Public Member Functions inherited from Fw::PassiveComponentBase
void setIdBase (const U32)
 Set the ID base. More...
 
U32 getIdBase () const
 
- Public Member Functions inherited from Drv::SocketComponentHelper
 SocketComponentHelper ()
 constructs the socket read task More...
 
virtual ~SocketComponentHelper ()
 destructor of the socket read task More...
 
void start (const Fw::StringBase &name, const bool reconnect=true, const Os::Task::ParamType priority=Os::Task::TASK_DEFAULT, const Os::Task::ParamType stack=Os::Task::TASK_DEFAULT, const Os::Task::ParamType cpuAffinity=Os::Task::TASK_DEFAULT)
 start the socket read task to start producing data More...
 
SocketIpStatus open ()
 open the socket for communications More...
 
bool isOpened ()
 check if IP socket has previously been opened More...
 
SocketIpStatus reconnect ()
 Re-open port if it has been disconnected. More...
 
SocketIpStatus send (const U8 *const data, const U32 size)
 send data to the IP socket from the given buffer More...
 
SocketIpStatus recv (U8 *data, U32 &size)
 receive data from the IP socket from the given buffer More...
 
void close ()
 close the socket communications More...
 
void shutdown ()
 shutdown the socket communications More...
 
bool running ()
 is the read loop running More...
 
void stop ()
 stop the socket read task and close the associated socket. More...
 
Os::Task::Status join ()
 joins to the stopping read task to wait for it to close More...
 

Protected Member Functions

IpSocketgetSocketHandler ()
 returns a reference to the socket handler More...
 
Fw::Buffer getBuffer ()
 returns a buffer to fill with data More...
 
void sendBuffer (Fw::Buffer buffer, SocketIpStatus status)
 sends a buffer to be filled with data More...
 
void connected ()
 called when the IPv4 system has been connected More...
 
- Protected Member Functions inherited from Drv::UdpComponentBase
 UdpComponentBase (const char *compName="")
 Construct UdpComponentBase object. More...
 
virtual ~UdpComponentBase ()
 Destroy UdpComponentBase object. More...
 
FwIndexType getNum_send_InputPorts () const
 
FwIndexType getNum_allocate_OutputPorts () const
 
FwIndexType getNum_deallocate_OutputPorts () const
 
FwIndexType getNum_ready_OutputPorts () const
 
FwIndexType getNum_recv_OutputPorts () const
 
bool isConnected_allocate_OutputPort (FwIndexType portNum)
 
bool isConnected_deallocate_OutputPort (FwIndexType portNum)
 
bool isConnected_ready_OutputPort (FwIndexType portNum)
 
bool isConnected_recv_OutputPort (FwIndexType portNum)
 
Drv::SendStatus send_handlerBase (FwIndexType portNum, Fw::Buffer &sendBuffer)
 Handler base-class function for input port send. More...
 
Fw::Buffer allocate_out (FwIndexType portNum, U32 size)
 Invoke output port allocate. More...
 
void deallocate_out (FwIndexType portNum, Fw::Buffer &fwBuffer)
 Invoke output port deallocate. More...
 
void ready_out (FwIndexType portNum)
 Invoke output port ready. More...
 
void recv_out (FwIndexType portNum, Fw::Buffer &recvBuffer, const Drv::RecvStatus &recvStatus)
 Invoke output port recv. More...
 
virtual void lock ()
 Lock the guarded mutex. More...
 
virtual void unLock ()
 Unlock the guarded mutex. More...
 
- Protected Member Functions inherited from Fw::PassiveComponentBase
 PassiveComponentBase (const char *name)
 Named constructor. More...
 
virtual ~PassiveComponentBase ()
 Destructor. More...
 
void init (NATIVE_INT_TYPE instance)
 Initialization function. More...
 
NATIVE_INT_TYPE getInstance () const
 
- Protected Member Functions inherited from Fw::ObjBase
 ObjBase (const char *name)
 ObjBase constructor. More...
 
virtual ~ObjBase ()
 Destructor. More...
 
void init ()
 Object initializer. More...
 
- Protected Member Functions inherited from Drv::SocketComponentHelper
virtual void readLoop ()
 receive off the TCP socket More...
 

Additional Inherited Members

- Public Types inherited from Drv::SocketComponentHelper
enum  OpenState { NOT_OPEN , OPENING , OPEN , SKIP }
 
- Protected Types inherited from Drv::UdpComponentBase
enum  { NUM_SEND_INPUT_PORTS = 1 }
 Enumerations for numbers of typed input ports. More...
 
enum  { NUM_ALLOCATE_OUTPUT_PORTS = 1 , NUM_DEALLOCATE_OUTPUT_PORTS = 1 , NUM_READY_OUTPUT_PORTS = 1 , NUM_RECV_OUTPUT_PORTS = 1 }
 Enumerations for numbers of typed output ports. More...
 
- Static Protected Member Functions inherited from Drv::SocketComponentHelper
static void readTask (void *pointer)
 a task designed to read from the socket and output incoming data More...
 
- Protected Attributes inherited from Drv::SocketComponentHelper
Os::Task m_task
 
Os::Mutex m_lock
 
SocketDescriptor m_descriptor
 
bool m_reconnect = false
 Force reconnection. More...
 
bool m_stop = true
 Stops the task when set to true. More...
 
OpenState m_open = OpenState::NOT_OPEN
 Have we successfully opened. More...
 

Detailed Description

Definition at line 23 of file UdpComponentImpl.hpp.

Constructor & Destructor Documentation

◆ UdpComponentImpl()

Drv::UdpComponentImpl::UdpComponentImpl ( const char *const  compName)

construct the TcpClient component.

Parameters
compNamename of this component

Definition at line 26 of file UdpComponentImpl.cpp.

◆ ~UdpComponentImpl()

Drv::UdpComponentImpl::~UdpComponentImpl ( )

Destroy the component.

Definition at line 43 of file UdpComponentImpl.cpp.

Member Function Documentation

◆ configureRecv()

SocketIpStatus Drv::UdpComponentImpl::configureRecv ( const char *  hostname,
const U16  port,
FwSizeType  buffer_size = 1024 
)

Configures the Udp receive settings but does not open the connection.

The UdpComponent may need to receive from a remote udp port. This call configures the hostname and port of that source. This call should be performed on system startup before recv or send are called. Note: hostname must be a dot-notation IP address of the form "x.x.x.x". DNS translation is left up to the user.

Parameters
hostnameip address of remote tcp server in the form x.x.x.x
portport of remote tcp server
buffer_sizesize of the buffer to be allocated. Defaults to 1024.
Returns
status of the configure

Definition at line 36 of file UdpComponentImpl.cpp.

◆ configureSend()

SocketIpStatus Drv::UdpComponentImpl::configureSend ( const char *  hostname,
const U16  port,
const U32  send_timeout_seconds = SOCKET_SEND_TIMEOUT_SECONDS,
const U32  send_timeout_microseconds = SOCKET_SEND_TIMEOUT_MICROSECONDS 
)

Configures the Udp send settings but does not open the connection.

The UdpComponent may need to send to a remote UDP port. This call configures the hostname, port and send timeouts for that socket connection. This call should be performed on system startup before send is called. Note: hostname must be a dot-notation IP address of the form "x.x.x.x". DNS translation is left up to the user.

Parameters
hostnameip address of remote tcp server in the form x.x.x.x
portport of remote tcp server
send_timeout_secondssend timeout seconds component. Defaults to: SOCKET_TIMEOUT_SECONDS
send_timeout_microsecondssend timeout microseconds component. Must be less than 1000000. Defaults to: SOCKET_TIMEOUT_MICROSECONDS
Returns
status of the configure

Definition at line 29 of file UdpComponentImpl.cpp.

◆ connected()

void Drv::UdpComponentImpl::connected ( )
protectedvirtual

called when the IPv4 system has been connected

Implements Drv::SocketComponentHelper.

Definition at line 75 of file UdpComponentImpl.cpp.

◆ getBuffer()

Fw::Buffer Drv::UdpComponentImpl::getBuffer ( )
protectedvirtual

returns a buffer to fill with data

Gets a reference to a buffer to fill with data. This allows the component to determine how to provide a buffer and the socket read task just fills said buffer.

Returns
Fw::Buffer to fill with data

Implements Drv::SocketComponentHelper.

Definition at line 57 of file UdpComponentImpl.cpp.

◆ getRecvPort()

U16 Drv::UdpComponentImpl::getRecvPort ( )

get the port being received on

Most useful when receive was configured to use port "0", this will return the port used for receiving data after a port has been determined. Will return 0 if the connection has not been setup.

Returns
receive port

Definition at line 45 of file UdpComponentImpl.cpp.

◆ getSocketHandler()

IpSocket & Drv::UdpComponentImpl::getSocketHandler ( )
protectedvirtual

returns a reference to the socket handler

Gets a reference to the current socket handler in order to operate generically on the IpSocket instance. Used for receive, and open calls. This socket handler will be a TcpClient.

Returns
IpSocket reference

Implements Drv::SocketComponentHelper.

Definition at line 53 of file UdpComponentImpl.cpp.

◆ sendBuffer()

void Drv::UdpComponentImpl::sendBuffer ( Fw::Buffer  buffer,
SocketIpStatus  status 
)
protectedvirtual

sends a buffer to be filled with data

Sends the buffer gotten by getBuffer that has now been filled with data. This is used to delegate to the component how to send back the buffer. Ignores buffers with error status error.

Returns
Fw::Buffer filled with data to send out

Implements Drv::SocketComponentHelper.

Definition at line 61 of file UdpComponentImpl.cpp.


The documentation for this class was generated from the following files: