Commit Graph

156 Commits

Author SHA1 Message Date
Silvano Seva 25087b0e02 Removed BUF_CIRC from the possible buffer management modes for an input audio stream 2022-05-27 21:48:46 +02: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
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
Federico Amedeo Izzo 1e19574fd6 Add destination callsign input for M17, Add -/ to keypad input 2021-10-09 18:53:28 +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 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 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
Federico Amedeo Izzo 57b66652b7 Use channel knob to change frequency and navigate menus (TG-238) 2021-06-05 18:11:30 +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 4d68f02ab4 Updated documetation for radio.h API, removed old baseband C source files. 2021-05-29 08:20:12 +02:00
Silvano Seva 850e3580ed New radio driver for MD-3x0 platform, still requiring a bit of debugging 2021-05-29 08:20:12 +02:00
Silvano Seva c0ecf2e13f Basic audio management module, controlling only speaker PA and microphone preamplifier. TG-61 2021-04-12 19:10:13 +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 8045a9bcea Improve gfx_printLine calculation 2021-04-10 11:10:52 +02:00
Federico Amedeo Izzo 3e326a43f0 Add gfx_getFontHeigth() function 2021-04-10 11:10:52 +02:00
Federico Amedeo Izzo c3a8251ca9 Integrated getLineY() functionality in gfx_printLine() 2021-04-10 11:10:52 +02:00
Federico Amedeo Izzo 765fb3f4c9 Add getLineY Layout helper function 2021-04-10 11:10:52 +02:00
Federico Amedeo Izzo 341ab84ce9 Converted `gfx_print()` from char * pointer to format string 2021-04-10 11:10:52 +02:00
Caleb Jamison e5c5ee90f2 Add support for encoder knob on MD-UV380
Added: qdec, a header only quadrature encoder library

Added: EXTI15_10_IRQHandler to handle the encoder knob

Changed: platform_init() for the MD-UV380 now configures the EXTI15_10
interrupt.

Changed: platform_getChSelector now returns signed int8

Changed: size of settings_t.valid went from 6 to 7
Without this change, pressing the macro button crashes the radio, I
haven't investigated and I don't remember how I found that solution.

Changed: meson.build includes the qdec library
2021-04-03 09:21:47 +02:00
Silvano Seva 2b28ea0525 Moving to miosix kernel: added two functions to 'interfaces/delays.h' to provide substitutes for their uC/OS-III counterparts and removed the old rtos sources 2021-03-13 09:16:06 +01:00
Silvano Seva 7992b4abca Moving to miosix kernel: adapted MDx drivers to new configuration 2021-03-13 09:16:06 +01:00
Federico Amedeo Izzo d4981ee288 Add Settings persistence to SPI Flash 2021-02-21 15:58:41 +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
Niccolò Izzo 4d66d8b1af Fix various warnings 2021-02-17 11:21:46 +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 a9ad22a4c9 NVM: Add function to read VFO channel for MD-UV3x0 2021-02-13 11:24:05 +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 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 d9a55c137a Implementation of all common rtx functionalities and radio driver for MD3x0 2021-02-03 14:30:06 +01:00
Silvano Seva edb2697124 New 'radio' interface API, providing a standard interface for low-level platform-specific baseband control 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
Niccolò Izzo 7e0500d3a5 Improved Smeter rendering in MACRO menu 2021-02-01 23:33:49 +01:00
Silvano Seva 80c7668faa Added a data structure providing some hardware information parameters and the relative platform API function to retrieve them 2021-02-01 21:27:31 +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 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
Silvano Seva 92870f477f Added display API function to set LCD contrast 2021-01-26 08:53:42 +01:00
Federico Amedeo Izzo bec69dc440 Graphics.h: Fix compiler warning 2021-01-24 15:57:02 +01:00
Federico Amedeo Izzo 0608176342 CPS: Read contact data from codeplug 2021-01-23 11:28:12 +01:00
Federico Amedeo Izzo 6706a796ad CPS: Add code to read zone data from Codeplug 2021-01-22 21:16:13 +01:00
Federico Amedeo Izzo 463e5bf6fb Graphics: Add error box printing 2021-01-21 22:01:25 +01:00
Silvano Seva 41e6c1d1e6 Added flags to enable TX and RX tones in rtxStatus_t 2021-01-04 08:58:17 +01:00
Federico Amedeo Izzo f4c4a72584 RTC: Bugfix, add missing bit in the date field 2020-12-31 19:11:35 +01:00
Silvano Seva 8b6f4e3056 Renamed rtc_shutdown() and toneGen_shutdown() to rtc_terminate() and toneGen_terminate() 2020-12-31 18:31:00 +01:00
Federico Amedeo Izzo c2f331467c UI: Fix bug where key 9 did not work in frequency input 2020-12-31 13:58:49 +01:00
Niccolò Izzo aeea305228 Switch to angular brackets include notation 2020-12-24 16:30:45 +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
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 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
Federico Amedeo Izzo 2c792c13a2 kbd_task: Increase long-press threshold to 0.7 2020-12-18 18:42:17 +01:00
Niccolò Izzo 9df60008a2 Change long press interval to half a second 2020-12-18 10:27:29 +01:00
Federico Amedeo Izzo 400a766f54 kbd_task: improve long-press behaviour 2020-12-17 23:15:56 +01:00
Silvano Seva 81a2e1fc22 Fixed missing padding in kbd_msg_t bitfield struct 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 4f0ffe8565 Improved message passing mechanism for rtx driver configuration 2020-12-13 09:17:08 +01:00
Silvano Seva d98611fbed Updated 'display_render' documentation 2020-12-12 10:23:14 +01:00
Silvano Seva 0fee5acbf0 Complete refactoring of both rtx API and its implementation for MD3x0 platforms 2020-12-06 19:33:27 +01:00
Silvano Seva 55b182406d Initial implementation of rtx driver for TYT MD-380 radio, by now supporting only analog FM reception 2020-12-06 19:33:27 +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
Federico Amedeo Izzo 94b37d9137 Events: More events changes 2020-12-06 14:37:21 +01:00
Silvano Seva 774468ae46 Added to platform API a function allowing to retrieve device calibration data 2020-12-04 10:45:03 +01:00
Federico Amedeo Izzo 42ccc3ac28 GFX: Add gfx_clearRows() implementation 2020-11-29 08:43:58 +01:00
Federico Amedeo Izzo efc4820328 Keyboard: Replace uint32_t with keyboard_t 2020-11-28 09:51:18 +01:00
Silvano Seva 4dbdb5ddbb Implemented reading of channel data from external flash memory for MDx targets 2020-11-25 16:40:17 +01:00
Silvano Seva 9ba2c79425 Code changes to remove a bunch of compiler warnings 2020-11-24 17:27:30 +01:00
Silvano Seva 310f19c6b7 API to access external nonvolatile memory, implementation for MD3x0 devices and testsuite for printing calibration values of MD3x0 devices 2020-11-21 09:37:12 +01:00
Federico Amedeo Izzo f2d9db024c Graphics: Add drawHLine and drawVLine functions 2020-11-18 16:56:32 +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 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 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
Federico Amedeo Izzo a19ba1785e UI: Add VFO frequency to main screen 2020-11-03 15:15:36 +01:00
Fred 09be53b24a Fix keyboard variable size 2020-11-03 15:15:36 +01:00
Federico Amedeo Izzo a2b2b602dd Add initial UI main 2020-11-03 15:15:36 +01:00
Silvano Seva b0f5341304 Added flag for 'monitor' button to keyboard driver, implemented 'monitor' and 'function' buttons in MDxx380 keyboard driver 2020-11-03 15:15:36 +01:00
Silvano Seva 2350103831 Made platform_getVbat returning the battery voltage in V instead of mV. 2020-11-03 15:15:36 +01:00
Silvano Seva 8a3872e5f9 Added to platform API a function which allows to query the PTT status 2020-11-03 15:15:36 +01:00
Silvano Seva af2e4eb372 Adding keyboard interface API 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
Silvano Seva 99b2280f76 Adding interface for RTC drivers 2020-11-03 15:15:36 +01:00
Silvano Seva 9b20e5010c Made gpio API completely platform independent 2020-11-03 15:15:35 +01:00
Federico Amedeo Izzo c3ef0ca036 Remove backlight control from anywhere except platform.c and platform.h 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 310ff3839c Add platform.h interface definition 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
Federico Amedeo Izzo 09602387b2 graphics_rgb565.c: Implement drawing empty rectangles 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 c24e56185c graphics.h: removed getFramebuffer method 2020-11-03 15:15:35 +01:00
Federico Amedeo Izzo f17a9241cc graphics.h Add color and coordinates struct, add fillScreen, drawLine and drawRect prototypes 2020-11-03 15:15:35 +01:00
Federico Amedeo Izzo 810586aa5b display.h: Move get_FrameBuffer() up in the interface file 2020-11-03 15:15:35 +01:00
Federico Amedeo Izzo 60dd623ddd graphics.h: Add initial version 2020-11-03 15:15:35 +01:00