Prototype software for working with XTCE from Rust.
For the moment it can load an XTCE file and can do some TM processing.
Hi! I'm trying to use xtce-rs to extract arguments from command buffers (and in the future I'd also like to create commands/telemetry containers in Rust from given parameters).
I'm new to XTCE/YAMCS and such but I have found the ACubeSAT yamcs instance which contains XTCE descriptions for many PUS services, which I'd also like to use in my project.
My first naïve attempt was to do something like this:
use std::path::Path;
use xtce_rs::{mdb::MissionDatabase, parser, proc::containers::process};
use env_logger;
fn main() {
env_logger::init();
let mut mdb = MissionDatabase::new();
let paths = [
"yamcs-instance/src/main/yamcs/mdb/common/dt/base-dt.xml",
//"yamcs-instance/src/main/yamcs/mdb/common/dt/dt.xml",
"yamcs-instance/src/main/yamcs/mdb/services/ST[03].xml"
];
for path in paths {
println!("Parsing {}", path);
parser::parse(&mut mdb, Path::new(path)).unwrap();
}
}
I got an UndefinedReference("/base-dt/uint8_t", ParameterType)
- meaning that it could not find a reference to the /base-dt/
SpaceSystem. Looking into the parser::parse()
function it is obvious why it doesn't work; the NameTree
is created reinitalized on every call to parse.
I also tried futzing around with making my own parse function that takes a mutable NameTree but I still wasn't able to parse multiple XTCE files.
So my questions are:
Thanks in advance!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.