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.StatusNested 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
FieldsModifier and TypeFieldDescriptionprotected DatagramPacketprotected intprotected longprotected intprotected intprotected DatagramSocketFields inherited from class org.yamcs.tctm.AbstractTmDataLink
packetCount, packetPreprocessor, updateSimulationTimeFields inherited from class org.yamcs.tctm.AbstractLink
config, dataInCount, dataOutCount, disabled, eventProducer, LINK_NAMESPACE, linkName, log, timeService, yamcsInstance -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected Link.StatusIn case the link should be connected (i.e. is running and enabled) this method is called to return the actual connection statusvoidSets the disabled to true such that getNextPacket ignores the received datagramsvoiddoEnable()Sets the disabled to false such that getNextPacket does not ignore the received datagramsvoiddoStart()voiddoStop()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.voidinit(String instance, String name, YConfiguration config) Creates a new UDP TM Data Linkvoidvoidrun()Methods inherited from class org.yamcs.tctm.AbstractTmDataLink
collectSystemParameters, getDataInCount, getDataOutCount, getDefaultSpec, processPacket, setTmSink, setupSystemParameters, updateStatsMethods inherited from class org.yamcs.tctm.AbstractLink
addAction, dataIn, dataOut, disable, enable, getAction, getActions, getConfig, getCurrentTime, getEventLoop, getLinkStatus, getName, getParent, getSystemParameters, getYamcsInstance, isDisabled, isRunningAndEnabled, setParentMethods 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, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.yamcs.tctm.Link
disable, enable, getConfig, getLinkStatus, getName, getParent, isDisabled, isEffectivelyDisabled, setParentMethods inherited from interface org.yamcs.parameter.SystemParametersProducer
getFrequency, getSystemParametersMethods 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:LinkReturns the valid configuration of the input args of this link. -
init
Creates a new UDP TM Data Link- Specified by:
initin interfaceLink- Overrides:
initin classAbstractTmDataLinkconfig- - 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:
doStartin classcom.google.common.util.concurrent.AbstractService
-
doStop
public void doStop()- Specified by:
doStopin 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:LinkReturns a short detail status (one-line)- Specified by:
getDetailedStatusin interfaceLink- Overrides:
getDetailedStatusin classAbstractLink
-
getExtraInfo
Description copied from interface:LinkReturns structured information, specific to the link.- Specified by:
getExtraInfoin interfaceLink
-
resetCounters
public void resetCounters()- Specified by:
resetCountersin interfaceLink- Overrides:
resetCountersin classAbstractTmDataLink
-
doDisable
public void doDisable()Sets the disabled to true such that getNextPacket ignores the received datagrams- Overrides:
doDisablein classAbstractLink
-
doEnable
Sets the disabled to false such that getNextPacket does not ignore the received datagrams- Overrides:
doEnablein classAbstractLink- Throws:
SocketException
-
connectionStatus
Description copied from class:AbstractLinkIn case the link should be connected (i.e. is running and enabled) this method is called to return the actual connection status- Specified by:
connectionStatusin classAbstractLink
-