Class UdpParameterDataLink

  • All Implemented Interfaces:
    com.google.common.util.concurrent.Service, Runnable, Link, ParameterDataLink

    public class UdpParameterDataLink
    extends com.google.common.util.concurrent.AbstractService
    implements ParameterDataLink, Runnable
    Receives PP data via UDP. The UDP packets are protobuf encoded ParameterData. We don't use any checksum, assume it's done by UDP.
    • Constructor Detail

      • UdpParameterDataLink

        public UdpParameterDataLink()
    • 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 interface Link
        config - - the configuration - cannot be null (but can be empty)
      • doStart

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

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

        public void run()
        Specified by:
        run in interface Runnable
      • 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
      • getLinkStatus

        public Link.Status getLinkStatus()
        Description copied from interface: Link
        Returns the current link status.
        Specified by:
        getLinkStatus in interface Link
      • getDetailedStatus

        public String getDetailedStatus()
        Returns statistics with the number of datagrams received and the number of invalid datagrams
        Specified by:
        getDetailedStatus in interface Link
        Returns:
        more detailed status information
      • disable

        public void disable()
        Sets the disabled to true such that getNextPacket ignores the received datagrams
        Specified by:
        disable in interface Link
      • enable

        public void enable()
        Sets the disabled to false such that getNextPacket does not ignore the received datagrams
        Specified by:
        enable in interface Link
      • isDisabled

        public boolean isDisabled()
        Specified by:
        isDisabled in interface Link
      • getDataInCount

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

        public long getDataOutCount()
        Specified by:
        getDataOutCount in interface Link
      • resetCounters

        public void resetCounters()
        Specified by:
        resetCounters in interface Link
      • getConfig

        public YConfiguration getConfig()
        Specified by:
        getConfig in interface Link
        Returns:
        the config (args) used when creating the link
      • getName

        public String getName()
        Description copied from interface: Link
        Return the name of the link
        Specified by:
        getName in interface Link