Closed crumgary closed 7 years ago
If you don't care about the values in the bridge header, then it would be pretty easy to create a custom interface that just dropped that header if present. If you do care about the values, and they are only there sometimes, then there really isn't a good solution short of having multiple different COSMOS configurations based on how you are using your hardware (similar to what you are doing with the environment variable now). Some how you have to be able to tell the system what to expect.
Closing due to no further comments.
Is there a way I can conditionally stack or cascade the processing of packets?
For example, I have a subsystem (target_B) that generates CCSDS telemetry packets and then hands them off to another system (target_A) that puts another header on it. It's not always connected to target_A and I can get it's data when testing independent of target_B.
When it is connected to target_B I need to parse target_A telemetry as usual and if the ID_ITEM is a specified value, I would like to process it's payload as defined by the telemetry database in target_B.
I currently hacked a solution using ERB in the database and conditionally modifying the header of target_B. If it's going thought target_A, then I include the header that target_A adds and identify the ID_ITEM as well as the CCSDS header STREAM_ID/ID_TEM from target_B. This works, but it feels ugly and not portable. I would like to be able to easily move target_B around and get it's telemetry without knowledge of any headers that could be stripped off (like with or without target_A or some other target in the future)
Example telemetry from target_B
_ceres_telem_packet_header.txt file:
_cfs_ccsds_tlm_header.txt file:
_bridge_header.txt file:
I see you have #356, could this help here?