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
,TmPacketDataLink
public class UdpTmDataLink extends AbstractTmDataLink implements Runnable
Receives telemetry packets via UDP. One UDP datagram = one TM packet. Keeps simple statistics about the number of datagram received and the number of too short datagrams
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.yamcs.tctm.Link
Link.Status
-
-
Field Summary
-
Fields inherited from class org.yamcs.tctm.AbstractTmDataLink
packetCount, packetPreprocessor, updateSimulationTime
-
Fields inherited from class org.yamcs.tctm.AbstractLink
config, disabled, eventProducer, linkName, log, timeService, yamcsInstance
-
-
Constructor Summary
Constructors Constructor Description UdpTmDataLink()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Link.Status
connectionStatus()
In case the link should be connected (i.e. is running and enabled) this method is called to return the actual connection statusvoid
doDisable()
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()
String
getDetailedStatus()
returns statistics with the number of datagram received and the number of invalid datagramsTmPacket
getNextPacket()
Called to retrieve the next packet.void
init(String instance, String name, YConfiguration config)
Creates a new UDP TM Data Linkvoid
run()
-
Methods inherited from class org.yamcs.tctm.AbstractTmDataLink
collectSystemParameters, getDataInCount, getDataOutCount, processPacket, resetCounters, setTmSink, setupSystemParameters, updateStats
-
Methods inherited from class org.yamcs.tctm.AbstractLink
disable, enable, getConfig, getCurrentTime, getEventLoop, getLinkStatus, getName, getSystemParameters, isDisabled, isRunningAndEnabled
-
Methods inherited from class com.google.common.util.concurrent.AbstractService
addListener, awaitRunning, awaitRunning, awaitTerminated, awaitTerminated, 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, getSpec, isDisabled, setParent
-
Methods inherited from interface org.yamcs.parameter.SystemParametersProducer
getSystemParameters
-
-
-
-
Method Detail
-
init
public void init(String instance, String name, YConfiguration config) throws ConfigurationException
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
-
getNextPacket
public TmPacket 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
public String getDetailedStatus()
returns statistics with the number of datagram received and the number of invalid datagrams- Specified by:
getDetailedStatus
in interfaceLink
- Overrides:
getDetailedStatus
in classAbstractLink
- Returns:
- more detailed status information
-
doDisable
public void doDisable()
Sets the disabled to true such that getNextPacket ignores the received datagrams- Overrides:
doDisable
in classAbstractLink
-
doEnable
public void doEnable() throws SocketException
Sets the disabled to false such that getNextPacket does not ignore the received datagrams- Overrides:
doEnable
in classAbstractLink
- Throws:
SocketException
-
connectionStatus
protected Link.Status 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
-
-