Package org.yamcs.tctm
Class AbstractTmDataLink
java.lang.Object
com.google.common.util.concurrent.AbstractService
org.yamcs.tctm.AbstractLink
org.yamcs.tctm.AbstractTmDataLink
- All Implemented Interfaces:
com.google.common.util.concurrent.Service,SystemParametersProducer,Link,LinkActionProvider,TmPacketDataLink
- Direct Known Subclasses:
FilePollingTmDataLink,TcpTmDataLink,UdpTmDataLink,YamcsTmArchiveLink,YamcsTmLink
public abstract class AbstractTmDataLink
extends AbstractLink
implements TmPacketDataLink, SystemParametersProducer
-
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 AtomicLongprotected PacketPreprocessorprotected booleanFields 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 voidcollectSystemParameters(long time, List<ParameterValue> list) adds system parameters link status and data in/out to the list.longlongReturns a default linkSpec.voidinit(String instance, String name, YConfiguration config) Called at startup to initialize the link.protected voidprocessPacket(TmPacket tmpkt) Sends the packet downstream for processing.voidvoidsets the tm sink that should get all the tm packetsvoidsetupSystemParameters(SystemParametersService sysParamService) Called by the LinkManager before startup if theSystemParametersServiceservice is enabled, to setup necessary things for later parameter collection.protected voidupdateStats(int packetSize) called when a new packet is received to update the statisticsMethods inherited from class org.yamcs.tctm.AbstractLink
addAction, connectionStatus, dataIn, dataOut, disable, doDisable, doEnable, enable, getAction, getActions, getConfig, getCurrentTime, getDetailedStatus, 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, doStart, doStop, 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, getDetailedStatus, getExtraInfo, getLinkStatus, getName, getParent, getSpec, isDisabled, isEffectivelyDisabled, setParentMethods inherited from interface org.yamcs.parameter.SystemParametersProducer
getFrequency, getSystemParametersMethods inherited from interface org.yamcs.tctm.TmPacketDataLink
isTmPacketDataLinkImplemented
-
Field Details
-
packetCount
-
packetPreprocessor
-
updateSimulationTime
protected boolean updateSimulationTime
-
-
Constructor Details
-
AbstractTmDataLink
public AbstractTmDataLink()
-
-
Method Details
-
getDefaultSpec
Description copied from interface:LinkReturns a default linkSpec. This can be used in an implementation of {Link.getSpec(). Eventually (after a few years), it is expected to migrate this logic directly into {LinkLink.getSpec(), rather than returning null from there. But we want to give sufficient time for links everywhere to start defining their arguments.- Specified by:
getDefaultSpecin interfaceLink
-
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)
-
setupSystemParameters
Description copied from interface:LinkCalled by the LinkManager before startup if theSystemParametersServiceservice is enabled, to setup necessary things for later parameter collection.The method is called only on the links that implement the
SystemParametersProducerinterface; they are also registered with theSystemParametersServiceto be called regularly after the start.- Specified by:
setupSystemParametersin interfaceLink- Overrides:
setupSystemParametersin classAbstractLink
-
collectSystemParameters
Description copied from class:AbstractLinkadds system parameters link status and data in/out to the list.The inheriting classes should call super.collectSystemParameters and then add their own parameters to the list
- Overrides:
collectSystemParametersin classAbstractLink
-
getDataInCount
public long getDataInCount()- Specified by:
getDataInCountin interfaceLink- Overrides:
getDataInCountin classAbstractLink
-
getDataOutCount
public long getDataOutCount()- Specified by:
getDataOutCountin interfaceLink- Overrides:
getDataOutCountin classAbstractLink
-
setTmSink
Description copied from interface:TmPacketDataLinksets the tm sink that should get all the tm packets- Specified by:
setTmSinkin interfaceTmPacketDataLink
-
processPacket
Sends the packet downstream for processing.Starting in Yamcs 5.2, if the updateSimulationTime option is set on the link configuration,
- the timeService is expected to be SimulationTimeService
- at initialization, the time0 is set to 0
- upon each packet received, the generationTime (as set by the pre-processor) is used to update the simulation elapsed time
Should be called by all sub-classes (instead of directly calling
TmSink.processPacket(TmPacket)- Parameters:
tmpkt-
-
updateStats
protected void updateStats(int packetSize) called when a new packet is received to update the statistics- Parameters:
packetSize-
-
resetCounters
public void resetCounters()- Specified by:
resetCountersin interfaceLink- Overrides:
resetCountersin classAbstractLink
-