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
,TmPacketDataLink
- Direct Known Subclasses:
FilePollingTmDataLink
,TcpTmDataLink
,UdpTmDataLink
public abstract class AbstractTmDataLink extends AbstractLink implements TmPacketDataLink, SystemParametersProducer
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.yamcs.tctm.Link
Link.Status
-
-
Field Summary
Fields Modifier and Type Field Description protected AtomicLong
packetCount
protected PacketPreprocessor
packetPreprocessor
protected boolean
updateSimulationTime
-
Fields inherited from class org.yamcs.tctm.AbstractLink
config, disabled, eventProducer, linkName, log, timeService, yamcsInstance
-
-
Constructor Summary
Constructors Constructor Description AbstractTmDataLink()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
collectSystemParameters(long time, List<ParameterValue> list)
adds system parameters link status and data in/out to the list.long
getDataInCount()
long
getDataOutCount()
void
init(String instance, String name, YConfiguration config)
Called at startup to initialize the link.protected void
processPacket(TmPacket tmpkt)
Sends the packet downstream for processing.void
resetCounters()
void
setTmSink(TmSink tmSink)
sets the tm processor that should get all the tm packetsvoid
setupSystemParameters(SystemParametersCollector sysParamCollector)
Called by the LinkManager before startup if theSystemParametersCollector
service is enabled, to setup necessary things for later parameter collection.protected void
updateStats(int packetSize)
called when a new packet is received to update the statistics-
Methods inherited from class org.yamcs.tctm.AbstractLink
connectionStatus, disable, doDisable, doEnable, enable, getConfig, getCurrentTime, getDetailedStatus, getEventLoop, getLinkStatus, getName, getSystemParameters, isDisabled, isRunningAndEnabled
-
Methods inherited from class com.google.common.util.concurrent.AbstractService
addListener, awaitRunning, awaitRunning, awaitTerminated, awaitTerminated, doStart, doStop, 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, getDetailedStatus, getLinkStatus, getName, getParent, getSpec, isDisabled, setParent
-
Methods inherited from interface org.yamcs.parameter.SystemParametersProducer
getSystemParameters
-
-
-
-
Field Detail
-
packetCount
protected AtomicLong packetCount
-
packetPreprocessor
protected PacketPreprocessor packetPreprocessor
-
updateSimulationTime
protected boolean updateSimulationTime
-
-
Method Detail
-
init
public void init(String instance, String name, YConfiguration config)
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)
-
setupSystemParameters
public void setupSystemParameters(SystemParametersCollector sysParamCollector)
Description copied from interface:Link
Called by the LinkManager before startup if theSystemParametersCollector
service is enabled, to setup necessary things for later parameter collection.The method is called only on the links that implement the
SystemParametersProducer
interface; they are also registered with theSystemParametersCollector
to be called regularly after the start.- Specified by:
setupSystemParameters
in interfaceLink
- Overrides:
setupSystemParameters
in classAbstractLink
-
collectSystemParameters
protected void collectSystemParameters(long time, List<ParameterValue> list)
Description copied from class:AbstractLink
adds 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:
collectSystemParameters
in classAbstractLink
-
getDataInCount
public long getDataInCount()
- Specified by:
getDataInCount
in interfaceLink
-
getDataOutCount
public long getDataOutCount()
- Specified by:
getDataOutCount
in interfaceLink
-
setTmSink
public void setTmSink(TmSink tmSink)
Description copied from interface:TmPacketDataLink
sets the tm processor that should get all the tm packets- Specified by:
setTmSink
in interfaceTmPacketDataLink
-
processPacket
protected void processPacket(TmPacket tmpkt)
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:
resetCounters
in interfaceLink
-
-