Commit Graph

883 Commits

Author SHA1 Message Date
Niccolò Izzo 21895ae304 ttwrplus: disable Tx in menus
As T-TWR Plus reuses the PTT as a back button, thus we need to disable
PTT in menus. Also enforce rx_only logic from CPS.

TG-553
2023-09-20 21:16:40 +02:00
Niccolò Izzo fe027c440c ttwrplus: enable volume control
Replaced KEY_F7 and KEY_F8 with KEY_VOLUP and KEY_VOLDOWN.
Remapped the T-TWR Plus volume up and down keys to those, fixing a bug
in the pmu key detection where the wrong active edge was selected.
Adapt soft volume code for the UV3x0 to control code in the T-TWR Plus
by acting on the AT1846s Rx gain.
For target T-TWR Plus bound long press of KEY_VOLDOWN to macro menu open.
Unbound KNOB_LEFT and KNOB_RIGHT to squelch control and bound
instead KEY_VOLUP and KEY_VOLDOWN.

TG-553
2023-09-20 21:08:35 +02:00
Silvano Seva de3b319518 ttwrplus: added SA868 firmware version to info menu 2023-09-20 21:08:35 +02:00
Niccolò Izzo a72f8387ad ttwrplus: disable low battery warning
T-TWR Plus appears to have sever voltage drops during normal operation,
therefore we cannot use OpenRTX's low voltage warning screen on this
radio.

TG-553
2023-09-20 21:08:35 +02:00
Niccolò Izzo ad1beffcf3 ttwrplus: implemented PMU interrupts handling
TG-553
2023-09-20 21:08:35 +02:00
Niccolò Izzo 024c7ffe3a ttwrplus: fix sporadic missing TX
The bug was due to an uninitialized memory being used to configure the
RTX thread, that disabled Tx in a random way by randomly set the
txDisable field.

TG-553
2023-09-20 21:08:35 +02:00
Niccolò Izzo 0c27c9ce28 Enable Zephyr dynamic stack threads
Enable Zephyr dynamic stack posix threading, with stack pool of 4 and
stack size of 4096.

TG-553
2023-09-20 21:08:35 +02:00
Silvano Seva dd13732343 Fix some compilation warnings generated by xtensa-espressif-gcc 2023-09-20 21:08:35 +02:00
Silvano Seva ebc5910015 Renamed "bcd2bin" utility to "bcdToBin" to avoid conflicting with Zephyr includes 2023-09-20 21:08:35 +02:00
Silvano Seva 7ce3a8a605 Fix compilation error caused by voiceprompts data section definitions 2023-09-20 21:08:35 +02:00
Marco 467ad6bd7a Fix regression in memory mode
Show frequency in memory mode when not receiving M17
2023-09-17 13:00:12 +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 c49ae03d01 Audio stream: fixed missing NULL pointer check in audio device driver selection. 2023-09-13 22:26:41 +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 22afe0ecde Port changes for M17 Call Info to module17 2023-09-12 17:47:49 +02:00
Marco 7a67768c8d Show M17 stream information on receive 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
Marco a0f5d55cc1 Add M17 stream information to rtxStatus struct 2023-09-12 17:47:49 +02:00
Marco 74f7912b4c Fix M17 callsign decoder sometimes causing crashes 2023-09-12 17:47:49 +02:00
Niccolò Izzo 3860894bff
Implement macro menu without keyboard
Adapt UI for radios that do not have a keyboard, add macro menu UI code
that can only use KEY_ENTER and KEY_UP, KEY_DOWN.

TG-553
2023-09-10 12:12:13 +02:00
Silvano Seva 5ea94ee1af Improved management of FM audio volume on MD-UV3x0.
Fix #160.
2023-09-08 16:14:11 +02:00
marco d7578c4441 Refactor ui sizes
This changes line 3 to line 3 large and adds
two new lines, line 3 and line 4, similar to
line 1 and line 2
2023-09-04 15:12:18 +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 c9cd620530 Audio codec: added function returning the codec's current operational status 2023-08-30 18:04:25 +02:00
Silvano Seva fc5e3b0bce Audio stream: cleanup dead streams while searching for an empty slot 2023-08-30 18:04:25 +02:00
Silvano Seva e610979ac7 Codec2: second round of refactoring and implemented proper access contention in codec_startEncode() 2023-08-30 18:04:25 +02:00
Silvano Seva 5b3e136127 Audio codec: using a single condition variable for queue wait management. 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 94fdd1090b Refactoring and improvement of codec2 module 2023-08-30 18:04:25 +02:00
Silvano Seva 7d90d15a5f Adapt code to the new audio stream API. 2023-08-30 18:04:25 +02:00
Silvano Seva 24208db609 New unified audio stream manager 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
Silvano Seva 60b771b375 Added function to get all the informations of a given audio path 2023-08-30 18:04:25 +02:00
Silvano Seva 1011dd1081 Moved audio_stream.h from interfaces to core headers 2023-08-30 18:04:24 +02:00
marco 7b64fca573 M17: change BROADCAST to ALL for decode callsign 2023-08-28 10:31:09 +02:00
marco f40ecc60db M17: change decode callsign x to space 2023-08-28 10:30:51 +02:00
marco 278d7850c7 M17: add data structures for GNSS and extended callsign metadata. 2023-08-28 10:25:46 +02:00
Ryan Turner ec57e74bc6 feat(ui): add tooling to generate symbols, add GPS status icon and macro latch icon to the macro menu
Ref https://github.com/OpenRTX/OpenRTX/issues/161
2023-08-24 09:32:01 +02:00
Marco a3c7df2b3e Remove unused latch timer functions 2023-08-17 16:58:22 +02:00
Marco 8399dcd3a3 Change macro latching behavior
Latch macro menu when macro button is long pressed
Unlatch macro menu when macro button is pressed again
2023-08-17 16:57:14 +02:00
k5jae c1a9db22b7 Made Brightness setting optional based on HW capabilities 2023-08-16 20:46:25 +02:00
marco 60735822db Align Macro menu fm and M17 2023-07-21 19:27:20 +02:00
Silvano Seva 28122a3bf3 Moved gps.h to peripherals 2023-07-21 08:32:26 +02:00
Silvano Seva 009930f914 Moved get/set of current time to platform interface API 2023-07-21 07:58:29 +02:00
Silvano Seva 498f959798 Removed CPS flash backup and restore (actually unused) and hidden its UI menu entry
CPS flash backup and restore will be implemented via rtxlink/FMP, removed
current implementation which was never actually used. Code for backup and
restore UI menu entry kept for now.
2023-07-20 07:00:54 +02:00
Silvano Seva 8019b29947 Moved the setBacklightLevel() API function from platform.h to display.h 2023-07-14 12:26:47 +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
marco ec62bda31a Fix CTCSS tone not correctly set when decreasing 2023-06-30 10:59:27 +02:00
Silvano Seva e5b3ea1bed Set default opmode to M17 in cps_getDefaultChannel() when compiling for Module17 2023-06-15 08:21:38 +02:00
Silvano Seva f3f36fc2ae Module17: quick and (very) dirty implementation of shutdown menu for hardware rev 0.1e 2023-06-15 08:16:53 +02:00
Silvano Seva 5c3e8fed80 Module17: reorganized the "info" menu entry, removed the unused fields 2023-06-14 21:51:31 +02:00
Silvano Seva 1afd868d64 Renamed "lcd_type" field of hardare info struct to "hw_version" 2023-06-14 21:30:52 +02:00
marcoSchr 4ee4cb656d
Check if in M17 mode before entering destination callsign edit 2023-06-13 09:02:50 +02:00
Silvano Seva cadec3dfd4 Default UI: implemented setting of M17 CAN 2023-05-29 22:12:40 +02:00
Silvano Seva 2f0d56a8e0 Moved M17 destination callsign directly inside radio state data structure 2023-05-29 22:12:40 +02:00
Silvano Seva 423183700c Moved M17 CAN to settings 2023-05-29 22:12:40 +02:00
Silvano Seva feaab4a965 Module17 UI: fixed a couple of compiler warnings and implemented reset to defaults of settings. 2023-05-29 22:12:40 +02:00
Silvano Seva f038603bed Module17 UI: small improvements to callsign input 2023-05-29 22:12:40 +02:00
Silvano Seva 40b82e3169 Module17 UI: using only left/right button to change all the numeric values 2023-05-29 22:12:40 +02:00
Silvano Seva e5d6d8ebde Module17 UI: cleaned up dead code of unused menu entries 2023-05-29 22:12:40 +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 e93b461beb Added phase inversion setting to M17 modulator 2023-05-29 22:12:40 +02:00
Mathis Schmieder adc916dbca Added CAN setting 2023-05-29 22:12:40 +02:00
Mathis Schmieder cddf8e1c1f Save contrast settings on Module 17 2023-05-29 22:12:40 +02:00
Mathis Schmieder 89aedef3ae Implemented non-volatile memory for settings on Module 17 2023-05-29 22:12:40 +02:00
Mathis Schmieder 3f849bd8a1 Module17 UI: call sign input using arrows 2023-05-29 22:12:40 +02:00
Mathis Schmieder bd8f0d70c7 Added RX/TX inversion and mic gain setting on Module 17 UI 2023-05-29 22:12:40 +02:00
Mathis Schmieder f32255c258 Implemented softpot settings UI for Module 17 2023-05-29 22:12:40 +02:00
Wojciech Kaczmarski 22e9d8ce48 Module 17 UI: layout and main screen 2023-05-29 22:12:40 +02:00
Silvano Seva d8c4ba4420 Base sources for Module 17 UI 2023-05-29 22:12:40 +02:00
Silvano Seva 76ded06751 Split UI sources in a default one for the radios and the Module17 one. 2023-05-29 22:12:40 +02:00
marco 7ce72d8325 Fix default channel index
it should be 0 instead of 1
2023-05-29 08:49:04 +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 ae8bba88b6 Updated voice prompt for UTC timezone to support also half hour values, thanks to Joe VK7JS. 2022-10-31 18:04:08 +01:00
Silvano Seva ce1dc202ae Added support for half-hour timezones, moved datetime_t struct fields from bitfields to full 8-bit variables, added function to adjust the off-range fields of a datetime_t struct. 2022-10-31 11:41:54 +01:00
Silvano Seva f26afc42e5 Small reorganization and cleanup of splash screen code, fixed bug causing audio path for voice prompts never being released at vp end 2022-10-31 08:41:31 +01:00
vk7js d5d49fbbb2 Refactored to decouple vp_init from speaking of splash screen. 2022-10-31 08:41:31 +01:00
Silvano Seva 16d750c55c Excluded announcement of time and date settings for devices without RTC 2022-10-31 08:41:31 +01:00
vk7js 438c224a2a Fixed announcement of initial digit when entering rx freq in VFO mode. It once worked but somehow got clobbered along the way. 2022-10-31 08:41:31 +01:00
Silvano Seva dd30c899df Added a 50ms startup delay to voiceprompts. This provides a workaround to fix cracking sounds when changing rtx parameters on MD-UV3x0. 2022-10-31 08:41:31 +01:00
Silvano Seva f24699f14e Fixed bug in M17 demodulator causing it to sometimes take more than 20ms to process a block of baseband samples when, in unlocked state, a valid syncword is searched. 2022-10-31 08:41:31 +01:00
Silvano Seva c6a40a9625 Ensure proper syncronization between codec2 decode thread and output stream when the former is started 2022-10-31 08:41:31 +01:00
Silvano Seva 0692bea269 Partial fix for speaker pop when a voiceprompt begins 2022-10-31 08:41:31 +01:00
Silvano Seva 5ee3a2e9f0 Reorganised codec_pushFrame and codec_popFrame functions for true non-blocking behaviour 2022-10-31 08:41:31 +01:00
Silvano Seva 9d021b7557 Fixed bug in M17 modulator and demodulator making them not releasing their audio paths on termination thus locking up the thread on M17 mode re-entering. 2022-10-31 08:41:31 +01:00
vk7js 12932db37c Refinement to last checkin: only clear function latch without beep for PTT, not for open squelch. 2022-10-31 08:41:31 +01:00
vk7js f61313638f Cancel function key latch if ptt is pressed (without playing the latch off beep). 2022-10-31 08:41:31 +01:00
vk7js 793a76d1ea When PTT is pressed, stop any voice prompt or beep in process. 2022-10-31 08:41:13 +01:00
Silvano Seva f9228ec23c Halved the additional output gain for MD3x0 radios inside codec2 module to avoid sound distortion when voice prompts are played. 2022-10-28 09:47:47 +02:00
Silvano Seva 71a15c2cfb Fixed bug in voice prompts audio path management causing no audio output in case of rapid key sequences. Improved managment of audio path release in voice prompts module. 2022-10-28 09:47:47 +02:00
Silvano Seva 2c1401de86 Moved voiceprompts audio management to audio path system 2022-10-28 09:47:47 +02: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 edf864337a Moved audio management in FM opmode handler to audio path system 2022-10-28 09:47:47 +02:00
Silvano Seva 25caffde6b Linked audio path manager with low-level interface API to setup and release the audio paths. Minor refactoring of audio path manager code. 2022-10-28 09:47:47 +02:00
Silvano Seva 6d9ad2b947 Implementation of audio path manager 2022-10-28 09:47:47 +02:00
vk7js ec6519425c Added call to vp_announceCTCSS to macro moni+2 branch because increasesto code were not speaking, only decreases. 2022-10-28 09:47:47 +02:00
Silvano Seva 5fb11322ac Code cleanup and refactoring of voice prompts code 2022-10-28 09:47:47 +02:00
vk7js c7c9c3afc5 Fixed issue of m17 destination not being spoken in summary (long hold f1) if set to broadcast. 2022-10-28 09:47:47 +02:00
vk7js 7cc287643e Added Broadcast to string table for use with voice prompts. Cleaned up hash key announcement. 2022-10-28 09:47:43 +02:00
vk7js 3ea4431b35 Added support for the speaking of callsign when you hit hash key.
Fixed issue of callsign and M17 settings strings being in the wrong order in the string table causing the voice prompts to be switched.
2022-10-28 08:30:47 +02:00
vk7js c2f349c93d More improvements to auto GPS screen readout
Read fix quality and type changes.
Read satellite count changes.
Reduced minimum time between readouts to 8 seconds.
say km/h instead of kmh  for speed.
2022-10-28 08:30:47 +02:00
vk7js cf45f7ee81 Fixed missing gps updates due to recording an update even when one wasn't detected, this meant countdown would restart errantly. 2022-10-28 08:30:47 +02:00
vk7js dbc86ea392 Give leeway for nw/ne/sw/se within a few degrees like n/e/s/w. 2022-10-28 08:30:47 +02:00
vk7js 8c9f034b93 Adjusted sensitivity of auto announcement for GPS data. Now only announce for altitude changes of at least 5m, speed changes of at least 1 KM/h and direction changes of at least 1 degree. 2022-10-28 08:30:47 +02:00
vk7js 7cc0c6455c Now better handle directions, and speak prior to other info as most important.
Handle 8 cardinal points north, east, south, west, north east, south east, south west and north west.
2022-10-28 08:30:47 +02:00
vk7js 4ba9b3ec34 Fixed memory overrun caused by buffer being too small.
Also fixed satellite count which got broken when I changed the GPS info flags to add more.
2022-10-28 08:30:47 +02:00
vk7js fbc4e380b3 Moved latitude and longitude to after direction in announcement because these are less meaningful than the other parameters. 2022-10-28 08:30:47 +02:00
vk7js f1639159bf fixed issue of auto announcement clobbering manual request for summary.
Fixed a couple of issues with direction announcement.
2022-10-28 08:30:47 +02:00
vk7js 4edef678c1 fixed south and west. 2022-10-28 08:30:47 +02:00
vk7js 4e1689df51 Cleaned up GPS direction info so we say north, east, south, west when the tmg is within a close enough range. 2022-10-28 08:30:47 +02:00
vk7js 5829df6dd3 Now read speed, altitude and direction changes on the GPS screen automatically with a forced minimum of 10 seconds between readings to avoid a bit of hysterisis .
Can still get full summary on long hold f1.
2022-10-28 08:30:47 +02:00
vk7js 3ba094f633 Minor cleanup of beep code. 2022-10-28 08:30:47 +02:00
vk7js 104f18d9e9 Added vp_beepSeries to play a melody.
Now play melody on power up if vp level set to Beep.
2022-10-28 08:30:47 +02:00
vk7js dc285ab023 Moved beep definitions into header beeps.h. 2022-10-28 08:30:47 +02:00
vk7js d8fa0465fb Fixed following bug:
1. hit enter to go to banks menu.
2. hit escape.
3. hit enter again and radio does not announce banks menu because it was the last menu active.
Now reset the menu tracking variables on Escape.
2022-10-28 08:30:47 +02:00
vk7js da7dfe63b2 Avoid calling beep if we know the voice will announce something since it will be
canceled and most likely generate an unwanted click.
2022-10-28 08:30:47 +02:00
vk7js 91d19e809e Fixed issue of menus not reading at vp level 1. 2022-10-28 08:30:47 +02:00
vk7js eb89f5a55a Now play generic beep on any key press as well as different tones when navigating the menu, when menu item wraps, and when function key latches and unlatches if voice prompt level is set to beep. 2022-10-28 08:30:47 +02:00
vk7js a1e302b19d Got beeps working so long as you don't have ctcss set.
Reduced durations to sensible values.
2022-10-28 08:30:47 +02:00
vk7js 3c20a5282e Fixed nasty popping between every voice prompt and after every silence.
When retrieving the codec2 data, ensure it is an exact multiple of codec2 frames and always discard the very last frame.
2022-10-28 08:30:47 +02:00
Silvano Seva 80f6fe2289 Stopping audio codec at the and of each voice prompt 2022-10-28 08:30:47 +02:00
vk7js 0298aa897b Implemented beeps on MD-UV3x0 platform driver. 2022-10-28 08:30:47 +02:00
vk7js 32fd910e64 Fixed warnings. 2022-10-28 08:30:47 +02:00
vk7js 70ba324ef3 Fixed menu announcements so that menu item names are always spoken. 2022-10-28 08:30:47 +02:00
vk7js 6a56fe3d3a Fixed satellite count readout. 2022-10-28 08:30:47 +02:00
vk7js a71a06c57a 1. Renamed beepTick to beep_tick for consistency.
2. Made beep_tick static.
3. call beep_tick from top of vp_tick because in its prior location it might
not actually be called.
2022-10-28 08:30:47 +02:00
vk7js a081964ac8 Fixed Backup and Restore menus as follows:
1. Fixed issue of voice not reading backup or restore messages but instead
stuttering indefinitely.
2. Can now press cancel to exit the menu so long as you haven't pressed PTT to
start the process.
2022-10-28 08:30:47 +02:00
vk7js f8bfc7fb13 Added mechanism for specifying exactly what is read in the summary. 2022-10-28 08:30:47 +02:00
vk7js 495b721231 Fixed setting of CTCSS and tone so that one can rapidly change tone without hearing the word "tone", "receive tone," "transmit tone" etc prior to each tone value. 2022-10-28 08:30:47 +02:00
vk7js d622080cfe Do a better job of determining when to say Menu.
In info screen, avoid very rapid announcements of battery fluctuations.
For same menu name, only read value changes once per second for automatic reading.
2022-10-28 08:30:47 +02:00
vk7js c9ce41a999 Initial beep implementation.
Function latch will play high beep when latched and low beep when latch times out.
Menus will play a high beep when you arrow through them and a low beep when you reach the first item.
All keys should play a generic beep sound but this has not been implemented yet.
2022-10-28 08:30:46 +02:00
vk7js 95b7707d87 Implemented speech feedback for setting UTC timezone.
Added speaking of negative sign for vp_queueInteger (plus is assumed if not negative).
2022-10-28 08:30:46 +02:00
vk7js 9a250ec994 Added speech feedback to settings/display/timer menu. 2022-10-28 08:30:46 +02:00
vk7js 0138d843b1 Improved time/date entry:
1. Now give format as dd/mm/yy before date and hh:mm before time.
2. Say the slash immediately after the 2nd and 4th digits are entered in the date and the colon immediately after the 2nd digit of the time.
3. Removed speaking of the 2nd colon in the time since seconds input is disallowed.
2022-10-28 08:30:46 +02:00
Silvano Seva e5de5b96a3 Fixed announcement of power level both in settings menu and channel summary 2022-10-28 08:30:46 +02:00
vk7js 0452bd0f10 Added voice feedback for setting the time and date. 2022-10-28 08:30:46 +02:00
vk7js ac7a2b94a9 Adjusted vp_anounceBuffer to distinguish between a callsign buffer and a regular name buffer. 2022-10-28 08:30:46 +02:00
vk7js a1d782b16c Fixed backspacing text input so that it reads the char backspaced correctly. 2022-10-28 08:30:46 +02:00
vk7js 11132e4949 Speak original callsign if escape is pressed to cancel edit from m17settings edit mode. 2022-10-28 08:30:46 +02:00
vk7js c0eba3866e Added voice feedback for the M17 Settings Menu:
1. Added vp_announceBuffer to speak a prompt, edit mode and string buffer.
2. Added logic to the vp_announceScreen for m17Settings read-only mode.
3. Added logic for handling edit mode.
4. Removed vpCaps flag from several places because it is irrelevant when input only supports caps.
2022-10-28 08:30:46 +02:00
vk7js 579ce7baa5 Removed the word "banks" from channel summary since name of bank or "all channels" is sufficient by itself. 2022-10-28 08:30:46 +02:00
vk7js 5ed0121780 Fixed announcement of channel number/name in summary and when changing channel. 2022-10-28 08:30:46 +02:00
vk7js 30e8671044 If there is no GPS fix, do not announce lat, long, ... 2022-10-28 08:30:46 +02:00
vk7js 9f52c98c2f Removed unnecessary trailing zeros from lat/long announcement. 2022-10-28 08:30:46 +02:00
vk7js 2139f5e391 Refactored to add generic function for speaking int settings. Made brightness and contrast prompt use this. 2022-10-28 08:30:46 +02:00
vk7js 04e7f044ff Added announcement of Brightness when changing from the Settings/Display menu. 2022-10-28 08:30:46 +02:00