Commit Graph

850 Commits

Author SHA1 Message Date
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