- All Implemented Interfaces:
com.google.common.util.concurrent.Service,SystemParametersProducer,VcUplinkHandler,Link,TcDataLink
All frames have the bypass flag set (i.e. they are BD frames).
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.yamcs.tctm.Link
Link.StatusNested classes/interfaces inherited from interface com.google.common.util.concurrent.Service
com.google.common.util.concurrent.Service.Listener, com.google.common.util.concurrent.Service.State -
Field Summary
FieldsFields inherited from class org.yamcs.tctm.AbstractTcDataLink
cmdPostProcessor, commandHistoryPublisher, dataCount, housekeepingIntervalFields inherited from class org.yamcs.tctm.AbstractLink
config, disabled, eventProducer, linkName, log, timeService, yamcsInstance -
Constructor Summary
ConstructorsConstructorDescriptionTcPacketHandler(String yamcsInstance, String linkName, TcManagedParameters.TcVcManagedParameters vmp) -
Method Summary
Modifier and TypeMethodDescriptionprotected Link.StatusIn case the link should be connected (i.e. is running and enabled) this method is called to return the actual connection statusprotected voiddoStart()protected voiddoStop()longReturns the timestamp of the first frame ready to be dispatched orTimeEncoding.INVALID_INSTANTif there is no frame.getFrame()Retrieves the next frame in the Virtual Channel, or returns null if there is no frame available at the moment.return the virtual channel parametersbooleansendCommand(PreparedCommand preparedCommand) Attempt to send the command and return true if the command has been sent or its processing has finished.voidsetDataAvailableSemaphore(Semaphore dataAvailableSemaphore) The semaphore will be used by the virtual channel to signal toMasterChannelFrameMultiplexerthat data is available to be uplinkedMethods inherited from class org.yamcs.tctm.AbstractTcDataLink
ackCommand, failedCommand, getCurrentTime, getDataInCount, getDataOutCount, getParent, getYamcsInstance, init, initPostprocessor, postprocess, resetCounters, setCommandHistoryPublisher, setParentMethods inherited from class org.yamcs.tctm.AbstractLink
collectSystemParameters, disable, doDisable, doEnable, enable, getConfig, getDetailedStatus, getEventLoop, getLinkStatus, getName, getSystemParameters, isDisabled, isRunningAndEnabled, setupSystemParametersMethods inherited from class com.google.common.util.concurrent.AbstractService
addListener, awaitRunning, awaitRunning, awaitRunning, awaitTerminated, awaitTerminated, awaitTerminated, doCancelStart, failureCause, isRunning, notifyFailed, notifyStarted, notifyStopped, startAsync, state, stopAsync, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.yamcs.tctm.Link
disable, enable, getConfig, getDetailedStatus, getLinkStatus, getName, getSpec, isDisabled, isEffectivelyDisabled, setupSystemParametersMethods inherited from interface org.yamcs.parameter.SystemParametersProducer
getFrequency, getSystemParametersMethods inherited from interface org.yamcs.tctm.TcDataLink
sendTc
-
Field Details
-
commandQueue
-
-
Constructor Details
-
TcPacketHandler
public TcPacketHandler(String yamcsInstance, String linkName, TcManagedParameters.TcVcManagedParameters vmp) throws ConfigurationException - Throws:
ConfigurationException
-
-
Method Details
-
sendCommand
Description copied from interface:TcDataLinkAttempt to send the command and return true if the command has been sent or its processing has finished.If false is returned, the
LinkManagerwill attempt to send the command via the next TC link (if any).The link is expected to update the
CommandHistoryPublisher.AcknowledgeSentack 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.AcknowledgeSentack 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)
- Specified by:
sendCommandin interfaceTcDataLink- Returns:
-
getFrame
Description copied from interface:VcUplinkHandlerRetrieves the next frame in the Virtual Channel, or returns null if there is no frame available at the moment.- Specified by:
getFramein interfaceVcUplinkHandler- Returns:
-
getFirstFrameTimestamp
public long getFirstFrameTimestamp()Description copied from interface:VcUplinkHandlerReturns the timestamp of the first frame ready to be dispatched orTimeEncoding.INVALID_INSTANTif there is no frame.The timestamp is used by the
MasterChannelFrameMultiplexerto select the Virtual Channel from which the next frame is sent in case of FIFO priority scheme.- Specified by:
getFirstFrameTimestampin interfaceVcUplinkHandler- Returns:
-
getParameters
Description copied from interface:VcUplinkHandlerreturn the virtual channel parameters- Specified by:
getParametersin interfaceVcUplinkHandler- Returns:
-
doStart
protected void doStart()- Specified by:
doStartin classcom.google.common.util.concurrent.AbstractService
-
doStop
protected void doStop()- Specified by:
doStopin classcom.google.common.util.concurrent.AbstractService
-
setDataAvailableSemaphore
Description copied from interface:VcUplinkHandlerThe semaphore will be used by the virtual channel to signal toMasterChannelFrameMultiplexerthat data is available to be uplinked- Specified by:
setDataAvailableSemaphorein interfaceVcUplinkHandler
-
connectionStatus
Description copied from class:AbstractLinkIn case the link should be connected (i.e. is running and enabled) this method is called to return the actual connection status- Specified by:
connectionStatusin classAbstractLink
-