Class XtceTmRecorder
- All Implemented Interfaces:
com.google.common.util.concurrent.Service,YamcsService
The main job of this class is to populate the "pname" column of the tm table. The other columns are copied verbatim
from the TM input streams. It does that by creating a XtceTmExtractor and subscribing to all sequence
containers having the flag SequenceContainer.useAsPacketName() set. The pname is the qualified name of
the most specific (lowest in the XTCE hierarchy) container matching the telemetry packet.
It subscribes to all the streams configured with the "streams" config key or, if not present, to all TM streams defined in the instance (streamConfig section of the instance configuration).
-
Nested Class Summary
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
FieldsModifier and TypeFieldDescriptionstatic final Stringstatic final Stringstatic final Stringstatic final TupleDefinitionstatic final StringFields inherited from class org.yamcs.AbstractYamcsService
config, log, serviceName, yamcsInstance -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic StringDeprecated.static StringDerives the packet name (the value of the pname column) from the result of processing a packet.protected voiddoStart()protected voiddoStop()longReturns the partition groups or null if the tm table is not partitioned by group.getSpec()Returns the valid configuration options for this service.voidinit(String yamcsInstance, String serviceName, YConfiguration config) Initialize this service.Methods inherited from class org.yamcs.AbstractYamcsService
findStream, getConfig, getYamcsInstanceMethods 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, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface com.google.common.util.concurrent.Service
addListener, awaitRunning, awaitRunning, awaitRunning, awaitTerminated, awaitTerminated, awaitTerminated, failureCause, isRunning, startAsync, state, stopAsync
-
Field Details
-
REC_STREAM_NAME
- See Also:
-
TABLE_NAME
- See Also:
-
PNAME_COLUMN
- See Also:
-
CF_NAME
- See Also:
-
RECORDED_TM_TUPLE_DEFINITION
-
-
Constructor Details
-
XtceTmRecorder
public XtceTmRecorder()
-
-
Method Details
-
getSpec
Description copied from interface:YamcsServiceReturns the valid configuration options for this service.- Returns:
- the argument specification, or
nullif the args should not be validated.
-
init
public void init(String yamcsInstance, String serviceName, YConfiguration config) throws InitException Description copied from interface:YamcsServiceInitialize this service. This is called before the service is started. All operations should finish fast.- Specified by:
initin interfaceYamcsService- Overrides:
initin classAbstractYamcsService- Parameters:
yamcsInstance- The yamcs instance, ornullif this is a global service.serviceName- The service name.config- The configured arguments for this service. IfYamcsService.getSpec()is implemented then this contains the arguments after being validated (including any defaults).- Throws:
InitException- When something goes wrong during the execution of this method.
-
getPartitionGroups
Returns the partition groups or null if the tm table is not partitioned by group. -
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
-
getNumProcessedPackets
public long getNumProcessedPackets() -
derivePacketName
Derives the packet name (the value of the pname column) from the result of processing a packet.The first container is the root container. We take the name of the most specific one derived directly from the root, having the
SequenceContainer.useAsPacketName()flag set. If none has the flag set, the name of the root container is used. -
deriveArchivePartition
Deprecated.
-
derivePacketName(ContainerProcessingResult)