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>
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>
Once the RTC has been synchronized with GPS time, set the gps_set_time
flag back to false. This resets also the corresponding ON/OFF menu entry,
providing both a feedback that the operation is done and allowing the user
to just set it back to ON in case a new synchronization is needed.
Clearly show on UI the case when no GPS receiver has been detected in the
hardware. Previously either the "GPS off" or "No fix" strings where shown
also in case of no GPS, causing ambiguity.