Commit Graph

420 Commits

Author SHA1 Message Date
Manolis Surligas 142c995370 Add astyle pre-commit hook and update readme with coding style info 2019-09-30 19:32:21 +03:00
Manolis Surligas 90eb400763 Fix Debian issue with astyle options 2019-09-30 19:32:21 +03:00
Manolis Surligas e09c180f84 Format all C++ files using the astyle beautifier 2019-09-30 19:32:21 +03:00
Manolis Surligas a5caed2ca9 Add astyle configuration for code formating 2019-09-30 19:32:21 +03:00
Manolis Surligas 7b7fb82adc Continue with the transition to the new decoder API
* Removed obsolete blocks
* Created a new CRC class with static methods. This will make easier the
integration of new CRC schemes. The old way was rather too C-styled
2019-09-30 19:32:21 +03:00
Manolis Surligas 17f91dbb27 Add developers information on README 2019-09-30 19:32:21 +03:00
Manolis Surligas 14382ddc4f Remove obsolete blocks
* Blocks removed are now covered from decoders available supporting the
new decoder architecture
* The quadrature demodulation filter block, had as primary goal to
reduce the false alarms and the performance of the DUV decoder. Now the
new DUV decoder, uses a shift register approach, likewise the AX.25
decoder, therefore it is not needed anymore.
2019-09-30 19:32:21 +03:00
Manolis Surligas c9f685d1c1 Use the shift register approach for the DUV decoder 2019-09-30 19:32:21 +03:00
Manolis Surligas c5f376929c Convert AMSAT FOX DUV decoder to the new architecture
TODO:
* Use the shift register likewise the AX.25 to get rid off the
quadrature demodulation filter. This will significantly increase the
number of decoded frames
2019-09-30 19:32:21 +03:00
Manolis Surligas 110ab30d26 Add JSON converter block for the decoders
The decoders produce a PMT message containing several information about
the decoded frame. While this is very convenient for handling data
inside the flowgraph, it is not for third party applications. The JSON
converter block is responsible to serialize all the information
contained in a PMT originating from a decoded frame.

For simple demonstration some metadata were added on the AX.25 decoder.
These metadata are still a WIP and they subjected to changes.
2019-09-30 19:32:21 +03:00
Manolis Surligas 19c68f825d Port AX.25 decoder to the new architecture 2019-09-30 19:32:21 +03:00
Manolis Surligas ad590174e0 Implement the generic decoder API
To simplify the logic and allow an easy and more efficient way to add
new decoders, the new architecture uses only one decoder block.

This block takes as input a void* stream and produces PDUs with their
metadata. To do so, the block accepts a decoder object. Every decoder
should implement the virtual class decoder(). This class provides the
necessary API and an arbitrary number of decoders can be supported. The
decoding status is reported to the frame_decoder block through the
decoder_status_t structure.
2019-09-30 19:32:21 +03:00
Manolis Surligas 9fe6b6f274 Improvements on the overall structure of the project
* Improve performance of the Golay decoder
* Modernize some CMake modules of GNU Radio
* Re-introduce the CPPUnit automated tests
2019-09-30 19:32:21 +03:00
Vasilis Tsiligiannis 8625475fd9 gitlab-ci: Keep image version in variable
Signed-off-by: Vasilis Tsiligiannis <acinonyx@openwrt.gr>
2019-09-30 18:47:46 +03:00
Vasilis Tsiligiannis 558b59123f debian: Do not include volatile lines in patch
Signed-off-by: Vasilis Tsiligiannis <acinonyx@openwrt.gr>
2019-09-30 18:47:46 +03:00
Vasilis Tsiligiannis 2edceafaa5 Workaround GitLab CI bug when using 'git describe'
Signed-off-by: Vasilis Tsiligiannis <acinonyx@openwrt.gr>
2019-09-30 18:47:46 +03:00
Vasilis Tsiligiannis 35c50bce83 debian: Pass Git count and hash to CMake
Signed-off-by: Vasilis Tsiligiannis <acinonyx@openwrt.gr>
2019-09-30 18:47:46 +03:00
Vasilis Tsiligiannis 3780102025 gitlab-ci: Fix typo in variable use
Signed-off-by: Vasilis Tsiligiannis <acinonyx@openwrt.gr>
2019-09-30 18:47:46 +03:00
Vasilis Tsiligiannis 704d9a5e6d Deploy only 'master' and tagged releases
Signed-off-by: Vasilis Tsiligiannis <acinonyx@openwrt.gr>
2019-09-30 18:47:46 +03:00
Vasilis Tsiligiannis 82d37731c0 Do not remove Git maintainer version on untagged versions
Signed-off-by: Vasilis Tsiligiannis <acinonyx@openwrt.gr>
2019-09-30 18:47:46 +03:00
Vasilis Tsiligiannis bd2807f8a1 Remove compiled Python scripts before packaging
Signed-off-by: Vasilis Tsiligiannis <acinonyx@openwrt.gr>
2019-09-30 18:47:46 +03:00
Vasilis Tsiligiannis 97421ae37e Move shared library into a separate package
Signed-off-by: Vasilis Tsiligiannis <acinonyx@openwrt.gr>
2019-09-30 18:47:46 +03:00
Vasilis Tsiligiannis b5a70703d9 Use 'buster' image
Signed-off-by: Vasilis Tsiligiannis <acinonyx@openwrt.gr>
2019-09-30 18:47:46 +03:00
Vasilis Tsiligiannis 9490bafcbd Upload artifacts to OBS
Signed-off-by: Vasilis Tsiligiannis <acinonyx@openwrt.gr>
2019-09-30 18:47:46 +03:00
Vasilis Tsiligiannis 14848b6b5d gitlab-ci: Use packaging job for testing building
Signed-off-by: Vasilis Tsiligiannis <acinonyx@openwrt.gr>
2019-09-30 18:47:46 +03:00
Vasilis Tsiligiannis a01cabace7 debian: Reset version changelog
Signed-off-by: Vasilis Tsiligiannis <acinonyx@openwrt.gr>
2019-09-30 18:47:46 +03:00
Vasilis Tsiligiannis 82d9096dfd gitlab-ci: Add job for submitting Debain source files to Open Build Service
Signed-off-by: Vasilis Tsiligiannis <acinonyx@openwrt.gr>
2019-09-30 18:47:46 +03:00
Vasilis Tsiligiannis 7ba2702674 gitlab-ci: Fix build stage name, excplicity define stages
Signed-off-by: Vasilis Tsiligiannis <acinonyx@openwrt.gr>
2019-09-30 18:47:46 +03:00
Vasilis Tsiligiannis 98c534dc5b Make image and pre-script configuration job specific
Signed-off-by: Vasilis Tsiligiannis <acinonyx@openwrt.gr>
2019-09-30 18:47:46 +03:00
Vasilis Tsiligiannis c67edb5072 Fix YAML indentation
Signed-off-by: Vasilis Tsiligiannis <acinonyx@openwrt.gr>
2019-09-30 18:47:46 +03:00
Vasilis Tsiligiannis 951f6ebd07 Update maintainer, drop old changelog entries
Signed-off-by: Vasilis Tsiligiannis <acinonyx@openwrt.gr>
2019-09-30 18:47:46 +03:00
Vasilis Tsiligiannis 336576e282 Use '' instead of the deprecated 'multiarch-support', bump standards version
Signed-off-by: Vasilis Tsiligiannis <acinonyx@openwrt.gr>
2019-09-30 18:47:46 +03:00
Vasilis Tsiligiannis 06bf36f22c Add Debian packaging
Signed-off-by: Vasilis Tsiligiannis <acinonyx@openwrt.gr>
2019-09-30 18:47:46 +03:00
Julien e3c81ea853 Update hw_settings.py to add support for USRP1 2019-09-30 18:47:46 +03:00
Manolis Surligas 571508b7c0 Fix resampling ratio 2019-09-30 18:47:46 +03:00
Manolis Surligas d160da424a Adapt FSK improvements for the Reaktor flowgraph 2019-09-30 18:47:46 +03:00
Manolis Surligas 98fc0e0e80 Fix Airspy gain setting 2019-09-30 18:47:46 +03:00
Ilias Daradimos e932339c9e Update README.md 2019-09-30 18:47:46 +03:00
Ilias Daradimos 86495bbb5a Update README.md 2019-09-30 18:47:46 +03:00
Manolis Surligas 33ec1d6b50 Improve FSK/MSK flowgraphs sensitivity 2019-09-30 18:47:46 +03:00
Manolis Surligas 89d4184393 Redesign of the AX.25 decoder
This commits introduces a significant redesign of the AX.25 decoding
block. Due to the poor AX.25 sync flag, the decoders exhibited too many
false alarms. To deal with this problem, we introduced the quadrature
demod filter block, that tried to measure the SNR based on the running
variance of the signal. The problem with that was that the user should
have to fine tune two parameters, the one related with the amplitude of
the incoming signal and the second one related with the window that the
calculations should take place. This solution worked until now, but we
can always increase the performance.

The new AX.25 decoder stores the bitstream in a queue and always tries
to exlpoit possible valid frames in the queue. If now sync flags have
been encountered, the queue is flushed. After a valid frame extraction,
bits corresponding to this frame are also deleted from the queue.

This technique requires more memory and CPU, but it increases a lot the
decoding performance.
2019-09-30 18:47:46 +03:00
Manolis Surligas 23b819feb9 Add a DC blocker and remove filter gain at AFSK 2019-09-30 18:47:46 +03:00
Manolis Surligas 5015a11697 Manually remove the vector param
Manually remove the vector param from the moving average
block in the affected flowgraphs, for compatibility
with the GNU Radio 3.7.10
2019-09-30 18:47:46 +03:00
Manolis Surligas 907f64fd8b Add VCO-based frequency correction
This commit includes a blind frequency correction mechanism for FM
signals. It uses the information of the angle difference between two
concecutive samples and a VCO to continuously compenstate any frequency
offset. To avoid intermodulations, a low pass filter is used trying to
pass only the DC component that is needed.
2019-09-30 18:47:46 +03:00
Manolis Surligas 18bfad3277 Remove AX.25 address field check 2019-09-30 18:47:46 +03:00
Manolis Surligas a6dbc22d43 Improve sensitivity of FSK/MSK flowgraphs 2019-09-30 18:47:46 +03:00
Manolis Surligas a8745dd6a4 Increase CW sensitivity
* Switch from amplitude based approach to auto-correlation
* Limit the bandwidth of the PLL using a low pass filter
* Reject noise of the PLL using a very steep low pass after it
2019-09-30 18:47:46 +03:00
Manolis Surligas 67ea02a248 Improve CW decoding
* Introduce the hysteresis option, in order the CW demodulator to adjust
properly the plateau length based on the WPM and any filtering that can
be used before

* Instead for a frame per word, now the CW decoder waits for 10 long
spaces before it commits a frame. With this way many words are placed on
the same frame telemetry decoding is easier
2019-09-30 18:47:46 +03:00
Manolis Surligas 5291e18032 Bump up version to 1.5.1 2019-01-22 13:25:39 +02:00
Manolis Surligas 0d21c5942f Fix BPSK issue on low baudrates 2018-12-21 17:32:11 +02:00