tools.1.1.3.source-code.overview.html Maven / Gradle / Ivy
Show all versions of xtcetools Show documentation
Overview
The XTCE Tools Java JAR file supports the XTCE technology by providing a
Graphical User Interface named "xtceview" to view/browse/edit an XTCE
document. It also provides a non-graphical underlying "toolkit"
package to enable application developers to create a specialized
application that uses an XTCE document, with minimal effort, when
compared to attempting the task without the toolkit.
The toolkit does not depend on any graphical
interfaces. To complement, the graphical user interface "xtceview"
contains little to no business logic, preferring to be a graphical
wrapper around the toolkit package. To supplement this, a number of
examples, sample databases, and schema documentation are also included
in other packages. All documentation can be accessed from the GUI
Help Menu, assuming Java FX libraries are available.
Key Features
Supported by the author and tested regularly on Linux, Solaris,
Mac OS/X, and Windows platforms.
Telemetry Parameter access without needing to understand the
XTCE data model, relationships, references, or other
complexities.
Similar Telecommand and Argument access without needing to
understand the XTCE data model. (Still In Work)
Telemetry and Telecommand Container/Packet processing supporting
most of the XTCE schema complexity, reducing the output access
to simple flattened accessors such that the user need not
understand or be aware of the complexities of the XTCE data
model.
Extremely fast optimized searches for Parameters, Telecommands,
and usage of Parameters in Containers/Packets.
Support for Streams and ability to link from Streams to specific
Containers/Packets.
Ability to export from XTCE to other common formats, such as
CSV, for use in a spreadsheet.
Regression tested using Java standard JUnit 4 classes.
The toolkit and GUI are both conceived with idea of editing as
well as viewing in mind, although the edit features are only
minimally complete.
Round trip loading and saving operations while preserving
comments and formatting.
The toolkit and GUI have both been proven on programs that
utilize both CCSDS Space Data Link and European ECSS Packet
Utilization (PUS) standards.
The toolkit and GUI are regularly used with satellite databases
that incorporate XInclude and in total are hundreds of megabytes
in size. Performance was a strong consideration in the design.
I18/L10 Internationalization with support currently installed
for both US English and European French languages.
An internal encoder and decoder for Parameters and Arguments
that can serve as a reference for other implementations of
commutation and de-commutation capabilities.
License Model
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Package Design
The packages delivered with this toolkit and user interface relate to
one another in a layered fashion. At the core of the toolkit is the
XTCE Schema, which is converted to Java classes by the JAXB code
generation tool. These raw classes are utilized by the "toolkit"
package to provide a simpler and more intuitive interface. The GUI
application (org.omg.space.xtce.ui.XTCEViewer) class contains only
graphical widgets and callbacks, which use the toolkit as the basis for
business logic. A number of additional "code examples" help to further
illustrate basic usage of the toolkit API to perform common functions,
using an XTCE document as the database.
The Application Programming Interface is documented using the standard
Javadoc interface and can be linked to Integrated Development
Environments by supplying them with the XTCETools.jar file and the
internal location of the Javadoc files. These can be found inside the
jar file at org/xtce/toolkit/doc/index.html. This is the
starting point of the pages being viewed here.
Testing
The toolkit API is tested using the standard JUnit 4.10 package. The
tests operate both at a class level where appropriate and also at a
functional level. In order to support functional testing, several
example XTCE database files are included in the package. A couple of
these serve as examples that can be viewed using the GUI from the File
Menu at item "Open Example Database". Others are not shown and are
used exclusively for the JUnit testing. The two example databases are
named "BogusSAT" and "GovSat". These demonstrate CCSDS, ECSS PUS, and
basic "onboard table" definitions for Telemetry Packets and
Telecommands. In addition to test database example files, there are
also test binary data packet files to exercise the data decoding
capabilities of the toolkit.
Extendability
The toolkit permits Classes to be added to the package using the Java
Classpath. This enables programs to implement program-specific
implementations of certain elements of the handling of XTCE documents
and database files that are compliant with the XTCE specification.
At present, a list of these extension interfaces includes:
XTCEAbsoluteTimeType - This class is an interface for
implementing a program specific AbsoluteTimeParameterType or
AbsoluteTimeArgumentType (both are applicable for the same
class). Two examples are delivered in the toolkit, one for
POSIX Time (XTCEPosixTimeHandler) and one for CCSDS CUC Time
(XTCECcsdsCucTimeHandler). Both are registered by default and
any new handlers registered take priority over the existing
ones.
XTCEDatabaseExporter - This class is an interface for
implementing a custom exporter for Parameters, Containers, and
Telecommands. An example implementation in the toolkit is the
CSV Exporter (XTCEDatabaseExporterCsv).