- Removed break in sliding_cross_correlate_upchirp due to inaccuracy in
noisy signals
~ Fixed upperbound in max_frequency_gradient_idx
~ Rewrote deinterleave function, now rotates bits to correct position
instead of extensive masking
+ Added comment for every function (needs review)
~ Solved nibble reverse after Hamming decode by switching the order or
ORing of the decoded data in Hamming itself
+ Added DBGR method to save timings to a file, a result for our setup
can be found in examples/lora-timings
+ Added Python script to transmit and receive random data live for
testing
+ Added comment for every function (needs review)
~ Solved nibble reverse after Hamming decode by switching the order or
ORing of the decoded data in Hamming itself
+ Added DBGR method to save timings to a file, a result for our setup
can be found in examples/lora-timings
+ Added Python script to transmit and receive random data live for
testing
- Removed break in sliding_cross_correlate_upchirp due to inaccuracy in
noisy signals
~ Fixed upperbound in max_frequency_gradient_idx
~ Rewrote deinterleave function, now rotates bits to correct position
instead of extensive masking
~ Renamed some variables
+ Added break in
sliding_cross_correlate_upchirp if correlation
percentage drops
+
Added DBGR macros to measure exucution time of functions
+ Re-added sliding cross correlation, but now starts from the
index found by the falling edge detector, which enables
very fast cross correlation and yields much more
accurate results
~ Changed index_correction correlation percentage threshold
from 0.8 to 0.9 for accuracy improvements
+ Added threshold to GRC block ctor
+ Added default values for lora_receiver block
~ Moved whitening sequence selection to ctor
to accomodate for SF6 incompatibility
~ Changed max_freq_gradient_idx with simpler falling edge detection
+ Added generated whitining sequences (but not in actual code: needs
further testing)
- Removed log files, and added results to wiki
+ Added threshold parameter to the lora_receiver block
+ Added failsafe to stop demodulation when noise was reached after data
(packet length in HDR was wrong)
+ Added script lora_receive_all.py as a command line interface
to set-up gnuradio on other platforms and receive LoRa packets
~ Automated whitening sequence generation with createWhiteningValues.py
for various settings
~ Changed _examplify.py to also create XML database with the generated
samples
+ Added same test sets, but for RTL-SDR and USRP (XML database)
+ Added header with debug macros
+ Added warning for SF 6: the samples are actually wrapped around to SF
12
~ Unwrapped some function calls to liquid-dsp::liquid_unwrap_phase
~ Simplified some more code
~ Rewrote sliding_norm_cross_correlate_upchirp: Now we detect a falling
edge
and do a correlation from there to test the sync rate.
Also added code that can perform a perfect overlay shift to the ideal
chirp
(but this leaves the falling edge inside the window)
~ Rewrote find_preamble_start_fast: Now detects the start of the
preamble
by looking for for absolute complex values above a threshold
~ Fixed ids in qa_BasicTest_Data.xml
~ qa_BasicTest.log contains test runs showing the improvements in
passing tests.
+ Added createWhiteningValues.py to generate a sample with zeros and
append
the whitening sequence to a file so it can be averaged (untested).
This uses lora-whitening-sequencer.
~ Added zero padding to whitening sequences in tables.h
~ Changed indentation layout
~ Replaced some functions from utilities.h with more performant ones
(tested in gr-lora-benchmarks)
+ Added message if spreading factor is set outside of compatible range
+ Added this keyword for class members
+ Added NDEBUG macro to be able to completely remove debugging (for
performance improvement)
~ Extracted multiplications from loops to a precalculation instead
~ Reworked flow of most of the functions
* TODO: Change find_preamble algorithm for better detection
* TODO: Change detect_downchirp algorithm for better sync
~ Changed test id when printing log to actual id from xml file (for easy
look-up)
~ Tests are now properly grouped by data and the times the data is
expected
~ Fixed the testing to properly create and destroy a tob_block so the
correct spreading factor can be set.
~ Removed explicit expected-data-all and expected-hdr in xml file. This
way the testing will only be done on the actual data and not the PHY HDR
(since its currently unsure whate the correct HDR should be)
+ Added qa_BasicTest_Data.xml file with list of al the samples generated
and their setting.
+ Added qa_BasicTest_XML.py to run Unit Tests by parsing the xml file
~ Changed ReadMe to include these changes
+ Added message_socket_sink to lora_swig.i CMakeList config
~ [Python] Fixed typo/bug in lora_receiver.py
+ Added qa_BasicTest.py to CMakeList config
~ [Python] Reworked qa_BasicTest: simpler socket receiving, setting
custom Spreading Factor when running test, check if files exist and log
to file, simpler running of new test series
~ [Python] qa_BasicTest: Unit Tests are now grouped by sent data and
Coding Rate: New test series for each coding rate and data pair.
Same CR and data are run in 1 test serie, because the CR changes the
HDR, a different CR with the same data requires a new test series.
~ [Python] Examplify now has SF and CR as ctor args
+ Added qa_basicTest.log: The output when running qa_BasicTest.py
~ Updated expected_results.log: The list of generated example files when
running _examplify.py
~ Replaced unwanted tabs with spaces
~ Replaced paths with relative paths (needs testing)
~ Examplify now takes the output path and name prefix as args
* TO-DO: test messqge_socket_sink with socket.timeout() instead of
manual waiting
+ Added failure report after Unit Tests
+ Added more seemless and easier testing in sets of different settings
+ Added _examplify.py to generate test samples: change settings in ctor
and record and dump captured data to file
* TO-DO: Add examplify to build o generate shell script?