Cort Buffington
8bd467598c
Debounce link-mode external-audio underrun before dropping PTT
...
Under [FM] LinkMode=1, linkStateMachine() set m_extSignal false the
instant a single ext-audio sample went missing, with no debounce --
unlike the non-link duplex/simplex paths, which already tolerate a
brief gap via the RELAYING_EXT -> RELAYING_WAIT_EXT / m_ackDelayTimer
pattern before declaring a real loss. Since IO::process() drops PTT
the moment the downstream TX buffer runs dry, that zero-debounce cutoff
meant even a very brief, late-but-recoverable gap from the gateway
(scheduling jitter, a late UDP frame, etc.) could cascade into a full
PTT drop-and-rekey cycle -- far more audible than the underlying gap
itself.
Adds m_extGapTimer, mirroring the existing pattern: on the first missed
sample, start the timer instead of immediately clearing m_extSignal; a
gap that recovers before FM_LINK_EXT_GAP_MS (default 60ms) expires
never affects m_extSignal at all, so the transmitter never notices.
Only a gap that outlasts the timer is treated as a genuine end of
transmission, exactly as before.
linkSamples()'s currentExtSample is now zero-initialized, since
m_extSignal can now stay true for a few samples past an underrun --
silence, not stack garbage, must be what gets played out to the modem
during that window.
2026-08-09 11:42:20 -05:00
Jonathan Naylor
5dd59fc473
Merge branch 'master' into mqtt
2025-08-28 17:00:21 +01:00
Jonathan Naylor
824c9b9852
Widened the size of serial data going into M17 and FM.
2025-01-13 15:05:28 +00:00
Jonathan Naylor
a7fddc37e1
Don't send a status when the FM repeater is reset, it causes a loop.
2023-11-18 16:45:36 +00:00
Jonathan Naylor
3e079f58ad
Add RSSI reporting to FM and AX.25
2023-08-02 17:34:52 +01:00
Jonathan Naylor
7ef0d992d9
Improve the status reporting for FM mode.
2023-01-18 14:30:02 +00:00
Jonathan Naylor
ee07f76bd5
Split the repeater and link mode audio paths.
2021-09-30 18:16:51 +01:00
Jonathan Naylor
6a4dad4c44
Change the LinkMode state machine.
2021-09-06 22:50:40 +01:00
Jonathan Naylor
ed6bd66fab
Rename SimpleMode to LinkMode.
2021-09-06 21:53:01 +01:00
Jonathan Naylor
1a07a6f0d1
Add more details to the simple FM state machine.
2021-09-05 19:46:01 +01:00
Jonathan Naylor
70bf47f93e
Add a bery simple FM mode for internet gatewaying.
2021-09-05 19:06:56 +01:00
Jonathan Naylor
1df7d7a7fc
Change the FM serial block size to 80.
2021-03-07 19:01:46 +00:00
Jonathan Naylor
81518bf74c
Make AX.25, DMR, P25, NXDN and FM selectable at compile time.
2020-11-08 22:23:27 +00:00
Jonathan Naylor
2a001f491d
Simplify the CTCSS and Noise Squelch decoders and logic.
2020-07-31 09:20:55 +01:00
Jonathan Naylor
d8f138066e
Add an experimental noise squelch.
2020-07-28 13:55:50 +01:00
Jonathan Naylor
9ff59570c7
Merge branch 'AX25' into AX25_FM
2020-07-15 10:42:43 +01:00
Jonathan Naylor
1ac0628c1c
Improve the code efficiency slightly.
2020-07-14 14:54:47 +01:00
Jonathan Naylor
dc41fd83d2
Test the use of a reverse burst at the end of a transmission.
2020-07-14 12:20:42 +01:00
Jonathan Naylor
20013e3adc
Make Use COS As Lockout a run-time parameter and allow for different access modes.
2020-07-13 17:13:01 +01:00
Jonathan Naylor
5960fb97f3
Merge branch 'AX25' into AX25_FM
2020-07-12 15:28:00 +01:00
Jonathan Naylor
ccdbe126e0
Fix the timeout tones.
2020-07-12 15:22:35 +01:00
Jonathan Naylor
ad77fd60fd
Remove KerchunkTX.
2020-07-07 17:57:31 +01:00
Jonathan Naylor
aab8f5469f
Add timeouts to the FM simplex state machine.
2020-07-06 10:56:35 +01:00
Jonathan Naylor
c99f50575d
Add a simpe simplex FM controller state machine.
2020-07-01 13:02:14 +01:00
Jonathan Naylor
14d5098018
Rename FMDownsampler to FMDownSampler.
2020-06-30 12:44:02 +01:00
Jonathan Naylor
0ea732780d
Implement Kerchunk TX option.
2020-06-20 21:03:11 +01:00
Geoffrey Merck
4f060c0047
Esnure frame size is 84 samples, correctly report space as number of frames
2020-05-31 21:50:06 +02:00
Geoffrey Merck
72cd2ce03e
Ensure we have at least 75ms of audio before transmitting
2020-05-30 20:05:34 +02:00
Geoffrey Merck
f14222e77d
Make sure buffer is continuously filled
2020-05-23 08:25:51 +02:00
Jonathan Naylor
f9f81b9b8e
Try and make the closing callsign appear.
...
(cherry picked from commit 063b21f999 )
2020-05-20 23:11:22 +02:00
Geoffrey Merck
3cc5d67696
check acks
2020-05-20 22:51:22 +02:00
Geoffrey Merck
3f960f9fc5
Fix Callsignatend and simplify Samples
2020-05-20 22:30:55 +02:00
Jonathan Naylor
e7a22482db
Set the COS LED on incoming RF transmissions.
2020-05-19 13:45:17 +01:00
Jonathan Naylor
5f29808b80
Set the COS LED correctly.
2020-05-19 12:09:44 +01:00
Jonathan Naylor
063b21f999
Try and make the closing callsign appear.
2020-05-18 11:09:56 +01:00
Jonathan Naylor
625749a546
Fixed up the use of the writeFMEOT method.
2020-05-16 13:15:21 +01:00
Geoffrey Merck
48e863d1d0
Sent EOT on rf timeout
2020-05-15 21:19:26 +02:00
Geoffrey Merck
7b915f9cac
Only send EOT when EXT is enabled
2020-05-15 21:06:16 +02:00
Geoffrey Merck
388620b182
Add FM EOT
2020-05-15 18:53:34 +02:00
Jonathan Naylor
ff375abb0e
Hold off the mode change until the ack and callsign have been
...
transmitted.
2020-05-14 12:10:37 +01:00
Geoffrey Merck
cfcb7ed852
Really fix TX Buffer ovrflows,, reduce delay buffer memory footprint
2020-05-14 09:10:11 +02:00
Geoffrey Merck
b245be464f
Fix txbuffer overflows and bring back elegant while loop
2020-05-13 22:57:42 +02:00
Geoffrey Merck
df23e15c91
Fix compilation warnings
2020-05-13 11:52:59 +02:00
Geoffrey Merck
62f239ccc9
Fix modem crash while writing to serial, Split IO write and serial write to 2 separate loops.
2020-05-13 08:31:59 +02:00
Geoffrey Merck
994226e4b1
Tighten incoming data, Add FM UpSampler
2020-05-12 22:06:26 +02:00
Geoffrey Merck
8e8cf35b19
Merge remote-tracking branch 'upstream/FM_Ext' into FM_Ext
2020-05-12 17:55:41 +02:00
Geoffrey Merck
66de35b6d8
Move downsamplig call back to samples
2020-05-12 17:55:24 +02:00
Jonathan Naylor
7dc420c8ff
Add the FM controller status to the FM Status message.
2020-05-12 15:58:54 +01:00
Jonathan Naylor
df0a9ebe72
Merge branch 'FM' into FM_Ext
2020-05-12 15:51:41 +01:00
Geoffrey Merck
496afcb40e
Fix silence
2020-05-12 16:21:24 +02:00