Class 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 Detail

      • CltuServiceProvider

        public CltuServiceProvider​(CltuUplinker cltuUplinker)
    • Method Detail

      • 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)
      • 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