Package org.yamcs.sle.user
Class CltuServiceUserHandler
java.lang.Object
io.netty.channel.ChannelHandlerAdapter
io.netty.channel.ChannelInboundHandlerAdapter
org.yamcs.sle.user.AbstractServiceUserHandler
org.yamcs.sle.user.CltuServiceUserHandler
- All Implemented Interfaces:
io.netty.channel.ChannelHandler,io.netty.channel.ChannelInboundHandler
Implementation for the
CCSDS RECOMMENDED STANDARD FOR SLE FCLTU SERVICE
CCSDS 912.1-B-4 August 2016
https://public.ccsds.org/Pubs/912x1b4.pdf
- Author:
- nm
-
Nested Class Summary
Nested classes/interfaces inherited from interface io.netty.channel.ChannelHandler
io.netty.channel.ChannelHandler.Sharable -
Field Summary
Fields inherited from class org.yamcs.sle.user.AbstractServiceUserHandler
attr, authLevel, channelHandlerContext, monitors, startingCf, state -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddMonitor(CltuSleMonitor monitor) Add a monitor to be notified when events happen.protected Constants.ApplicationIdentifierlonggetParameter(int parameterId) Get the value of an CLTU parameter from the providergetParameter(ParameterName parameterName) protected voidprocessData(com.beanit.jasn1.ber.BerTag berTag, InputStream is) voidremoveMonitor(CltuSleMonitor monitor) protected voidstart()Request that the SLE service provider starts sending datathrowEvent(int eventIdentifier, byte[] eventQualifier) inttransferCltu(byte[] cltu) Transfer a CLTU to the provider requesting immediate transmissioninttransferCltu(byte[] cltu, CcsdsTime earliestTransmissionTime, CcsdsTime latestTransmissionTime, long delayMicrosec, boolean produceReport) Transfer a CLTU to the providerMethods inherited from class org.yamcs.sle.user.AbstractServiceUserHandler
bind, changeState, channelActive, channelRead, channelRegistered, checkUnbound, exceptionCaught, getAuthLevel, getFuture, getInvokeId, getInvokeId, getNonBindCredentials, getState, getVersionNumber, isConnected, notifyDisconnected, peerAbort, processBindInvocation, processStopReturn, processUnbindInvocation, schedulePeriodicStatusReport, setAuthLevel, setReturnTimeoutSec, setVersionNumber, shutdown, stop, stopPeriodicStatusReport, unbind, verifyBindCredentials, verifyNonBindCredentialsMethods inherited from class io.netty.channel.ChannelInboundHandlerAdapter
channelInactive, channelReadComplete, channelUnregistered, channelWritabilityChanged, userEventTriggeredMethods inherited from class io.netty.channel.ChannelHandlerAdapter
ensureNotSharable, handlerAdded, handlerRemoved, isSharableMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.netty.channel.ChannelHandler
handlerAdded, handlerRemoved
-
Constructor Details
-
CltuServiceUserHandler
-
-
Method Details
-
getParameter
Get the value of an CLTU parameter from the provider- Specified by:
getParameterin classAbstractServiceUserHandler- Parameters:
parameterId- one of the parameters defined inParameterName. Note that not all of them make sense for the CLTU, see the table 3-11 in the standard to see which ones make sense.- Returns:
-
getParameter
-
transferCltu
public int transferCltu(byte[] cltu) Transfer a CLTU to the provider requesting immediate transmission- Parameters:
cltu-- Returns:
- return the cltu id which is the identification number that will be provided back in the
CltuSleMonitor.onAsyncNotify(CltuAsyncNotifyInvocation)
-
transferCltu
public int transferCltu(byte[] cltu, CcsdsTime earliestTransmissionTime, CcsdsTime latestTransmissionTime, long delayMicrosec, boolean produceReport) Transfer a CLTU to the provider- Parameters:
cltu- the cltu to be transferredearliestTransmissionTime- earliest transmission time. null can be used to request immediate transmission.latestTransmissionTime- latest transmission time. null can be used to impose no limit.delayMicrosec-produceReport- if set to true, the CLTU provider will send a notification upon completion of the radidation. SeeCltuSleMonitor.onAsyncNotify(CltuAsyncNotifyInvocation)- Returns:
- return the cltu id which is the identification number that will be provided back in the
CltuSleMonitor.onAsyncNotify(CltuAsyncNotifyInvocation)
-
throwEvent
- Parameters:
eventIdentifier-eventQualifier-- Returns:
-
addMonitor
Add a monitor to be notified when events happen.- Parameters:
monitor-
-
removeMonitor
-
processData
- Specified by:
processDatain classAbstractServiceUserHandler- Throws:
IOException
-
start
Request that the SLE service provider starts sending data- Returns:
-
sendStart
-
getCltuBufferAvailable
public long getCltuBufferAvailable() -
getApplicationIdentifier
- Specified by:
getApplicationIdentifierin classAbstractServiceUserHandler
-