Coder Social home page Coder Social logo

Comments (2)

jphickey avatar jphickey commented on August 16, 2024

Imported comment by internal user on Tue Nov 16 15:57:15 2021

It should be possible to be compliant without the use of packed structures. To do so, the data structures should be defined only using uint8-based fields. Instead of using larger (uint16/32) integer types they should be declared as an array of uint8 of the correct size. Since these are not directly usable fields as it is (all access needs to go through a byte-order/endianness conversion anyway) this difference should not be significant, and can likely be compensated by updating only those wrappers that do the endianness conversions.

from cf.

jphickey avatar jphickey commented on August 16, 2024

There are two separate aspects here:

  1. Commands and Telemetry for ground control of the CF app itself. These are application-defined structures and do not need to specifically to any specific standard, other than what CFE SB + CFE MSG dictate for the encapsulation. Therefore these can be aligned however necessary. It is not required to pack these structs at all - we can simply remove the packing here. Note that they are already laid out in such a way that implicit padding is not likely to be an issue, so removing the packed attribute probably won't even change them. And also note that no other CFS apps pack their command/telemetry structures right now, either.

  2. CFDP PDUs. These are required to conform to the CCSDS 727.0-B-5 definition and therefore must be aligned according to that spec, not aligned per the CPU. But these are also encoded per CCSDS 727.0 as well, so they aren't directly usable as logical values anyway. Recommend to change these to uint8-based structs so the packed attribute will not be needed.

The fix for this should be split per above, since these are really separate problem domains. The PR for this issue will just focus on the CMD/TLM (1) above. Since the CFDP PDU decoding is more involved and has other problems, those will be fixed in the context of issues #59, #71, and #116.

from cf.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.