Commit Graph

237 Commits

Author SHA1 Message Date
vk7js 339131a5b7 Added M17 dst_addr to channel summary.
Added zone name to channel summary if called from memmory mode.
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 2102c15602 Hook up voice prompts in main startup routine
1. Call vpCacheInit() from the main startup routine.
2. If voice prompts are successfully loaded, and the hash key is held down, and the vp level is less than low, vp level is set to high.
3. If voice prompts are not loaded, and the level was set to something higher than beep, it is set to beep so that at a minimum, the user gets some beep feedback. If it was already set to off, nothing is changed.
2022-10-28 08:30:46 +02:00
vk7js 62ae110a19 Added more to the channel/vfo summary for M17 and DMR.
1. added contact name,
2. added timeslot and color code.
3. added new voice prompts.
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 8fab0b1e8c Added vpLevel and vpPhoneticSpell to settings.
These take up 4 bits with 4 bits reserved for on the fly voice rate.
Not yet hooked up to menus.
2022-10-28 08:30:46 +02:00
vk7js a5985dd55d Added custom dictionary support for common words used in Channel names and contact names (ported from AccessibleGD77).
Added 9 custom word prompts. (One unused).
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 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 5a8044437c Added CTCSS tone announcement to channel/vfo summary. 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 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 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 af74978600 If voice prompts can't be loaded then set vpLevel to vpNone. 2022-10-28 08:30:46 +02:00
vk7js ad07a517bc Added voice prompt verbosity levels: off, beep, low, medium and high. 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 fd5c5b4979 Got voice prompts code compiling. (certain blocks are commented out until we get codec2 decode figured out). 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 c0a04c5564 Adding voicePromptUtils.h/c which will contain the actual functions which call the building blocks to speak radio functions. 2022-10-28 08:30:46 +02:00
vk7js af76afb521 Added vpQueueFrequency to speak frequency with proper handling of decimal place and addition of MHz. 2022-10-28 08:30:46 +02:00
vk7js 88619dc682 Refactored symbol handling to clean up code. 2022-10-28 08:30:46 +02:00
vk7js 1d7432ae3b Reworked all symbols so that they can be processes via a lookup rather than by individual tests. Added more flags so we can optionally speak different categories of symbols. 2022-10-28 08:30:46 +02:00
vk7js d5568b8ab3 Adding voice prompts skeleton. 2022-10-28 08:30:46 +02:00
Silvano Seva bf8a257c2b Implemented reference counting inside codec2 management module, allowing for multiple calls of codec_init() 2022-10-28 08:30:46 +02:00
Silvano Seva 44abedce4c Changed stack size of codec2 thread when running under linux to prevent stack smashing from codec2_decode. Stack size is set to the default value from the OS 2022-10-28 08:30:46 +02:00
Niccolò Izzo d395afd370 Fix missing splashscreen
Fix a bug where the splashscreen was not showing on radios with GPS
enabled.
2022-09-27 22:35:50 +02:00
Silvano Seva 91d608cc6b Small reorganization of threads and tasks 2022-09-08 09:11:00 +02:00
Silvano Seva b5fc9b252d Moved code of compensating filter for MDx PWM-based DAC to a dedicated class. 2022-08-28 12:17:04 +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
edgetriggered a5a0de1428 UI: Build time font selection 2022-08-15 08:17:37 +02:00
Silvano Seva e2137eae23 Implemented CRC of persistent data (settings and VFO state) in MDx devices 2022-08-11 17:02:04 +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 1bb574c4fa Reorganised graphics module and moved graphics.h from interfaces to core folder 2022-07-18 21:30:43 +02:00
Alain Carlucci dea0ecbf29 fix double-free when codec_terminate is called multiple times 2022-07-17 22:28:03 +02:00
AlexandreRouma bb5891aca5 Fixed setPixel swapping red and blue 2022-07-11 15:54:17 +02:00
Silvano Seva 7e8a960001 Fixed compiler warnings on MD-UV3x0 and MD-9600 targets 2022-07-10 09:23:37 +02:00
tarxvf 111cb9e431 Fixed compiler warnings after signedness conversion of point_t 2022-07-10 09:14:41 +02:00
tarxvf ac3c8ea711 Renamed sat_t data structure to gpssat_t, changed signedness of point_t coordinates from unsigned to signed.
rename sat_t to gpssat_t to avoid future name collisions
allow signed values in point_t to allow relative values
fix crash when attempting to 'draw' negative absolute pixel values (like when zooming a map)
2022-07-10 09:13:47 +02:00
Silvano Seva 34c90c2485 Moved FIR filter class to a dedicated header file 2022-07-09 18:07:42 +02:00
Silvano Seva 22ce4d6925 Moved codeplug initialisation from state init function to main initialisation sequence 2022-07-02 10:47:19 +02:00
Silvano Seva d39783af2f Moved libc implementation of CPS I/O interface to drivers folder 2022-07-02 10:47:19 +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 810daf7599 Reorganised system initialisation sequence, improved reactivity of UI and device threads 2022-07-02 10:47:19 +02:00
Silvano Seva 42569af38a Improved GPS management routine 2022-07-02 10:47:19 +02:00
Silvano Seva 23a1a38a3a Moved mutex for concurrent access to radio state inside state.h/.c, minimized the time spent with state mutex locked when updating the GPS data fields 2022-07-02 10:47:19 +02:00
Silvano Seva 101b33ce6b Merged keyboard and UI threads, merged GPS and device threads. 2022-07-02 10:47:18 +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 fed368a4db Fixed routine computing the battery charge level so that the returned charge value cannot be greater than 100% 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 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 45d919f50f Reorganised GPS driver to allow for non-blocking acquisition of NMEA sentences 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
Wojciech Kaczmarski f1b1dc2034 Changed battery type for Module17 to BAT_NONE 2022-06-21 12:06:20 +02:00
Wojciech Kaczmarski a5b7658878 Fixed bug causing the newline character to misalign text if "TEXT_ALIGN_CENTER" is used with multi-line strings. 2022-06-17 12:14:22 +02:00
Silvano Seva 8b5b6ed571 Moved OpenRTX startup code from main.c to dedicated openrtx_init() and openrtx_run() functions in a separate source file. 2022-06-02 10:01:34 +02:00
Silvano Seva 316e588bc3 Updated copyright headers 2022-06-02 09:56:05 +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 c3cfaba4b2 Renamed zones into banks to align to M17 codeplug naming convention. 2022-06-01 14:56:22 +02:00
Silvano Seva 7ed4a64027 On MD-3x0 added a fixed gain of four to codec2 demodulated audio to compensate for the low output volume 2022-05-31 21:28:09 +02:00
Silvano Seva 4d4ebae2f3 Added configurable phase inversion to M17 demodulator. Forced enabling of phase inversion for MD3x0 VHF radios. 2022-05-30 19:19:01 +02:00
Niccolò Izzo c987848382 Add syncword hot re-sync fix DC removal
DC removal filter had a bug that created weird positive spikes on
Module17, add a syncword hot re-sync to be able to correct small phase
errors that appear every five seconds more or less.

TG-81
2022-05-27 21:48:47 +02:00
Silvano Seva b998d3b78f Modified time constant of DC removal high-pass filter to avoid a too high cut-off frequency when run with at fast sample rates 2022-05-27 21:48:47 +02:00
Silvano Seva e68b05d859 Fixed double free errors in M17 code, see #73 2022-05-27 21:48:47 +02:00
Silvano Seva 77dfeef9e7 Implemented audio decoding functions in CODEC2 module 2022-05-27 21:48:47 +02:00
Silvano Seva e5b5daba85 Moved state variables of PWM compensator and DC removal filter outside the function bodies to allow keeping their consistency among function calls 2022-05-27 21:48:47 +02:00
Mathis Schmieder 89c05a7332 Adjusted Module17 mic processing gain; interim-fix for DC offset removal 2022-05-27 21:48:47 +02:00
Silvano Seva 49e5486ea6 Parametric mic gain inside codec2 module 2022-05-27 21:48:47 +02:00
Silvano Seva b144657257 Moved CODEC2 management to a dedicated module 2022-05-27 21:48:47 +02:00
Silvano Seva 5c90c19bea Data conversion utilities 2022-05-27 21:48:47 +02:00
Silvano Seva 7891288030 Fixed compilation warnings generated by graphics.cpp 2022-05-27 21:48:47 +02:00
Niccolò Izzo 2d8c696a09 Complete M17 demodulator implementation
Make quantization work also on DC offset signal
Add samples plot code
Fix bug in buffer wrap around
Fix oob memory access in M17 modulator
Update tests with DC offset signal
Switch to 48KHz sample rate for Module17 and MD380
Add DC biasing script

TG-81
2022-05-27 21:48:46 +02:00
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
Niccolò Izzo d22948a096 Fix naming error
Replaced FM with OPMODE_FM and DMR with OPMODE_DMR.
2022-05-27 21:48:46 +02:00
Silvano Seva ab3d148449 Implemented activation of external flash backup and restore via menu entries 2022-03-22 15:10:52 +01:00
Silvano Seva a1c26b2898 Simple utility functions for backup and restore of external flash memory content 2022-03-22 13:39:08 +01:00
Silvano Seva f513454acf Implementation of xmodem data reception 2022-03-21 17:36:27 +01:00
Silvano Seva 7e3131d9d1 Implemented xmodem data sending 2022-03-12 23:32:31 +01:00
Silvano Seva e56cf52f28 Partial implementation of xmodem protocol: function for transmission of xmodem packets and small testsuite for dumping the content of external flash memory via xmodem 2022-03-11 19:28:45 +01:00
Silvano Seva 052580df3a Implementation of CCITT CRC16 2022-03-05 11:08:31 +01:00
Silvano Seva 3588f351a1 Created 'core' subfolders inside openrtx/include and openrtx/src containing main OpenRTX source files 2022-03-05 10:39:35 +01:00