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
,LinkActionProvider
,TcDataLink
Sends raw command packets on TCP socket.
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.yamcs.tctm.Link
Link.Status
Nested 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
Modifier and TypeFieldDescriptionprotected String
protected int
protected Selector
protected SocketChannel
Fields inherited from class org.yamcs.tctm.AbstractThreadedTcDataLink
commandQueue
Fields inherited from class org.yamcs.tctm.AbstractTcDataLink
cmdPostProcessor, commandHistoryPublisher, housekeepingInterval
Fields inherited from class org.yamcs.tctm.AbstractLink
config, dataInCount, dataOutCount, disabled, eventProducer, LINK_NAMESPACE, linkName, log, timeService, yamcsInstance
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected Link.Status
In case the link should be connected (i.e. is running and enabled) this method is called to return the actual connection statusprotected void
protected void
Called eachAbstractTcDataLink.housekeepingInterval
milliseconds, can be used to establish tcp connections or similar thingsReturns a short detail status (one-line)getSpec()
Returns the valid configuration of the input args of this link.void
init
(String yamcsInstance, String name, YConfiguration config) Called at startup to initialize the link.protected boolean
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
CalledMethods inherited from class org.yamcs.tctm.AbstractThreadedTcDataLink
doDisable, doEnable, doStart, doStop, getDefaultSpec, run, sendCommand
Methods inherited from class org.yamcs.tctm.AbstractTcDataLink
ackCommand, failedCommand, getDataInCount, initPostprocessor, initPostprocessor2, postprocess, setCommandHistoryPublisher
Methods inherited from class org.yamcs.tctm.AbstractLink
addAction, collectSystemParameters, dataIn, dataOut, disable, enable, getAction, getActions, getConfig, getCurrentTime, getDataOutCount, getEventLoop, getLinkStatus, getName, getParent, getSystemParameters, getYamcsInstance, isDisabled, isRunningAndEnabled, resetCounters, setParent, setupSystemParameters
Methods 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, 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, getDataOutCount, getExtraInfo, getLinkStatus, getName, getParent, isDisabled, isEffectivelyDisabled, resetCounters, setParent, setupSystemParameters
Methods inherited from interface org.yamcs.parameter.SystemParametersProducer
getFrequency
Methods inherited from interface org.yamcs.tctm.TcDataLink
isCommandingAvailable, isTcDataLinkImplemented
-
Field Details
-
socketChannel
-
host
-
port
protected int port -
selector
-
-
Constructor Details
-
TcpTcDataLink
public TcpTcDataLink()
-
-
Method Details
-
getSpec
Description copied from interface:Link
Returns the valid configuration of the input args of this link.- Returns:
- the argument specification, or
null
if the args should not be validated.
-
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
-
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
Description copied from interface:Link
Returns a short detail status (one-line)- Specified by:
getDetailedStatus
in interfaceLink
- Overrides:
getDetailedStatus
in classAbstractLink
-
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
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
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
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
-