Commit Graph

42 Commits

Author SHA1 Message Date
marco 20b0c375aa Change M17_orig to link and change callsign handling
This will swap the first extended callsign with the source callsign
if there is extended callsign data.
This allows to always store the true source in the M17_src variable

See #188
2023-10-13 09:58:34 +02:00
Marco 1a7d62fb42 Add UI and check for CAN on RX 2023-09-16 19:14:17 +02:00
marco f425a4c740 Fix M17 Call Info flickering during reception 2023-09-15 19:41:48 +02:00
Silvano Seva 8fe9837035 Implemented rxSquelchOpen() function for M17 opmode handler, returning true in case of valid stream data. 2023-09-12 17:47:49 +02:00
Silvano Seva 0adab74255 M17: workaround to avoid UI glitches when a new dst callsign is set.
When a new dst callsign is set, the rtx configuration data structure is
updated and this may trigger false setting of the lsfOk variable to true,
causing the M17 info screen to appear for a very small, but noticeable,
amount of time.
2023-09-12 17:47:49 +02:00
Marco dc0114e7e2 Retrieve M17 source, destination and extended callsign data from LSF 2023-09-12 17:47:49 +02:00
Silvano Seva 6dd0a718e0 Fixed bug in M17 opmode handler causing missing audio output 2023-08-30 18:04:25 +02:00
Silvano Seva dd118d0a87 Adapted voice prompt and M17 code to new codec2 API 2023-08-30 18:04:25 +02:00
Silvano Seva adf88611f4 Changed codec_startEncode() and codec_startDecode() input parameter from an audio source/sink to an audio path 2023-08-30 18:04:25 +02:00
marco 278d7850c7 M17: add data structures for GNSS and extended callsign metadata. 2023-08-28 10:25:46 +02:00
Silvano Seva 313e9615a6 Removed platform_getCalibrationData() function because of limited usefulness.
Given that each radio driver loads its calibration data when initializing
and that the radio driver is strongly platform-specific, there is no strong
need for an intermediate redirection layer through the platform API.
2023-07-14 12:26:39 +02:00
Silvano Seva f42b9d2cda Implemented transmission of user-configured M17 channel access number 2023-05-29 22:12:40 +02:00
Silvano Seva fb8e3412c5 Implemented change of M17 baseband signal phase according to user settings for both TX and RX in Module17 2023-05-29 22:12:40 +02:00
Silvano Seva 4a3bc93fa4 Always send an M17 EOT frame as the last frame before terminating baseband output 2023-03-12 16:27:31 +01:00
Silvano Seva a89a7523cb Updated year in copyright headers 2023-02-08 16:33:02 +01:00
Silvano Seva 21481072e7 Moved audio management in M17 opmode handler to audio path system 2022-10-28 09:47:47 +02:00
Silvano Seva d0d603901e Implemented storage of voice prompts data inside the binary executable image. Voice prompts data is placed in .rodata section at link time 2022-10-28 08:30:46 +02:00
Silvano Seva d11bb903b1 Made public the M17Modulator.stop() function, added macro to enable the transmission of an M17 EOT frame (disabled by default). 2022-08-28 12:00:36 +02:00
Silvano Seva a22aceb576 Reorganized code for M17 transmission: removed M17Transmitter class, use M17FrameEncoder to assemble LSF and data frames, modified API of M17Modulator class. 2022-08-28 11:59:31 +02:00
Silvano Seva 5ebdb36ffb Resetting M17 frame decoder when demodulator transitions from unlocked to locked state 2022-07-22 22:54:57 +02:00
Silvano Seva 9c2091c060 Changed M17 RX behaviour so that received stream data is forwarded to codec2 decode only when a full valid LSF is received. 2022-07-21 22:14:55 +02:00
Silvano Seva 844e0619e2 Fixed bug in check for M17 phase inversion causing MD3x0 UHF not to demodulate the signal anymore 2022-07-11 15:35:59 +02:00
Silvano Seva 54aa794bf8 Changed file extension of all C++ only header files from .h to .hpp 2022-07-09 18:22:36 +02:00
Silvano Seva 6d10f52b5b Clean termination of all the threads on device shutdown 2022-07-02 10:28:28 +02:00
Silvano Seva 4367db53d0 Added configuration of AT1846S registers for digital modes in MD-UV3x0 driver. In M17 mode handler forced signal phase inversion at demodulator side also for MD-UV3x0 devices 2022-05-31 18:19:57 +02:00
Silvano Seva 4d4ebae2f3 Added configurable phase inversion to M17 demodulator. Forced enabling of phase inversion for MD3x0 VHF radios. 2022-05-30 19:19:01 +02:00
Silvano Seva 1620889640 Reorganised main FSM inside M17 operating mode handler 2022-05-27 21:49:33 +02:00
Silvano Seva 76be50db61 Improved debug log in M17 demodulator, changed trigger condition for log dump, re-enabled audio reproduction when logging. 2022-05-27 21:49:33 +02:00
Niccolò Izzo 115982d279 Add demod log script
Add script to receive the demodulated data from Module17/radio, to use
it you need to add in meson.build:12 the ENABLE_DEMOD_LOG define.
Build and flash into the platform, build and run scripts/get_demod_log,
turn on the radio, remember to turn of radio before you terminate
get_demod_log, print the output with
`scripts/plot_m17_demod_csv.py serial_demod_log.csv`.

TG-81
2022-05-27 21:49:32 +02:00
Silvano Seva da5c453852 Implemented unpacking and decoding of M17 audio stream frames 2022-05-27 21:48:47 +02:00
Silvano Seva b144657257 Moved CODEC2 management to a dedicated module 2022-05-27 21:48:47 +02:00
Silvano Seva 83020d4fa3 Increased priority of CODEC2 thread, this fixes glitches when generating M17 baseband signal 2022-05-27 21:48:47 +02:00
Silvano Seva 3d169484e9 Improved management of CODEC2 thread in M17 mode handler, now activated only when transmitting. Fixes a confict with RTX and MIC input streams causing the rtx thread to hang when PTT was pressed 2022-05-27 21:48:47 +02:00
Niccolò Izzo 2d8c696a09 Complete M17 demodulator implementation
Make quantization work also on DC offset signal
Add samples plot code
Fix bug in buffer wrap around
Fix oob memory access in M17 modulator
Update tests with DC offset signal
Switch to 48KHz sample rate for Module17 and MD380
Add DC biasing script

TG-81
2022-05-27 21:48:46 +02:00
Silvano Seva 8f63d349a2 Temporarily deactivating M17 demodulator until fully debugged as it makes the radio crash 2022-05-27 21:48:46 +02:00
Silvano Seva 963fbdc141 M17 mode handler: calling demodulator update function when in RX mode 2022-05-27 21:48:46 +02:00
Silvano Seva 7db53b8bdc Fixed some compiler warnings 2021-10-06 21:30:45 +02:00
Silvano Seva f2f013f5a5 Switched to pthread API for CODEC2 thread management inside M17 OpMode handler 2021-09-19 15:29:43 +02:00
Silvano Seva 0b276b2b64 Experimental implementation of voice transmission in M17 protocol handler 2021-09-07 12:22:35 +02:00
Niccolò Izzo 120fd92d73 Fix M17 callsign management
Now a default callsign "OPNRTX" is used in M17 mode, and when the user
sets its own callsign in the settings menu, that one is correctly used
instead. Add initialization to RTX data structure.
2021-09-06 22:55:46 +02:00
Silvano Seva e954f3fda2 Moved sleep regulating update rate of rtx task from rtx thread to OpMode implementations, as each operating mode may require a custom update rate 2021-09-03 16:44:57 +02:00
Silvano Seva c8d62ff47f Initial implementation of M17 operating mode handler 2021-09-03 16:44:57 +02:00