mirror of
https://github.com/DSheirer/sdrtrunk.git
synced 2026-11-13 09:07:27 -05:00
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)
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -75,7 +75,7 @@ public class P25Message extends Message
|
||||
@Override
|
||||
public String getEventType()
|
||||
{
|
||||
return "P25 " + mDUID.name();
|
||||
return mDUID.name();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
15
src/decode/p25/message/tdu/TDUMessage.java
Normal file
15
src/decode/p25/message/tdu/TDUMessage.java
Normal file
@@ -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 );
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user