Silvano Seva
e93b461beb
Added phase inversion setting to M17 modulator
2023-05-29 22:12:40 +02:00
Mathis Schmieder
adc916dbca
Added CAN setting
2023-05-29 22:12:40 +02:00
Mathis Schmieder
cddf8e1c1f
Save contrast settings on Module 17
2023-05-29 22:12:40 +02:00
Mathis Schmieder
89aedef3ae
Implemented non-volatile memory for settings on Module 17
2023-05-29 22:12:40 +02:00
Mathis Schmieder
3f849bd8a1
Module17 UI: call sign input using arrows
2023-05-29 22:12:40 +02:00
Mathis Schmieder
bd8f0d70c7
Added RX/TX inversion and mic gain setting on Module 17 UI
2023-05-29 22:12:40 +02:00
Mathis Schmieder
f32255c258
Implemented softpot settings UI for Module 17
2023-05-29 22:12:40 +02:00
Silvano Seva
c862638fd1
Created calibration data structure for Module17
2023-05-29 22:12:40 +02:00
Wojciech Kaczmarski
22e9d8ce48
Module 17 UI: layout and main screen
2023-05-29 22:12:40 +02:00
Silvano Seva
e3b66f6a4b
Added channel access number and frame type to M17 data field in radio state, merged TX and RX channel access number fields of rtx configuaration data structure into one.
2023-05-29 22:12:40 +02:00
Silvano Seva
d8c4ba4420
Base sources for Module 17 UI
2023-05-29 22:12:40 +02:00
Silvano Seva
76ded06751
Split UI sources in a default one for the radios and the Module17 one.
2023-05-29 22:12:40 +02:00
marco
7ce72d8325
Fix default channel index
...
it should be 0 instead of 1
2023-05-29 08:49:04 +02:00
Silvano Seva
4a3bc93fa4
Always send an M17 EOT frame as the last frame before terminating baseband output
2023-03-12 16:27:31 +01:00
Silvano Seva
a89a7523cb
Updated year in copyright headers
2023-02-08 16:33:02 +01:00
Silvano Seva
49c6cbd7c0
Added implementation of soft-decision Viterbi decoder for M17 protocol, updated version number in meson.build
2022-11-11 22:04:34 +01:00
Silvano Seva
ae8bba88b6
Updated voice prompt for UTC timezone to support also half hour values, thanks to Joe VK7JS.
2022-10-31 18:04:08 +01:00
Silvano Seva
ce1dc202ae
Added support for half-hour timezones, moved datetime_t struct fields from bitfields to full 8-bit variables, added function to adjust the off-range fields of a datetime_t struct.
2022-10-31 11:41:54 +01:00
Silvano Seva
f26afc42e5
Small reorganization and cleanup of splash screen code, fixed bug causing audio path for voice prompts never being released at vp end
2022-10-31 08:41:31 +01:00
vk7js
d5d49fbbb2
Refactored to decouple vp_init from speaking of splash screen.
2022-10-31 08:41:31 +01:00
Silvano Seva
16d750c55c
Excluded announcement of time and date settings for devices without RTC
2022-10-31 08:41:31 +01:00
vk7js
438c224a2a
Fixed announcement of initial digit when entering rx freq in VFO mode. It once worked but somehow got clobbered along the way.
2022-10-31 08:41:31 +01:00
Silvano Seva
dd30c899df
Added a 50ms startup delay to voiceprompts. This provides a workaround to fix cracking sounds when changing rtx parameters on MD-UV3x0.
2022-10-31 08:41:31 +01:00
Silvano Seva
f24699f14e
Fixed bug in M17 demodulator causing it to sometimes take more than 20ms to process a block of baseband samples when, in unlocked state, a valid syncword is searched.
2022-10-31 08:41:31 +01:00
Silvano Seva
c6a40a9625
Ensure proper syncronization between codec2 decode thread and output stream when the former is started
2022-10-31 08:41:31 +01:00
Silvano Seva
0692bea269
Partial fix for speaker pop when a voiceprompt begins
2022-10-31 08:41:31 +01:00
Silvano Seva
5ee3a2e9f0
Reorganised codec_pushFrame and codec_popFrame functions for true non-blocking behaviour
2022-10-31 08:41:31 +01:00
Silvano Seva
9d021b7557
Fixed bug in M17 modulator and demodulator making them not releasing their audio paths on termination thus locking up the thread on M17 mode re-entering.
2022-10-31 08:41:31 +01:00
vk7js
12932db37c
Refinement to last checkin: only clear function latch without beep for PTT, not for open squelch.
2022-10-31 08:41:31 +01:00
vk7js
f61313638f
Cancel function key latch if ptt is pressed (without playing the latch off beep).
2022-10-31 08:41:31 +01:00
vk7js
793a76d1ea
When PTT is pressed, stop any voice prompt or beep in process.
2022-10-31 08:41:13 +01:00
Silvano Seva
f9228ec23c
Halved the additional output gain for MD3x0 radios inside codec2 module to avoid sound distortion when voice prompts are played.
2022-10-28 09:47:47 +02:00
Silvano Seva
71a15c2cfb
Fixed bug in voice prompts audio path management causing no audio output in case of rapid key sequences. Improved managment of audio path release in voice prompts module.
2022-10-28 09:47:47 +02:00
Silvano Seva
2c1401de86
Moved voiceprompts audio management to audio path system
2022-10-28 09:47:47 +02:00
Silvano Seva
4411e0f3e8
Implemented audio path management API in GDx and Mod17 audio drivers, removed old audio management API
2022-10-28 09:47:47 +02:00
Silvano Seva
21481072e7
Moved audio management in M17 opmode handler to audio path system
2022-10-28 09:47:47 +02:00
Silvano Seva
edf864337a
Moved audio management in FM opmode handler to audio path system
2022-10-28 09:47:47 +02:00
Silvano Seva
3c65f8834a
Added to radio driver interface two functions to enable and disable AF output towards the speaker
2022-10-28 09:47:47 +02:00
Silvano Seva
25caffde6b
Linked audio path manager with low-level interface API to setup and release the audio paths. Minor refactoring of audio path manager code.
2022-10-28 09:47:47 +02:00
Silvano Seva
6d9ad2b947
Implementation of audio path manager
2022-10-28 09:47:47 +02:00
Silvano Seva
a7521ccc5f
Added functions to setup, release and check compatibility of audio paths to audio.h
2022-10-28 09:47:47 +02:00
Silvano Seva
ad3390696e
Moved audio_path header file from interfaces to core, moved enums of audio source, sink and priority to audio.h
2022-10-28 09:47:47 +02:00
vk7js
ec6519425c
Added call to vp_announceCTCSS to macro moni+2 branch because increasesto code were not speaking, only decreases.
2022-10-28 09:47:47 +02:00
Silvano Seva
5fb11322ac
Code cleanup and refactoring of voice prompts code
2022-10-28 09:47:47 +02:00
vk7js
c7c9c3afc5
Fixed issue of m17 destination not being spoken in summary (long hold f1) if set to broadcast.
2022-10-28 09:47:47 +02:00
vk7js
7cc287643e
Added Broadcast to string table for use with voice prompts. Cleaned up hash key announcement.
2022-10-28 09:47:43 +02:00
vk7js
3ea4431b35
Added support for the speaking of callsign when you hit hash key.
...
Fixed issue of callsign and M17 settings strings being in the wrong order in the string table causing the voice prompts to be switched.
2022-10-28 08:30:47 +02:00
vk7js
c2f349c93d
More improvements to auto GPS screen readout
...
Read fix quality and type changes.
Read satellite count changes.
Reduced minimum time between readouts to 8 seconds.
say km/h instead of kmh for speed.
2022-10-28 08:30:47 +02:00
vk7js
cf45f7ee81
Fixed missing gps updates due to recording an update even when one wasn't detected, this meant countdown would restart errantly.
2022-10-28 08:30:47 +02:00
vk7js
dbc86ea392
Give leeway for nw/ne/sw/se within a few degrees like n/e/s/w.
2022-10-28 08:30:47 +02:00
vk7js
8c9f034b93
Adjusted sensitivity of auto announcement for GPS data. Now only announce for altitude changes of at least 5m, speed changes of at least 1 KM/h and direction changes of at least 1 degree.
2022-10-28 08:30:47 +02:00
vk7js
7cc0c6455c
Now better handle directions, and speak prior to other info as most important.
...
Handle 8 cardinal points north, east, south, west, north east, south east, south west and north west.
2022-10-28 08:30:47 +02:00
vk7js
4ba9b3ec34
Fixed memory overrun caused by buffer being too small.
...
Also fixed satellite count which got broken when I changed the GPS info flags to add more.
2022-10-28 08:30:47 +02:00
vk7js
fbc4e380b3
Moved latitude and longitude to after direction in announcement because these are less meaningful than the other parameters.
2022-10-28 08:30:47 +02:00
vk7js
f1639159bf
fixed issue of auto announcement clobbering manual request for summary.
...
Fixed a couple of issues with direction announcement.
2022-10-28 08:30:47 +02:00
vk7js
4edef678c1
fixed south and west.
2022-10-28 08:30:47 +02:00
vk7js
4e1689df51
Cleaned up GPS direction info so we say north, east, south, west when the tmg is within a close enough range.
2022-10-28 08:30:47 +02:00
vk7js
5829df6dd3
Now read speed, altitude and direction changes on the GPS screen automatically with a forced minimum of 10 seconds between readings to avoid a bit of hysterisis .
...
Can still get full summary on long hold f1.
2022-10-28 08:30:47 +02:00
vk7js
3ba094f633
Minor cleanup of beep code.
2022-10-28 08:30:47 +02:00
vk7js
104f18d9e9
Added vp_beepSeries to play a melody.
...
Now play melody on power up if vp level set to Beep.
2022-10-28 08:30:47 +02:00
vk7js
dc285ab023
Moved beep definitions into header beeps.h.
2022-10-28 08:30:47 +02:00
vk7js
d8fa0465fb
Fixed following bug:
...
1. hit enter to go to banks menu.
2. hit escape.
3. hit enter again and radio does not announce banks menu because it was the last menu active.
Now reset the menu tracking variables on Escape.
2022-10-28 08:30:47 +02:00
vk7js
da7dfe63b2
Avoid calling beep if we know the voice will announce something since it will be
...
canceled and most likely generate an unwanted click.
2022-10-28 08:30:47 +02:00
vk7js
91d19e809e
Fixed issue of menus not reading at vp level 1.
2022-10-28 08:30:47 +02:00
vk7js
eb89f5a55a
Now play generic beep on any key press as well as different tones when navigating the menu, when menu item wraps, and when function key latches and unlatches if voice prompt level is set to beep.
2022-10-28 08:30:47 +02:00
vk7js
a1e302b19d
Got beeps working so long as you don't have ctcss set.
...
Reduced durations to sensible values.
2022-10-28 08:30:47 +02:00
vk7js
3c20a5282e
Fixed nasty popping between every voice prompt and after every silence.
...
When retrieving the codec2 data, ensure it is an exact multiple of codec2 frames and always discard the very last frame.
2022-10-28 08:30:47 +02:00
Silvano Seva
80f6fe2289
Stopping audio codec at the and of each voice prompt
2022-10-28 08:30:47 +02:00
vk7js
0298aa897b
Implemented beeps on MD-UV3x0 platform driver.
2022-10-28 08:30:47 +02:00
vk7js
32fd910e64
Fixed warnings.
2022-10-28 08:30:47 +02:00
vk7js
70ba324ef3
Fixed menu announcements so that menu item names are always spoken.
2022-10-28 08:30:47 +02:00
vk7js
b39ab4f0d5
Added "Used heap" to voice prompts for Info screen.
2022-10-28 08:30:47 +02:00
vk7js
6a56fe3d3a
Fixed satellite count readout.
2022-10-28 08:30:47 +02:00
vk7js
a71a06c57a
1. Renamed beepTick to beep_tick for consistency.
...
2. Made beep_tick static.
3. call beep_tick from top of vp_tick because in its prior location it might
not actually be called.
2022-10-28 08:30:47 +02:00
vk7js
a081964ac8
Fixed Backup and Restore menus as follows:
...
1. Fixed issue of voice not reading backup or restore messages but instead
stuttering indefinitely.
2. Can now press cancel to exit the menu so long as you haven't pressed PTT to
start the process.
2022-10-28 08:30:47 +02:00
vk7js
f8bfc7fb13
Added mechanism for specifying exactly what is read in the summary.
2022-10-28 08:30:47 +02:00
vk7js
495b721231
Fixed setting of CTCSS and tone so that one can rapidly change tone without hearing the word "tone", "receive tone," "transmit tone" etc prior to each tone value.
2022-10-28 08:30:47 +02:00
vk7js
d622080cfe
Do a better job of determining when to say Menu.
...
In info screen, avoid very rapid announcements of battery fluctuations.
For same menu name, only read value changes once per second for automatic reading.
2022-10-28 08:30:47 +02:00
vk7js
c9ce41a999
Initial beep implementation.
...
Function latch will play high beep when latched and low beep when latch times out.
Menus will play a high beep when you arrow through them and a low beep when you reach the first item.
All keys should play a generic beep sound but this has not been implemented yet.
2022-10-28 08:30:46 +02:00
vk7js
95b7707d87
Implemented speech feedback for setting UTC timezone.
...
Added speaking of negative sign for vp_queueInteger (plus is assumed if not negative).
2022-10-28 08:30:46 +02:00
vk7js
9a250ec994
Added speech feedback to settings/display/timer menu.
2022-10-28 08:30:46 +02:00
vk7js
0138d843b1
Improved time/date entry:
...
1. Now give format as dd/mm/yy before date and hh:mm before time.
2. Say the slash immediately after the 2nd and 4th digits are entered in the date and the colon immediately after the 2nd digit of the time.
3. Removed speaking of the 2nd colon in the time since seconds input is disallowed.
2022-10-28 08:30:46 +02:00
Silvano Seva
e5de5b96a3
Fixed announcement of power level both in settings menu and channel summary
2022-10-28 08:30:46 +02:00
vk7js
0452bd0f10
Added voice feedback for setting the time and date.
2022-10-28 08:30:46 +02:00
vk7js
ac7a2b94a9
Adjusted vp_anounceBuffer to distinguish between a callsign buffer and a regular name buffer.
2022-10-28 08:30:46 +02:00
vk7js
a1d782b16c
Fixed backspacing text input so that it reads the char backspaced correctly.
2022-10-28 08:30:46 +02:00
vk7js
11132e4949
Speak original callsign if escape is pressed to cancel edit from m17settings edit mode.
2022-10-28 08:30:46 +02:00
vk7js
c0eba3866e
Added voice feedback for the M17 Settings Menu:
...
1. Added vp_announceBuffer to speak a prompt, edit mode and string buffer.
2. Added logic to the vp_announceScreen for m17Settings read-only mode.
3. Added logic for handling edit mode.
4. Removed vpCaps flag from several places because it is irrelevant when input only supports caps.
2022-10-28 08:30:46 +02:00
vk7js
579ce7baa5
Removed the word "banks" from channel summary since name of bank or "all channels" is sufficient by itself.
2022-10-28 08:30:46 +02:00
vk7js
5ed0121780
Fixed announcement of channel number/name in summary and when changing channel.
2022-10-28 08:30:46 +02:00
vk7js
30e8671044
If there is no GPS fix, do not announce lat, long, ...
2022-10-28 08:30:46 +02:00
vk7js
9f52c98c2f
Removed unnecessary trailing zeros from lat/long announcement.
2022-10-28 08:30:46 +02:00
vk7js
2139f5e391
Refactored to add generic function for speaking int settings. Made brightness and contrast prompt use this.
2022-10-28 08:30:46 +02:00
vk7js
04e7f044ff
Added announcement of Brightness when changing from the Settings/Display menu.
2022-10-28 08:30:46 +02:00
vk7js
1e87493183
When enter is pressed to change an item's value and edit mode is enabled, indicate this so that the user knows they can actually change the value.
...
Updated voiceprompts.vpc with edit prompt.
2022-10-28 08:30:46 +02:00
vk7js
52479d10b5
Minor cleanup
...
Added Accessibility menu name to string table for voice prompt announcement.
Removed unnecessary comment.
2022-10-28 08:30:46 +02:00
vk7js
9f5a45954d
When GPS is disabled, and you choose the GPS menu item, announce GPS off rather than nothing.
2022-10-28 08:30:46 +02:00
vk7js
8cb9272881
Added vp_announceScreen to automatically announce informational screens such as VFO, channel, ...
2022-10-28 08:30:46 +02:00
Silvano Seva
158b38d113
Clearing buffer index and length of codec2 data when the reproduction of a voice prompt is completed
2022-10-28 08:30:46 +02:00
Silvano Seva
cad026f902
Renamed vp_clearCurrPrompt() to vp_flush(), added a vp_stop() function allowing to stop an in-progress voice prompt but without flushing the data buffer
2022-10-28 08:30:46 +02:00
Silvano Seva
d81a4220d1
Fixed voice prompt bugs
...
Fixed following voice prompt bugs:
1. Now say OpenRTX when powering on if vp enabled to let user know radio is on.
2. When switching back to VFO or channel mode from menus, now anounce VFO info or channel info.
3. When entering first digit of frequency in VFO input mode, say it.
4. Refixed issue of concatenating menus rather than clearing menu.
2022-10-28 08:30:46 +02:00
Silvano Seva
1383e3d61e
Reset prompt buffer position to zero once VP had finished speaking so that another play would replay the buffer
2022-10-28 08:30:46 +02:00
Silvano Seva
99408a5455
Added function to announce generic on/off toggle settings.
2022-10-28 08:30:46 +02:00
Silvano Seva
33867ec009
Fixed speaking of voice prompt level when changing from the menu.
2022-10-28 08:30:46 +02:00
Silvano Seva
7a78ece920
Fixed announcement of ctcss tones, now the decimal point gets announced.
2022-10-28 08:30:46 +02:00
Silvano Seva
a40cba2430
Added missing entry in VP table and fixed off-by-one for string table lookups.
2022-10-28 08:30:46 +02:00
Silvano Seva
10dcf04a92
Fixed concurrency issue inside audio codec module: after calling codec_stop() the codec resulted free before the effective shutdown of the internal thread, causing codec_decode() to lock inside the outputStream_start() in case of a fast sequence of decode - stop - decode
2022-10-28 08:30:46 +02:00
Silvano Seva
d0d603901e
Implemented storage of voice prompts data inside the binary executable image. Voice prompts data is placed in .rodata section at link time
2022-10-28 08:30:46 +02:00
Silvano Seva
cf842306c2
Partially refactored UI code
2022-10-28 08:30:46 +02:00
Silvano Seva
42b262c437
Refactored voicePromptUtils.h and voicePromptUtils.c
2022-10-28 08:30:46 +02:00
Silvano Seva
c5f109efa5
Refactored voicePrompts.c
2022-10-28 08:30:46 +02:00
Silvano Seva
df5341e103
Refactored voicePrompts.h, aligned function names of voice prompt API to OpenRTX coding style
2022-10-28 08:30:46 +02:00
Silvano Seva
5840f459fa
Renamed UIStrings.h/.c to ui_strings.h/.c and refactored their content
2022-10-28 08:30:46 +02:00
Niccolò Izzo
8eca684a7d
Voice prompts bugfixes:
...
- added missing initialization of codec2 in voice prompts code
- discarding the voice prompt header as we only support 3200 bit rate
- fixed wrong offset in pick vpQueueStringTableEntry
- fixed bug in vpInit causing voiceprompts to hang
2022-10-28 08:30:46 +02:00
vk7js
5bb7fc96a8
Renamed a few variables for case consistency, reimplemented vpTick and call from same place as ui_updateFSM to continue playing voice prompts.
2022-10-28 08:30:46 +02:00
vk7js
befc892068
When reading codec2 data, pad out to a multiple of 8 bytes with 0s so that when frames are pushed from the buffer, we don't get garbage at the ends of prompts which are not an exact multiple of 8 bytes.
2022-10-28 08:30:46 +02:00
vk7js
69b023dd4a
First cut at implementation of vpPlay.
2022-10-28 08:30:46 +02:00
vk7js
6b83af622c
Corrected vpDataOffset, now use ftell to obtain file offset after reading in header and toc. Added better verification that the TOC was actually read.
2022-10-28 08:30:46 +02:00
vk7js
e09ce7e95a
Added function implementation to read voiceprompts.vpc header, then read in the table of contents into ram, and then on request, read the codec2 data into the codec2 buffer given an offset and length into the data.
2022-10-28 08:30:46 +02:00
Niccolò Izzo
1f71789a9d
Apply clang-format
2022-10-28 08:30:46 +02:00
vk7js
29de1d36d4
Added a couple of comments and added whitespace between a couple of functions. No code changes.
2022-10-28 08:30:46 +02:00
vk7js
bec9ec0218
Added call to ReleaseFunctionLatchIfNeeded to status event branch of fsm so that the function latch will be released when needed without having to wait for a key press.
2022-10-28 08:30:46 +02:00
vk7js
9038745b6f
extracted logic for testing if the function key is latched into its own function for readability.
2022-10-28 08:30:46 +02:00
vk7js
bc7ce57f9b
Reworked function latch. Now, the latch is silently released on the next key press event which is outside the timeout.
2022-10-28 08:30:46 +02:00
vk7js
da935ff710
Added function menu latch.
...
1. If the moni key is long pressed by itself (no digit), function key latches.
2. It remains latched for 3 seconds.
3. If a subsequent key is pressed during this time, the timer is restarted at 3 seconds again, allowing the user to say increase the ctcss code while keeping the function latched.
4. If no key is pressed, the timer is allowed to lapse and the function unlatched.
2022-10-28 08:30:46 +02:00
vk7js
895a5ce780
Fixed error in AnnounceMenuIfNeeded, it was speaking the name twice rather than the name and value.
2022-10-28 08:30:46 +02:00
vk7js
611bd3d142
Fixed error in announceText(): wrong flags were passed to vpQueueString
2022-10-28 08:30:46 +02:00
vk7js
d57700c607
removed old comment and unnecessary code.
2022-10-28 08:30:46 +02:00
vk7js
6e4af40346
hooked up warning messages. May need tweaking.
...
Msg may repeat on keyup.
2022-10-28 08:30:46 +02:00
vk7js
1f36e9b9d8
Added voice prompt to warn that during backup/restore no voice prompts will be available.
...
Note that this is stil not hooked up.
2022-10-28 08:30:46 +02:00
vk7js
7cd3f1d49a
Added announceSettingsTimeDate and hooked up to f1 on that screen.
2022-10-28 08:30:46 +02:00
vk7js
29bde26f4f
Added announceBackupScreen() and announceRestoreScreen()
2022-10-28 08:30:46 +02:00
vk7js
b1c07e3d3f
Added speech for About screen.
2022-10-28 08:30:46 +02:00
vk7js
8527b8a6ef
Add GPS voiceprompts announcing
...
Removed flag parameters from summary and GPSInfo,
hooked up the GPS info so that if the GPS screen is active,
long hold f1 will read the GPS summary and f1 will repeat the last
voice prompt like on the VFO and channel screens.
2022-10-28 08:30:46 +02:00
vk7js
c0371dad2a
Added pauses between lots of info in summary for comprehensibility.
2022-10-28 08:30:46 +02:00
vk7js
46e3900462
corrected gps summary to use a stingized float for the compass bearing.
...
Also fixed another warning.
2022-10-28 08:30:46 +02:00
vk7js
c24af62000
added more to GPS summary and fixed a couple of warnings.
2022-10-28 08:30:46 +02:00
vk7js
4b604e255f
Added a few more voice prompts for the GPS screen: latitude, longitude, north, south, east,west, speed, altitude.
2022-10-28 08:30:46 +02:00
vk7js
0a4ed4009c
Added announceGPSInfo so we can read something meaningful for the GPS screen (not yet hooked up).
2022-10-28 08:30:46 +02:00
vk7js
c3667313ba
Extracted announceM17Info logic to its own function.
2022-10-28 08:30:46 +02:00
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
74ab9cbbf6
Fixed voice menu, it will now display as: Voice off, Voice Beep, or Voice 1 through 3.
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
16abf941d4
Added Voice menu to settings.
...
The Voice menu has two options:
Level: off, beep, level 1, level 2, level 3,
Phonetic: off, on.
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
50b29065ae
Adjusted long comment to wrap.
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
e74eccfffd
Added support for macro 6 announcing the cycling of radio mode.
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
4098baa5a8
When speaking a menu and its value, only speak the name if a prompt is not in progress.
2022-10-28 08:30:46 +02:00
vk7js
0ab179a701
use constant for string length for prior menu name and value.
...
Also reset prior value if name changes.
2022-10-28 08:30:46 +02:00
vk7js
0a410fe336
Speak only when values change
...
Changed the function which determines if we should speak the new menu
item to make it also check if a menu item's value changes.
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
e691f37f88
Extracted and added a few more strings to the string table and created voice prompts for those strings.
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
27d1329ac7
Added a few prompts for M17 and DMR used on the UIMode screen but which do not need strings in the strings table as they are displayed in abbreviated form.
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
901db10c87
Next round of changes to add literals to string table and voice prompt wordlists.
2022-10-28 08:30:46 +02:00
vk7js
bc5289453e
Round one of adding strings to string table and wordlists.
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
cdda2a5b90
Added voice prompt for channel.
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
vk7js
7e660f2fe8
Starting to refactor UI to use a string table in preparation for adding voice prompt support.
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
58c1c3bbd6
Implemented circular buffer mode in linux output stream driver.
2022-10-28 08:30:46 +02:00
Niccolò Izzo
b3a861a47c
Usability improvements
...
Remove DMR from macro menu until we actually support it.
Remove print of M17 source callsign
Bank and channel visualization is more compact to make room for
additional data on a single screen.
Refactor mode screen to fit all data into a single screen.
2022-10-28 08:30:46 +02:00
tarxvf
37c9e0dbc3
macro menu mode change: catch invalid states
2022-10-18 14:07:48 +02:00
Niccolò Izzo
25d6c20ef0
Reorder macro menu functions
...
Swapped brightness and tone increase and decrease to be more intuitive.
2022-09-27 22:35:50 +02:00
Niccolò Izzo
5ff74aaaa7
Add FM tone decrease Macro
...
Reorganize macro menu buttons to enable tone decrease and eliminate
channel save as it was not yet implemented.
2022-09-27 22:35:50 +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
Niccolò Izzo
6a9ce50f6b
Usability improvements
...
Remove DMR from macro menu until we actually support it.
Remove print of M17 source callsign
Bank and channel visualization is more compact to make room for
additional data on a single screen.
Refactor mode screen to fit all data into a single screen.
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
94baec6981
Changed the granularity of VFO frequency input mode from tens to hundreds: this reduces the number of digits to be inserted to seven and avoids the line to overflow towards the bottom
2022-09-02 07:54:32 +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
d11bb903b1
Made public the M17Modulator.stop() function, added macro to enable the transmission of an M17 EOT frame (disabled by default).
2022-08-28 12:00:36 +02:00
Jacob McSwain
fa33f15417
Implemented M17 EOT marker
2022-08-28 11:59:31 +02:00
Silvano Seva
a22aceb576
Reorganized code for M17 transmission: removed M17Transmitter class, use M17FrameEncoder to assemble LSF and data frames, modified API of M17Modulator class.
2022-08-28 11:59:31 +02:00
Silvano Seva
48cd81ee7c
Changed to 'static' some variables inside UI module
2022-08-28 11:49:10 +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
ea6863e077
UI: Add Ubuntu font license text
2022-08-15 08:17:44 +02:00
edgetriggered
a5a0de1428
UI: Build time font selection
2022-08-15 08:17:37 +02:00
edgetriggered
e24007b743
UI: Add additional font, Ubuntu Regular
2022-08-15 08:12:16 +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
5ebdb36ffb
Resetting M17 frame decoder when demodulator transitions from unlocked to locked state
2022-07-22 22:54:57 +02:00
Silvano Seva
9c2091c060
Changed M17 RX behaviour so that received stream data is forwarded to codec2 decode only when a full valid LSF is received.
2022-07-21 22:14:55 +02:00
Silvano Seva
54af6bf429
Made decode functions in M17Viterbi class return the final decode cost
2022-07-21 22:03:48 +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
Silvano Seva
073440ef1a
Removed unnecessary build dependencies when project is being configured for linux target
2022-07-18 18:48:26 +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
844e0619e2
Fixed bug in check for M17 phase inversion causing MD3x0 UHF not to demodulate the signal anymore
2022-07-11 15:35:59 +02:00
Silvano Seva
eda835ee0b
Tightened locking conditions for M17 demodulator: now lock is acquired only when there is an exact syncword match (zero hamming distance)
2022-07-11 10:37:58 +02:00
Silvano Seva
fa58b99c9e
Fixed text blink in settings restore menu
2022-07-11 10:09:18 +02:00
Silvano Seva
7e8a960001
Fixed compiler warnings on MD-UV3x0 and MD-9600 targets
2022-07-10 09:23:37 +02:00
tarxvf
fc6849afb9
Fixed linux RTC driver to make it return UTC time instead of local one
2022-07-10 09:15:10 +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
54aa794bf8
Changed file extension of all C++ only header files from .h to .hpp
2022-07-09 18:22:36 +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
3a288769ba
Added the 'sleepUntil' API function to delays interface, allowing to put a thread in sleeping state until a certain absolute timepoint is reached
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
40337e7c97
Removed radio model name from UI info page
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
bc0c80edf6
Displaying of current heap usage in info page
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
Jeff Gustafson
1f56018e52
Added space character to UI text input mode.
2022-06-17 12:15:00 +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
Wojciech Kaczmarski
e5fbb77cd2
Fixed displayed voltage error
2022-06-12 11:52:17 +02:00
Silvano Seva
c966f82352
Fixed setting of battery voltage and transmission of PTT press signal from linux emulator shell
2022-06-09 23:02:38 +02:00
Silvano Seva
980fa32e73
Reorganised source code of linux emulator SDL engine
2022-06-09 22:48:41 +02:00
Silvano Seva
d2e0b7d940
Improved heap memory management in M17 modulator class
2022-06-05 12:27:25 +02:00
Silvano Seva
a1888ae19e
Improved heap memory management in M17 demodulator class
2022-06-05 12:24:43 +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
da22d6ff64
Separated interface for CPS loading from the non volatile memory one
2022-06-01 14:56:33 +02:00
Silvano Seva
c3cfaba4b2
Renamed zones into banks to align to M17 codeplug naming convention.
2022-06-01 14:56:22 +02:00