umdbpp / ccsds_xbee Goto Github PK
View Code? Open in Web Editor NEWCode implementing a simplified user interface for sending CCSDS packets over xbees.
Code implementing a simplified user interface for sending CCSDS packets over xbees.
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.
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.
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.
readCmdMsg contains commented-out code to validate the checksum of a received command packet. Implement the check and ensure that it works.
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.
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
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.
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.