Coder Social home page Coder Social logo

ccsds_xbee's People

Contributors

ascended121 avatar nassif09 avatar nmrossomando avatar zacharyburnett avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ccsds_xbee's Issues

Simplify CCSDS header creation

sendCmdMsg and sendTlmMsg both create a CCSDS packet for sending. Right now they cast the Primary and Secondary header structures separately, but it should be possible to use the CCSDS_CmdPkt_t and CCSDS_TlmPkt_t structures to reduce the number of casts necessary.

Xbee baud rate specification

Right now the library always sets the xbee to 9600 baud because its a known good configuration. Need to modify InitXbee to allow the user to specify a baud rate and have it send the AT command to set that baud rate. Need to test various baud rates to determine which ones work.

Use util functions for setting/getting fields from packets

I committed a full set of setter/getter functions (based off of Nick's util functions) for the Primary and Telemetry Secondary headers for interacting with the packet so that we only do the casting in one place (one of the util functions). I updated SendTlmMsg to use these new functions.

The rest of the functions in CCSDS_xbee.cpp need to be updated to use these functions. 'Getters/Setters should also be written for the Command Secondary header.

PrintHex buffer initialization

Right now the buffers used by printHex are fixed length, but the function currently doesn't check that the arguments don't overrun these buffers. Change the initialization of the buffers to be variable length based on the input arguments.

Implement Multi-packet sending support

The CCSDS format has a field in the header which allows specifying if the current packet is part of a sequence. The current functions need to be modified to allow the user to pass in large datasets and those functions should handle the creation and sending of the packets under-the-hood.

Functions to modify:
sendTlmMsg
sendCmdMsg

Command Receipt Checksum Validation

readCmdMsg contains commented-out code to validate the checksum of a received command packet. Implement the check and ensure that it works.

Implement Multi-packet receiving support

The CCSDS format has a field in the header which allows specifying if the current packet is part of a sequence. The current functions need to be modified to allow the receipt of large datasets and those functions should handle the recombining of the data under-the-hood.

Functions to modify:
readMsg
readCmdMsg
readTlmMsg

Make PrintHex a template to print any type of unsigned integer

Right now the num argument of PrintHex is an int type... this function would be more flexible if it was templated to work with any type of unsigned integer.

I attempted to do this by moving the function definition to ccsds_xbee.h, changing the call to

template<typename T> void printHex(T num, uint8_t precision)

and moving the declaration of _debug_serial to ccsds_xbee.h, but was getting multiple definition errors for _debug_serial.

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.