Skip to content

P25 V.24/DFSI: fix startup clipping and duplicate STOP teardown#116

Closed
tsawyer wants to merge 10 commits intoDVMProject:masterfrom
tsawyer:codex/fix-v24-r05a05-prready
Closed

P25 V.24/DFSI: fix startup clipping and duplicate STOP teardown#116
tsawyer wants to merge 10 commits intoDVMProject:masterfrom
tsawyer:codex/fix-v24-r05a05-prready

Conversation

@tsawyer
Copy link

@tsawyer tsawyer commented Mar 5, 2026

Summary

This PR hardens P25 V.24/DFSI call handling by fixing startup queue/scheduler behavior and tightening end-of-call STOP generation.

What this fixes

  • Prevents clipped call onset caused by startup queue timing/space issues.
  • Prevents extra STOP signaling from repeated terminator units after call state is already closed.

Changes

  • Reset V.24 TX scheduler epoch at stream start (m_lastP25Tx = 0) so new calls do not inherit prior timing.
  • Preserve queued TX entries on serial write failure (peek first, dequeue only on successful write).
  • Avoid exact-full ringbuffer wrap ambiguity by enforcing one-byte queue headroom.
  • Increase DFSI V.24 P25 TX scheduler queue sizing to absorb startup burst traffic.
  • Keep normal TX queue priority in V.24 clock loop (immediate queue only when normal queue has nothing ready).
  • Treat V.24 modem space as advisory during startup in host/modem write path to avoid blocking first Net->RF voice frames.
  • Pass imm flag from P25 writer to modem write path.
  • Only issue V.24 EOS/STOP on TDU/TDULC when a TX call is actually in progress.
  • Remove temporary debug instrumentation used during diagnosis.
  • Add .DS_Store ignore entry to .gitignore.

Validation

  • Branch tested over-the-air with rebuilt binary from this branch.
  • Call teardown now follows a single STOP path; repeated terminators no longer cause duplicate STOP behavior.
  • No NAK, command = 0x... or serial write failure signatures observed in test capture window.

Notes to Devs

  • Some code has already been cherry pick from my GitHub. Feel free to continue especially if code review is not desired.
  • None of this code has been tested on anything other than DVMV24/Quantars.
  • No CC testing has been done. We're merely scratching our own itch to get conventional working to our satisfaction.
  • Finally, all code was written by Codex. I'm a php programmer not a C guy.

@gatekeep gatekeep mentioned this pull request Mar 6, 2026
19 tasks
@gatekeep
Copy link
Member

gatekeep commented Mar 6, 2026

Because we did a cherry pick I'm closing this PR (but keeping it here for documentation purposes) in favor of #117.

@gatekeep gatekeep closed this Mar 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants