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 String
host
protected int
port
protected Selector
selector
protected SocketChannel
socketChannel
-
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, timeService, yamcsInstance
-
-
Constructor Summary
Constructors Constructor Description TcpTcDataLink()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Link.Status
connectionStatus()
In case the link should be connected (i.e. is running and enabled) this method is called to return the actual connection statusprotected void
disconnect()
protected void
doHousekeeping()
Called eachAbstractTcDataLink.housekeepingInterval
milliseconds, can be used to establish tcp connections or similar thingsString
getDetailedStatus()
void
init(String yamcsInstance, String name, YConfiguration config)
Called at startup to initialize the link.protected void
initPostprocessor(String instance, YConfiguration config)
protected boolean
openSocket()
attempts to open the socket if not already open and returns true if its open at the end of the callvoid
shutDown()
Called at shutdown (if the link is enabled) or when the link is disabledprotected void
startUp()
Called at start up (if the link is enabled) or when the link is enabledvoid
uplinkCommand(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:Link
Called at startup to initialize the link.The config corresponds to the map that is under the link definition in yamcs.instance.yaml.
- Specified by:
init
in interfaceLink
- Overrides:
init
in classAbstractThreadedTcDataLink
config
- - the configuration - cannot be null (but can be empty)- Throws:
ConfigurationException
-
initPostprocessor
protected void initPostprocessor(String instance, YConfiguration config)
- Overrides:
initPostprocessor
in 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:
getDetailedStatus
in interfaceLink
- Overrides:
getDetailedStatus
in classAbstractLink
- Returns:
- more detailed status information
-
startUp
protected void startUp()
Description copied from class:AbstractThreadedTcDataLink
Called at start up (if the link is enabled) or when the link is enabled- Specified by:
startUp
in classAbstractThreadedTcDataLink
-
shutDown
public void shutDown() throws Exception
Description copied from class:AbstractThreadedTcDataLink
Called at shutdown (if the link is enabled) or when the link is disabled- Specified by:
shutDown
in classAbstractThreadedTcDataLink
- Throws:
Exception
-
uplinkCommand
public void uplinkCommand(PreparedCommand pc)
Description copied from class:AbstractThreadedTcDataLink
Called- Specified by:
uplinkCommand
in classAbstractThreadedTcDataLink
-
doHousekeeping
protected void doHousekeeping()
Description copied from class:AbstractThreadedTcDataLink
Called eachAbstractTcDataLink.housekeepingInterval
milliseconds, can be used to establish tcp connections or similar things- Overrides:
doHousekeeping
in classAbstractThreadedTcDataLink
-
connectionStatus
protected Link.Status connectionStatus()
Description copied from class:AbstractLink
In case the link should be connected (i.e. is running and enabled) this method is called to return the actual connection status- Specified by:
connectionStatus
in classAbstractLink
-
-