java.lang.Object
com.google.common.util.concurrent.AbstractService
org.yamcs.tctm.AbstractLink
org.yamcs.tctm.AbstractTcDataLink
- All Implemented Interfaces:
com.google.common.util.concurrent.Service,SystemParametersProducer,Link,LinkActionProvider,TcDataLink
- Direct Known Subclasses:
AbstractThreadedTcDataLink,Cop1TcPacketHandler,TcPacketHandler,YamcsTcLink
Base implementation for a TC data link that initialises a post processor and implements basic methods.
-
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
FieldsModifier and TypeFieldDescriptionprotected CommandPostprocessorprotected CommandHistoryPublisherprotected longFields inherited from class org.yamcs.tctm.AbstractLink
config, dataInCount, dataOutCount, disabled, eventProducer, LINK_NAMESPACE, linkName, log, timeService, yamcsInstance -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidackCommand(org.yamcs.protobuf.Commanding.CommandId commandId) send an ack in the command history that the command has been sent out of the linkprotected voidfailedCommand(org.yamcs.protobuf.Commanding.CommandId commandId, String reason) Send to command history the failed commandlongReturns a default linkSpec.voidinit(String yamcsInstance, String linkName, YConfiguration config) Called at startup to initialize the link.protected voidinitPostprocessor(String instance, YConfiguration config) protected voidinitPostprocessor2(String instance, YConfiguration config) protected byte[]Postprocesses the command, unless postprocessing is disabled.voidsetCommandHistoryPublisher(CommandHistoryPublisher commandHistoryListener) Methods inherited from class org.yamcs.tctm.AbstractLink
addAction, collectSystemParameters, connectionStatus, dataIn, dataOut, disable, doDisable, doEnable, enable, getAction, getActions, getConfig, getCurrentTime, getDataOutCount, getDetailedStatus, getEventLoop, getLinkStatus, getName, getParent, getSystemParameters, getYamcsInstance, isDisabled, isRunningAndEnabled, resetCounters, setParent, setupSystemParametersMethods inherited from class com.google.common.util.concurrent.AbstractService
addListener, awaitRunning, awaitRunning, awaitRunning, awaitTerminated, awaitTerminated, awaitTerminated, doCancelStart, doStart, doStop, 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, getDataOutCount, getDetailedStatus, getExtraInfo, getLinkStatus, getName, getParent, getSpec, isDisabled, isEffectivelyDisabled, resetCounters, setParent, setupSystemParametersMethods inherited from interface org.yamcs.parameter.SystemParametersProducer
getFrequencyMethods inherited from interface org.yamcs.tctm.TcDataLink
isCommandingAvailable, isTcDataLinkImplemented, sendCommand
-
Field Details
-
commandHistoryPublisher
-
cmdPostProcessor
-
housekeepingInterval
protected long housekeepingInterval
-
-
Constructor Details
-
AbstractTcDataLink
public AbstractTcDataLink()
-
-
Method Details
-
getDefaultSpec
Description copied from interface:LinkReturns a default linkSpec. This can be used in an implementation of {Link.getSpec(). Eventually (after a few years), it is expected to migrate this logic directly into {LinkLink.getSpec(), rather than returning null from there. But we want to give sufficient time for links everywhere to start defining their arguments.- Specified by:
getDefaultSpecin interfaceLink
-
init
public void init(String yamcsInstance, String linkName, YConfiguration config) throws ConfigurationException Description copied from interface:LinkCalled at startup to initialize the link.The config corresponds to the map that is under the link definition in yamcs.instance.yaml.
- Specified by:
initin interfaceLink- Overrides:
initin classAbstractLinkconfig- - the configuration - cannot be null (but can be empty)- Throws:
ConfigurationException
-
initPostprocessor
-
initPostprocessor2
-
setCommandHistoryPublisher
- Specified by:
setCommandHistoryPublisherin interfaceTcDataLink
-
postprocess
Postprocesses the command, unless postprocessing is disabled.- Returns:
- potentially modified binary, or
nullto indicate that the command should not be handled further.
-
getDataInCount
public long getDataInCount()- Specified by:
getDataInCountin interfaceLink- Overrides:
getDataInCountin classAbstractLink
-
failedCommand
Send to command history the failed command -
ackCommand
protected void ackCommand(org.yamcs.protobuf.Commanding.CommandId commandId) send an ack in the command history that the command has been sent out of the link- Parameters:
commandId-
-