carletonurocketry / broadcaster Goto Github PK
View Code? Open in Web Editor NEWA process to transmit telemetry data over LoRa radio on the QNX Stack using UART communication.
License: GNU General Public License v3.0
A process to transmit telemetry data over LoRa radio on the QNX Stack using UART communication.
License: GNU General Public License v3.0
Currently /dev/ser3
is hardcoded as the device handle for the LoRa radio. This may change depending on where the program is run (not necessarily on our Pi with the custom boot image).
It should be provided as a positional command line argument.
Currently, broadcaster
can receive input so quickly that the UART connection to the LoRa module cannot keep up. If the transmission fails, the LoRa radio reports it through stderr
and continues.
In our telemetry system, the only acceptable packet loss should be due to loss over the air, not failure to be transmitted in the first place.
The program should retry failed transmissions until it is successful. There should be an upper limit to how many times broadcaster
retries transmission. This may require experimentation to see what limit provides an acceptable throughput without piling up the input stream. Note that tests are currently being run with a dummy version of fetcher, which operates much faster than it will in reality (reading actual sensors takes time).
Sometimes the radio fails to have its parameters set over UART on the first time broadcaster
is run. This sometimes happens intermittently when broadcaster
is run subsequently.
There should be some kind of retry to communicate with the radio to set parameters. It would also be good to understand the root cause of this issue, and why it happens intermittently. Is it because of timings?
The RN2483 datasheet requires a mac pause
command before a radio tx <data>
, as discovered by Scott. Ideally we should include a new function for transmitting which does the following necessary steps:
mac pause
tcdrain()
(to ensure module has received previous command)radio tx <data>
tcdrain()
The function should take the radio file descriptor and a string of data to transmit as input, and should return true or false based on whether or not the transmission was successful.
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.