From b83f77c7c6a6d1014d231ef7e010a5157b915c58 Mon Sep 17 00:00:00 2001 From: tadscottsmith <78445808+tadscottsmith@users.noreply.github.com> Date: Thu, 25 Dec 2025 03:25:51 -0600 Subject: [PATCH] #2092 Adjust P25 P1 Motorola Talker Alias Dispatch Sequencing (#2317) * Add logic to ensure last Motorola talker alias block is handled before the completed alias. * Return removed comment. --- .../module/decode/p25/phase1/P25P1MessageProcessor.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/github/dsheirer/module/decode/p25/phase1/P25P1MessageProcessor.java b/src/main/java/io/github/dsheirer/module/decode/p25/phase1/P25P1MessageProcessor.java index a5bd4e06..90966967 100644 --- a/src/main/java/io/github/dsheirer/module/decode/p25/phase1/P25P1MessageProcessor.java +++ b/src/main/java/io/github/dsheirer/module/decode/p25/phase1/P25P1MessageProcessor.java @@ -179,6 +179,7 @@ public class P25P1MessageProcessor implements Listener } else if(message instanceof TDULCMessage tdulc) { + boolean motorolaTalkerAliasComplete = false; LinkControlWord lcw = tdulc.getLinkControlWord(); if(lcw instanceof IExtendedSourceMessage esm) @@ -198,13 +199,19 @@ public class P25P1MessageProcessor implements Listener //Motorola carries the talker alias in the TDULC else if(mMotorolaTalkerAliasAssembler.add(lcw, message.getTimestamp())) { - dispatch(mMotorolaTalkerAliasAssembler.assemble()); + motorolaTalkerAliasComplete = true; } //Harris carries the talker alias in the LDU1 link control messages, so reset the assembler on TDULC. mHarrisTalkerAliasAssembler.reset(); dispatch(tdulc); + + // Dispatch the complete talker alias after the TDULC to ensure correct log sequencing. + if(motorolaTalkerAliasComplete) + { + dispatch(mMotorolaTalkerAliasAssembler.assemble()); + } } else if(message instanceof HDUMessage hdu && mHeldTDULCMessage != null) {