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.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
Fields inherited from class org.yamcs.tctm.AbstractParameterDataLink
parameterCountFields 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 TypeMethodDescriptionIn case the link should be connected (i.e. is running and enabled) this method is called to return the actual connection statusorg.yamcs.protobuf.Pvalue.ParameterDatadecodeDatagram(byte[] data, int offset, int length) DecodePvalue.ParameterDatafrom the content of a single received UDP Datagram.protected voidprotected voiddoEnable()protected voiddoStart()protected voiddoStop()Returns a short detail status (one-line)Returns structured information, specific to the link.org.yamcs.protobuf.Pvalue.ParameterDataCalled to retrieve the next packet.getSpec()Returns the valid configuration of the input args of this link.voidinit(String instance, String name, YConfiguration config) Called at startup to initialize the link.voidvoidrun()Methods inherited from class org.yamcs.tctm.AbstractParameterDataLink
collectSystemParameters, getDataInCount, getDataOutCount, setParameterSink, setupSystemParameters, updateParametersMethods 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, getDefaultSpec, getLinkStatus, getName, getParent, isDisabled, isEffectivelyDisabled, setParentMethods inherited from interface org.yamcs.tctm.ParameterDataLink
isParameterDataLinkImplementedMethods inherited from interface org.yamcs.parameter.SystemParametersProducer
getFrequency
-
Constructor Details
-
UdpParameterDataLink
public UdpParameterDataLink()
-
-
Method Details
-
getSpec
Description copied from interface:LinkReturns the valid configuration of the input args of this link. -
init
Description copied from interface:LinkCalled at startup to initialize the link.The config corresponds to the map that is under the link definition in yamcs.instance.yaml.
- Specified by:
initin interfaceLink- Overrides:
initin classAbstractLinkconfig- - the configuration - cannot be null (but can be empty)
-
doStart
protected void doStart()- Specified by:
doStartin classcom.google.common.util.concurrent.AbstractService
-
doStop
protected void doStop()- Specified by:
doStopin classcom.google.common.util.concurrent.AbstractService
-
run
public void run() -
getNextData
public org.yamcs.protobuf.Pvalue.ParameterData 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
public org.yamcs.protobuf.Pvalue.ParameterData decodeDatagram(byte[] data, int offset, int length) throws IOException DecodePvalue.ParameterDatafrom the content of a single received UDP Datagram.UdpParameterDataLinkhas 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 fromoffsetand runs forlengthlong.offset- offset of the data receivedlength- length of the data received- Throws:
IOException
-
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
-
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
-
doEnable
- Overrides:
doEnablein classAbstractLink- Throws:
Exception
-
doDisable
- Overrides:
doDisablein classAbstractLink- Throws:
Exception
-
resetCounters
public void resetCounters()- Specified by:
resetCountersin interfaceLink- Overrides:
resetCountersin classAbstractParameterDataLink
-