Class CltuServiceProvider

java.lang.Object
org.yamcs.sle.provider.CltuServiceProvider
All Implemented Interfaces:
SleService

public class CltuServiceProvider extends Object implements SleService
Implementation for the CCSDS RECOMMENDED STANDARD FOR SLE FCLTU SERVICE CCSDS 912.1-B-4 August 2016

https://public.ccsds.org/Pubs/912x1b4.pdf

This class implements queueing for CLTUs and it relies on a CltuUplinker to uplink the CLTUs one by one.

Due to the java 8 limitations the uplink of the timed CLTUs (those with a defined earliestTransmissionTime) is not very precise - with the current implementation it will be probably sent 1-2 milliseconds later than the time specified. If better precision is required, this has to be changed to send the CLTU a few milliseconds in advance together with the time and the CltuUplinker should take care of the exact transmission start.

In any case the CltuUplinker has to return the time when the CLTU has been eventually radiated.

Author:
nm
  • Constructor Details

    • CltuServiceProvider

      public CltuServiceProvider(CltuUplinker cltuUplinker)
  • Method Details

    • init

      public void init(SleProvider server)
      Description copied from interface: SleService
      Called at the beginning. to initialize the service.
      Specified by:
      init in interface SleService
    • processData

      public void processData(com.beanit.jasn1.ber.BerTag berTag, InputStream is) throws IOException
      Description copied from interface: SleService
      Called each time a message is received from the peer (SLE user) which cannot be processed by the SleProvider.

      The messages are not necessary valid. The service can always call the SleProvider.peerAbort() operation on the provider if it thinks the SLE user went awry.

      Specified by:
      processData in interface SleService
      Throws:
      IOException
    • processSleStopInvocation

      protected void processSleStopInvocation(SleStopInvocation sleStopInvocation)
    • sendStatusReport

      public void sendStatusReport()
      Specified by:
      sendStatusReport in interface SleService
    • abort

      public void abort()
      Description copied from interface: SleService
      Called by the SleProvider when the connection has been abruptly terminated. The Service has to do necessary cleanup operation.
      Specified by:
      abort in interface SleService
    • unbind

      public void unbind()
      Description copied from interface: SleService
      Called by the SleProvider when the user sent an UNBIND request. The provider will verify that the service is in the State.READY when calling this method.
      Specified by:
      unbind in interface SleService
    • getState

      public State getState()
      Description copied from interface: SleService
      Returns the service state.

      Should be one of State.READY or State.ACTIVE

      Specified by:
      getState in interface SleService
      Returns:
      the service state.