Package org.yamcs.tctm
Class FilePollingTmDataLink
java.lang.Object
com.google.common.util.concurrent.AbstractService
org.yamcs.tctm.AbstractLink
org.yamcs.tctm.AbstractTmDataLink
org.yamcs.tctm.FilePollingTmDataLink
- All Implemented Interfaces:
com.google.common.util.concurrent.Service
,Runnable
,SystemParametersProducer
,Link
,LinkActionProvider
,TmPacketDataLink
TM packet data link which reads telemetry files from a specified directory. The files are split into packets
according to the configure
packetInputStream
, run through the configured preprocessor and then sent on the
stream.
The data link scans continuously the incoming directory for new files. If multiple files are found, it processes them in alphabetical order.
If the file is gzip-compressed, the GZIPInputStream
is used to decompress it. To check if the file is
gzip-compressed, the first two bytes of the file are read and compared with 0x1F8B (gzip magic number).
Options:
incomingDir
- the directory where the files are read from.deleteAfterImport
- if true (default), the files will be removed after being read.delayBetweenPackets
- if configured, it is the number of milliseconds to wait in between sending two packets. By default it is -1 meaning the packets are sent as fast as possible.lastPacketStream
- If specified, emit the last packet to this stream. This is intended for batch imports, where the content of the last packet should also be observable by realtime clientsheaderSize
- if configured, the input files have a header which will be skipped before reading the first packet.
-
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
Fields inherited from class org.yamcs.tctm.AbstractTmDataLink
packetCount, packetPreprocessor, updateSimulationTime
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 statusvoid
void
doEnable()
protected void
doStart()
protected void
doStop()
Returns a short detail status (one-line)static InputStream
getInputStream
(String fileName) 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.void
run()
Methods inherited from class org.yamcs.tctm.AbstractTmDataLink
collectSystemParameters, getDataInCount, getDataOutCount, getDefaultSpec, processPacket, resetCounters, setTmSink, setupSystemParameters, updateStats
Methods inherited from class org.yamcs.tctm.AbstractLink
addAction, dataIn, dataOut, disable, enable, getAction, getActions, getConfig, getCurrentTime, getEventLoop, getLinkStatus, getName, getParent, getSystemParameters, getYamcsInstance, isDisabled, isRunningAndEnabled, setParent
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, getExtraInfo, getLinkStatus, getName, getParent, isDisabled, isEffectivelyDisabled, setParent
Methods inherited from interface org.yamcs.parameter.SystemParametersProducer
getFrequency, getSystemParameters
Methods inherited from interface org.yamcs.tctm.TmPacketDataLink
isTmPacketDataLinkImplemented
-
Constructor Details
-
FilePollingTmDataLink
public FilePollingTmDataLink()
-
-
Method Details
-
getSpec
Description copied from interface:Link
Returns the valid configuration of the input args of this link. -
init
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 classAbstractTmDataLink
config
- - the configuration - cannot be null (but can be empty)
-
run
public void run() -
getInputStream
- Throws:
IOException
-
getDetailedStatus
Description copied from interface:Link
Returns a short detail status (one-line)- Specified by:
getDetailedStatus
in interfaceLink
- Overrides:
getDetailedStatus
in classAbstractLink
-
doDisable
public void doDisable()- Overrides:
doDisable
in classAbstractLink
-
doEnable
public void doEnable()- Overrides:
doEnable
in classAbstractLink
-
doStart
protected void doStart()- Specified by:
doStart
in classcom.google.common.util.concurrent.AbstractService
-
doStop
protected void doStop()- Specified by:
doStop
in classcom.google.common.util.concurrent.AbstractService
-
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
-