Implemented transmission of GNSS meta data aloingside a voice stream. If
the GPS has a valid fix, sender's position is embedded into LSF frames.
Turning off the GPS disables transmission of position data.
Co-authored-by: Ryan Turner <ryan@turnrye.com>
Co-authored-by: Wojciech Kaczmarski <w.kaczmarski@teletra.pl>
Co-authored-by: Jim Ancona <jim@anconafamily.com>
Implemented embedding of GNSS meta data into M17 Link Setup Frames,
following M17 specification v2.0.3
Co-authored-by: Ryan Turner <ryan@turnrye.com>
Co-authored-by: Wojciech Kaczmarski <w.kaczmarski@teletra.pl>
Co-authored-by: Jim Ancona <jim@anconafamily.com>
Implemented a double-buffering mechanism for LSF data, allowing to
update the content while a transmission is ongoing.
Signed-off-by: Silvano Seva <silseva@fastwebnet.it>
Store the full Link Setup Frame data for the current ongoing
transmission and generate LICH on the fly.
Signed-off-by: Silvano Seva <silseva@fastwebnet.it>
Replaced the old callsign handling based on std::strings with the new
Callsign class. This change freed 1808 byte of flash.
Signed-off-by: Silvano Seva <silseva@fastwebnet.it>
Added class representing M17 callsign objects. Objects can be
constructed both from strings and base-40 encoded values and allow
conversion to any of the other representation. The class implements the
comparison operator to allow easy check for callsign match.
In case the number of bit errors detected by the viterbi algorithm in a
stream frame are above a given threshold, do not copy its payload. This
prevents audio artifacts when data is processed by codec2 decoder.
ClockRecovery module provides the best sampling point estimate based on
the previous baseband history, tracking clock drifts more promptly than
methods based on syncword correlation.
Signed-off-by: Silvano Seva <silseva@fastwebnet.it>
Using the DevEstimator class to obtain a better estimation of the outer
symbol deviation: now values are estimated using a full frame instead of
just the outer symbols of a syncword.
Signed-off-by: Silvano Seva <silseva@fastwebnet.it>
OpenRTX releases have had their artifacts follow a historical pattern,
which has both set users expectations and had documentation (both official
and unofficial) built. The CI builds don't follow those conventions though,
which causes confusion with users who don't have experience doing local
builds.
This change moves the build artifacts to match the file naming convention
users are accustomed to, and it uses the branch name as the name of the build
name that is listed.
Fixes: https://tasks.openrtx.org/project/openrtx/task/779
Signed-off-by: Ryan Turner <ryan@turnrye.com>
Acked-by: Silvano Seva <silseva@fastwebnet.it>
As we adopt Weblate as the tool for providing translations, one of their
hosting terms is that the project's README references their support. This
change adds that as part of a section referencing the translation effort
and sharing a graphic with translation stats.
Ref https://tasks.openrtx.org/project/openrtx/task/743
Signed-off-by: Ryan Turner <ryan@turnrye.com>
Module17 does not required "wrapped" binaries and this target was added
only for compatibility. In the end, it was more confusing than useful.
Signed-off-by: Silvano Seva <silseva@fastwebnet.it>
Show settings entries for RTC synchronization and UTC timezone only if
the CONFIG_RTC macro is present
Signed-off-by: Silvano Seva <silseva@fastwebnet.it>
Added settings menu entry to make RTC synchronization with GPS
persistent across reboots. When the synchronization is enabled
the RTC will be updated on the first valid RMC sentence received.
Signed-off-by: Silvano Seva <silseva@fastwebnet.it>
Some GPS modules can work on multiple systems at the same time. However,
the current code has been written only for GPS and, consequently is not
able to manage satellites with an ID greater than 32. This commit provides
an hotfix until all the GPS code gets refactored an extended to support
also GLONASS and Galileo.
Signed-off-by: Silvano Seva <silseva@fastwebnet.it>
Moved retrieval of latitude and longitude coordinates from RMC to GGA
sentence. This prevents from having a valid fix but coordinates still
equal to 0.0, 0.0
Signed-off-by: Silvano Seva <silseva@fastwebnet.it>
Update meson and cmake config to only include openrtx and platform paths.
Update files to use <..> for system and external libraries, ".." for
project files and new relative paths as necessary.
Did not attempt to fix areas where includes that should be <..> were
previously ".."
Inspired by #96, closes#359.
Acked-by: Silvano Seva <silseva@fastwebnet.it>
New DC block filter implementation using fixed-point math and guaranteeing
zero DC component on the output signal.
Signed-off-by: Silvano Seva <silseva@fastwebnet.it>
Added the ability to manage CTCSS enablement via the FM settings menu.
As part of this, refactored the existing instances of setting and
displaying this value on the main vfo screen and on the macro menu.
Acked-by: Silvano Seva <silseva@fastwebnet.it>
This seeks to create a place for settings on the FM mode that complement
the quick actions available from the macro menu. This way as more FM mode
features are added, there is a menu to configure them in.
Co-authored-by: Ryan Turner <ryan@turnrye.com>
Acked-by: Silvano Seva <silseva@fastwebnet.it>
This change makes it so that the macro menu shows the current tone and
change the tone setting with macro 1, then change tone frequency with
macro 2 and 3. This is a clearer UX.
Co-authored-by: Ryan Turner <ryan@turnrye.com>
Acked-by: Silvano Seva <silseva@fastwebnet.it>