Commit Graph

605 Commits

Author SHA1 Message Date
Federico Amedeo Izzo 42153be082 Macro Menu: Change squelch also with UP and DOWN 2021-03-21 09:14:44 +01:00
Silvano Seva 2bde981222 Removed speaker 'POP' on squelch opening and when starting TX with squelch open 2021-03-20 11:51:35 +01:00
Silvano Seva c1abeefd67 Implemented volume control for audio coming from radio stage on MD-UV3x0 and fixed a compilation warning regarding non-const access to a const variable 2021-03-20 11:51:35 +01:00
Silvano Seva a5120ffddc Radio driver for MD-UV3x0 targets 2021-03-20 11:51:35 +01:00
Silvano Seva 01ea1a9b3f Made the main() thread run the UI task, thus removing the need for a dedicated one 2021-03-14 17:17:24 +01:00
Silvano Seva 952f5afc3c Fixed squelch issue on GDx which made it briefly opening whenever an RTX parameter changed 2021-03-14 16:54:07 +01:00
Federico Amedeo Izzo 92e0abafa2 Display: Set default contrast at boot. Improve default contrast for GD-77 2021-03-14 11:35:45 +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
Federico Amedeo Izzo 1637159329 Completely disable persistence until we have a proper flash backup/restore method 2021-03-13 23:03:37 +01:00
Federico Amedeo Izzo 9720032238 Disable reading VFO and settings from flash until persistence is implemented 2021-03-13 22:52:37 +01:00
Federico Amedeo Izzo 9e7b04c1fa Disable reading VFO channel from flash to fix boot freeze on GD-77 2021-03-13 22:21:23 +01:00
Silvano Seva a02b693843 Made the RTX thread run with the maximum priority on ARM Cortex targets 2021-03-13 09:16:06 +01:00
Silvano Seva 20ad9b7dcf Fixed issue with MDx ADC, rolling back to real battery voltage measurement 2021-03-13 09:16:06 +01:00
Silvano Seva 81e8aae103 Re-enabled all the tasks, temporarily bypassing battery voltage reading since it has to be debugged 2021-03-13 09:16:06 +01:00
Silvano Seva e5316aa8be Minimal refactoring of queue sources 2021-03-13 09:16:06 +01:00
Silvano Seva fb3447b0c6 Moving to miosix kernel: swapped old uC/OS-III task management functions with pthread ones 2021-03-13 09:16:06 +01:00
Silvano Seva cbfb78e19e Fixed bug which made the GPS task re-syncronising the RTC with GPS time once per second. 2021-03-13 09:14:26 +01:00
Federico Amedeo Izzo fb3c055f85 Disable writing settings until DFU support is ready 2021-03-01 20:52:57 +01:00
Niccolò Izzo de85ba90cb Filter out BeiDou NMEA strings 2021-02-25 11:20:31 +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 6b24895ef3 Extended GPS support to UV-380 module 2021-02-24 08:07:58 +01:00
Silvano Seva 3438006ef5 Removed moving average filtering from MDx ADC1 driver, added code for proper filtering of ADC samples in platform-independent code 2021-02-23 15:49:55 +01:00
Silvano Seva 416ae13eb1 Fixed linking error when building for linux 2021-02-23 14:01:09 +01:00
Niccolò Izzo eb0a5ee9f0 Fix compass orientation, speed formatting 2021-02-21 20:38:54 +01:00
Silvano Seva d0e8d15389 Added 'packed' attribute to settings data structure. Some refactoring of settings and state code. 2021-02-21 19:25:09 +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 d4981ee288 Add Settings persistence to SPI Flash 2021-02-21 15:58:41 +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
Niccolò Izzo f49655c44d Better GPS time synchronization 2021-02-17 14:58:20 +01:00
Niccolò Izzo 4d66d8b1af Fix various warnings 2021-02-17 11:21:46 +01:00
Federico Amedeo Izzo f357f476dc GPS: Enable GPS on gps_task start only if enabled in settings 2021-02-16 22:47:38 +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
Niccolò Izzo fed9912c7d Improved RTC GPS time synchronization 2021-02-16 08:33:34 +01:00
Niccolò Izzo 8d90ee0588 Add Smeter numbers 2021-02-16 07:59:37 +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
Niccolò Izzo d230a19623 Adjusted battery thresholds 2021-02-15 09:28:23 +01:00
Niccolò Izzo f850dbdc45 Add GPS RTC time synchronization, remove debug prints 2021-02-15 09:26:13 +01:00
Niccolò Izzo e9f0a46823 Fix speed tracking bug 2021-02-15 07:40:25 +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 a163bc6998 Fix a bug where only satellites with a low id were marked active 2021-02-13 13:49:03 +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
Federico Amedeo Izzo b3e0f964a1 State: remove unused variable channelInfoUpdated 2021-02-13 11:24:05 +01:00
Federico Amedeo Izzo 19838dbb38 Read VFO channel from flash when initializing state 2021-02-13 11:24:05 +01:00
Niccolò Izzo 3017ff1f3a Reduced smeter width, fix max RSSI representation 2021-02-13 11:24:05 +01:00
Silvano Seva 6578422c9d Main stack size is automatically increased to 4kB when a test suite is compiled 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 c7e8a258f3 Add active satellite field in GPS data
Now for each satellite in view we are keeping track if it's part of a
fix or not. This information is represented by a yellow color in the bar
graph screen.
2021-02-13 11:20:06 +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
Niccolò Izzo b570f3b690 Add GPS altitude parsing 2021-02-11 09:43:51 +01:00
Niccolò Izzo 0ce92f991c Add GPS NMEA parsing task
Add dedicated task to parse NMEA sentences received by the GPS module.
The parsed data is moved to the radio state, to be read by the user
interface.
2021-02-08 17:25:11 +01:00
Silvano Seva 03d5184f86 Merged MD-380 and MD-390 targets into a new MD-3x0 one 2021-02-03 15:09:59 +01:00
Silvano Seva 1cd0efdee1 Fixed compilation warnings and code refactoring pass 2021-02-03 14:50:00 +01:00
Silvano Seva 6dfbd2419d Improved RX activation mechanism in rtx driver 2021-02-03 14:30:06 +01:00
Silvano Seva 712d65c797 Improved handling of new configuration in rtx module 2021-02-03 14:30:06 +01:00
Silvano Seva d9a55c137a Implementation of all common rtx functionalities and radio driver for MD3x0 2021-02-03 14:30:06 +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 6e28fa5b21 Improved Squelch MACRO Menu visual hinting 2021-02-02 11:11:36 +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
Federico Amedeo Izzo 438540290b UI: Add MEM channel filtering per zone 2021-01-31 14:14:54 +01:00
Niccolò Izzo 81461669fe Remove bswap into transparent rendering 2021-01-31 13:30:18 +01:00
Niccolò Izzo d60c75d9e3 Move MACRO menu into super-state 2021-01-31 13:29:23 +01:00
Federico Amedeo Izzo c8b4328450 UI: Change layout to show big digits frequency 2021-01-31 11:37:42 +01:00
Federico Amedeo Izzo 046d1a160c UI: Change right and left positions in layout_t to a unique position
This can be done since you can now print with right aligning on a left position
2021-01-30 20:04:04 +01:00
Federico Amedeo Izzo da7cda8020 Fix warning: Remove unnecessary parameter 2021-01-30 19:58:25 +01:00
Federico Amedeo Izzo 9c713523f2 Macro menu: Fixed bug caused by change in TEXT_ALIGN_RIGHT 2021-01-30 19:56:36 +01:00
Federico Amedeo Izzo a612e885ab UI: Add about screen 2021-01-30 11:57:00 +01:00
Federico Amedeo Izzo 8b72587b7b UI: Make last_state an extern variable. Add Info screen values 2021-01-30 08:33:39 +01:00
Federico Amedeo Izzo 92af6c4804 UI: Add Info menu 2021-01-30 08:02:54 +01:00
Federico Amedeo Izzo f083a77001 UI: Fixed (null) menu entry on targets without RTC 2021-01-29 23:07:39 +01:00
Federico Amedeo Izzo 12d58139e4 UI: Fix warning 2021-01-29 22:59:38 +01:00
Federico Amedeo Izzo 450c965ee0 Disable contrast menu on targets without adjustable contrast 2021-01-29 22:57:24 +01:00
Federico Amedeo Izzo c9ee09b1f6 UI: Add Brightness/Contrast change 2021-01-29 22:41:42 +01:00
Federico Amedeo Izzo 1f240ba132 Move brightness from state_t to settings_t, add Contrast 2021-01-29 22:13:47 +01:00
Federico Amedeo Izzo 8ded5fc9b6 Graphics: Fix print with TEXT_ALIGN_RIGHT not working 2021-01-29 22:03:13 +01:00
Federico Amedeo Izzo fcf8dc2bcb UI: Add function to draw menu list with values 2021-01-29 21:31:28 +01:00
Federico Amedeo Izzo 171d6f76a9 Fix rebase issues 2021-01-29 19:34:44 +01:00
Federico Amedeo Izzo 289f45f4b9 UI: Add Display settings menu scrolling 2021-01-29 19:31:20 +01:00
Federico Amedeo Izzo 0c11198e8a UI: Use one function to draw all menus 2021-01-29 19:31:17 +01:00
Federico Amedeo Izzo 2533f35309 UI: Add display settings 2021-01-29 19:30:22 +01:00
Niccolò Izzo c9caff3b8d Remove OPNRTX from background 2021-01-29 18:15:33 +01:00
Niccolò Izzo 421ff0e448 Add RSSI and squelch graphic representation
Replaced bottom bar with graphic squelch and rssi representation.
2021-01-29 11:20:35 +01:00
Niccolò Izzo 2fa5b7a6e6 Fix squelch setting on linux 2021-01-28 16:46:09 +01:00
Niccolò Izzo 226d2ccaf7 Implement RSSI based squelch control 2021-01-28 15:13:06 +01:00
Niccolò Izzo 0b98f50a12 Add absolute knob positioning and horizontal keys emulation 2021-01-28 14:14:25 +01:00
Niccolò Izzo 364f8d4e46 Add squelch visualization and control from macro menu 2021-01-28 12:51:22 +01:00
Niccolò Izzo 5156783495 Rename MenuMacro in MacroMenu 2021-01-28 12:50:13 +01:00
Niccolò Izzo 90445e29a7 Implement voltage to dBm conversion in MDx
MDx radios get an RSSI voltage in mV, to be converted into dBm, we used
and empirically derived linear relation to compute the dBm value.
2021-01-28 10:31:37 +01:00
Federico Amedeo Izzo f61c269270 UI: Replace GPS with MODE selection on macro menu 2021-01-26 21:19:11 +01:00
Federico Amedeo Izzo 5311183c8a UI: Selecting a Channel in the Channel menu switches to MEM mode with that channel 2021-01-26 20:57:39 +01:00
Federico Amedeo Izzo c4e7e2962c UI: Fix bug causing frequency not being saved when switching from VFO to MEM 2021-01-26 20:42:59 +01:00
Federico Amedeo Izzo 4d35ddfa3d UI: Improve previous commit 2021-01-26 20:18:55 +01:00
Federico Amedeo Izzo c498b3d337 UI: Unified FSM code of Zone, Channel and Contacts menu 2021-01-26 20:10:31 +01:00
Federico Amedeo Izzo 2057374fac UI: Merge Zone, Channel and Contacts menu in a single function 2021-01-24 19:36:21 +01:00
Federico Amedeo Izzo 1a1e39fcc0 UI: Add Zone and Contacts menu 2021-01-24 18:53:43 +01:00
Federico Amedeo Izzo bc88247809 UI: Fix compiler warning
uint32_t is unsigned long on 32-bit ARM and unsigned on 64-bit x64.
Add type specifier to avoid having warnings when compiling on Linux
2021-01-24 16:27:50 +01:00
Federico Amedeo Izzo c9c1e2312f UI: Fix compiler warnings 2021-01-24 15:51:11 +01:00
Federico Amedeo Izzo 463e5bf6fb Graphics: Add error box printing 2021-01-21 22:01:25 +01:00
Niccolò Izzo 827bc45794 Fix deadlock issue on linux target
The keyboard thread was causing a deadlock with the ui thread,
now the keyboard thread is non-blocking.
2021-01-15 22:09:11 +01:00
Federico Amedeo Izzo 0e1e9469ea UI: Fixed bug in channel menu resulting in a pinned first channel 2021-01-13 21:10:31 +01:00
Federico Amedeo Izzo ad78fe41e8 UI: Add channel menu lower bound 2021-01-13 21:03:51 +01:00
Federico Amedeo Izzo 3b0c9ecb49 UI refactoring: Move macro menu logic to a separate function 2021-01-13 20:50:35 +01:00
Federico Amedeo Izzo ab44bb90e7 UI refactoring: Move VFO input logic to separate functions 2021-01-13 20:43:39 +01:00
Federico Amedeo Izzo b60100a1f9 UI: Move load channel from CPS to separate function 2021-01-13 20:27:39 +01:00
Federico Amedeo Izzo 6039bbb42e UI: Pass curtime_t per pointer, not per copy 2021-01-13 20:04:12 +01:00
Federico Amedeo Izzo 5a0a4886ee UI: Add macro menu to MEM mode. Fix main_state save and restore 2021-01-12 20:03:45 +01:00
Federico Amedeo Izzo 1a894c67df UI: Save and restore VFO channel when switching to MEM mode 2021-01-12 19:25:47 +01:00
Niccolò Izzo daeeee64dd Fix battery glitch
Battery charge was mistakenly being computed because values used in
computation were defined in a function which was not included as a
header file.
2021-01-12 08:01:34 +01:00
Federico Amedeo Izzo e690009171 UI: Reduce channel name font size 2021-01-10 11:25:05 +01:00
Federico Amedeo Izzo b7088686f5 UI: Channel: Implemented channel switching 2021-01-10 10:23:56 +01:00
Federico Amedeo Izzo 73c9ab56a6 UI: Channel mode: load channel from cps and do basic validation 2021-01-10 10:18:29 +01:00
Federico Amedeo Izzo 3365fe4d2f UI: Move VFO/MEM indicator to the left of the bottom bar 2021-01-10 09:27:55 +01:00
Federico Amedeo Izzo 571adfaabf UI: Move ui_*.c files to ui subfolder 2021-01-10 09:04:53 +01:00
Federico Amedeo Izzo e23b9bcea6 UI: Move main screen functions to ui_main.c 2021-01-10 09:03:07 +01:00
Federico Amedeo Izzo feb7e7ef7e UI: Initial MEM implementation 2021-01-09 19:37:51 +01:00
Federico Amedeo Izzo aef0eb30b1 UI: Move ui_menu.c function prototypes from ui_menu.h to ui.c as extern 2021-01-09 18:33:40 +01:00
Federico Amedeo Izzo e34674151b UI: Move menu related functions to ui_menu.c 2021-01-09 10:47:18 +01:00
Federico Amedeo Izzo 6c9d1834ad ui.c: Fixed format string warnings 2021-01-09 09:36:17 +01:00
Federico Amedeo Izzo 4101597ae5 ui.c: Move ui state global variables to struct ui_state_t 2021-01-09 09:25:24 +01:00
Niccolò Izzo adc48efb19 Implement CTCSS available tones array
Now the CTCSS tones are taken from an array and indexed from that array.
A macro that sets the tone has been implemented.
2021-01-05 11:26:22 +01:00
Niccolò Izzo 29e4e35199 Fix layout, implement tone enable disable macro 2021-01-05 10:08:18 +01:00
Niccolò Izzo bbcd6483a2 Add tone enable flags into channel data structure 2021-01-05 10:08:18 +01:00
Federico Amedeo Izzo 04a8e2025e Keyboard: Do not send event bursts after long press 2021-01-05 10:08:18 +01:00
Niccolò Izzo 2dcefb7c0e Add backlight into state, macro functionality
Now the current backlight level is part of the radio state, and the
first few macros have been implemented although the rate limiting of
presses has still to be fixed.
2021-01-05 10:08:18 +01:00
Niccolò Izzo 09c94a943a Fix Macro Menu printing 2021-01-05 10:08:18 +01:00
Federico Amedeo Izzo 07707ccae5 Keyboard: Send release key events 2021-01-05 10:08:18 +01:00
Niccolò Izzo a007eb206c Implemented Macro Menu information print 2021-01-05 10:08:18 +01:00
Niccolò Izzo 5784adab50 Updated macro menu layout 2021-01-05 10:08:18 +01:00
Niccolò Izzo 1e28ebbb4e Fix right aligned printing padding
Now right aligned printing starts writing backwards from the start
point, layout anchors have been suitably adapted and detailed.
2021-01-05 10:08:18 +01:00
Niccolò Izzo 95e00c2eff Fix transparency 2021-01-05 10:08:18 +01:00
Niccolò Izzo 2fe6cd1cb6 Implement draft of the macro menu feature 2021-01-05 10:08:18 +01:00
Federico Amedeo Izzo 868a0df892 UI: Fix GD77 font sizes 2021-01-03 11:22:24 +01:00
Federico Amedeo Izzo bcb4f5ccfc UI: Remove unneeded frequency position 2021-01-03 11:17:15 +01:00
Federico Amedeo Izzo 4029bcf90e UI: Removed unnecessary layout fix 2021-01-03 09:52:56 +01:00
Federico Amedeo Izzo a5a9750fc3 UI: Recalculate layout and padding sizes for all radios 2021-01-03 09:38:54 +01:00
Federico Amedeo Izzo 83ab86e955 UI: Add channel menu implementation 2021-01-02 12:10:10 +01:00
Federico Amedeo Izzo 89567cce85 UI: remove screen refresh flag
screen refresh is not needed anymore since GUI refresh is already done on demand
2021-01-01 21:11:22 +01:00
Federico Amedeo Izzo dba2b27310 UI: small refactoring, replace snprintf without placeholders with strcpy 2021-01-01 20:30:21 +01:00
Federico Amedeo Izzo 94b7be826a Disable RTC related code on platforms without a functional RTC 2021-01-01 18:58:35 +01:00
Federico Amedeo Izzo 8163eba67b Add MD-9600 support, boot and USB serial working 2021-01-01 18:32:50 +01:00
Silvano Seva 7cc4b36907 Suppressed some compiler warnings 2021-01-01 17:31:42 +01:00
Federico Amedeo Izzo 50b93904c1 UI: Fix bug where frequency set with number keys wouldn't apply 2021-01-01 10:49:12 +01:00
Federico Amedeo Izzo b3bf54adcf UI: Complete timedate menu 2020-12-31 19:05:29 +01:00
Federico Amedeo Izzo 641dcc13e9 UI: Add Time&Date settings, not functional yet 2020-12-31 16:36:32 +01:00
Federico Amedeo Izzo 4cfc7d2131 UI: Fix frequency input bug causing incorrect frenquency set 2020-12-31 14:59:21 +01:00
Federico Amedeo Izzo 7a9135d746 Platform: Add frequency limit check 2020-12-31 14:51:19 +01:00
Federico Amedeo Izzo 0769701ccc UI: Remove unused function 2020-12-31 13:55:12 +01:00
Federico Amedeo Izzo fc38fe8ed4 UI: replace pow with multiplication in frequency input 2020-12-31 13:51:27 +01:00
Federico Amedeo Izzo 13a8ff9e40 UI: Frequency set minor fix 2020-12-30 22:55:17 +01:00
Federico Amedeo Izzo 3f21c60471 UI: Change frequency input behaviour 2020-12-30 22:48:46 +01:00
Federico Amedeo Izzo ac0f906257 UI: Implement RX/TX frequency input 2020-12-30 22:23:21 +01:00
Federico Amedeo Izzo 58876ec4f2 UI: Set TX frequency together with RX frequency keeping previous offset 2020-12-30 20:11:05 +01:00
Federico Amedeo Izzo 3309fe6fa1 UI: Add RX frequency input. (WARNING: no frequency bound check present) 2020-12-30 19:55:51 +01:00
Niccolò Izzo 73c7b74a3a Add input parsing functions
Input parsing functions are moved into input.c/input.h, and currently
contain functions to determine if a number is pressed and to extract the
pressed number.
2020-12-30 15:46:43 +01:00
Federico Amedeo Izzo 3ecf27392e UI: Calculate menu entries num instead of using a define 2020-12-28 09:31:33 +01:00
Federico Amedeo Izzo ce768c3c8a UI: Add menu scroll to fit more menu entries on small screens 2020-12-27 20:45:49 +01:00
Federico Amedeo Izzo e5ac363081 UI: Fix menu list position on GDx family 2020-12-27 17:42:27 +01:00
Federico Amedeo Izzo f9b9f7ecf6 UI: Add menu selection wrap-around 2020-12-27 15:26:50 +01:00
Federico Amedeo Izzo aca804c738 KBD: Fix double events generated from long + short press.
The problem was caused by kbd_task() sending an old copy
of the keyboard map.
This was necessary when the events were triggered on key lift
but since now events are sent on key press, this is no more necessary.
2020-12-24 17:29:24 +01:00
Niccolò Izzo c77cc46fb6 Fix include syntax
Interface header includes have acquired the interface prefix, to
distinguish them from regular header includes.
2020-12-24 16:30:13 +01:00
Federico Amedeo Izzo 1f4fba958b KBD: Add function to tell if number keys are pressed 2020-12-23 11:05:59 +01:00
Federico Amedeo Izzo 7888a7e398 UI: Add time and date settings, cannot be set right now 2020-12-22 17:49:00 +01:00
Federico Amedeo Izzo 7b9e3eaff2 UI: Reset menu selection when moving between submenus 2020-12-20 11:00:59 +01:00
Federico Amedeo Izzo ec60dc8273 UI: Add Settings submenu, small refactoring 2020-12-20 10:47:07 +01:00
Federico Amedeo Izzo a9d4aa08a8 UI: Add menu selection 2020-12-20 09:24:57 +01:00
Federico Amedeo Izzo 423c3f04d3 UI: Add menu list drawing function, small refactoring. 2020-12-20 09:07:48 +01:00
Federico Amedeo Izzo ce09f2c208 kbd_task: Get timestamp after mutex to avoid getting incorrect timestamp
on mutex blocking
2020-12-19 15:45:42 +01:00
Niccolò Izzo 8d55a3e702 Implement alpha channel in graphics library
Alpha channel can be used to draw transparent objects.
2020-12-19 15:03:00 +01:00
Niccolò Izzo d56fafe1a2 Merge graphics_* into a single compilation unit
The specialized graphics libraries ended up sharing the majority of the
code, now they have been merged into a single library so that the
graphics development can be done quicker without leaving any of the
platforms behind.
2020-12-19 12:49:30 +01:00
Niccolò Izzo d74bece14e Sane default values for the channel struct 2020-12-18 22:42:39 +01:00
Niccolò Izzo 5949a481fa Add synchronization between radio state and RTX
Now the FSM update function takes an additional parameter, which
determines if the radio state has to be synchronized with the RTX state.
If so, the ui_task does the job.
2020-12-18 21:44:59 +01:00
Niccolò Izzo 85b1fb08e6 Fix printing horizontal start coordinates 2020-12-18 19:21:23 +01:00
Niccolò Izzo c7e928666c Move low battery screen into main FSM 2020-12-18 19:03:57 +01:00
Federico Amedeo Izzo 95a8e99605 kbd_task: Send keyboard event when the key is pressed, not when it's lifted 2020-12-18 18:42:17 +01:00
Niccolò Izzo 98cd741c88 Adjust voltage thresholds 2020-12-18 17:46:15 +01:00
Federico Amedeo Izzo 400a766f54 kbd_task: improve long-press behaviour 2020-12-17 23:15:56 +01:00
Federico Amedeo Izzo 67aac8a68e kbd_task: Replace renderingInProgress() check with display mutex 2020-12-17 22:30:08 +01:00
Federico Amedeo Izzo 3c00802330 threads.c: Avoid reading keyboard status while display is rendering 2020-12-17 22:18:44 +01:00
Federico Amedeo Izzo b5c06d5459 Fix new keyboard task 2020-12-17 22:18:44 +01:00
Federico Amedeo Izzo 749f5a1444 KBD: Correct key pressed/lifted check 2020-12-17 22:18:44 +01:00
Federico Amedeo Izzo ee6f87c735 KBD: Add missing keyboard state save 2020-12-17 22:18:44 +01:00
Federico Amedeo Izzo b7d3e0b91d UI: Adapt updateFSM() to new keyboard message format 2020-12-17 22:18:44 +01:00
Federico Amedeo Izzo 970f3553c4 kbd_task refactoring, add long-press detection logic 2020-12-17 22:18:44 +01:00
Silvano Seva 0d5a703521 Began integrating RTX driver with all the other code 2020-12-13 11:44:07 +01:00
Silvano Seva 6ca3faceaf Made calls to 'display_renderRows' and 'display_render' blocking, thus not requiring anymore to busy wiat on 'display_renderingInProgress'. Modifications involved only MDx display driver, the others were already blocking. 2020-12-12 10:16:26 +01:00
Silvano Seva a38d3d2486 Fixed compilation warnings 2020-12-11 14:41:44 +01:00
Niccolò Izzo a3decb8d85 Improved low battery screen rendering on smaller screens 2020-12-11 14:40:56 +01:00
Niccolò Izzo 20667c87c4 Add low battery warning screen
Basic UI composition functions have been moved to the main to accomodate
for pre-boot warning screens.
2020-12-11 14:17:06 +01:00
Niccolò Izzo 2c1fa7376a Improve battery drawing function 2020-12-11 14:17:06 +01:00
Niccolò Izzo 41ec005680 Implement battery voltage to charge conversion
Voltage to charge nonlinear function is being linearly approximated in
the operating range.
2020-12-11 14:09:36 +01:00
Federico Amedeo Izzo 0e1d9b090f UI: Add current mode print on status bar 2020-12-07 18:43:54 +01:00
Federico Amedeo Izzo 27f2fad507 UI: Add horizontal padding to menu items 2020-12-06 22:28:11 +01:00
Federico Amedeo Izzo 9e50b7c9b1 UI: reduce menu entries font size 2020-12-06 22:28:11 +01:00
Silvano Seva 7273c084ca Moved menuItems from ui.h to ui.c 2020-12-06 22:28:11 +01:00
Federico Amedeo Izzo 2251354288 UI: Add top menu items 2020-12-06 22:28:11 +01:00
Federico Amedeo Izzo 8b1d688935 UI: Add initial menu support 2020-12-06 22:28:11 +01:00
Silvano Seva 6e144a7160 Fixed bug in MD3x0 calibration loader, made the input parameters of 'interpCalParameter' const 2020-12-06 19:33:27 +01:00
Silvano Seva 0931f1b588 Utility for interpolation of calibration parameters 2020-12-06 19:33:27 +01:00
Niccolò Izzo 6a0afd7df7 Implement battery icon function for bw screens
Add battery drawing function in graphics_bw.c, fix GD77 layout.
2020-12-06 18:03:48 +01:00
Niccolò Izzo 1ee4744cb7 Improve battery icon drawing implementation
Fix a bug where the signature of the battery draw function was not
present, causing a build error. Now the battery size and position is
screen size independent and should work for all layouts.
2020-12-06 16:22:38 +01:00
Niccolò Izzo f1400ac528 Add battery icon 2020-12-06 16:19:46 +01:00
Federico Amedeo Izzo c0b920b4bf Remove busy loop in main.c, not needed once other threads are run 2020-12-06 14:37:21 +01:00
Federico Amedeo Izzo 7fffc339f8 Threads: align keyboard task stack size to other tasks 2020-12-06 14:37:21 +01:00
Federico Amedeo Izzo 08776e70eb Threads: rename status_task to device_task 2020-12-06 14:37:21 +01:00
Federico Amedeo Izzo 0fb3493bef Events: Complete UI events implementation 2020-12-06 14:37:21 +01:00
Silvano Seva 014262f4df Modified event_t structure to make it castable to void * 2020-12-06 14:37:21 +01:00
Federico Amedeo Izzo 94b37d9137 Events: More events changes 2020-12-06 14:37:21 +01:00
Federico Amedeo Izzo 3e461e6b80 Add initial events implementation 2020-12-06 14:37:21 +01:00
Fred c096e946a4 Change GD77 display padding and font size 2020-12-04 20:49:04 +01:00
Fred 5d9ac78548 Fix GD77 display driver 2020-12-04 20:39:20 +01:00
Fred 2a2ca57015 Add seconds to top bar clock 2020-11-29 13:23:21 +01:00
Federico Amedeo Izzo e62458119a Keyboard: Increase thread stack and send multiple events if a key is kept pressed 2020-11-29 09:09:59 +01:00
Federico Amedeo Izzo 869cb673b6 Keyboard: Manage keyboard status with a queue 2020-11-29 08:45:17 +01:00
Federico Amedeo Izzo 42ccc3ac28 GFX: Add gfx_clearRows() implementation 2020-11-29 08:43:58 +01:00
Silvano Seva 5f669d1c18 Made task stack size platform dependent, since values for ARM target were too small for a correct execution on x64 2020-11-28 21:19:37 +01:00
Federico Amedeo Izzo efc4820328 Keyboard: Replace uint32_t with keyboard_t 2020-11-28 09:51:18 +01:00
Niccolò Izzo 87ec8389cd Fix frequency representation bug
Divide the frequency decimals by ten to ensure the we do not overflow
the 5 digits we can fit into the available space on the screen.
2020-11-27 16:31:11 +01:00
Silvano Seva 8b877ed6d0 Narrowed down RAM usage 2020-11-27 15:07:39 +01:00
Silvano Seva bf24c31be7 Increased UI task stack size to 1kB, fixed some compiler warnings, code cleanup pass 2020-11-27 10:12:54 +01:00
Federico Amedeo Izzo 82be1afe17 UI: Add VFO frequency change 2020-11-26 22:44:39 +01:00
Federico Amedeo Izzo 32bbbfb9de GFX: Remove missing dots workaround 2020-11-26 22:22:07 +01:00
Federico Amedeo Izzo 00fd786b8e UI: Switch to alternative splash screen 2020-11-26 21:12:05 +01:00
Federico Amedeo Izzo b4952592aa UI: Add alternative Splash Screen 2020-11-26 17:18:53 +01:00
Federico Amedeo Izzo f7b1423053 UI: Fix uint32_t frequency printing 2020-11-26 16:53:17 +01:00
Silvano Seva 5d964f3358 Reorganised radio state data structure, bringing in new channel_t variable. 2020-11-26 15:25:26 +01:00
Silvano Seva 380f489eb0 Changed underlying type of 'freq_t' from 'float' to 'uint32_t' 2020-11-24 15:39:10 +01:00
Silvano Seva 65e4643f1e Code cleanup and suppression of some compilation warnings 2020-11-24 14:23:05 +01:00
Federico Amedeo Izzo 32ccd29c5c State: Add sane initialization 2020-11-21 11:02:49 +01:00
Federico Amedeo Izzo 3370e5a3a7 Add shared state logic 2020-11-21 10:46:48 +01:00
Niccolò Izzo a6c9bf6dd8 Quick fix of missing dots 2020-11-19 22:18:36 +01:00
Federico Amedeo Izzo 56dfb38c2a UI: Hide random pixels with a 30ms delayed backlight 2020-11-19 21:41:28 +01:00
Federico Amedeo Izzo 0ebd942c7a UI: Move VFO to 2nd and 3rd line, remove VFO Demo text 2020-11-19 21:02:19 +01:00
Federico Amedeo Izzo 0f0d6fe344 UI: Add top and bottom lines 2020-11-19 17:05:10 +01:00
Federico Amedeo Izzo f2d9db024c Graphics: Add drawHLine and drawVLine functions 2020-11-18 16:56:32 +01:00
Federico Amedeo Izzo 0b8bb486a4 UI: Add VFO Demo text 2020-11-18 10:12:14 +01:00
Federico Amedeo Izzo 39d5912adc UI: Add 3 font sizes, fix UI padding for new fonts. 2020-11-17 22:50:27 +01:00
Niccolò Izzo 91d0e05af7 Replace OpenGD77 fonts with Adafruit GFX fonts
OpenGD77 custom binary font format was replaced with Adafruit GFX
library standard font format, to be able to reuse all the available
fonts, together with the relative tools.
2020-11-17 14:42:23 +01:00
Silvano Seva e2dd96356d Refactored UI source code 2020-11-16 09:03:03 +01:00
Silvano Seva 86e7f82ace Moved platform initialisation to main() function 2020-11-16 08:42:10 +01:00
Silvano Seva 1b4b000b66 Adding file left behind in the previous commit 2020-11-15 22:25:43 +01:00
Silvano Seva b06b120148 Reorganising thread structure, moving thread bodies and thread creation function into a dedicated source file to make overall source code more easily readable 2020-11-15 22:23:32 +01:00
Federico Amedeo Izzo 11854aaaa6 ui.c: Remove infinite loop, now handled by task execution in main.c 2020-11-15 21:25:42 +01:00
Federico Amedeo Izzo 3feaa992b8 main.c: Set task priorities 2020-11-15 10:13:32 +01:00
Federico Amedeo Izzo 1000133c01 Create thread structure
Now main.c creates four threads to manage
- UI
- Platform state
- Analog radio
- Digital radio

Every thread has an entry point named `*_main()` like `ui_main()`
that gets executed periodically depending on the given interval
2020-11-14 19:33:56 +01:00
Silvano Seva 5ba7563638 Added missin include to ui.c 2020-11-03 21:47:10 +01:00
Federico Amedeo Izzo 45849c0f60 UI: Fix missing zeroes from clock and VBat 2020-11-03 15:15:36 +01:00
Federico Amedeo Izzo 58cb6857a5 UI: Add responsive layout calculation 2020-11-03 15:15:36 +01:00
Federico Amedeo Izzo a19ba1785e UI: Add VFO frequency to main screen 2020-11-03 15:15:36 +01:00
Federico Amedeo Izzo 46add610e1 UI: Add battery indicator 2020-11-03 15:15:36 +01:00
Federico Amedeo Izzo c0e4115482 UI: Add clock to top bar, add rtc.c for Linux 2020-11-03 15:15:36 +01:00
Fred 09be53b24a Fix keyboard variable size 2020-11-03 15:15:36 +01:00
Silvano Seva ce0e901d78 Fixed missing SysTick initialisation when compiling for x86 target 2020-11-03 15:15:36 +01:00
Federico Amedeo Izzo 7f557cb758 UI: Add ascii art explaination 2020-11-03 15:15:36 +01:00
Federico Amedeo Izzo a2b2b602dd Add initial UI main 2020-11-03 15:15:36 +01:00
Federico Amedeo Izzo b0e83c4303 Fix compilation for MD-UV380 2020-11-03 15:15:36 +01:00
Silvano Seva 50f6799ab9 Little improvements in platform test: reduced delay and blinking green led to signal effective code execution 2020-11-03 15:15:36 +01:00
Federico Amedeo Izzo 1877f92905 main.c: Add Platform test 2020-11-03 15:15:36 +01:00
Silvano Seva 8b7ec5b4ce Removing useless include from bootstrap.c 2020-11-03 15:15:36 +01:00
Federico Amedeo Izzo 0c198d100d Add missing `#include <hwconfig.h>` 2020-11-03 15:15:36 +01:00
Federico Amedeo Izzo 6b0f0242d1 Remove screenWidth and screenHeight getters. 2020-11-03 15:15:36 +01:00
Fred 75dd0d2fab bootstrap.c: remove unused include 2020-11-03 15:15:36 +01:00
Silvano Seva 00d726ddbc Moved bootstrap code into a dedicated file to improve readability 2020-11-03 15:15:36 +01:00
Silvano Seva 160b23f1b7 Fixed pixel setting in black and white graphics driver 2020-11-03 15:15:35 +01:00
Federico Amedeo Izzo 838490574e graphics_bw.c: Fixed compilation errors 2020-11-03 15:15:35 +01:00
Federico Amedeo Izzo c77ff5b339 graphics_bw.c: Add initial version 2020-11-03 15:15:35 +01:00
Federico Amedeo Izzo b04617007d graphics_rgb565.c Fixed screen size check 2020-11-03 15:15:35 +01:00
Federico Amedeo Izzo 3096146da8 graphics_rgb565.c: Removed backlight setter (now in platform.c)
and fixed license authors
2020-11-03 15:15:35 +01:00
Silvano Seva 06346ac827 Moving function for setting display backlight level from display driver to 'platform.c' file 2020-11-03 15:15:35 +01:00
Federico Amedeo Izzo aafa67c176 main.c: Remove stm34fxx.h include 2020-11-03 15:15:35 +01:00
Niccolò Izzo 02209e4c1a Add main file stub and display demo
Initial MVP of a main file that prints a text on the radio display.
The code is already platform independent, to be ported effortlessly
to any of the supported platforms.
2020-11-03 15:15:35 +01:00
Federico Amedeo Izzo 9a5e12d4f0 graphics.h renamed graphics_* to gfx_*
Removed unused print methods
2020-11-03 15:15:35 +01:00
Federico Amedeo Izzo 9b26c2d71b Add printing functions from legacy-code branch 2020-11-03 15:15:35 +01:00
Silvano Seva 603fddfdb0 Fixed drawLine function and endianness issues with pixel format in RGB565 graphics driver 2020-11-03 15:15:35 +01:00
Federico Amedeo Izzo 09602387b2 graphics_rgb565.c: Implement drawing empty rectangles 2020-11-03 15:15:35 +01:00
Federico Amedeo Izzo dac60a7be5 graphics_rgb565.c: Replaced hardtabs with spaces 2020-11-03 15:15:35 +01:00
Federico Amedeo Izzo 52b4718deb graphics_rgb565.c: small refactoring. Linux-demo: moved from display interface to graphics interface 2020-11-03 15:15:35 +01:00
Federico Amedeo Izzo 94bece00c0 add graphics_rgb565.c to linux target, fixed compilation errors 2020-11-03 15:15:35 +01:00
Federico Amedeo Izzo 0a3249522f renamed graphics_rgb.c to graphics_rgb565.c 2020-11-03 15:15:35 +01:00
Federico Amedeo Izzo c1982bdf61 graphics_rgb.c: add initial RGB graphic library version 2020-11-03 15:15:35 +01:00
Silvano Seva 4ab8cb55e8 Creating folder structure 2020-11-03 15:15:35 +01:00