BallAerospace / COSMOS

Ball Aerospace COSMOS
https://ballaerospace.github.io/cosmos-website/
Other
361 stars 129 forks source link

How to debug bytes being received but not being recognized as CCSDS source packets #1613

Closed WillMarchant closed 2 years ago

WillMarchant commented 2 years ago

How does one go about debugging either erroneous CCSDS space packet input vs errors in the packet definition entered into a COSMOS telemetry definition file?

I was hoping there would be a command log that says why "Bytes Rx" seen in the command and telemetry server are not being recognized as "Tlm Pkts" by the telemetry server.

The raw data displayed by COSMOS matches that generated by my target system. So the byte stream appears to be getting into COSMOS. So I've botched either the input, packet definition, or both.

Is there a way to enable visibility into the parsing algorithm used by COSMOS? So it would log where it thought a packet failed to parse?

ghost commented 2 years ago

The UNKNOWN target UNKNOWN packet should show the bytes that COSMOS can't identify.

WillMarchant commented 2 years ago

Unknown/unknown shows a packet count of two, and is static. My target shows a zero packet count. My test target continues to generate telemetry as shown by an incrementing number in the "Bytes Rx" display. So bytes are coming in, but they aren't being counted as "packets".

ghost commented 2 years ago

Do you see messages like INST_INT UNKNOWN packet length: 10 starting with: 71679658F14A40C56E98 in the CmdTlmServer messages? Our demo regularly sends blobs of data and this appears to be working.

WillMarchant commented 2 years ago

I do see those INST_INT in the UNKNOWN packet accounting. I think the issue was that I hadn't changed the interface definition in cmd_tlm_server.txt from that used by the BOB example to something appropriate for a CCSDS packet. So it was probably snarfing up bytes trying to get to a byte count that matched the enormous number you get when you treat the first four bytes of a CCSDS packet as a size. I expect I would have gotten an error message if I let it run overnight. Anyway, I think I got the test case running. Thanks for your time and attention!