Class UdpTcTmDataLink

java.lang.Object
com.google.common.util.concurrent.AbstractService
All Implemented Interfaces:
com.google.common.util.concurrent.Service, SystemParametersProducer, Link, LinkActionProvider, ParameterDataLink, TcDataLink, TmPacketDataLink

public class UdpTcTmDataLink extends AbstractTcTmParamLink
A UDP-based link that acts as a client: sending TC and receiving TM on the same socket pair.
  • Field Details

    • host

      protected String host
    • port

      protected int port
    • initialDelay

      protected long initialDelay
  • Constructor Details

    • UdpTcTmDataLink

      public UdpTcTmDataLink()
  • Method Details

    • getSpec

      public Spec getSpec()
      Description copied from interface: Link
      Returns the valid configuration of the input args of this link.
      Returns:
      the argument specification, or null if the args should not be validated.
    • 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 AbstractTcTmParamLink
      config - - the configuration - cannot be null (but can be empty)
    • sendCommand

      public boolean sendCommand(PreparedCommand preparedCommand)
      Description copied from interface: TcDataLink
      Attempt to send the command and return true if the command has been sent or its processing has finished.

      If false is returned, the LinkManager will attempt to send the command via the next TC link (if any).

      The link is expected to update the CommandHistoryPublisher.AcknowledgeSent_KEY ack in the command history if the method returned true. If it returned false, the ack should not be updated (it will be updated by the next link or by the Link Manager if there is other no link).

      The link can update the CommandHistoryPublisher.AcknowledgeSent_KEY ack with a negative ack and return true (i.e. the command has not been really sent but it has finished processing).

      The return true/false has been introduced in Yamcs 5.6.0. Before that version, the old method sendTc was implicitly returning true. As of Yamcs 5.6.0 most links return true even when they cannot send the command (setting the negative Sent ack).

      Throwing an exception is equivalent with returning false, except a error log will be printed (this is considered a bug)

      Returns:
    • connectionStatus

      protected Link.Status 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 class AbstractLink
    • doStart

      protected void doStart()
      Specified by:
      doStart in class com.google.common.util.concurrent.AbstractService
    • doEnable

      protected void doEnable() throws Exception
      Overrides:
      doEnable in class AbstractLink
      Throws:
      Exception
    • doDisable

      protected void doDisable() throws Exception
      Overrides:
      doDisable in class AbstractLink
      Throws:
      Exception
    • doStop

      protected void doStop()
      Specified by:
      doStop in class com.google.common.util.concurrent.AbstractService
    • getDetailedStatus

      public String getDetailedStatus()
      Description copied from interface: Link
      Returns a short detail status (one-line)
      Specified by:
      getDetailedStatus in interface Link
      Overrides:
      getDetailedStatus in class AbstractLink
    • handleIncomingPacket

      public void handleIncomingPacket(byte[] packet)