Package org.yamcs.tctm
Class TcpTcDataLink
- java.lang.Object
-
- com.google.common.util.concurrent.AbstractService
-
- org.yamcs.tctm.AbstractLink
-
- org.yamcs.tctm.AbstractTcDataLink
-
- org.yamcs.tctm.AbstractThreadedTcDataLink
-
- org.yamcs.tctm.TcpTcDataLink
-
- All Implemented Interfaces:
com.google.common.util.concurrent.Service,Runnable,SystemParametersProducer,Link,TcDataLink
public class TcpTcDataLink extends AbstractThreadedTcDataLink
Sends raw command packets on TCP socket.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.yamcs.tctm.Link
Link.Status
-
-
Field Summary
Fields Modifier and Type Field Description protected Stringhostprotected intportprotected Selectorselectorprotected SocketChannelsocketChannel-
Fields inherited from class org.yamcs.tctm.AbstractThreadedTcDataLink
commandQueue
-
Fields inherited from class org.yamcs.tctm.AbstractTcDataLink
cmdPostProcessor, commandHistoryPublisher, dataCount, housekeepingInterval, sp_dataCount_id, sv_linkStatus_id
-
Fields inherited from class org.yamcs.tctm.AbstractLink
config, disabled, eventProducer, linkName, log, yamcsInstance
-
-
Constructor Summary
Constructors Constructor Description TcpTcDataLink()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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 statusprotected voiddisconnect()protected voiddoHousekeeping()Called eachAbstractTcDataLink.housekeepingIntervalmilliseconds, can be used to establish tcp connections or similar thingsStringgetDetailedStatus()voidinit(String yamcsInstance, String name, YConfiguration config)Called at startup to initialize the link.protected voidinitPostprocessor(String instance, YConfiguration config)protected booleanopenSocket()attempts to open the socket if not already open and returns true if its open at the end of the callvoidshutDown()Called at shutdown (if the link is enabled) or when the link is disabledprotected voidstartUp()Called at start up (if the link is enabled) or when the link is enabledvoiduplinkCommand(PreparedCommand pc)Called-
Methods inherited from class org.yamcs.tctm.AbstractThreadedTcDataLink
doDisable, doEnable, doStart, doStop, run, sendTc
-
Methods inherited from class org.yamcs.tctm.AbstractTcDataLink
ackCommand, failedCommand, getCurrentTime, getDataInCount, getDataOutCount, getParent, getYamcsInstance, resetCounters, setCommandHistoryPublisher, setParent
-
Methods inherited from class org.yamcs.tctm.AbstractLink
collectSystemParameters, disable, enable, getConfig, getEventLoop, getLinkStatus, getName, getSystemParameters, isDisabled, isRunningAndEnabled, setupSystemParameters
-
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, getLinkStatus, getName, getSpec, isDisabled, setupSystemParameters
-
-
-
-
Field Detail
-
socketChannel
protected SocketChannel socketChannel
-
host
protected String host
-
port
protected int port
-
selector
protected Selector selector
-
-
Method Detail
-
init
public void init(String yamcsInstance, 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 classAbstractThreadedTcDataLinkconfig- - the configuration - cannot be null (but can be empty)- Throws:
ConfigurationException
-
initPostprocessor
protected void initPostprocessor(String instance, YConfiguration config)
- Overrides:
initPostprocessorin classAbstractTcDataLink
-
openSocket
protected boolean openSocket()
attempts to open the socket if not already open and returns true if its open at the end of the call- Returns:
-
disconnect
protected void disconnect()
-
getDetailedStatus
public String getDetailedStatus()
- Specified by:
getDetailedStatusin interfaceLink- Overrides:
getDetailedStatusin classAbstractLink- Returns:
- more detailed status information
-
startUp
protected void startUp()
Description copied from class:AbstractThreadedTcDataLinkCalled at start up (if the link is enabled) or when the link is enabled- Specified by:
startUpin classAbstractThreadedTcDataLink
-
shutDown
public void shutDown() throws ExceptionDescription copied from class:AbstractThreadedTcDataLinkCalled at shutdown (if the link is enabled) or when the link is disabled- Specified by:
shutDownin classAbstractThreadedTcDataLink- Throws:
Exception
-
uplinkCommand
public void uplinkCommand(PreparedCommand pc)
Description copied from class:AbstractThreadedTcDataLinkCalled- Specified by:
uplinkCommandin classAbstractThreadedTcDataLink
-
doHousekeeping
protected void doHousekeeping()
Description copied from class:AbstractThreadedTcDataLinkCalled eachAbstractTcDataLink.housekeepingIntervalmilliseconds, can be used to establish tcp connections or similar things- Overrides:
doHousekeepingin classAbstractThreadedTcDataLink
-
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
-
-