Package org.yamcs.tctm
Class UdpTmDataLink
java.lang.Object
com.google.common.util.concurrent.AbstractService
org.yamcs.tctm.AbstractLink
org.yamcs.tctm.AbstractTmDataLink
org.yamcs.tctm.UdpTmDataLink
- All Implemented Interfaces:
com.google.common.util.concurrent.Service
,Runnable
,SystemParametersProducer
,Link
,LinkActionProvider
,TmPacketDataLink
Receives telemetry packets via UDP. One UDP datagram = one TM packet.
Options:
port
- the UDP port to listen tomaxLength
- the maximum length of the datagram (and thus the TM packet length + initialBytesToStrip). If a datagram longer than this size will be received, it will be truncated. Default: 1500 (bytes)initialBytesToStrip
- if configured, skip that number of bytes from the beginning of the datagram. Default: 0
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.yamcs.tctm.Link
Link.Status
Nested classes/interfaces inherited from interface com.google.common.util.concurrent.Service
com.google.common.util.concurrent.Service.Listener, com.google.common.util.concurrent.Service.State
-
Field Summary
Modifier and TypeFieldDescriptionprotected DatagramPacket
protected int
protected long
protected int
protected int
protected DatagramSocket
Fields inherited from class org.yamcs.tctm.AbstractTmDataLink
packetCount, packetPreprocessor, updateSimulationTime
Fields inherited from class org.yamcs.tctm.AbstractLink
config, dataInCount, dataOutCount, disabled, eventProducer, LINK_NAMESPACE, linkName, log, timeService, yamcsInstance
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected Link.Status
In case the link should be connected (i.e. is running and enabled) this method is called to return the actual connection statusvoid
Sets the disabled to true such that getNextPacket ignores the received datagramsvoid
doEnable()
Sets the disabled to false such that getNextPacket does not ignore the received datagramsvoid
doStart()
void
doStop()
Returns a short detail status (one-line)Returns structured information, specific to the link.Called to retrieve the next packet.getSpec()
Returns the valid configuration of the input args of this link.void
init
(String instance, String name, YConfiguration config) Creates a new UDP TM Data Linkvoid
void
run()
Methods inherited from class org.yamcs.tctm.AbstractTmDataLink
collectSystemParameters, getDataInCount, getDataOutCount, getDefaultSpec, processPacket, setTmSink, setupSystemParameters, updateStats
Methods inherited from class org.yamcs.tctm.AbstractLink
addAction, dataIn, dataOut, disable, enable, getAction, getActions, getConfig, getCurrentTime, getEventLoop, getLinkStatus, getName, getParent, getSystemParameters, getYamcsInstance, isDisabled, isRunningAndEnabled, setParent
Methods inherited from class com.google.common.util.concurrent.AbstractService
addListener, awaitRunning, awaitRunning, awaitRunning, awaitTerminated, awaitTerminated, awaitTerminated, doCancelStart, failureCause, isRunning, notifyFailed, notifyStarted, notifyStopped, startAsync, state, stopAsync, toString
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.yamcs.tctm.Link
disable, enable, getConfig, getLinkStatus, getName, getParent, isDisabled, isEffectivelyDisabled, setParent
Methods inherited from interface org.yamcs.parameter.SystemParametersProducer
getFrequency, getSystemParameters
Methods inherited from interface org.yamcs.tctm.TmPacketDataLink
isTmPacketDataLinkImplemented
-
Field Details
-
invalidDatagramCount
protected volatile long invalidDatagramCount -
tmSocket
-
port
protected int port -
maxLength
protected int maxLength -
initialBytesToStrip
protected int initialBytesToStrip -
datagram
-
-
Constructor Details
-
UdpTmDataLink
public UdpTmDataLink()
-
-
Method Details
-
getSpec
Description copied from interface:Link
Returns the valid configuration of the input args of this link. -
init
Creates a new UDP TM Data Link- Specified by:
init
in interfaceLink
- Overrides:
init
in classAbstractTmDataLink
config
- - the configuration - cannot be null (but can be empty)- Throws:
ConfigurationException
- if port is not defined in the configuration
-
doStart
public void doStart()- Specified by:
doStart
in classcom.google.common.util.concurrent.AbstractService
-
doStop
public void doStop()- Specified by:
doStop
in classcom.google.common.util.concurrent.AbstractService
-
run
public void run() -
getNextPacket
Called to retrieve the next packet. It blocks in readining on the multicast socket- Returns:
- anything that looks as a valid packet, just the size is taken into account to decide if it's valid or not
-
getDetailedStatus
Description copied from interface:Link
Returns a short detail status (one-line)- Specified by:
getDetailedStatus
in interfaceLink
- Overrides:
getDetailedStatus
in classAbstractLink
-
getExtraInfo
Description copied from interface:Link
Returns structured information, specific to the link.- Specified by:
getExtraInfo
in interfaceLink
-
resetCounters
public void resetCounters()- Specified by:
resetCounters
in interfaceLink
- Overrides:
resetCounters
in classAbstractTmDataLink
-
doDisable
public void doDisable()Sets the disabled to true such that getNextPacket ignores the received datagrams- Overrides:
doDisable
in classAbstractLink
-
doEnable
Sets the disabled to false such that getNextPacket does not ignore the received datagrams- Overrides:
doEnable
in classAbstractLink
- Throws:
SocketException
-
connectionStatus
Description copied from class:AbstractLink
In case the link should be connected (i.e. is running and enabled) this method is called to return the actual connection status- Specified by:
connectionStatus
in classAbstractLink
-