From 1ff69404f408cb0fe7c6ad59543af629ebee8b4c Mon Sep 17 00:00:00 2001 From: "dennis.sheirer" Date: Wed, 26 Nov 2014 12:09:21 +0000 Subject: [PATCH] Updated P25 channel display to show relevant site information. Changed Site ID Alias to a string from integer to support P25 style site identifiers (RFSS-Site) --- src/alias/AliasList.java | 4 +- src/alias/siteID/SiteID.java | 23 ++-- src/alias/siteID/SiteIDEditor.java | 42 +++---- src/controller/site/SiteEditor.java | 2 +- src/controller/state/ChannelState.java | 7 +- src/decode/ltrnet/LTRNetActivitySummary.java | 24 ++-- src/decode/ltrnet/LTRNetOSWMessage.java | 24 ++-- .../mpt1327/MPT1327ActivitySummary.java | 19 +-- src/decode/mpt1327/MPT1327ChannelState.java | 8 +- src/decode/mpt1327/MPT1327Message.java | 20 +-- src/decode/mpt1327/MPT1327Panel.java | 4 +- src/decode/p25/P25ChannelState.java | 118 ++++++++++++++++++ src/decode/p25/P25Panel.java | 78 +++++++++++- src/decode/p25/message/P25Message.java | 2 +- src/decode/p25/message/tdu/TDUMessage.java | 15 +++ src/dsp/fsk/P25MessageFramer.java | 3 +- 16 files changed, 286 insertions(+), 107 deletions(-) create mode 100644 src/decode/p25/message/tdu/TDUMessage.java diff --git a/src/alias/AliasList.java b/src/alias/AliasList.java index 91ed9d03..1fafbf2e 100644 --- a/src/alias/AliasList.java +++ b/src/alias/AliasList.java @@ -57,7 +57,7 @@ public class AliasList implements Comparable private HashMap mMDC1200 = new HashMap(); private HashMap mMobileID = new HashMap(); private HashMap mMPT1327 = new HashMap(); - private HashMap mSiteID = new HashMap(); + private HashMap mSiteID = new HashMap(); private HashMap mStatus = new HashMap(); private HashMap mTalkgroup = new HashMap(); private HashMap mUniqueID = new HashMap(); @@ -203,7 +203,7 @@ public class AliasList implements Comparable } } - public Alias getSiteID( int siteID ) + public Alias getSiteID( String siteID ) { return mSiteID.get( siteID ); } diff --git a/src/alias/siteID/SiteID.java b/src/alias/siteID/SiteID.java index 65dfa416..7a6a0350 100644 --- a/src/alias/siteID/SiteID.java +++ b/src/alias/siteID/SiteID.java @@ -24,21 +24,21 @@ import alias.AliasIDType; public class SiteID extends AliasID { - private int mSite; + private String mSite; public SiteID() { } @XmlAttribute - public int getSite() + public String getSite() { return mSite; } - public void setSite( int site ) + public void setSite( String site ) { - this.mSite = site; + mSite = site; } public String toString() @@ -47,18 +47,11 @@ public class SiteID extends AliasID } @Override - public boolean matches( AliasID id ) + public boolean matches( AliasID otherID ) { - boolean retVal = false; - - if( id instanceof SiteID ) - { - SiteID uid = (SiteID)id; - - retVal = ( mSite == uid.getSite() ); - } - - return retVal; + return otherID != null && + otherID instanceof SiteID && + getSite().contentEquals( ( (SiteID)otherID).getSite() ); } @Override diff --git a/src/alias/siteID/SiteIDEditor.java b/src/alias/siteID/SiteIDEditor.java index 6f50f5c7..b45e33e1 100644 --- a/src/alias/siteID/SiteIDEditor.java +++ b/src/alias/siteID/SiteIDEditor.java @@ -24,6 +24,7 @@ import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; +import javax.swing.JTextArea; import javax.swing.JTextField; import net.miginfocom.swing.MigLayout; @@ -31,16 +32,12 @@ import net.miginfocom.swing.MigLayout; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import controller.ConfigurableNode; - public class SiteIDEditor extends JPanel implements ActionListener { private static final long serialVersionUID = 1L; private final static Logger mLog = - LoggerFactory.getLogger( SiteIDEditor.class ); + LoggerFactory.getLogger( SiteIDEditor.class ); private SiteIDNode mSiteIDNode; - - private JLabel mLabelName; private JTextField mTextSiteID; public SiteIDEditor( SiteIDNode siteIDNode ) @@ -52,7 +49,7 @@ public class SiteIDEditor extends JPanel implements ActionListener private void initGUI() { - setLayout( new MigLayout( "fill,wrap 2", "[right][left]", "[][][][grow]" ) ); + setLayout( new MigLayout( "fill,wrap 2", "[right][left]", "[][][][][grow]" ) ); add( new JLabel( "Site ID" ), "span,align center" ); @@ -61,6 +58,16 @@ public class SiteIDEditor extends JPanel implements ActionListener mTextSiteID = new JTextField( String.valueOf( mSiteIDNode.getSiteID().getSite() ) ); add( mTextSiteID, "growx,push" ); + + JTextArea description = new JTextArea( "Enter a site number. " + + "For P25 systems, use the format RR-SS, where RR = RF " + + "Subsystem and SS = Site Number. For example, RFSS 1 and " + + "Site 3 would be: 01-03"); + + description.setLineWrap( true ); + description.setBackground( getBackground() ); + + add( description, "growx,span" ); JButton btnSave = new JButton( "Save" ); btnSave.addActionListener( SiteIDEditor.this ); @@ -82,23 +89,11 @@ public class SiteIDEditor extends JPanel implements ActionListener if( siteIDString != null ) { - try - { - int id = Integer.parseInt( siteIDString ); - - mSiteIDNode.getSiteID().setSite( id ); - - ((ConfigurableNode)mSiteIDNode.getParent()).sort(); + mSiteIDNode.getSiteID().setSite( siteIDString ); - mSiteIDNode.save(); - - mSiteIDNode.show(); - } - catch( Exception ex ) - { - mLog.error( "SiteIDEditor - error parsing int site " + - "id from [" + siteIDString + "]" ); - } + mSiteIDNode.save(); + + mSiteIDNode.show(); } else { @@ -108,8 +103,7 @@ public class SiteIDEditor extends JPanel implements ActionListener } else if( command.contentEquals( "Reset" ) ) { - mTextSiteID.setText( - String.valueOf( mSiteIDNode.getSiteID().getSite() ) ); + mTextSiteID.setText( mSiteIDNode.getSiteID().getSite() ); } mSiteIDNode.refresh(); diff --git a/src/controller/site/SiteEditor.java b/src/controller/site/SiteEditor.java index b4d4a74e..6008a78c 100644 --- a/src/controller/site/SiteEditor.java +++ b/src/controller/site/SiteEditor.java @@ -90,7 +90,7 @@ public class SiteEditor extends JPanel implements ActionListener } else { - JOptionPane.showMessageDialog( SiteEditor.this, "Please enter a system name" ); + JOptionPane.showMessageDialog( SiteEditor.this, "Please enter a site name" ); } } else if( command.contentEquals( "Reset" ) ) diff --git a/src/controller/state/ChannelState.java b/src/controller/state/ChannelState.java index 3d038144..26d1f384 100644 --- a/src/controller/state/ChannelState.java +++ b/src/controller/state/ChannelState.java @@ -668,12 +668,17 @@ public abstract class ChannelState implements Listener FROM_TALKGROUP_TYPE, MESSAGE, MESSAGE_TYPE, + NAC, + SITE, + SITE_ALIAS, SITE_NAME, SOURCE, + SYSTEM, SYSTEM_NAME, SQUELCH, TO_TALKGROUP, TO_TALKGROUP_ALIAS, - TO_TALKGROUP_TYPE; + TO_TALKGROUP_TYPE, + WACN; } } diff --git a/src/decode/ltrnet/LTRNetActivitySummary.java b/src/decode/ltrnet/LTRNetActivitySummary.java index 8f1991c6..af4b0d85 100644 --- a/src/decode/ltrnet/LTRNetActivitySummary.java +++ b/src/decode/ltrnet/LTRNetActivitySummary.java @@ -38,8 +38,8 @@ public class LTRNetActivitySummary implements ActivitySummaryProvider private TreeSet mTalkgroups = new TreeSet(); private TreeSet mESNs = new TreeSet(); private TreeSet mUniqueIDs = new TreeSet(); - private TreeSet mNeighborIDs = new TreeSet(); - private TreeSet mSiteIDs = new TreeSet(); + private TreeSet mNeighborIDs = new TreeSet(); + private TreeSet mSiteIDs = new TreeSet(); private HashMap mReceiveFrequencies = new HashMap(); private HashMap mTransmitFrequencies = @@ -106,9 +106,9 @@ public class LTRNetActivitySummary implements ActivitySummaryProvider case ID_ESNL: break; case ID_NBOR: - int neighborID = ltr.getNeighborID(); + String neighborID = ltr.getNeighborID(); - if( neighborID != sINT_NULL_VALUE ) + if( neighborID != null ) { mNeighborIDs.add( neighborID ); } @@ -123,9 +123,9 @@ public class LTRNetActivitySummary implements ActivitySummaryProvider break; case ID_SITE: - int siteID = ltr.getSiteID(); + String siteID = ltr.getSiteID(); - if( siteID != sINT_NULL_VALUE ) + if( siteID != null ) { mSiteIDs.add( siteID ); } @@ -198,17 +198,17 @@ public class LTRNetActivitySummary implements ActivitySummaryProvider } else { - Iterator it = mSiteIDs.iterator(); + Iterator it = mSiteIDs.iterator(); while( it.hasNext() ) { sb.append( "Site:\t" ); - int siteID = it.next(); + String siteID = it.next(); sb.append( siteID ); - Alias siteAlias = mAliasList.getSiteID( siteID ); + Alias siteAlias = mAliasList.getSiteID( String.valueOf( siteID ) ); if( siteAlias != null ) { @@ -378,17 +378,17 @@ public class LTRNetActivitySummary implements ActivitySummaryProvider } else { - Iterator it = mNeighborIDs.iterator(); + Iterator it = mNeighborIDs.iterator(); while( it.hasNext() ) { - int neighbor = it.next(); + String neighbor = it.next(); sb.append( " " ); sb.append( neighbor ); sb.append( " " ); - Alias alias = mAliasList.getSiteID( neighbor ); + Alias alias = mAliasList.getSiteID( String.valueOf( neighbor ) ); if( alias != null ) { diff --git a/src/decode/ltrnet/LTRNetOSWMessage.java b/src/decode/ltrnet/LTRNetOSWMessage.java index 6b392ed5..67d7ba42 100644 --- a/src/decode/ltrnet/LTRNetOSWMessage.java +++ b/src/decode/ltrnet/LTRNetOSWMessage.java @@ -210,8 +210,8 @@ public class LTRNetOSWMessage extends LTRNetMessage sb.append( " MHz" ); break; case ID_SITE: - int siteId = getSiteID(); - if( siteId != sINT_NULL_VALUE ) + String siteId = getSiteID(); + if( siteId != null ) { sb.append( "SITE ID: " ); sb.append( siteId ); @@ -221,10 +221,10 @@ public class LTRNetOSWMessage extends LTRNetMessage break; case ID_NBOR: int neighborRank = getNeighborRank(); - int neighborId = getNeighborID(); + String neighborId = getNeighborID(); if( neighborRank != sINT_NULL_VALUE && - neighborId != sINT_NULL_VALUE ) + neighborId != null ) { sb.append( "NEIGHBOR SITE " ); sb.append( neighborRank ); @@ -354,16 +354,14 @@ public class LTRNetOSWMessage extends LTRNetMessage return null; } - public int getSiteID() + public String getSiteID() { - int retVal = sINT_NULL_VALUE; - if( mMessageType == MessageType.ID_SITE ) { - retVal = mMessage.getInt( 23, 32 ); + return String.valueOf( mMessage.getInt( 23, 32 ) ); } - return retVal; + return null; } public Alias getSiteIDAlias() @@ -376,16 +374,14 @@ public class LTRNetOSWMessage extends LTRNetMessage return null; } - public int getNeighborID() + public String getNeighborID() { - int retVal = sINT_NULL_VALUE; - if( mMessageType == MessageType.ID_NBOR ) { - retVal = mMessage.getInt( 23, 32 ); + return String.valueOf( mMessage.getInt( 23, 32 ) ); } - return retVal; + return null; } private Alias getNeighborIDAlias() diff --git a/src/decode/mpt1327/MPT1327ActivitySummary.java b/src/decode/mpt1327/MPT1327ActivitySummary.java index b16565da..018fd9f7 100644 --- a/src/decode/mpt1327/MPT1327ActivitySummary.java +++ b/src/decode/mpt1327/MPT1327ActivitySummary.java @@ -33,7 +33,7 @@ public class MPT1327ActivitySummary implements ActivitySummaryProvider, private AliasList mAliasList; private TreeSet mIdents = new TreeSet(); - private int mSite; + private String mSite; /** * Compiles a summary of active talkgroups, unique radio ids encountered @@ -103,7 +103,7 @@ public class MPT1327ActivitySummary implements ActivitySummaryProvider, sb.append( "Decoder:\tMPT-1327\n" ); sb.append( "Site:\t" ); - if( mSite != 0 ) + if( mSite != null ) { sb.append( mSite ); @@ -118,21 +118,6 @@ public class MPT1327ActivitySummary implements ActivitySummaryProvider, sb.append( "\n" ); } } - - sb.append( "Network:\t" ); - - if( ( mSite & 0x4000 ) == 0x4000 ) - { - sb.append( "National #" ); - int net = (int)Long.rotateRight( ( mSite & 0x3000 ) , 12 ); - sb.append( net ); - sb.append( "\n" ); - } - else - { - sb.append( "Regional\n" ); - } - } else { diff --git a/src/decode/mpt1327/MPT1327ChannelState.java b/src/decode/mpt1327/MPT1327ChannelState.java index 43338940..091e2690 100644 --- a/src/decode/mpt1327/MPT1327ChannelState.java +++ b/src/decode/mpt1327/MPT1327ChannelState.java @@ -36,7 +36,7 @@ import decode.mpt1327.MPT1327Message.IdentType; public class MPT1327ChannelState extends ChannelState { - private int mSite; + private String mSite; private String mFromTalkgroup; private String mToTalkgroup; private int mChannelNumber; @@ -153,9 +153,9 @@ public class MPT1327ChannelState extends ChannelState .build() ); break; case ALH: - int sys = mpt.getSiteID(); + String sys = mpt.getSiteID(); - if( sys != 0 && sys != mSite ) + if( sys != null && !sys.contentEquals( mSite ) ) { mSite = sys; broadcastChange( ChangedAttribute.CHANNEL_SITE_NUMBER ); @@ -315,7 +315,7 @@ public class MPT1327ChannelState extends ChannelState super.reset(); } - public int getSite() + public String getSite() { return mSite; } diff --git a/src/decode/mpt1327/MPT1327Message.java b/src/decode/mpt1327/MPT1327Message.java index 52697e16..64884144 100644 --- a/src/decode/mpt1327/MPT1327Message.java +++ b/src/decode/mpt1327/MPT1327Message.java @@ -327,19 +327,19 @@ public class MPT1327Message extends Message /** * MPT1327 Site identifier */ - public int getSiteID() + public String getSiteID() { if( mMessageType == MPTMessageType.BCAST ) { - return mMessage.getInt( B1_SYSTEM_ID ); + return String.valueOf( mMessage.getInt( B1_SYSTEM_ID ) ); } else if( mMessageType == MPTMessageType.ALH ) { - return mMessage.getInt( B2_SYSTEM_ID ); + return String.valueOf( mMessage.getInt( B2_SYSTEM_ID ) ); } else { - return 0; + return null; } } @@ -348,7 +348,7 @@ public class MPT1327Message extends Message */ public boolean hasSystemID() { - return getSiteID() != 0; + return getSiteID() != null; } public SystemDefinition getSystemDefinition() @@ -599,7 +599,7 @@ public class MPT1327Message extends Message break; case ACKT: sb.append( " SITE:" ); - sb.append( format( getSiteID(), 5 ) ); + sb.append( getSiteID() ); sb.append( " LONG ACK MESSAGE" ); @@ -619,7 +619,7 @@ public class MPT1327Message extends Message break; case ACKQ: sb.append( " SYSTEM:" ); - sb.append( format( getSiteID(), 5 ) ); + sb.append( getSiteID() ); sb.append( " CALL QUEUED FROM:" ); @@ -637,7 +637,7 @@ public class MPT1327Message extends Message break; case ACKX: sb.append( " SYSTEM:" ); - sb.append( format( getSiteID(), 5 ) ); + sb.append( getSiteID() ); sb.append( " MESSAGE REJECTED FROM:" ); @@ -687,7 +687,7 @@ public class MPT1327Message extends Message case ALHX: case ALHF: sb.append( " SYSTEM:" ); - sb.append( format( getSiteID(), 5 ) ); + sb.append( getSiteID() ); if( hasToID() ) { @@ -706,7 +706,7 @@ public class MPT1327Message extends Message break; case BCAST: sb.append( " SYSTEM:" ); - sb.append( format( getSiteID(), 5 ) ); + sb.append( getSiteID() ); SystemDefinition sysdef = getSystemDefinition(); diff --git a/src/decode/mpt1327/MPT1327Panel.java b/src/decode/mpt1327/MPT1327Panel.java index 60db75cf..9cb89284 100644 --- a/src/decode/mpt1327/MPT1327Panel.java +++ b/src/decode/mpt1327/MPT1327Panel.java @@ -191,9 +191,9 @@ public class MPT1327Panel extends ChannelStatePanel return null; } - private Alias getSiteAlias( int site ) + private Alias getSiteAlias( String site ) { - if( site != 0 && mAliasList != null ) + if( site != null && mAliasList != null ) { return mAliasList.getSiteID( site ); } diff --git a/src/decode/p25/P25ChannelState.java b/src/decode/p25/P25ChannelState.java index c9bc3cdb..58ef629f 100644 --- a/src/decode/p25/P25ChannelState.java +++ b/src/decode/p25/P25ChannelState.java @@ -18,6 +18,7 @@ package decode.p25; import message.Message; +import alias.Alias; import alias.AliasList; import audio.SquelchListener; import audio.SquelchListener.SquelchState; @@ -25,10 +26,20 @@ import controller.channel.ProcessingChain; import controller.state.AuxChannelState; import controller.state.ChannelState; import decode.p25.message.P25Message; +import decode.p25.message.pdu.RFSSStatusBroadcastExtended; +import decode.p25.message.tsbk.osp.control.RFSSStatusBroadcast; public class P25ChannelState extends ChannelState { private P25ActivitySummary mActivitySummary; + private String mNAC; + private String mSystem; + private String mSite; + private String mSiteAlias; + private String mFromTalkgroup; + private String mFromAlias; + private String mToTalkgroup; + private String mToAlias; public P25ChannelState( ProcessingChain chain, AliasList aliasList ) { @@ -52,6 +63,73 @@ public class P25ChannelState extends ChannelState { mActivitySummary.receive( (P25Message)message ); } + + if( message instanceof RFSSStatusBroadcast ) + { + RFSSStatusBroadcast rfss = (RFSSStatusBroadcast)message; + + if( mNAC == null || !mNAC.contentEquals( rfss.getNAC() ) ) + { + mNAC = rfss.getNAC(); + + broadcastChange( ChangedAttribute.NAC ); + } + + if( mSystem == null || !mSystem.contentEquals( rfss.getSystemID() ) ) + { + mSystem = rfss.getSystemID(); + + broadcastChange( ChangedAttribute.SYSTEM ); + } + + String site = rfss.getRFSubsystemID() + "-" + rfss.getSiteID(); + + if( mSite == null || !mSite.contentEquals( site ) ) + { + mSite = site; + + broadcastChange( ChangedAttribute.SITE ); + } + } + else if( message instanceof RFSSStatusBroadcastExtended ) + { + RFSSStatusBroadcastExtended rfss = (RFSSStatusBroadcastExtended)message; + + if( mNAC == null || !mNAC.contentEquals( rfss.getNAC() ) ) + { + mNAC = rfss.getNAC(); + + broadcastChange( ChangedAttribute.NAC ); + } + + if( mSystem == null || !mSystem.contentEquals( rfss.getSystemID() ) ) + { + mSystem = rfss.getSystemID(); + + broadcastChange( ChangedAttribute.SYSTEM ); + } + + String site = rfss.getRFSubsystemID() + "-" + rfss.getSiteID(); + + if( mSite == null || !mSite.contentEquals( site ) ) + { + mSite = site; + + if( mAliasList != null ) + { + Alias alias = mAliasList.getSiteID( mSite ); + + if( alias != null ) + { + mSiteAlias = alias.getName(); + + broadcastChange( ChangedAttribute.SITE_ALIAS ); + } + } + + broadcastChange( ChangedAttribute.SITE ); + } + } } @@ -76,4 +154,44 @@ public class P25ChannelState extends ChannelState return sb.toString(); } + + public String getNAC() + { + return mNAC; + } + + public String getSystem() + { + return mSystem; + } + + public String getSiteAlias() + { + return mSiteAlias; + } + + public String getSite() + { + return mSite; + } + + public String getFromTalkgroup() + { + return mFromTalkgroup; + } + + public String getFromAlias() + { + return mFromAlias; + } + + public String getToTalkgroup() + { + return mToTalkgroup; + } + + public String getToAlias() + { + return mToAlias; + } } diff --git a/src/decode/p25/P25Panel.java b/src/decode/p25/P25Panel.java index 9fbfd0f7..5aa79f74 100644 --- a/src/decode/p25/P25Panel.java +++ b/src/decode/p25/P25Panel.java @@ -36,6 +36,17 @@ public class P25Panel extends ChannelStatePanel private JLabel mChannelLabel; private JLabel mProtocol = new JLabel( "P25" ); + private JLabel mFrom = new JLabel( " " ); + private JLabel mFromAlias = new JLabel( " " ); + + private JLabel mNAC = new JLabel( "NAC:" ); + private JLabel mTo = new JLabel( " " ); + private JLabel mToAlias = new JLabel( " " ); + + private JLabel mSystem = new JLabel( "SYS:" ); + private JLabel mSite = new JLabel( "Site:" ); + private JLabel mSiteAlias = new JLabel( "WACN:" ); + public P25Panel( Channel channel ) { @@ -62,11 +73,45 @@ public class P25Panel extends ChannelStatePanel mProtocol.setFont( mFontDecoder ); mProtocol.setForeground( mColorLabelDecoder ); + mFrom.setFont( mFontDecoder ); + mFrom.setForeground( mColorLabelDecoder ); + + mFromAlias.setFont( mFontDecoder ); + mFromAlias.setForeground( mColorLabelDecoder ); + + mNAC.setFont( mFontDecoder ); + mNAC.setForeground( mColorLabelDecoder ); + + mTo.setFont( mFontDecoder ); + mTo.setForeground( mColorLabelDecoder ); + + mToAlias.setFont( mFontDecoder ); + mToAlias.setForeground( mColorLabelDecoder ); + + mSystem.setFont( mFontDecoder ); + mSystem.setForeground( mColorLabelDecoder ); + + mSiteAlias.setFont( mFontDecoder ); + mSiteAlias.setForeground( mColorLabelDecoder ); + + mSite.setFont( mFontDecoder ); + mSite.setForeground( mColorLabelDecoder ); + add( mStateLabel ); add( mSourceLabel ); add( mChannelLabel, "wrap" ); - add( mProtocol, "wrap" ); + add( mProtocol ); + add( mFrom ); + add( mFromAlias, "wrap" ); + + add( mNAC ); + add( mTo ); + add( mToAlias, "wrap" ); + + add( mSystem ); + add( mSite ); + add( mSiteAlias, "wrap" ); } @Override @@ -77,11 +122,13 @@ public class P25Panel extends ChannelStatePanel @Override public void run() { + final P25ChannelState channelState = (P25ChannelState)mChannel. + getProcessingChain().getChannelState(); + switch( changedAttribute ) { case CHANNEL_STATE: - mStateLabel.setText( mChannel.getProcessingChain(). - getChannelState().getState().getDisplayValue() ); + mStateLabel.setText( channelState.getState().getDisplayValue() ); break; case SOURCE: mSourceLabel.setText( mChannel.getSourceConfiguration() @@ -92,6 +139,31 @@ public class P25Panel extends ChannelStatePanel case SYSTEM_NAME: mChannelLabel.setText( mChannel.getChannelDisplayName() ); break; + case NAC: + mNAC.setText( "NAC:" + channelState.getNAC() ); + break; + case SYSTEM: + mSystem.setText( "SYS:" + channelState.getSystem() ); + break; + case SITE: + mSite.setText( "SITE:" + channelState.getSite() ); + break; + case SITE_ALIAS: + mSiteAlias.setText( channelState.getSiteAlias() ); + break; + case FROM_TALKGROUP: + mFrom.setText( channelState.getFromTalkgroup() ); + break; + case FROM_TALKGROUP_ALIAS: + mFromAlias.setText( channelState.getFromAlias() ); + break; + case TO_TALKGROUP: + mTo.setText( channelState.getToTalkgroup() ); + break; + case TO_TALKGROUP_ALIAS: + mToAlias.setText( channelState.getToAlias() ); + break; + } repaint(); diff --git a/src/decode/p25/message/P25Message.java b/src/decode/p25/message/P25Message.java index 832f9d06..1aacbd2e 100644 --- a/src/decode/p25/message/P25Message.java +++ b/src/decode/p25/message/P25Message.java @@ -75,7 +75,7 @@ public class P25Message extends Message @Override public String getEventType() { - return "P25 " + mDUID.name(); + return mDUID.name(); } @Override diff --git a/src/decode/p25/message/tdu/TDUMessage.java b/src/decode/p25/message/tdu/TDUMessage.java new file mode 100644 index 00000000..d5e53f32 --- /dev/null +++ b/src/decode/p25/message/tdu/TDUMessage.java @@ -0,0 +1,15 @@ +package decode.p25.message.tdu; + +import alias.AliasList; +import bits.BitSetBuffer; +import decode.p25.message.P25Message; +import decode.p25.reference.DataUnitID; + +public class TDUMessage extends P25Message +{ + public TDUMessage( BitSetBuffer message, DataUnitID duid, + AliasList aliasList ) + { + super( message, duid, aliasList ); + } +} diff --git a/src/dsp/fsk/P25MessageFramer.java b/src/dsp/fsk/P25MessageFramer.java index 0d64bf74..3bacc2c8 100644 --- a/src/dsp/fsk/P25MessageFramer.java +++ b/src/dsp/fsk/P25MessageFramer.java @@ -17,6 +17,7 @@ import decode.p25.TrellisHalfRate; import decode.p25.message.P25Message; import decode.p25.message.pdu.PDUMessage; import decode.p25.message.pdu.PDUMessageFactory; +import decode.p25.message.tdu.TDUMessage; import decode.p25.message.tsbk.TSBKMessage; import decode.p25.message.tsbk.TSBKMessageFactory; import decode.p25.reference.DataUnitID; @@ -321,7 +322,7 @@ public class P25MessageFramer implements Listener break; case TDU: mComplete = true; - dispatch( new P25Message( mMessage.copy(), mDUID, mAliasList ) ); + dispatch( new TDUMessage( mMessage.copy(), mDUID, mAliasList ) ); break; case TDULC: mComplete = true;