XTCE-Based Spacecraft Telemetry Processor
This is an attempt at writing a set of tools for telemetry and telecommand processing in LuaJIT. Currently, only a (partial) telemetry decommutation engine is provided.
XTCEproc works as follows :
- It takes an XTCE file as input and generates a docummuation model in LuaJIT.
- It makes use of this decommutation model to extract parameter values from a stream of telemetry packets.
Being JIT-compiled, the generated decommutation model is very fast: the decommutation library can process 50Mb of raw telemetry in less than 15 seconds on my 2013 MacBook Air.
This repo consists of :
- ssm: a Space System Model representation in Lua. Currently, it can parse an XTCE File, load it as a set of objects in memory, and use that memory model to generate the lua source code that corresponds to the Telemetry-related part of the XTCE-File.
- decom: a decommutation library with a pull-style API.
- xtceproc: A command line interface to the decom library and the SSM Model.
It's all very much a work in progress. i will break code and change APIs without warning. Do not use this software for anything serious (yet). I mean it. You've been warned.
The decommutation library requires LuaJIT 2.1+ as it relies on 64 bits bitop operations.
There isn't any. But you can call the xtceproc script with '--help' to get the basic options. For the rest, just look at the code.
MIT
All contributions are welcome, especially pull requests (as long as the code is compatible with the MIT license).