Package org.yamcs.tctm
Class TcpTcTmDataLink
- java.lang.Object
-
- com.google.common.util.concurrent.AbstractService
-
- org.yamcs.tctm.AbstractLink
-
- org.yamcs.tctm.AbstractTmDataLink
-
- org.yamcs.tctm.TcpTcTmDataLink
-
- All Implemented Interfaces:
com.google.common.util.concurrent.Service,Runnable,SystemParametersProducer,Link,TcDataLink,TmPacketDataLink
public class TcpTcTmDataLink extends AbstractTmDataLink implements TcDataLink, Runnable
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.yamcs.tctm.Link
Link.Status
-
-
Field Summary
Fields Modifier and Type Field Description protected CommandPostprocessorcmdPostProcessorprotected CommandHistoryPublishercommandHistoryPublisherprotected AtomicLongdataOutCountprotected Stringhostprotected longinitialDelayprotected intportprotected SockettmSocket-
Fields inherited from class org.yamcs.tctm.AbstractTmDataLink
packetCount, packetPreprocessor, updateSimulationTime
-
Fields inherited from class org.yamcs.tctm.AbstractLink
config, disabled, eventProducer, linkName, log, timeService, yamcsInstance
-
-
Constructor Summary
Constructors Constructor Description TcpTcTmDataLink()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidackCommand(org.yamcs.protobuf.Commanding.CommandId commandId)send an ack in the command history that the command has been sent out of the linkprotected voidcheckAndOpenSocket()protected voidcloseSocket()protected Link.StatusconnectionStatus()In case the link should be connected (i.e. is running and enabled) this method is called to return the actual connection statusvoiddoDisable()voiddoEnable()voiddoStart()voiddoStop()protected voidfailedCommand(org.yamcs.protobuf.Commanding.CommandId commandId, String reason)Send to command history the failed commandprotected longgetCurrentTime()longgetDataOutCount()StringgetDetailedStatus()TmPacketgetNextPacket()AggregatedDataLinkgetParent()If this link is a sublink of an aggregated link, get the parent link.voidinit(String instance, String name, YConfiguration config)Called at startup to initialize the link.protected voidinitPostprocessor(String instance, YConfiguration config)protected booleanisSocketOpen()voidresetCounters()voidrun()protected voidsendBuffer(byte[] data)voidsendTc(PreparedCommand pc)voidsetCommandHistoryPublisher(CommandHistoryPublisher commandHistoryListener)voidsetParent(AggregatedDataLink parent)Set the parent link if this is a sublink of an aggregated link.-
Methods inherited from class org.yamcs.tctm.AbstractTmDataLink
collectSystemParameters, getDataInCount, processPacket, setTmSink, setupSystemParameters, updateStats
-
Methods inherited from class org.yamcs.tctm.AbstractLink
disable, enable, getConfig, getEventLoop, getLinkStatus, getName, getSystemParameters, isDisabled, isRunningAndEnabled
-
Methods inherited from class com.google.common.util.concurrent.AbstractService
addListener, awaitRunning, awaitRunning, awaitTerminated, awaitTerminated, failureCause, isRunning, notifyFailed, notifyStarted, notifyStopped, startAsync, state, stopAsync, toString
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.yamcs.tctm.Link
disable, enable, getConfig, getDataInCount, getLinkStatus, getName, getSpec, isDisabled, setupSystemParameters
-
Methods inherited from interface org.yamcs.parameter.SystemParametersProducer
getSystemParameters
-
-
-
-
Field Detail
-
commandHistoryPublisher
protected CommandHistoryPublisher commandHistoryPublisher
-
dataOutCount
protected AtomicLong dataOutCount
-
cmdPostProcessor
protected CommandPostprocessor cmdPostProcessor
-
tmSocket
protected Socket tmSocket
-
host
protected String host
-
port
protected int port
-
initialDelay
protected long initialDelay
-
-
Method Detail
-
init
public void init(String instance, String name, 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 classAbstractTmDataLinkconfig- - the configuration - cannot be null (but can be empty)- Throws:
ConfigurationException
-
checkAndOpenSocket
protected void checkAndOpenSocket() throws IOException- Throws:
IOException
-
isSocketOpen
protected boolean isSocketOpen()
-
sendBuffer
protected void sendBuffer(byte[] data) throws IOException- Throws:
IOException
-
closeSocket
protected void closeSocket()
-
getNextPacket
public TmPacket getNextPacket()
-
initPostprocessor
protected void initPostprocessor(String instance, YConfiguration config) throws ConfigurationException
- Throws:
ConfigurationException
-
sendTc
public void sendTc(PreparedCommand pc)
- Specified by:
sendTcin interfaceTcDataLink
-
setCommandHistoryPublisher
public void setCommandHistoryPublisher(CommandHistoryPublisher commandHistoryListener)
- Specified by:
setCommandHistoryPublisherin interfaceTcDataLink
-
failedCommand
protected void failedCommand(org.yamcs.protobuf.Commanding.CommandId commandId, String reason)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-
-
doStart
public void doStart()
- Specified by:
doStartin classcom.google.common.util.concurrent.AbstractService
-
doStop
public void doStop()
- Specified by:
doStopin classcom.google.common.util.concurrent.AbstractService
-
getCurrentTime
protected long getCurrentTime()
- Overrides:
getCurrentTimein classAbstractLink
-
getDataOutCount
public long getDataOutCount()
- Specified by:
getDataOutCountin interfaceLink- Overrides:
getDataOutCountin classAbstractTmDataLink
-
resetCounters
public void resetCounters()
- Specified by:
resetCountersin interfaceLink- Overrides:
resetCountersin classAbstractTmDataLink
-
getParent
public AggregatedDataLink getParent()
Description copied from interface:LinkIf this link is a sublink of an aggregated link, get the parent link.
-
setParent
public void setParent(AggregatedDataLink parent)
Description copied from interface:LinkSet the parent link if this is a sublink of an aggregated link.
-
doDisable
public void doDisable()
- Overrides:
doDisablein classAbstractLink
-
doEnable
public void doEnable()
- Overrides:
doEnablein classAbstractLink
-
getDetailedStatus
public String getDetailedStatus()
- Specified by:
getDetailedStatusin interfaceLink- Overrides:
getDetailedStatusin classAbstractLink- Returns:
- more detailed status information
-
connectionStatus
protected Link.Status 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
-
-