Niccolò Izzo
f9c23452bc
Add plotting function to graphics library
...
Added plotting function to graphics library which is native C++, so
refactored the graphics source file to allow that, consequently adapted
the hwconfig header files to be included also in C++ sources.
Propagated compile flags also to C++ sources, including asan what was
previously disabled for C++ compilation units.
TG-81
2022-05-27 21:48:46 +02:00
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