Package org.yamcs.tctm
Class UdpParameterDataLink
java.lang.Object
com.google.common.util.concurrent.AbstractService
org.yamcs.tctm.AbstractLink
org.yamcs.tctm.AbstractParameterDataLink
org.yamcs.tctm.UdpParameterDataLink
- All Implemented Interfaces:
com.google.common.util.concurrent.Service
,Runnable
,SystemParametersProducer
,Link
,LinkActionProvider
,ParameterDataLink
Receives PP data via UDP.
The UDP packets are protobuf encoded ParameterData. We don't use any checksum, assume it's done by UDP.
-
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
Fields inherited from class org.yamcs.tctm.AbstractParameterDataLink
parameterCount
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 TypeMethodDescriptionIn case the link should be connected (i.e. is running and enabled) this method is called to return the actual connection statusdecodeDatagram
(byte[] data, int offset, int length) DecodePvalue.ParameterData
from the content of a single received UDP Datagram.protected void
protected void
doEnable()
protected void
doStart()
protected 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) Called at startup to initialize the link.void
void
run()
Methods inherited from class org.yamcs.tctm.AbstractParameterDataLink
collectSystemParameters, getDataInCount, getDataOutCount, setParameterSink, setupSystemParameters, updateParameters
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, getDefaultSpec, getLinkStatus, getName, getParent, isDisabled, isEffectivelyDisabled, setParent
Methods inherited from interface org.yamcs.tctm.ParameterDataLink
isParameterDataLinkImplemented
Methods inherited from interface org.yamcs.parameter.SystemParametersProducer
getFrequency
-
Constructor Details
-
UdpParameterDataLink
public UdpParameterDataLink()
-
-
Method Details
-
getSpec
Description copied from interface:Link
Returns the valid configuration of the input args of this link. -
init
Description copied from interface:Link
Called at startup to initialize the link.The config corresponds to the map that is under the link definition in yamcs.instance.yaml.
- Specified by:
init
in interfaceLink
- Overrides:
init
in classAbstractLink
config
- - the configuration - cannot be null (but can be empty)
-
doStart
protected void doStart()- Specified by:
doStart
in classcom.google.common.util.concurrent.AbstractService
-
doStop
protected void doStop()- Specified by:
doStop
in classcom.google.common.util.concurrent.AbstractService
-
run
public void run() -
getNextData
Called to retrieve the next packet. It blocks in reading on the UDP socket.- Returns:
- anything that looks as a valid packet, just the size is taken into account to decide if it's valid or not
-
decodeDatagram
DecodePvalue.ParameterData
from the content of a single received UDP Datagram.UdpParameterDataLink
has configurable support for either Protobuf or JSON-encoded data. Extending links may provide a custom decoder by overriding this method.- Parameters:
data
- data buffer. The data received starts fromoffset
and runs forlength
long.offset
- offset of the data receivedlength
- length of the data received- Throws:
IOException
-
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
-
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
-
doEnable
- Overrides:
doEnable
in classAbstractLink
- Throws:
Exception
-
doDisable
- Overrides:
doDisable
in classAbstractLink
- Throws:
Exception
-
resetCounters
public void resetCounters()- Specified by:
resetCounters
in interfaceLink
- Overrides:
resetCounters
in classAbstractParameterDataLink
-