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,TmPacketDataLink
public class FilePollingTmDataLink extends AbstractTmDataLink implements Runnable
TM packet data link which reads telemetry files from a specified directory. The files are split into packets according to the configurepacketInputStream, 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
GZIPInputStreamis 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.delteAfterImport- 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.headerSize- 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
-
-
Field Summary
-
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 FilePollingTmDataLink()
-
Method Summary
All Methods Static 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 statusvoiddoDisable()voiddoEnable()protected voiddoStart()protected voiddoStop()StringgetDetailedStatus()static InputStreamgetInputStream(String fileName)voidinit(String yamcsInstance, String name, YConfiguration config)Called at startup to initialize the link.voidrun()-
Methods inherited from class org.yamcs.tctm.AbstractTmDataLink
collectSystemParameters, getDataInCount, getDataOutCount, processPacket, resetCounters, setTmSink, setupSystemParameters, updateStats
-
Methods inherited from class org.yamcs.tctm.AbstractLink
disable, enable, getConfig, getCurrentTime, 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, getLinkStatus, getName, getParent, getSpec, isDisabled, setParent
-
Methods inherited from interface org.yamcs.parameter.SystemParametersProducer
getSystemParameters
-
-
-
-
Method Detail
-
init
public void init(String yamcsInstance, String name, YConfiguration config)
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)
-
getInputStream
public static InputStream getInputStream(String fileName) throws IOException
- Throws:
IOException
-
getDetailedStatus
public String getDetailedStatus()
- Specified by:
getDetailedStatusin interfaceLink- Overrides:
getDetailedStatusin classAbstractLink- Returns:
- more detailed status information
-
doDisable
public void doDisable()
- Overrides:
doDisablein classAbstractLink
-
doEnable
public void doEnable()
- Overrides:
doEnablein classAbstractLink
-
doStart
protected void doStart()
- Specified by:
doStartin classcom.google.common.util.concurrent.AbstractService
-
doStop
protected void doStop()
- Specified by:
doStopin classcom.google.common.util.concurrent.AbstractService
-
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
-
-