Adds event logging, code cleanup and some decoder issue resolution.

This commit is contained in:
denny
2015-09-02 19:41:44 -04:00
parent f4d8ea281d
commit 0f85b7260a
124 changed files with 469 additions and 1416 deletions

View File

@@ -25,10 +25,8 @@ import javax.swing.JCheckBox;
import javax.swing.SwingUtilities;
import module.decode.config.AuxDecodeConfiguration;
import controller.Editor;
import controller.channel.AbstractChannelEditor;
import controller.channel.ChannelNode;
import controller.channel.ChannelValidationException;
public class AuxDecodeComponentEditor extends AbstractChannelEditor
{

View File

@@ -29,11 +29,9 @@ import javax.swing.SwingConstants;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import net.miginfocom.swing.MigLayout;
import module.decode.config.DecodeConfiguration;
import net.miginfocom.swing.MigLayout;
import controller.Editor;
import controller.channel.Channel;
import controller.channel.ChannelValidationException;
public class DecodeEditor extends Editor
{

View File

@@ -258,6 +258,9 @@ public class DecoderFactory
case TAIT_1200:
decoders.add( new Tait1200Decoder( aliasList ) );
break;
default:
throw new IllegalArgumentException( "Unrecognized auxiliary "
+ "decoder type [" + auxDecoder + "]" );
}
}

View File

@@ -21,7 +21,6 @@ import java.awt.Component;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.lang.reflect.InvocationTargetException;
import javax.swing.JButton;
import javax.swing.JFrame;

View File

@@ -0,0 +1,8 @@
package module.decode.event;
import sample.Listener;
public interface ICallEventListener
{
public Listener<CallEvent> getCallEventListener();
}

View File

@@ -19,7 +19,6 @@ package module.decode.fleetsync1;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;

View File

@@ -167,6 +167,8 @@ public class FleetsyncCallEvent extends CallEvent
sbDetails.append( message.getStatusAlias().getName() );
}
break;
default:
break;
}
if( type == CallEventType.ID_ANI ||

View File

@@ -85,6 +85,8 @@ public class LJ1200Message extends Message
case PASSED:
mLog.debug( "PASS:" + message.toString() );
break;
default:
break;
}
}

View File

@@ -29,7 +29,6 @@ import alias.Alias;
import alias.AliasList;
import bits.BinaryMessage;
import edac.CRC;
import edac.CRCLJ;
public class LJ1200TransponderMessage extends Message
{
@@ -66,6 +65,8 @@ public class LJ1200TransponderMessage extends Message
case UNKNOWN:
mLog.debug( "UNKNOWN:" + message.toString() );
break;
default:
break;
}
}

View File

@@ -160,6 +160,8 @@ public class LTRNetDecoderPanel extends DecoderPanel
mDescription.setForeground( mColorLabelDecoder );
}
break;
default:
break;
}
}
}

View File

@@ -23,7 +23,6 @@ import java.util.Iterator;
import java.util.TreeSet;
import message.Message;
import module.decode.event.CallEvent;
import module.decode.event.CallEvent.CallEventType;
import module.decode.state.ChangedAttribute;
import module.decode.state.DecoderState;

View File

@@ -21,7 +21,6 @@ import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JLabel;

View File

@@ -17,13 +17,12 @@
******************************************************************************/
package module.decode.ltrstandard;
import sample.Listener;
import sample.real.IRealBufferListener;
import sample.real.RealBuffer;
import message.MessageDirection;
import module.decode.Decoder;
import module.decode.DecoderType;
import module.decode.config.DecodeConfiguration;
import sample.Listener;
import sample.real.IRealBufferListener;
import sample.real.RealBuffer;
import alias.AliasList;
import bits.MessageFramer;
import bits.SyncPattern;

View File

@@ -148,6 +148,8 @@ public class MDCCallEvent extends CallEvent
case PAGING:
type = CallEventType.PAGE;
break;
default:
break;
}
return new MDCCallEvent.Builder( type )

View File

@@ -216,6 +216,8 @@ public class MPT1327DecoderPanel extends DecoderPanel
mToTalkgroupLabel.setForeground( mColorLabelDetails );
}
break;
default:
break;
}
}
}

View File

@@ -238,6 +238,8 @@ public class MPT1327DecoderState extends DecoderState
case MAINT:
broadcast( new DecoderStateEvent( this, Event.END, State.END ) );
break;
default:
break;
}
}
}

View File

@@ -581,6 +581,7 @@ public class MPT1327Message extends Message
sb.append( " " );
sb.append( type.getLabel() );
sb.append( " REQUEST" );
break;
}
break;
case ACKI:
@@ -726,8 +727,6 @@ public class MPT1327Message extends Message
sb.append( getChannel() );
sb.append( " SER:" );
sb.append( getAdjacentSiteSerialNumber() );
//debug
sb.append( " *************************" );
break;
case SPECIFY_CALL_MAINTENANCE_PARAMETERS:
sb.append( " PERIODIC MAINT MSG REQD:" );
@@ -738,6 +737,8 @@ public class MPT1327Message extends Message
sb.append( getPresselOnRequired() );
sb.append( " IDENT1 VALUE:" );
sb.append( getMaintMessageIDENT1Value() );
default:
break;
}
break;
case CLEAR:
@@ -777,6 +778,8 @@ public class MPT1327Message extends Message
sb.append( " " );
sb.append( getSDM() );
break;
default:
break;
}
return sb.toString();
@@ -849,6 +852,8 @@ public class MPT1327Message extends Message
sb.append( "SEND SHORT DATA MESSAGE USING " );
sb.append( slots.getLabel() );
break;
default:
break;
}
}
else
@@ -1253,6 +1258,8 @@ public class MPT1327Message extends Message
12 ) );
}
break;
default:
break;
}
return sb.toString();
@@ -1278,6 +1285,8 @@ public class MPT1327Message extends Message
case HEAD_PLUS4:
blocks = 4;
break;
default:
break;
}
if( blocks >= 1 )
@@ -1347,6 +1356,8 @@ public class MPT1327Message extends Message
case HEAD_PLUS4:
blocks = 4;
break;
default:
break;
}
if( blocks >= 1 )
@@ -1446,6 +1457,8 @@ public class MPT1327Message extends Message
case HEAD_PLUS4:
blocks = 4;
break;
default:
break;
}
if( blocks >= 1 )

View File

@@ -17,11 +17,11 @@
******************************************************************************/
package module.decode.mpt1327;
import message.Message;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import message.Message;
import module.decode.DecoderFactory;
import sample.Listener;
import alias.AliasList;
import bits.BinaryMessage;

View File

@@ -171,6 +171,8 @@ public class MPT1327TrafficPanel extends DecoderPanel
case CHANNEL_STATE_LABEL_DETAILS:
mToLabel.setForeground( mColorLabelDetails );
break;
default:
break;
}
}
}

View File

@@ -18,6 +18,12 @@ public class C4FMSlicer implements RealSampleListener
private Broadcaster<Dibit> mBroadcaster = new Broadcaster<Dibit>();
public void dispose()
{
mBroadcaster.dispose();
mBroadcaster = null;
}
/**
* Primary method for receiving output from the C4FMSymbolFilter. Slices
* (converts) the filtered sample value into a C4FMSymbol decision.

View File

@@ -229,6 +229,13 @@ public class C4FMSymbolFilter implements FrequencyCorrectionResetListener,
mFrequencyCorrectionControl.setListener( this );
}
public void dispose()
{
mGainController = null;
mFrequencyCorrectionControl = null;
mListener = null;
}
@Override
public void receive( float sample )
{

View File

@@ -19,6 +19,14 @@ public abstract class P25Decoder extends Decoder
mMessageProcessor = new P25MessageProcessor( aliasList );
mMessageProcessor.setMessageListener( mMessageBroadcaster );
}
public void dispose()
{
super.dispose();
mMessageProcessor.dispose();
mMessageProcessor = null;
}
@Override
public DecoderType getDecoderType()

View File

@@ -21,10 +21,9 @@ import java.awt.EventQueue;
import javax.swing.JLabel;
import net.miginfocom.swing.MigLayout;
import module.decode.state.ChangedAttribute;
import module.decode.state.DecoderPanel;
import module.decode.state.State;
import net.miginfocom.swing.MigLayout;
import settings.ColorSetting;
import settings.Setting;
import settings.SettingsManager;
@@ -168,6 +167,8 @@ public class P25DecoderPanel extends DecoderPanel
mToAlias.setIcon( null );
}
break;
default:
break;
}
repaint();

View File

@@ -2264,43 +2264,45 @@ public class P25DecoderState extends DecoderState
{
switch( message.getOpcode() )
{
case GROUP_DATA_CHANNEL_ANNOUNCEMENT:
GroupDataChannelAnnouncement gdca = (GroupDataChannelAnnouncement)message;
broadcast( new P25CallEvent.Builder( CallEventType.ANNOUNCEMENT )
.aliasList( getAliasList() )
.channel( gdca.getChannel1() )
.details( ( gdca.isEncrypted() ? "ENCRYPTED" : "" ) +
( gdca.isEmergency() ? " EMERGENCY" : "") )
.frequency( gdca.getDownlinkFrequency1() )
.to( gdca.getGroupAddress1() )
.build() );
if( gdca.hasChannelNumber2() )
{
case GROUP_DATA_CHANNEL_ANNOUNCEMENT:
GroupDataChannelAnnouncement gdca = (GroupDataChannelAnnouncement)message;
broadcast( new P25CallEvent.Builder( CallEventType.ANNOUNCEMENT )
.aliasList( getAliasList() )
.channel( gdca.getChannel2() )
.channel( gdca.getChannel1() )
.details( ( gdca.isEncrypted() ? "ENCRYPTED" : "" ) +
( gdca.isEmergency() ? " EMERGENCY" : "") )
.frequency( gdca.getDownlinkFrequency2() )
.to( gdca.getGroupAddress2() )
.frequency( gdca.getDownlinkFrequency1() )
.to( gdca.getGroupAddress1() )
.build() );
}
break;
case GROUP_DATA_CHANNEL_ANNOUNCEMENT_EXPLICIT:
GroupDataChannelAnnouncementExplicit gdcae =
(GroupDataChannelAnnouncementExplicit)message;
broadcast( new P25CallEvent.Builder( CallEventType.DATA_CALL )
.aliasList( getAliasList() )
.channel( gdcae.getTransmitChannel() )
.details( ( gdcae.isEncrypted() ? "ENCRYPTED" : "" ) +
( gdcae.isEmergency() ? " EMERGENCY" : "") )
.frequency( gdcae.getDownlinkFrequency() )
.to( gdcae.getGroupAddress() )
.build() );
break;
if( gdca.hasChannelNumber2() )
{
broadcast( new P25CallEvent.Builder( CallEventType.ANNOUNCEMENT )
.aliasList( getAliasList() )
.channel( gdca.getChannel2() )
.details( ( gdca.isEncrypted() ? "ENCRYPTED" : "" ) +
( gdca.isEmergency() ? " EMERGENCY" : "") )
.frequency( gdca.getDownlinkFrequency2() )
.to( gdca.getGroupAddress2() )
.build() );
}
break;
case GROUP_DATA_CHANNEL_ANNOUNCEMENT_EXPLICIT:
GroupDataChannelAnnouncementExplicit gdcae =
(GroupDataChannelAnnouncementExplicit)message;
broadcast( new P25CallEvent.Builder( CallEventType.DATA_CALL )
.aliasList( getAliasList() )
.channel( gdcae.getTransmitChannel() )
.details( ( gdcae.isEncrypted() ? "ENCRYPTED" : "" ) +
( gdcae.isEmergency() ? " EMERGENCY" : "") )
.frequency( gdcae.getDownlinkFrequency() )
.to( gdcae.getGroupAddress() )
.build() );
break;
default:
break;
}
}

View File

@@ -31,7 +31,6 @@ import bits.MultiSyncPatternMatcher;
import bits.SoftSyncDetector;
import bits.SyncDetector;
import dsp.psk.CQPSKDemodulator;
import dsp.psk.CQPSKDemodulator2;
import dsp.symbol.Dibit;
import dsp.symbol.FrameSync;
import edac.BCH_63_16_11;
@@ -47,20 +46,12 @@ public class P25MessageFramer implements Listener<Dibit>
private static final int SYNC_MATCH_THRESHOLD = 2;
private static final int SYNC_IN_CALL_THRESHOLD = 4;
private SoftSyncDetector mPrimarySyncDetector = new SoftSyncDetector(
FrameSync.P25_PHASE1_NORMAL.getSync(), SYNC_MATCH_THRESHOLD );
/* Costas Loop phase lock error correction values. A phase lock error of
* 90 degrees requires a correction of 1/4 of the symbol rate (1200Hz). An
* error of 180 degrees requires a correction of 1/2 of the symbol rate */
public static final double SYMBOL_FREQUENCY = 2.0d * Math.PI * 4800.0d / 48000.0d;
public static final double PHASE_CORRECTION_90_DEGREES = SYMBOL_FREQUENCY / 4.0d;
public static final double PHASE_CORRECTION_180_DEGREES = SYMBOL_FREQUENCY / 2.0d;
private MultiSyncPatternMatcher mMatcher = new MultiSyncPatternMatcher( 48 );
private ArrayList<P25MessageAssembler> mAssemblers =
new ArrayList<P25MessageAssembler>();
public static final int TSBK_BEGIN = 64;
public static final int TSBK_CRC_START = 144;
public static final int TSBK_END = 260;
@@ -77,6 +68,13 @@ public class P25MessageFramer implements Listener<Dibit>
public static final int PDU3_END = 548;
public static final int PDU3_DECODED_END = 448;
private SoftSyncDetector mPrimarySyncDetector = new SoftSyncDetector(
FrameSync.P25_PHASE1_NORMAL.getSync(), SYNC_MATCH_THRESHOLD );
private MultiSyncPatternMatcher mMatcher = new MultiSyncPatternMatcher( 48 );
private ArrayList<P25MessageAssembler> mAssemblers =
new ArrayList<P25MessageAssembler>();
private Listener<Message> mListener;
private AliasList mAliasList;
@@ -143,6 +141,26 @@ public class P25MessageFramer implements Listener<Dibit>
}
}
public void dispose()
{
for( P25MessageAssembler a: mAssemblers )
{
a.dispose();
}
mAssemblers.clear();
mListener = null;
mAliasList = null;
mMatcher.dispose();
mMatcher = null;
mPrimarySyncDetector.dispose();
mPrimarySyncDetector = null;
}
private void dispatch( Message message )
{
if( mListener != null )

View File

@@ -10,7 +10,6 @@ import module.decode.p25.message.ldu.LDUMessage;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import sample.Broadcaster;
import sample.Listener;
import alias.AliasList;

View File

@@ -110,6 +110,33 @@ public class P25_C4FMDecoder extends P25Decoder implements IRealBufferListener
/* Process and broadcast messages */
mMessageFramer.setListener( getMessageProcessor() );
}
@Override
public void dispose()
{
super.dispose();
mC4FMPreFilter.dispose();
mC4FMPreFilter = null;
mDGC.dispose();
mDGC = null;
mStreamConverter.dispose();
mStreamConverter = null;
mFrequencyCorrectionControl.dispose();
mFrequencyCorrectionControl = null;
mSymbolFilter.dispose();
mSymbolFilter = null;
mMessageFramer.dispose();
mMessageFramer = null;
mC4FMSlicer.dispose();
mC4FMSlicer = null;
}
public Modulation getModulation()
{

View File

@@ -21,7 +21,6 @@ import instrument.tap.Tap;
import instrument.tap.stream.ComplexSampleTap;
import instrument.tap.stream.ComplexTap;
import instrument.tap.stream.DibitTap;
import instrument.tap.stream.FloatTap;
import instrument.tap.stream.QPSKTap;
import java.util.ArrayList;
@@ -30,13 +29,13 @@ import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import controller.channel.Channel.ChannelType;
import sample.Listener;
import sample.complex.ComplexBuffer;
import sample.complex.ComplexBufferToStreamConverter;
import sample.complex.IComplexBufferListener;
import source.tuner.frequency.FrequencyCorrectionControl;
import alias.AliasList;
import controller.channel.Channel.ChannelType;
import dsp.filter.FilterFactory;
import dsp.filter.Window.WindowType;
import dsp.filter.fir.complex.ComplexFIRFilter_CB_CB;
@@ -88,6 +87,29 @@ public class P25_LSMDecoder extends P25Decoder implements IComplexBufferListener
mMessageFramer.setListener( getMessageProcessor() );
}
public void dispose()
{
super.dispose();
mBasebandFilter.dispose();
mBasebandFilter = null;
mStreamConverter.dispose();
mStreamConverter = null;
mAGC.dispose();
mAGC = null;
mCQPSKDemodulator.dispose();
mCQPSKDemodulator = null;
mCQPSKSlicer.dispose();
mCQPSKSlicer = null;
mMessageFramer.dispose();
mMessageFramer = null;
}
@Override
public Listener<ComplexBuffer> getComplexBufferListener()
{

View File

@@ -67,35 +67,35 @@ public class Trellis_1_2_Rate
mConstellationNodes.clear();
}
private String constellationsToString( String label )
{
StringBuilder sb = new StringBuilder();
sb.append( label );
for( ConstellationNode node: mConstellationNodes )
{
sb.append( " " + node.getConstellation().name() );
}
return sb.toString();
}
private String inputsToString()
{
StringBuilder sb = new StringBuilder();
sb.append( " INPUTS: " );
for( ConstellationNode node: mConstellationNodes )
{
sb.append( " " );
sb.append( ( node.getConstellation().getInput().getBit1() ? "1" : "0" ) );
sb.append( ( node.getConstellation().getInput().getBit2() ? "1" : "0" ) );
}
return sb.toString();
}
// private String constellationsToString( String label )
// {
// StringBuilder sb = new StringBuilder();
//
// sb.append( label );
//
// for( ConstellationNode node: mConstellationNodes )
// {
// sb.append( " " + node.getConstellation().name() );
// }
//
// return sb.toString();
// }
//
// private String inputsToString()
// {
// StringBuilder sb = new StringBuilder();
//
// sb.append( " INPUTS: " );
//
// for( ConstellationNode node: mConstellationNodes )
// {
// sb.append( " " );
// sb.append( ( node.getConstellation().getInput().getBit1() ? "1" : "0" ) );
// sb.append( ( node.getConstellation().getInput().getBit2() ? "1" : "0" ) );
// }
//
// return sb.toString();
// }
public boolean decode( BinaryMessage message, int start, int end )
{

View File

@@ -5,7 +5,6 @@ import java.util.List;
import message.Message;
import module.decode.p25.message.hdu.HDUMessage;
import module.decode.p25.message.tdu.lc.TDULinkControlMessage;
import filter.Filter;
import filter.FilterElement;

View File

@@ -4,7 +4,6 @@ import java.util.Collections;
import java.util.List;
import message.Message;
import module.decode.p25.message.tdu.TDUMessage;
import module.decode.p25.message.tdu.lc.TDULinkControlMessage;
import filter.Filter;
import filter.FilterElement;

View File

@@ -2,8 +2,6 @@ package module.decode.p25.message.ldu.lc;
import module.decode.p25.message.IBandIdentifier;
import module.decode.p25.message.IdentifierReceiver;
import module.decode.p25.message.P25Message.DuplexMode;
import module.decode.p25.message.P25Message.SessionMode;
import module.decode.p25.message.ldu.LDU1Message;
import module.decode.p25.reference.LinkControlOpcode;

View File

@@ -1,7 +1,5 @@
package module.decode.p25.message.ldu.lc;
import module.decode.p25.message.P25Message.DuplexMode;
import module.decode.p25.message.P25Message.SessionMode;
import module.decode.p25.message.ldu.LDU1Message;
import module.decode.p25.reference.LinkControlOpcode;

View File

@@ -1,7 +1,5 @@
package module.decode.p25.message.ldu.lc;
import module.decode.p25.message.P25Message.DuplexMode;
import module.decode.p25.message.P25Message.SessionMode;
import module.decode.p25.message.ldu.LDU1Message;
import module.decode.p25.reference.LinkControlOpcode;

View File

@@ -1,7 +1,5 @@
package module.decode.p25.message.ldu.lc;
import module.decode.p25.message.P25Message.DuplexMode;
import module.decode.p25.message.P25Message.SessionMode;
import module.decode.p25.message.ldu.LDU1Message;
import module.decode.p25.reference.LinkControlOpcode;

View File

@@ -3,7 +3,6 @@ package module.decode.p25.message.pdu;
import module.decode.p25.message.IBandIdentifier;
import module.decode.p25.message.IdentifierReceiver;
import module.decode.p25.reference.DataUnitID;
import module.decode.p25.reference.Opcode;
import alias.AliasList;
import bits.BinaryMessage;
import edac.CRCP25;

View File

@@ -1,20 +1,10 @@
package module.decode.p25.message.pdu.confirmed;
import module.decode.p25.message.pdu.PDUMessage;
import module.decode.p25.reference.DataUnitID;
import module.decode.p25.reference.MDPConfigurationOption;
import module.decode.p25.reference.PDUType;
import module.decode.p25.reference.SNDCPActivationRejectReason;
import module.decode.p25.reference.Vendor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import alias.AliasList;
import bits.BinaryMessage;
import edac.CRC;
import edac.CRCP25;
public class SNDCPActivateTDSContextAccept extends PDUConfirmedMessage
{
public final static Logger mLog =

View File

@@ -1,7 +1,6 @@
package module.decode.p25.message.pdu.confirmed;
import module.decode.p25.reference.PDUType;
import module.decode.p25.reference.SNDCPActivationRejectReason;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

View File

@@ -1,7 +1,5 @@
package module.decode.p25.message.pdu.osp.data;
import java.util.Date;
import module.decode.p25.message.IBandIdentifier;
import module.decode.p25.message.IdentifierReceiver;
import module.decode.p25.message.pdu.PDUMessage;

View File

@@ -2,7 +2,6 @@ package module.decode.p25.message.tdu.lc;
import module.decode.p25.message.IBandIdentifier;
import module.decode.p25.message.IdentifierReceiver;
import module.decode.p25.message.tsbk.osp.control.SystemService;
import module.decode.p25.reference.LinkControlOpcode;
import module.decode.p25.reference.Service;

View File

@@ -1,6 +1,5 @@
package module.decode.p25.message.tdu.lc;
import module.decode.p25.message.tsbk.osp.control.SystemService;
import module.decode.p25.reference.LinkControlOpcode;
import org.slf4j.Logger;

View File

@@ -2,8 +2,6 @@ package module.decode.p25.message.tdu.lc;
import module.decode.p25.message.IBandIdentifier;
import module.decode.p25.message.IdentifierReceiver;
import module.decode.p25.message.P25Message.DuplexMode;
import module.decode.p25.message.P25Message.SessionMode;
import module.decode.p25.reference.LinkControlOpcode;
import org.slf4j.Logger;

View File

@@ -3,7 +3,6 @@ package module.decode.p25.message.tdu.lc;
import module.decode.p25.message.IBandIdentifier;
import module.decode.p25.message.IdentifierReceiver;
import module.decode.p25.reference.LinkControlOpcode;
import module.decode.p25.reference.Service;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

View File

@@ -149,22 +149,22 @@ public abstract class GroupMultiChannelGrant extends ChannelGrant
public long getDownlinkFrequency1()
{
return calculateDownlink( mIdentifierUpdate1, getChannelNumber() );
return calculateDownlink( mIdentifierUpdate1, getChannelNumber1() );
}
public long getUplinkFrequency1()
{
return calculateUplink( mIdentifierUpdate1, getChannelNumber() );
return calculateUplink( mIdentifierUpdate1, getChannelNumber1() );
}
public long getDownlinkFrequency2()
{
return calculateDownlink( mIdentifierUpdate2, getChannelNumber() );
return calculateDownlink( mIdentifierUpdate2, getChannelNumber2() );
}
public long getUplinkFrequency2()
{
return calculateUplink( mIdentifierUpdate2, getChannelNumber() );
return calculateUplink( mIdentifierUpdate2, getChannelNumber2() );
}
}

View File

@@ -1,6 +1,5 @@
package module.decode.p25.message.tsbk.motorola;
import module.decode.p25.message.tsbk.TSBKMessage;
import module.decode.p25.reference.DataUnitID;
import alias.AliasList;
import bits.BinaryMessage;

View File

@@ -3,7 +3,6 @@ package module.decode.p25.message.tsbk.osp.control;
import module.decode.p25.message.tsbk.TSBKMessage;
import module.decode.p25.reference.DataUnitID;
import module.decode.p25.reference.Opcode;
import module.decode.p25.reference.Response;
import module.decode.p25.reference.StackOperation;
import alias.AliasList;
import bits.BinaryMessage;

View File

@@ -3,7 +3,6 @@ package module.decode.p25.message.tsbk.osp.control;
import module.decode.p25.message.tsbk.TSBKMessage;
import module.decode.p25.reference.DataUnitID;
import module.decode.p25.reference.Opcode;
import module.decode.p25.reference.Response;
import alias.AliasList;
import bits.BinaryMessage;

View File

@@ -1,7 +1,6 @@
package module.decode.p25.message.tsbk.osp.voice;
import module.decode.p25.message.tsbk.UnitChannelGrant;
import module.decode.p25.message.tsbk.osp.control.IdentifierUpdate;
import module.decode.p25.reference.DataUnitID;
import module.decode.p25.reference.Opcode;
import alias.AliasList;

View File

@@ -27,7 +27,6 @@ import settings.ColorSetting;
import settings.Setting;
import settings.SettingsManager;
import alias.Alias;
import controller.channel.Channel;
public class PassportDecoderPanel extends DecoderPanel
{

View File

@@ -320,7 +320,7 @@ public class PassportDecoderState extends DecoderState
}
else
{
ArrayList<Integer> channels = new ArrayList( mSiteLCNs.keySet() );
ArrayList<Integer> channels = new ArrayList<>( mSiteLCNs.keySet() );
Collections.sort( channels );
for( Integer channel: channels )
@@ -339,7 +339,7 @@ public class PassportDecoderState extends DecoderState
}
else
{
ArrayList<Integer> channels = new ArrayList( mNeighborLCNs.keySet() );
ArrayList<Integer> channels = new ArrayList<>( mNeighborLCNs.keySet() );
Collections.sort( channels );
for( Integer channel: channels )

View File

@@ -285,17 +285,6 @@ public class PassportMessage extends Message
return mMessage.toString();
}
/**
* Returns a value formatted in hex notation.
*
* @param value - integer value
* @return - hex digits returned
*/
private static String getHex( int value, int digits )
{
return String.format( "%0" + digits + "X", value );
}
private int getInt( int[] bits )
{
int retVal = 0;

View File

@@ -17,13 +17,12 @@
******************************************************************************/
package module.decode.state;
import message.Message;
import module.decode.state.DecoderStateEvent.Event;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import message.Message;
import module.ProcessingChain;
import module.decode.state.DecoderStateEvent.Event;
/**
* Basic decoder channel state - provides the minimum channel state functionality
* to support an always un-squelched audio decoder.

View File

@@ -156,11 +156,6 @@ public class Tait1200ANIMessage extends Message
return (char)value;
}
private void checkCRC()
{
// mCRC = CRCLJ.checkAndCorrect( mMessage );
}
public boolean isValid()
{
// return mCRC == CRC.PASSED || mCRC == CRC.CORRECTED;