nasa / nos3

NASA Operational Simulator for Small Satellites
Other
380 stars 86 forks source link

YAMCS Ground Software Option #80

Open jlucas9 opened 2 years ago

jlucas9 commented 2 years ago

Add a YAMCS options for ground software - https://yamcs.org/

Through this issue:

Looking forward:

jlucas9 commented 8 months ago

Possibility to change to YAMCS

xpromache commented 3 months ago

Hello, Yamcs developer here. Can I help somehow with this task?

jlucas9 commented 3 months ago

Hello, Yamcs developer here. Can I help somehow with this task?

Hi @xpromache,
We're getting staff up now to get this integrated and can certainly use some guidance and testers as we get things moving!

xpromache commented 3 months ago

you may run into issues with the TM/TC database - can you point me to something describing your current approach of handling that?

jlucas9 commented 3 months ago

you may run into issues with the TM/TC database - can you point me to something describing your current approach of handling that?

The plan is to move to XTCE in the future and initially just hand code a ground database for use instead of the existing COSMOS ones. Presently we're talking space packets to and from the ground software and having CryptoLib do TC/TM framing for us, but could certainly adjust that as needed.

xpromache commented 3 months ago

Is the current COSMOS database handcoded? Or is it generated from something else?

We have a python library that generates XTCE, I hope it can be used to convert automatically the COSMOS database or whatever is used to generate it: https://github.com/yamcs/pymdb

rjbrown2 commented 1 month ago

Hi @xpromache I've started a branch: https://github.com/nasa/nos3/tree/80-yamcs-ground-software-option for this effort. It pulls in a fork that has been modified of the yamcs-qs located here: https://github.com/nasa-itc/yamcs-qs/tree/yamcs-nos3. This utilizes a yamcs-nos3 branch.

I've modified the events to show the incoming space packets that we are receiving from cFS.

Some of the telemetry seems to be working fine, however, anything that I am getting from my sample application is incorrect.

I'm not sure if this is an issue in the xtce.xml where I've defined the sample telemetry, or if I've messed things up by hacking away at the Preprocesor.java file, or if I'm running into endianness issues.

Would you mind giving me some pointers? Or perhaps you could stand up a nos3 environment from the 80-yamcs repo, and point me towards what I've done incorrectly in the sample telemetry? If I could get that working properly, the rest should move along fairly quickly.

Thanks so much, appreciate any advice you can impart!

xpromache commented 1 month ago

Hello,

Can you at least in the preprocessor do a packet.setGenerationTime(TimeEncoding.getWallclockTime());

Then we can extract the packet in the web interface Telemetry -> Packets. Now due to invalid times seems the web interface breaks. There is also a packet viewer which is a java swing application that allows decoding the packets in realtime and decoding with different MDBs (XTCE).

I have played myself a bit with making a NOS3 config for Yamcs, see here: https://github.com/xpromache/nos3/tree/dev/gsw/yamcs/src/main/yamcs

I have converted the COSMOS MDB with a modified ruby XTCE converter to produce more Yamcs like XTCE. I'm also using the builtin CfsPacketPreprocessor in Yamcs.

But I don't know if the data decoded is correct; I did compare a few parameters with COSMOS but didn't do a comprehensive comparison.