F´ Flight Software - C/C++ Documentation
devel
A framework for building embedded system applications to NASA flight quality standards.
|
#include <Drv/Udp/UdpComponentImpl.hpp>
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::InputByteStreamSendPort * | get_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 | |
IpSocket & | getSocketHandler () |
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... | |
Definition at line 23 of file UdpComponentImpl.hpp.
Drv::UdpComponentImpl::UdpComponentImpl | ( | const char *const | compName | ) |
construct the TcpClient component.
compName | name of this component |
Definition at line 26 of file UdpComponentImpl.cpp.
Drv::UdpComponentImpl::~UdpComponentImpl | ( | ) |
Destroy the component.
Definition at line 43 of file UdpComponentImpl.cpp.
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.
hostname | ip address of remote tcp server in the form x.x.x.x |
port | port of remote tcp server |
buffer_size | size of the buffer to be allocated. Defaults to 1024. |
Definition at line 36 of file UdpComponentImpl.cpp.
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.
hostname | ip address of remote tcp server in the form x.x.x.x |
port | port of remote tcp server |
send_timeout_seconds | send timeout seconds component. Defaults to: SOCKET_TIMEOUT_SECONDS |
send_timeout_microseconds | send timeout microseconds component. Must be less than 1000000. Defaults to: SOCKET_TIMEOUT_MICROSECONDS |
Definition at line 29 of file UdpComponentImpl.cpp.
|
protectedvirtual |
called when the IPv4 system has been connected
Implements Drv::SocketComponentHelper.
Definition at line 75 of file UdpComponentImpl.cpp.
|
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.
Implements Drv::SocketComponentHelper.
Definition at line 57 of file UdpComponentImpl.cpp.
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.
Definition at line 45 of file UdpComponentImpl.cpp.
|
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.
Implements Drv::SocketComponentHelper.
Definition at line 53 of file UdpComponentImpl.cpp.
|
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.
Implements Drv::SocketComponentHelper.
Definition at line 61 of file UdpComponentImpl.cpp.