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
  • Field Details

    • packetCount

      protected AtomicLong packetCount
    • packetPreprocessor

      protected PacketPreprocessor packetPreprocessor
    • updateSimulationTime

      protected boolean updateSimulationTime
  • Constructor Details

    • AbstractTmDataLink

      public AbstractTmDataLink()
  • Method Details

    • getDefaultSpec

      public Spec getDefaultSpec()
      Description copied from interface: Link
      Returns a default link Spec. 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:
      getDefaultSpec in interface Link
    • 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 interface Link
      Overrides:
      init in class AbstractLink
      config - - the configuration - cannot be null (but can be empty)
    • setupSystemParameters

      public void setupSystemParameters(SystemParametersService sysParamService)
      Description copied from interface: Link
      Called by the LinkManager before startup if the SystemParametersService 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 the SystemParametersService to be called regularly after the start.

      Specified by:
      setupSystemParameters in interface Link
      Overrides:
      setupSystemParameters in class AbstractLink
    • 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 class AbstractLink
    • getDataInCount

      public long getDataInCount()
      Specified by:
      getDataInCount in interface Link
      Overrides:
      getDataInCount in class AbstractLink
    • getDataOutCount

      public long getDataOutCount()
      Specified by:
      getDataOutCount in interface Link
      Overrides:
      getDataOutCount in class AbstractLink
    • setTmSink

      public void setTmSink(TmSink tmSink)
      Description copied from interface: TmPacketDataLink
      sets the tm sink that should get all the tm packets
      Specified by:
      setTmSink in interface TmPacketDataLink
    • 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 interface Link
      Overrides:
      resetCounters in class AbstractLink