Commit Graph

456 Commits

Author SHA1 Message Date
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
Niccolò Izzo e60d79241d Set CAN to 0 2021-09-05 22:05:13 +02:00
Silvano Seva b1a91603c8 Fixed wrong function signature in dsp.cpp causing linking errors 2021-09-05 19:03:29 +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 bad5a50d7d Updated code puncturing pattern for M17 link setup frame to follow new specifications 2021-09-03 16:44:57 +02:00
Silvano Seva 2f3db118fc Changed streamType_t from bitfield struct to union of anonymous bitfield struct and uint16_t to facilitate endianness conversion. Change also fixed a bug in endianness conversion inside M17LinkSetupFrame class due to unaligned memory access. 2021-09-03 16:44:57 +02:00
Silvano Seva 065c15fb72 Force deactivation of TX and RX tone squelch for operating modes different from FM 2021-09-03 16:44:57 +02:00
Federico Amedeo Izzo c04ceb9a8d Add M17 radio mode to UI 2021-09-03 16:44:57 +02:00
Federico Amedeo Izzo c23eaf8e98 Add M17 src/dst addresses to rtxStatus_t 2021-09-03 16:44:57 +02:00
Niccolò Izzo eea9be3349 Add M17 codeplug data structures 2021-09-03 16:44:57 +02:00
Niccolò Izzo f43f54117c Fix M17 callsign setting
Fix M17 callsign disappearing in M17 settings.

The generic callsign (currently not used) was being shown instead of M17 callsign.
2021-09-03 16:44:57 +02:00
Federico Amedeo Izzo dc28f90a1d Fix keypad text input, add caps-only input, add terminator to callsign 2021-09-03 16:44:57 +02:00
Federico Amedeo Izzo f104955686 Text Input: Delete character by using any arrow button 2021-09-03 16:44:57 +02:00
Federico Amedeo Izzo acc1c2a779 M17: Print source and destination IDs in mode screen 2021-09-03 16:44:57 +02:00
Federico Amedeo Izzo 229a81b2ad Add text input draft
Fix text input position not being reset when entering edit mode
2021-09-03 16:44:57 +02:00
Federico Amedeo Izzo 87703a76e6 Add M17 Settings 2021-09-03 16:44:57 +02:00
Federico Amedeo Izzo 882a657359 * Combine S-meter and Level meter
* Make squelch bar always yellow
* Include font height in s-meter total height

Correct bottom bar printing position

Increase bottom bar size on GD-77
2021-09-03 16:44:57 +02:00
Federico Amedeo Izzo 118c514081 UI: Add digital mode screen
Use main screen bottom bar in mode screen

mode screen: Move frequency and channel name to center

Show S-meter without squelch bar for digital modes

Change S-meter for digital modes, add audio level meter

Print FM information in mode screen

Add mode screen fonts
2021-09-03 16:44:57 +02:00
Silvano Seva 92ea1535ff Moved definition of 'PLATFORM_LINUX' macro from hwconfig to meson.build, added '-std=c++14' compilation flag to compile arguments for linux platform, added missing includes to M17Utils.h 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
Silvano Seva 98e4164f54 M17 transmitter class 2021-09-03 16:44:57 +02:00
Silvano Seva 39e41ee470 M17 4FSK modulator class 2021-09-03 16:44:57 +02:00
Silvano Seva f7bec2358b Class for implementation of FIR filters 2021-09-03 16:44:56 +02:00
Silvano Seva 0ebcbeed5d Updated digital filter for compensation of PWM filter frequency response. 2021-09-03 16:43:44 +02:00
Niccolò Izzo 3439f3a497 Add invert phase DSP filter 2021-09-03 16:40:41 +02:00
Silvano Seva 7b5e98bbca Implemented generation of Golay(24,12) LICH blocks inside M17LinkSetupFrame class 2021-09-03 16:39:06 +02:00
Silvano Seva 93af26ef13 Implementation of M17 decorrelator, polynomial interleaver and Golay(24,12) encoder 2021-09-03 16:39:06 +02:00
Silvano Seva ee1b111fb7 Implementation of M17 code puncturing scheme 2021-09-03 16:39:06 +02:00
Silvano Seva d545071df6 Implementation of M17 convolutional encoder 2021-09-03 16:39:06 +02:00
Silvano Seva 9e5c689bf3 M17 protocol data structures 2021-09-03 16:39:06 +02:00
Silvano Seva 222ba690a5 Improved implementation of DSP function for DC removal 2021-09-03 15:46:13 +02:00
Silvano Seva c2b6bd545f API interfaces for audio path and audio stream management 2021-08-25 18:30:28 +02:00
Silvano Seva 4d3eacc144 Switched 'v_bat' and 'charge' fields of state struct from float to, respectively, uint16_t and uint8_t and updated UI functions accordingly. Rationale for this change is providing better support for future platforms without hardware floating point unit. 2021-08-14 12:56:45 +02:00
Silvano Seva 46819ba993 Modified 'battery_getCharge': now it takes as input the battery voltage in mV and returns charge percentage as an integer ranging from 0 to 100. Function body is implemented using fixed point math instead of floats for improved platform compatibility when hardware floating point support is not present. 2021-08-14 12:52:55 +02:00
Silvano Seva a7acc3301b Modified 'platform_getVbat' API: now it returns an uint16_t value containing the battery voltage in millivolt 2021-08-14 12:47:21 +02:00
Silvano Seva 8e0a5d1c0f Made 'platform_getVolumeLevel' and 'platform_getMicLevel' API functions return a normalised 8 bit value ranging from 0 to 255 (TG-293 #closed) 2021-08-14 10:18:55 +02:00
Silvano Seva a1ca509eec Restore original functionality of getCurrentFreeHeap() memory profiling function, as the cause of its incorrect behaviour has been found 2021-08-10 09:35:00 +02:00
Niccolò Izzo 3bdaae0805 Fix squelch control on md3x0
Knob now generates dedicated KNOB_LEFT and KNOB_RIGHT messages,
fixed ui to consider those for enabling the squelch change.
2021-07-10 06:57:09 +02:00
Silvano Seva eb474d6bee Driver for STM32F4 USART3, can be used as a debug serial interface on MD3x0 devices without GPS and is enabled by defining the macro MD3x0_ENABLE_DBG 2021-07-09 08:53:12 +02:00
Federico Amedeo Izzo 1fbecb4c22 Increase keyboard thread polling rate to 40Hz to improve knob reactivity 2021-06-07 20:10:02 +02:00
Silvano Seva 6995230d8f Extended 'mode' field in CPS data structure to 8 bits, to align its size to the one contained in rtxStatus_t. Modified code for channel data loading in NVM drivers to align it to the new opMode enum values. 2021-06-05 21:21:12 +02:00
Federico Amedeo Izzo 57b66652b7 Use channel knob to change frequency and navigate menus (TG-238) 2021-06-05 18:11:30 +02:00
Federico Amedeo Izzo f5a70b3e43 Fixed Initial GUI rendering with an empty state 2021-06-05 16:32:05 +02:00
Federico Amedeo Izzo 01b4a98f85 Set initial frequency based on supported bands (TG-239) 2021-06-05 11:06:22 +02:00
Federico Amedeo Izzo f5c9d97e49 Check frequency limits against hwInfo_t, not hardcoded defines 2021-06-05 10:47:52 +02:00
Federico Amedeo Izzo 5b3f2b7e23 Simplify frequency limits check for VFO input 2021-06-05 10:08:15 +02:00
Federico Amedeo Izzo 49cb28c5b8 Fix RTX not updated when switching from MEM to VFO (#30,TG-240,TG-241) 2021-06-05 09:36:00 +02:00
Silvano Seva 66552be403 Added function to radio API allowing to fine tune the radio's VCXO polarisation voltage. Currently, this functionality is effective only on MD-3x0 devices. (TG-195 #ready-for-test) 2021-06-03 14:50:47 +02:00
Silvano Seva b29b24fdc0 Implemented RX tone squelch on MD-UV3x0 and GDx (TG-43) 2021-06-02 12:44:46 +02:00