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:
dennis.sheirer
2014-11-26 12:09:21 +00:00
parent 86899e8a77
commit 1ff69404f4
16 changed files with 286 additions and 107 deletions

View File

@@ -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;
}
}

View File

@@ -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();

View File

@@ -75,7 +75,7 @@ public class P25Message extends Message
@Override
public String getEventType()
{
return "P25 " + mDUID.name();
return mDUID.name();
}
@Override

View 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 );
}
}