Commit Graph

299 Commits

Author SHA1 Message Date
Silvano Seva 5840f459fa Renamed UIStrings.h/.c to ui_strings.h/.c and refactored their content 2022-10-28 08:30:46 +02:00
Niccolò Izzo 1f71789a9d Apply clang-format 2022-10-28 08:30:46 +02:00
vk7js 29de1d36d4 Added a couple of comments and added whitespace between a couple of functions. No code changes. 2022-10-28 08:30:46 +02:00
vk7js bec9ec0218 Added call to ReleaseFunctionLatchIfNeeded to status event branch of fsm so that the function latch will be released when needed without having to wait for a key press. 2022-10-28 08:30:46 +02:00
vk7js 9038745b6f extracted logic for testing if the function key is latched into its own function for readability. 2022-10-28 08:30:46 +02:00
vk7js bc7ce57f9b Reworked function latch. Now, the latch is silently released on the next key press event which is outside the timeout. 2022-10-28 08:30:46 +02:00
vk7js da935ff710 Added function menu latch.
1. If the moni key is long pressed by itself (no digit), function key latches.
2. It remains latched for 3 seconds.
3. If a subsequent key is pressed during this time, the timer is restarted at 3 seconds again, allowing the user to say increase the ctcss code while keeping the function latched.
4. If no key is pressed, the timer is allowed to lapse and the function unlatched.
2022-10-28 08:30:46 +02:00
vk7js 895a5ce780 Fixed error in AnnounceMenuIfNeeded, it was speaking the name twice rather than the name and value. 2022-10-28 08:30:46 +02:00
vk7js 6e4af40346 hooked up warning messages. May need tweaking.
Msg may repeat on keyup.
2022-10-28 08:30:46 +02:00
vk7js 7cd3f1d49a Added announceSettingsTimeDate and hooked up to f1 on that screen. 2022-10-28 08:30:46 +02:00
vk7js b1c07e3d3f Added speech for About screen. 2022-10-28 08:30:46 +02:00
vk7js 8527b8a6ef Add GPS voiceprompts announcing
Removed flag parameters from summary and GPSInfo,
hooked up the GPS info so that if the GPS screen is active,
long hold f1 will read the GPS summary and f1 will repeat the last
voice prompt like on the VFO and channel screens.
2022-10-28 08:30:46 +02:00
vk7js 46e3900462 corrected gps summary to use a stingized float for the compass bearing.
Also fixed another warning.
2022-10-28 08:30:46 +02:00
vk7js c24af62000 added more to GPS summary and fixed a couple of warnings. 2022-10-28 08:30:46 +02:00
vk7js 74ab9cbbf6 Fixed voice menu, it will now display as: Voice off, Voice Beep, or Voice 1 through 3. 2022-10-28 08:30:46 +02:00
vk7js 206e827aeb Implement three levels of verbosity
Implemented the three levels of verbosity, besides none and beep:
1. Low: menus will speak but frequency and channel changes will just beep.
2. Medium: everything will speak but extra descriptions are eliminated except where ambiguity might occur.
3. High: Like medium except extra descriptions are spoken unles rapidly keying through menus in which case only the value will be spoken.
2022-10-28 08:30:46 +02:00
vk7js 16abf941d4 Added Voice menu to settings.
The Voice menu has two options:
Level: off, beep, level 1, level 2, level 3,
Phonetic: off, on.
2022-10-28 08:30:46 +02:00
vk7js 07d971ecfb Hooked up repeat last voice prompt and summary to f1 if vpLevel is higher than beep. 2022-10-28 08:30:46 +02:00
vk7js 537a20eef5 Add prompts for brightness and squelch
Added support for announcing macros for adjusting brightness and squelch.
Added voiceprompt for squelch.
2022-10-28 08:30:46 +02:00
vk7js e74eccfffd Added support for macro 6 announcing the cycling of radio mode. 2022-10-28 08:30:46 +02:00
vk7js d19e0d57ec Added bandwidth and power announcements
Added bandwidth and power announcement for both macro and summary.
Added new voice prompts for bandwidth and power.
2022-10-28 08:30:46 +02:00
vk7js 68926a72c4 Began work on the macros screen.
Toggling tone or enabling/disabling (macros 1 and 2) now supported.
Added new voice prompt for tone.
2022-10-28 08:30:46 +02:00
vk7js 4098baa5a8 When speaking a menu and its value, only speak the name if a prompt is not in progress. 2022-10-28 08:30:46 +02:00
vk7js 0ab179a701 use constant for string length for prior menu name and value.
Also reset prior value if name changes.
2022-10-28 08:30:46 +02:00
vk7js 0a410fe336 Speak only when values change
Changed the function which determines if we should speak the new menu
item to make it also check if a menu item's value changes.
2022-10-28 08:30:46 +02:00
vk7js 39cbfbe66f Added a function which will look up a string in our string table and, if found, returns its offset and use it in order to locate the equivalent voice prompt.
Added logic to see if the current menu index has changed.
Added a function to speak the current menu item and its value if the menu index changes.
2022-10-28 08:30:46 +02:00
vk7js e691f37f88 Extracted and added a few more strings to the string table and created voice prompts for those strings. 2022-10-28 08:30:46 +02:00
vk7js 46fab4642b Make VFO accessible through voice prompts
Added calls to various voice prompt functions in the UI so that VFO is basically accessible.
1. When entering digits in VFO mode.
2. When digits exceed 3, point will be announced.
3. When user enters sufficient digits to move from RX field to TX field, or if user presses Enter to move to TX field.
4. When both rx and tx frequencies have been completed.
2022-10-28 08:30:46 +02:00
vk7js d68f01ffbc Insert voice prompt utility function in UI code
Began calling voice prompt utility functions from places such as:
1. arrowing up and down in VFO mode (read new frequencies)
2. up and down in memory mode: read new channel name.
3. up and down in VFO input mode: announce receive or transmit,
4. when starting to enter a frequency: announce receive and the first digit.
2022-10-28 08:30:46 +02:00
vk7js 2373d8374c more string extraction. moved prompt_fm and prompt_dmr to string table as they are needed by the UI. 2022-10-28 08:30:46 +02:00
vk7js 901db10c87 Next round of changes to add literals to string table and voice prompt wordlists. 2022-10-28 08:30:46 +02:00
vk7js 10ddd88f69 Cleanup code to adhere more to coding standard.
Got it compiling.
2022-10-28 08:30:46 +02:00
vk7js d5568b8ab3 Adding voice prompts skeleton. 2022-10-28 08:30:46 +02:00
vk7js 7e660f2fe8 Starting to refactor UI to use a string table in preparation for adding voice prompt support. 2022-10-28 08:30:46 +02:00
Niccolò Izzo b3a861a47c Usability improvements
Remove DMR from macro menu until we actually support it.
Remove print of M17 source callsign
Bank and channel visualization is more compact to make room for
additional data on a single screen.
Refactor mode screen to fit all data into a single screen.
2022-10-28 08:30:46 +02:00
tarxvf 37c9e0dbc3 macro menu mode change: catch invalid states 2022-10-18 14:07:48 +02:00
Niccolò Izzo 25d6c20ef0 Reorder macro menu functions
Swapped brightness and tone increase and decrease to be more intuitive.
2022-09-27 22:35:50 +02:00
Niccolò Izzo 5ff74aaaa7 Add FM tone decrease Macro
Reorganize macro menu buttons to enable tone decrease and eliminate
channel save as it was not yet implemented.
2022-09-27 22:35:50 +02:00
Niccolò Izzo 6a9ce50f6b Usability improvements
Remove DMR from macro menu until we actually support it.
Remove print of M17 source callsign
Bank and channel visualization is more compact to make room for
additional data on a single screen.
Refactor mode screen to fit all data into a single screen.
2022-09-27 22:35:50 +02:00
Silvano Seva 94baec6981 Changed the granularity of VFO frequency input mode from tens to hundreds: this reduces the number of digits to be inserted to seven and avoids the line to overflow towards the bottom 2022-09-02 07:54:32 +02:00
Silvano Seva 48cd81ee7c Changed to 'static' some variables inside UI module 2022-08-28 11:49:10 +02:00
Silvano Seva b26d783429 Small optimisation of UI management: perform an update and render of the graphics only when necessary 2022-08-28 11:49:03 +02:00
Silvano Seva 84d66ca1b3 Changed parameters of ui_pushEvent(): now it accepts event type and payload instead of a single element, this cleans the code up a little bit 2022-08-10 18:05:02 +02:00
Silvano Seva f1dbfbfe1f Fixed compilation warnings 2022-08-04 22:22:56 +02:00
Silvano Seva fa58b99c9e Fixed text blink in settings restore menu 2022-07-11 10:09:18 +02:00
Silvano Seva 5f40ceceb3 Added field to state data structure containing the current operating state of the device. Implemented clean shutdown of all the threads. 2022-07-02 10:47:19 +02:00
Silvano Seva 4528e102a2 Moved the UI event queue inside the UI engine itself, UI FSM update now becomes a periodic task 2022-07-02 10:28:28 +02:00
Silvano Seva 40337e7c97 Removed radio model name from UI info page 2022-07-02 10:28:28 +02:00
Silvano Seva 2fc89bf583 Renamed 'HAS_GPS' and 'HAS_RTC' to, respectively, 'GPS_PRESENT' and 'RTC_PRESENT' 2022-07-02 10:28:28 +02:00
Silvano Seva 6d10f52b5b Clean termination of all the threads on device shutdown 2022-07-02 10:28:28 +02:00
Silvano Seva bc0c80edf6 Displaying of current heap usage in info page 2022-07-02 10:28:28 +02:00
Silvano Seva 52ead401bd Reorganised GPS task to make it a non-blocking task to be called periodically 2022-07-02 10:28:28 +02:00
Silvano Seva d16eb04696 Reorganised data structures and functions to manage date and time 2022-07-02 10:28:28 +02:00
Silvano Seva 3cc5852ef3 Refactored keyboard thread by moving the keypad scan logic to a dedicated function inside input.h 2022-07-02 10:28:28 +02:00
Jeff Gustafson 1f56018e52 Added space character to UI text input mode. 2022-06-17 12:15:00 +02:00
Wojciech Kaczmarski e5fbb77cd2 Fixed displayed voltage error 2022-06-12 11:52:17 +02:00
Niccolò Izzo 521865f489 Fix bug in new cps code
Fixed some bugs in the write and insert functions of the new cps format
functions, currently available only on libc implementations.
Add unit test to ensure that no regressions happen.

TG-428
2022-06-01 16:05:36 +02:00
Niccolò Izzo ae12a2126a Implement codeplug read and write functions
Implemented remaining codeplug functions to read, write and insert
codeplug entries. Fix bugs in ui code. Add unit tests.

TG-428
2022-06-01 16:05:35 +02:00
Niccolò Izzo dc250a25d6 Implement new codeplug interface
The new codeplug interface was implemented for linux and retrofitted to
all the existing OpenRTX platforms. Limited unit testing was also
implemented.

TG-428
2022-06-01 15:59:27 +02:00
Silvano Seva cbd3922325 Cleanup and reorganisation of state header file, new OpenRTX CPS data structure 2022-06-01 15:04:17 +02:00
Silvano Seva da22d6ff64 Separated interface for CPS loading from the non volatile memory one 2022-06-01 14:56:33 +02:00
Silvano Seva c3cfaba4b2 Renamed zones into banks to align to M17 codeplug naming convention. 2022-06-01 14:56:22 +02:00
Niccolò Izzo 6588a6718e Add M17 namespace in M17 related source files
Now M17 source files reside in the M17 namespace, the OPMODE_ prefix
was added to all opmode enums to avoid a name clash.
2022-05-27 21:48:46 +02:00
Silvano Seva 5ffd6e5c43 Fixed compilation errors with MD-9600 and Module 17 targets 2022-03-24 19:09:00 +01:00
Silvano Seva ab3d148449 Implemented activation of external flash backup and restore via menu entries 2022-03-22 15:10:52 +01:00
Niccolò Izzo 48824accb9 Add flash backup and restore menu
Add flash backup and flash restore entries to menu system, to access
these functionalities from the radio itself.

TG-428
2022-03-13 00:21:52 +01:00
Silvano Seva a5209d6f52 Modified range for display backlight level from 0 - 255 to 0 - 100, set minimum allowed level to 5. 2022-02-26 15:45:41 +01:00
tarxvf 9297c08b05
Add a menu for clearing settings and vfo to sane defaults (#67) 2022-02-26 12:42:28 +01:00
Alessio Caiazza d04180c0df Rename brightness_timer into display_timenr 2022-01-03 14:51:22 +01:00
Alessio Caiazza d742d027b7 Display timer UI 2022-01-03 14:51:22 +01:00
Alessio Caiazza 269420c2be Load standby timer from settings 2022-01-03 14:51:22 +01:00
Alessio Caiazza fefe2f6de0 Exit standby when the squelch is open 2022-01-03 14:51:22 +01:00
Alessio Caiazza ade9c47f71 Implement platform_setBacklightLevel for linux 2022-01-03 14:51:22 +01:00
Alessio Caiazza 6e3fda2a70 PTT terminates standby
Also the keypress getting out of standby is ignored unless is the MONI
key to activate the MACRO menu
2022-01-03 14:51:22 +01:00
Alessio Caiazza f9751c9867 Send the screen in standby after 30s idle 2022-01-03 14:51:22 +01:00
Alessio Caiazza 78a2b02c91 Show TX frequency during transmission 2021-12-23 14:52:25 +01:00
Alessio Caiazza 91486291b6 MD380: adjust squelch with left and right keys 2021-12-23 14:52:25 +01:00
Silvano Seva 756812ca31 Created function for writing settings and VFO status to NVM, starting of temporary implementation writing data to the MCU's internal flash 2021-11-08 22:22:26 +01:00
Silvano Seva c91e306026 Reorganised settings data structure 2021-11-08 21:44:33 +01:00
Federico Amedeo Izzo 1e19574fd6 Add destination callsign input for M17, Add -/ to keypad input 2021-10-09 18:53:28 +02:00
Niccolò Izzo 65a632054a Disable CTCSS tones in M17 mode
Removed CTCSS modulation for M17 mode, removed FM analog specific
settings in macro menu such as tone selection, tone enable and tx
bandwidth.
2021-10-08 16:02:03 +02:00
Silvano Seva 7db53b8bdc Fixed some compiler warnings 2021-10-06 21:30:45 +02:00
Federico Amedeo Izzo 990f5e8ce6 UI: Fix level meter and set it to platform mic level 2021-09-26 18:38:29 +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
Federico Amedeo Izzo c04ceb9a8d Add M17 radio mode to UI 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 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
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
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 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 4b30a66735 Added 'platform_pwrButtonStatus' API function, which returns the current status of the power button/knob. Implemented power on/off mechanism on MD-9600 2021-04-11 12:38:20 +02:00
Federico Amedeo Izzo a42354a204 Remove Messages menu as it's not implemented yet 2021-04-11 10:06:12 +02:00
Federico Amedeo Izzo 58f4f5dcaf Print git commit or tag inside Info menu 2021-04-11 09:56:46 +02:00
Federico Amedeo Izzo 341c46a263 Now state.time is UTC, add functions to convert from UTC to local and reverse 2021-04-10 15:39:59 +02:00
Silvano Seva cdaf3f38dd Renamed MDx display, keyboard and spiFlash drivers to MD3x to adapt the changes made to meson.build also to MD-9600. Fixed missing API change in ui_main. 2021-04-10 12:37:45 +02:00
Federico Amedeo Izzo 2d3d932111 Print battery voltage instead of battery icon for platform without battery 2021-04-10 12:16:21 +02:00
Federico Amedeo Izzo 341ab84ce9 Converted `gfx_print()` from char * pointer to format string 2021-04-10 11:10:52 +02:00
Federico Amedeo Izzo 9fb7ace303 Fix swapped UP/DOWN keys in Display Settings 2021-04-04 20:36:23 +02:00
Niccolò Izzo d95e0a1513 Print signed GPS longitude as unsigned+direction 2021-03-24 08:54:46 +01:00
Federico Amedeo Izzo 42153be082 Macro Menu: Change squelch also with UP and DOWN 2021-03-21 09:14:44 +01:00
Federico Amedeo Izzo 3da311ee38 UI: Change contrast steps to 4 to match GD-77 HW contrast range (0-63) 2021-03-14 11:21:39 +01:00
Silvano Seva 056c53b35d Made UI fsm skip low battery check when TX is enabled to avoid spurious triggers of low battery alert caused by the high current absorption from RF PA 2021-02-24 21:00:30 +01:00
Niccolò Izzo eb0a5ee9f0 Fix compass orientation, speed formatting 2021-02-21 20:38:54 +01:00
Federico Amedeo Izzo 35bde9bccb Add state_terminate() that saves settings to flash 2021-02-21 16:44:31 +01:00
Federico Amedeo Izzo 0b14e36bdb Fix About screen on GD-77 2021-02-20 16:25:06 +01:00
Federico Amedeo Izzo 820ac73d08 UI: Add menu_h and menu_font layout parameters 2021-02-20 16:03:37 +01:00
Federico Amedeo Izzo 9c47797ff0 UI: Fixed mismatch between visible and selectable menu elements 2021-02-20 15:47:41 +01:00
Federico Amedeo Izzo c644e8db1d UI: Remove position parameter from menu list 2021-02-20 15:35:19 +01:00
Federico Amedeo Izzo 711d8426c9 Add 10pt font. Reduce frequency line on GD-77 to avoid overlap 2021-02-20 15:14:35 +01:00
Federico Amedeo Izzo 5bb200933b UI: Add missing GPS ifdefs 2021-02-17 20:02:53 +01:00
Federico Amedeo Izzo cbe657cd77 UI: Fixed GPS OFF bug caused by ambiguous enable/disable code 2021-02-16 22:22:20 +01:00
Federico Amedeo Izzo 9de0857ff4 UI: Add switch cases default options 2021-02-16 22:09:28 +01:00
Federico Amedeo Izzo 75c1f13882 UI: Replaced strcmp with switch case to fix GPS/menu bug 2021-02-15 22:02:09 +01:00
Niccolò Izzo 479eda3d96 Fix altitude print 2021-02-15 13:54:23 +01:00
Federico Amedeo Izzo 9255dfb969 Disable GPS functions for radios that don't support a GPS chip 2021-02-14 17:49:23 +01:00
Federico Amedeo Izzo 663673b697 UI: Fix compilation warnings 2021-02-14 14:04:01 +01:00
Federico Amedeo Izzo 619cda7aeb Turn off GPS when it's turned off in settings 2021-02-14 13:55:33 +01:00
Federico Amedeo Izzo 31552ff2b2 Consider RTC time UTC instead of local time, applying timezone 2021-02-13 22:11:25 +01:00
Federico Amedeo Izzo ebe87b22e2 UI: Add menu edit mode. Small refactoring 2021-02-13 21:29:25 +01:00
Federico Amedeo Izzo 66af402e83 Move settings from UI to State 2021-02-13 20:32:53 +01:00
Federico Amedeo Izzo d66b59694a UI: Add GPS settings menu 2021-02-13 17:23:16 +01:00
Federico Amedeo Izzo a803958c61 UI: Menu scrolling logic refactoring, add GPS Settings entry 2021-02-13 16:35:03 +01:00
Federico Amedeo Izzo 0a04650d58 UI: Use more compact representation for menu entries 2021-02-13 16:14:44 +01:00
Niccolò Izzo 7577b4d6ae Improved algorithm for keeping track of active satellites 2021-02-13 13:27:06 +01:00
Niccolò Izzo 1f9793d268 Complete GPS compass implementation
Now the GPS screen compass has a needle, which point to the current
movement direction.
2021-02-13 12:43:48 +01:00
Niccolò Izzo 3017ff1f3a Reduced smeter width, fix max RSSI representation 2021-02-13 11:24:05 +01:00
Niccolò Izzo a0814fd5d1 Better rendering when no fix is present 2021-02-13 11:23:40 +01:00
Niccolò Izzo 586b524625 Add GPS compass stub 2021-02-13 11:23:13 +01:00
Niccolò Izzo ec06b14618 Add GPS satellites snr bar graph 2021-02-11 21:27:03 +01:00
Niccolò Izzo 0cf86ce6ea Add GPS UI draft 2021-02-11 09:44:41 +01:00
Silvano Seva 1cd0efdee1 Fixed compilation warnings and code refactoring pass 2021-02-03 14:50:00 +01:00
Silvano Seva 1840c1aeb5 Moved 'rtx.h' out of 'interfaces' folder, since it now becomes a cross-platform component 2021-02-03 14:30:06 +01:00
Federico Amedeo Izzo 83d91b555d Add hwInfo in Info menu 2021-02-02 21:45:10 +01:00
Federico Amedeo Izzo 65b5c0b002 Info menu: Fixed battery percentage 2021-02-02 21:10:48 +01:00
Federico Amedeo Izzo 61ad0879c5 CPS-UI: Make channels, zones and contacts 1-based to fix zone bound 2021-02-02 20:52:37 +01:00
Federico Amedeo Izzo 08a44375fc UI: Fix macro menu line 2 height 2021-02-02 20:08:15 +01:00
Federico Amedeo Izzo b7ae2ba86d UI: Fix VFO Input line position 2021-02-02 19:55:03 +01:00
Federico Amedeo Izzo 2728dbcce1 UI: Use separate font setting for VFO input and Time to
avoid inheriting asymmetric fonts from the main screen
2021-02-02 12:54:09 +01:00
Niccolò Izzo 7e0500d3a5 Improved Smeter rendering in MACRO menu 2021-02-01 23:33:49 +01:00
Federico Amedeo Izzo 6fdb6b8890 UI: Fix zone elements indexes 2021-02-01 22:30:25 +01:00
Federico Amedeo Izzo 70bce5a5fc UI: Fixed zone menu bug causing last zone to be replicated 2021-02-01 21:47:10 +01:00