diff --git a/.idea/dictionaries/denny.xml b/.idea/dictionaries/denny.xml
index 7f72f826..223a1c26 100644
--- a/.idea/dictionaries/denny.xml
+++ b/.idea/dictionaries/denny.xml
@@ -18,6 +18,7 @@
talkgroup
tgid
ultravox
+ wacn
xtea
diff --git a/src/channel/details/ChannelDetailPanel.java b/src/channel/details/ChannelDetailPanel.java
index 3ed53b2f..90e19874 100644
--- a/src/channel/details/ChannelDetailPanel.java
+++ b/src/channel/details/ChannelDetailPanel.java
@@ -38,7 +38,7 @@ public class ChannelDetailPanel extends JPanel implements ListenerActivity Summary - Decoder:P25 ").append(getModulation().name()).append("
");
+ sb.append("
");
+ sb.append("SITE: ");
if(mNetworkStatus != null)
{
- sb.append("\nNAC:\t" + mNetworkStatus.getNAC());
- sb.append("\nWACN-SYS:\t" + mNetworkStatus.getWACN());
- sb.append("-" + mNetworkStatus.getSystemID());
- sb.append(" [");
- sb.append(mNetworkStatus.getNetworkCallsign());
- sb.append("]");
- sb.append("\nLRA:\t" + mNetworkStatus.getLocationRegistrationArea());
+ sb.append("NAC:" + mNetworkStatus.getNAC());
+ sb.append("h WACN:" + mNetworkStatus.getWACN());
+ sb.append("h SYS:" + mNetworkStatus.getSystemID());
+ sb.append("h [").append(mNetworkStatus.getNetworkCallsign()).append("]");
+ sb.append(" LRA:" + mNetworkStatus.getLocationRegistrationArea());
}
else if(mNetworkStatusExtended != null)
{
- sb.append("\nNAC:\t" + mNetworkStatusExtended.getNAC());
- sb.append("\nWACN-SYS:\t" + mNetworkStatusExtended.getWACN());
- sb.append("-" + mNetworkStatusExtended.getSystemID());
- sb.append(" [");
- sb.append(mNetworkStatusExtended.getNetworkCallsign());
- sb.append("]");
- sb.append("\nLRA:\t" + mNetworkStatusExtended.getLocationRegistrationArea());
+ sb.append("NAC:" + mNetworkStatusExtended.getNAC());
+ sb.append("h WACN:" + mNetworkStatusExtended.getWACN());
+ sb.append("h SYS:" + mNetworkStatusExtended.getSystemID());
+ sb.append("h [").append(mNetworkStatusExtended.getNetworkCallsign()).append("]");
+ sb.append(" LRA:" + mNetworkStatusExtended.getLocationRegistrationArea());
}
String site = null;
@@ -3376,11 +3372,10 @@ public class P25DecoderState extends DecoderState
}
else if(mRFSSStatusMessageExtended != null)
{
- site = mRFSSStatusMessageExtended.getRFSubsystemID() + "-" +
- mRFSSStatusMessageExtended.getSiteID();
+ site = mRFSSStatusMessageExtended.getRFSubsystemID() + "-" + mRFSSStatusMessageExtended.getSiteID();
}
- sb.append("\nRFSS-SITE:\t" + site);
+ sb.append("h RFSS-SITE:").append(site).append("h");
if(hasAliasList())
{
@@ -3394,95 +3389,81 @@ public class P25DecoderState extends DecoderState
if(mNetworkStatus != null)
{
- sb.append("\nSERVICES:\t" + SystemService.toString(
- mNetworkStatus.getSystemServiceClass()));
- sb.append("\nPCCH:\tDNLINK " + mFrequencyFormatter.format(
- (double)mNetworkStatus.getDownlinkFrequency() / 1E6d) +
- " [" + mNetworkStatus.getIdentifier() + "-" +
- mNetworkStatus.getChannel() + "]\n");
- sb.append("\tUPLINK " + mFrequencyFormatter.format(
- (double)mNetworkStatus.getUplinkFrequency() / 1E6d) + " [" +
- mNetworkStatus.getIdentifier() + "-" +
- mNetworkStatus.getChannel() + "]\n");
+ sb.append("
SERVICES:" + SystemService.toString(mNetworkStatus.getSystemServiceClass()));
+ sb.append("
PCCH:DOWNLINK ")
+ .append(mFrequencyFormatter.format((double)mNetworkStatus.getDownlinkFrequency() / 1E6d))
+ .append(" [").append(mNetworkStatus.getIdentifier()).append("-").append(mNetworkStatus.getChannel())
+ .append("] UPLINK ")
+ .append(mFrequencyFormatter.format((double)mNetworkStatus.getUplinkFrequency() / 1E6d))
+ .append(" [").append(mNetworkStatus.getIdentifier()).append("-").append(mNetworkStatus.getChannel())
+ .append("]
");
}
else if(mNetworkStatusExtended != null)
{
- sb.append("\nSERVICES:\t" + SystemService.toString(
- mNetworkStatusExtended.getSystemServiceClass()));
- sb.append("\nPCCH:\tDNLINK " + mFrequencyFormatter.format(
- (double)mNetworkStatusExtended.getDownlinkFrequency() / 1E6d) +
- " [" + mNetworkStatusExtended.getTransmitIdentifier() + "-" +
- mNetworkStatusExtended.getTransmitChannel() + "]\n");
- sb.append("\tUPLINK " + mFrequencyFormatter.format(
- (double)mNetworkStatusExtended.getUplinkFrequency() / 1E6d) +
- " [" + mNetworkStatusExtended.getReceiveIdentifier() + "-" +
- mNetworkStatusExtended.getReceiveChannel() + "]");
+ sb.append("
SERVICES:").append(SystemService.toString(mNetworkStatusExtended.getSystemServiceClass()));
+ sb.append("
PCCH: DOWNLINK ")
+ .append(mFrequencyFormatter.format((double)mNetworkStatusExtended.getDownlinkFrequency() / 1E6d))
+ .append(" [").append(mNetworkStatusExtended.getTransmitIdentifier()).append("-")
+ .append(mNetworkStatusExtended.getTransmitChannel()).append("] UPLINK ")
+ .append(mFrequencyFormatter.format((double)mNetworkStatusExtended.getUplinkFrequency() / 1E6d))
+ .append(" [").append(mNetworkStatusExtended.getReceiveIdentifier()).append("-")
+ .append(mNetworkStatusExtended.getReceiveChannel()).append("]");
}
if(mSecondaryControlChannels.isEmpty())
{
- sb.append("\nSCCH:\tNONE");
+ sb.append("
SCCH: NONE");
}
else
{
- for(module.decode.p25.message.tsbk.osp.control.SecondaryControlChannelBroadcast
- sec : mSecondaryControlChannels)
+ for(module.decode.p25.message.tsbk.osp.control.SecondaryControlChannelBroadcast sec : mSecondaryControlChannels)
{
- sb.append("\nSCCH:\tDNLINK " + mFrequencyFormatter.format(
- (double)sec.getDownlinkFrequency1() / 1E6d) +
- " [" + sec.getIdentifier1() + "-" + sec.getChannel1() + "]\n");
- sb.append("\tUPLINK " + mFrequencyFormatter.format(
- (double)sec.getUplinkFrequency1() / 1E6d) + " [" +
- sec.getIdentifier1() + "-" + sec.getChannel1() + "]\n");
+ sb.append("
SCCH: DOWNLINK ")
+ .append(mFrequencyFormatter.format((double)sec.getDownlinkFrequency1() / 1E6d))
+ .append(" [").append(sec.getIdentifier1()).append("-").append(sec.getChannel1()).append("] UPLINK ")
+ .append(mFrequencyFormatter.format((double)sec.getUplinkFrequency1() / 1E6d))
+ .append(" [").append(sec.getIdentifier1()).append("-").append(sec.getChannel1()).append("]");
if(sec.hasChannel2())
{
- sb.append("\nSCCH:\tDNLINK " + mFrequencyFormatter.format(
- (double)sec.getDownlinkFrequency2() / 1E6d) +
- " [" + sec.getIdentifier2() + "-" + sec.getChannel2() + "]\n");
- sb.append("\tUPLINK " + mFrequencyFormatter.format(
- (double)sec.getUplinkFrequency2() / 1E6d) + " [" +
- sec.getIdentifier2() + "-" + sec.getChannel2() + "]");
+ sb.append("
SCCH: DOWNLINK ")
+ .append(mFrequencyFormatter.format((double)sec.getDownlinkFrequency2() / 1E6d))
+ .append(" [").append(sec.getIdentifier2()).append("-").append(sec.getChannel2())
+ .append("] UPLINK ").append(mFrequencyFormatter.format((double)sec.getUplinkFrequency2() / 1E6d))
+ .append(" [").append(sec.getIdentifier2()).append("-").append(sec.getChannel2()).append("]");
}
}
}
if(mSNDCPDataChannel != null)
{
- sb.append("\nSNDCP:");
- sb.append("\tDNLINK " + mFrequencyFormatter.format(
- (double)mSNDCPDataChannel.getDownlinkFrequency() / 1E6D) +
- " [" + mSNDCPDataChannel.getTransmitChannel() + "]");
- sb.append("\tUPLINK " + mFrequencyFormatter.format(
- (double)mSNDCPDataChannel.getUplinkFrequency() / 1E6D) +
- " [" + mSNDCPDataChannel.getReceiveChannel() + "]");
+ sb.append("
SNDCP: DOWNLINK ")
+ .append(mFrequencyFormatter.format((double)mSNDCPDataChannel.getDownlinkFrequency() / 1E6D))
+ .append(" [").append(mSNDCPDataChannel.getTransmitChannel()).append("]").append(" UPLINK ")
+ .append(mFrequencyFormatter.format((double)mSNDCPDataChannel.getUplinkFrequency() / 1E6D))
+ .append(" [").append(mSNDCPDataChannel.getReceiveChannel()).append("]");
}
if(mProtectionParameterBroadcast != null)
{
- sb.append("\nENCRYPTION:");
- sb.append("\nTYPE:\t" + mProtectionParameterBroadcast
- .getEncryptionType().name());
- sb.append("\nALGORITHM:\t" + mProtectionParameterBroadcast
- .getAlgorithmID());
- sb.append("\nKEY:\t" + mProtectionParameterBroadcast.getKeyID());
- sb.append("\nINBOUND IV:\t" + mProtectionParameterBroadcast
- .getInboundInitializationVector());
- sb.append("\nOUTBOUND IV:\t" + mProtectionParameterBroadcast
- .getOutboundInitializationVector());
+ sb.append("
ENCRYPTION: TYPE:").append(mProtectionParameterBroadcast.getEncryptionType().name());
+ sb.append(" ALGORITHM:").append(mProtectionParameterBroadcast.getAlgorithmID());
+ sb.append(" KEY:").append(mProtectionParameterBroadcast.getKeyID());
+ sb.append(" INBOUND IV:").append(mProtectionParameterBroadcast.getInboundInitializationVector());
+ sb.append(" OUTBOUND IV:").append(mProtectionParameterBroadcast.getOutboundInitializationVector());
}
List identifiers = new ArrayList<>(mBands.keySet());
Collections.sort(identifiers);
- sb.append("\nFREQUENCY BANDS:");
+ sb.append("
FREQUENCY BANDS:");
for(Integer id : identifiers)
{
IBandIdentifier band = mBands.get(id);
- sb.append("\n\t" + id);
- sb.append("- BASE: " + mFrequencyFormatter.format(
+ sb.append("
").append(id).append("");
+ sb.append(" - BASE: " + mFrequencyFormatter.format(
(double)band.getBaseFrequency() / 1E6d));
sb.append(" CHANNEL SIZE: " + mFrequencyFormatter.format(
(double)band.getChannelSpacing() / 1E6d));
@@ -3490,23 +3471,24 @@ public class P25DecoderState extends DecoderState
(double)band.getTransmitOffset() / 1E6D));
}
- sb.append("\n\n=================== NEIGHBORS ======================");
+ sb.append("
NEIGHBORS:");
if(mNeighborMap.isEmpty())
{
- sb.append("\n\tNONE\n");
- sb.append("\n----------------------------------------------------");
+ sb.append("NONE");
}
else
{
for(IAdjacentSite neighbor : mNeighborMap.values())
{
- sb.append("\nNAC:\t" + ((P25Message)neighbor).getNAC());
- sb.append("\nSYSTEM:\t" + neighbor.getSystemID());
- sb.append("\nLRA:\t" + neighbor.getLRA());
+ sb.append("NAC:").append(((P25Message)neighbor).getNAC());
+ sb.append("h SYSTEM:" + neighbor.getSystemID());
+ sb.append("h LRA:" + neighbor.getLRA());
String neighborID = neighbor.getRFSS() + "-" + neighbor.getSiteID();
- sb.append("\nRFSS-SITE:\t" + neighborID);
+ sb.append("h RFSS-SITE:" + neighborID);
+
+ sb.append("h ");
if(hasAliasList())
{
@@ -3514,21 +3496,22 @@ public class P25DecoderState extends DecoderState
if(siteAlias != null)
{
- sb.append(" " + siteAlias.getName());
+ sb.append(siteAlias.getName());
}
}
- sb.append("\nPCCH:\tDNLINK " + mFrequencyFormatter.format(
- (double)neighbor.getDownlinkFrequency() / 1E6d) +
- " [" + neighbor.getDownlinkChannel() + "]");
- sb.append("\n\tUPLINK:" + mFrequencyFormatter.format(
- (double)neighbor.getUplinkFrequency() / 1E6d) +
- " [" + neighbor.getDownlinkChannel() + "]\n");
- sb.append("\nSERVICES:\t" + neighbor.getSystemServiceClass());
- sb.append("\n----------------------------------------------------");
+ sb.append("
PCCH: DOWNLINK ")
+ .append(mFrequencyFormatter.format((double)neighbor.getDownlinkFrequency() / 1E6d))
+ .append(" [").append(neighbor.getDownlinkChannel()).append("] UPLINK:")
+ .append(mFrequencyFormatter.format((double)neighbor.getUplinkFrequency() / 1E6d))
+ .append(" [").append(neighbor.getDownlinkChannel()).append("] SERVICES: ")
+ .append(neighbor.getSystemServiceClass());
+ sb.append("");
+
return sb.toString();
}