All Downloads are FREE. Search and download functionalities are using the official Maven repository.

tools.1.1.4.source-code.overview.html Maven / Gradle / Ivy

Go to download

This project contains software to support the Object Management Group (OMG) Space Domain Task Force (SDTF) maintained XML Telemetry and Command Exchange (XTCE) specification.

There is a newer version: 1.1.6
Show newest version










    

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

Apache 2.0 License

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.

Java Package Overview Diagram

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).





© 2015 - 2024 Weber Informatics LLC | Privacy Policy