P25 - work in progress - this is a fairly stable version of the P25 channel state. There is still work to do, but I'm going to release a test version based on this commit.

- Channel state now processes HDU, TDU, TDULC, PDU, PDULC, LDU1/2, LDULC
This commit is contained in:
dennis.sheirer
2015-02-22 18:46:03 +00:00
parent a0b38afee1
commit d7a03c7196
59 changed files with 2392 additions and 1331 deletions

View File

@@ -2,7 +2,7 @@ package decode.p25.message.tsbk;
import alias.AliasList;
import bits.BinaryMessage;
import decode.p25.message.IdentifierProvider;
import decode.p25.message.IBandIdentifier;
import decode.p25.message.IdentifierReceiver;
import decode.p25.reference.DataUnitID;
@@ -14,7 +14,7 @@ public abstract class ChannelGrant extends ServiceMessage
public static final int[] CHANNEL_NUMBER = { 92,93,94,95,96,97,98,99,100,
101,102,103 };
private IdentifierProvider mIdentifierUpdate;
private IBandIdentifier mIdentifierUpdate;
public ChannelGrant( BinaryMessage message,
DataUnitID duid,
@@ -47,7 +47,7 @@ public abstract class ChannelGrant extends ServiceMessage
}
@Override
public void setIdentifierMessage( int identifier, IdentifierProvider message )
public void setIdentifierMessage( int identifier, IBandIdentifier message )
{
mIdentifierUpdate = message;
}

View File

@@ -2,7 +2,7 @@ package decode.p25.message.tsbk;
import alias.AliasList;
import bits.BinaryMessage;
import decode.p25.message.IdentifierProvider;
import decode.p25.message.IBandIdentifier;
import decode.p25.reference.DataUnitID;
public abstract class GroupChannelGrantExplicit extends ChannelGrant
@@ -16,8 +16,8 @@ public abstract class GroupChannelGrantExplicit extends ChannelGrant
public static final int[] GROUP_ADDRESS = { 128,129,130,131,132,133,134,135,
136,137,138,139,140,141,142,143 };
private IdentifierProvider mTransmitIdentifierUpdate;
private IdentifierProvider mReceiveIdentifierUpdate;
private IBandIdentifier mTransmitIdentifierUpdate;
private IBandIdentifier mReceiveIdentifierUpdate;
public GroupChannelGrantExplicit( BinaryMessage message,
DataUnitID duid,
@@ -85,7 +85,7 @@ public abstract class GroupChannelGrantExplicit extends ChannelGrant
}
@Override
public void setIdentifierMessage( int identifier, IdentifierProvider message )
public void setIdentifierMessage( int identifier, IBandIdentifier message )
{
if( identifier == getTransmitChannelIdentifier() )
{

View File

@@ -2,7 +2,7 @@ package decode.p25.message.tsbk;
import alias.AliasList;
import bits.BinaryMessage;
import decode.p25.message.IdentifierProvider;
import decode.p25.message.IBandIdentifier;
import decode.p25.message.IdentifierReceiver;
import decode.p25.reference.DataUnitID;
@@ -21,8 +21,8 @@ public abstract class GroupMultiChannelGrant extends ChannelGrant
public static final int[] GROUP_ADDRESS_2 = { 128,129,130,131,132,133,134,
135,136,137,138,139,140,141,142,143 };
private IdentifierProvider mIdentifierUpdate1;
private IdentifierProvider mIdentifierUpdate2;
private IBandIdentifier mIdentifierUpdate1;
private IBandIdentifier mIdentifierUpdate2;
public GroupMultiChannelGrant( BinaryMessage message,
DataUnitID duid,
@@ -114,7 +114,7 @@ public abstract class GroupMultiChannelGrant extends ChannelGrant
}
@Override
public void setIdentifierMessage( int identifier, IdentifierProvider message )
public void setIdentifierMessage( int identifier, IBandIdentifier message )
{
if( identifier == getChannelIdentifier1() )
{

View File

@@ -2,7 +2,7 @@ package decode.p25.message.tsbk.motorola;
import alias.AliasList;
import bits.BinaryMessage;
import decode.p25.message.IdentifierProvider;
import decode.p25.message.IBandIdentifier;
import decode.p25.message.IdentifierReceiver;
import decode.p25.reference.DataUnitID;
@@ -22,7 +22,7 @@ public class ChannelCWIDUpdate extends MotorolaTSBKMessage
public static final int[] CHANNEL = { 132,133,134,135,136,137,138,139,140,
141,142,143 };
private IdentifierProvider mIdentifierUpdate;
private IBandIdentifier mIdentifierUpdate;
public ChannelCWIDUpdate( BinaryMessage message,
DataUnitID duid,
@@ -104,7 +104,7 @@ public class ChannelCWIDUpdate extends MotorolaTSBKMessage
}
@Override
public void setIdentifierMessage( int identifier, IdentifierProvider message )
public void setIdentifierMessage( int identifier, IBandIdentifier message )
{
mIdentifierUpdate = message;
}

View File

@@ -59,6 +59,4 @@ public abstract class PatchGroup extends MotorolaTSBKMessage
{
return mMessage.getHex( GROUP_ADDRESS_3, 4 );
}
}

View File

@@ -2,7 +2,7 @@ package decode.p25.message.tsbk.motorola;
import alias.AliasList;
import bits.BinaryMessage;
import decode.p25.message.IdentifierProvider;
import decode.p25.message.IBandIdentifier;
import decode.p25.message.IdentifierReceiver;
import decode.p25.reference.DataUnitID;
@@ -24,7 +24,7 @@ public class PatchGroupVoiceChannelGrant extends MotorolaTSBKMessage
public static final int[] SOURCE_ADDRESS = { 120,121,122,123,124,125,126,
127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143 };
private IdentifierProvider mIdentifierUpdate;
private IBandIdentifier mIdentifierUpdate;
public PatchGroupVoiceChannelGrant( BinaryMessage message, DataUnitID duid,
AliasList aliasList )
@@ -122,7 +122,7 @@ public class PatchGroupVoiceChannelGrant extends MotorolaTSBKMessage
}
@Override
public void setIdentifierMessage( int identifier, IdentifierProvider message )
public void setIdentifierMessage( int identifier, IBandIdentifier message )
{
mIdentifierUpdate = message;
}

View File

@@ -2,7 +2,7 @@ package decode.p25.message.tsbk.motorola;
import alias.AliasList;
import bits.BinaryMessage;
import decode.p25.message.IdentifierProvider;
import decode.p25.message.IBandIdentifier;
import decode.p25.message.IdentifierReceiver;
import decode.p25.reference.DataUnitID;
@@ -20,8 +20,8 @@ public class PatchGroupVoiceChannelGrantUpdate extends MotorolaTSBKMessage
public static final int[] PATCH_GROUP_ADDRESS_2 = { 128,129,130,131,132,133,
134,135,136,137,138,139,140,141,142,143 };
private IdentifierProvider mIdentifierUpdate1;
private IdentifierProvider mIdentifierUpdate2;
private IBandIdentifier mIdentifierUpdate1;
private IBandIdentifier mIdentifierUpdate2;
public PatchGroupVoiceChannelGrantUpdate( BinaryMessage message,
DataUnitID duid, AliasList aliasList )
@@ -100,7 +100,7 @@ public class PatchGroupVoiceChannelGrantUpdate extends MotorolaTSBKMessage
}
@Override
public void setIdentifierMessage( int identifier, IdentifierProvider message )
public void setIdentifierMessage( int identifier, IBandIdentifier message )
{
if( identifier == getChannelIdentifier1() )
{

View File

@@ -2,7 +2,7 @@ package decode.p25.message.tsbk.osp.control;
import alias.AliasList;
import bits.BinaryMessage;
import decode.p25.message.IdentifierProvider;
import decode.p25.message.IBandIdentifier;
import decode.p25.message.IdentifierReceiver;
import decode.p25.message.tsbk.TSBKMessage;
import decode.p25.reference.DataUnitID;
@@ -26,7 +26,7 @@ public class AdjacentStatusBroadcast extends TSBKMessage implements IdentifierRe
public static final int[] SYSTEM_SERVICE_CLASS = { 136,137,138,139,140,141,
142,143 };
private IdentifierProvider mIdentifierUpdate;
private IBandIdentifier mIdentifierUpdate;
public AdjacentStatusBroadcast( BinaryMessage message,
DataUnitID duid,
@@ -163,7 +163,7 @@ public class AdjacentStatusBroadcast extends TSBKMessage implements IdentifierRe
}
@Override
public void setIdentifierMessage( int identifier, IdentifierProvider message )
public void setIdentifierMessage( int identifier, IBandIdentifier message )
{
/* we're only expecting 1 identifier, so use whatever is received */
mIdentifierUpdate = message;

View File

@@ -2,12 +2,12 @@ package decode.p25.message.tsbk.osp.control;
import alias.AliasList;
import bits.BinaryMessage;
import decode.p25.message.IdentifierProvider;
import decode.p25.message.IBandIdentifier;
import decode.p25.message.tsbk.TSBKMessage;
import decode.p25.reference.DataUnitID;
public abstract class IdentifierUpdate extends TSBKMessage
implements IdentifierProvider
implements IBandIdentifier
{
public static final int[] IDENTIFIER = { 80,81,82,83 };

View File

@@ -2,7 +2,7 @@ package decode.p25.message.tsbk.osp.control;
import alias.AliasList;
import bits.BinaryMessage;
import decode.p25.message.IdentifierProvider;
import decode.p25.message.IBandIdentifier;
import decode.p25.message.IdentifierReceiver;
import decode.p25.message.tsbk.TSBKMessage;
import decode.p25.reference.DataUnitID;
@@ -23,7 +23,7 @@ public class NetworkStatusBroadcast extends TSBKMessage implements IdentifierRec
public static final int[] SYSTEM_SERVICE_CLASS = { 136,137,138,139,140,141,
142,143 };
private IdentifierProvider mIdentifierUpdate;
private IBandIdentifier mIdentifierUpdate;
public NetworkStatusBroadcast( BinaryMessage message,
DataUnitID duid,
@@ -109,7 +109,7 @@ public class NetworkStatusBroadcast extends TSBKMessage implements IdentifierRec
}
@Override
public void setIdentifierMessage( int identifier, IdentifierProvider message )
public void setIdentifierMessage( int identifier, IBandIdentifier message )
{
/* we're only expecting 1 identifier, so use whatever is received */
mIdentifierUpdate = message;

View File

@@ -2,7 +2,7 @@ package decode.p25.message.tsbk.osp.control;
import alias.AliasList;
import bits.BinaryMessage;
import decode.p25.message.IdentifierProvider;
import decode.p25.message.IBandIdentifier;
import decode.p25.message.IdentifierReceiver;
import decode.p25.message.tsbk.TSBKMessage;
import decode.p25.reference.DataUnitID;
@@ -23,7 +23,7 @@ public class RFSSStatusBroadcast extends TSBKMessage implements IdentifierReceiv
public static final int[] SYSTEM_SERVICE_CLASS = { 136,137,138,139,140,141,
142,143 };
private IdentifierProvider mIdentifierUpdate;
private IBandIdentifier mIdentifierUpdate;
public RFSSStatusBroadcast( BinaryMessage message,
DataUnitID duid,
@@ -119,7 +119,7 @@ public class RFSSStatusBroadcast extends TSBKMessage implements IdentifierReceiv
}
@Override
public void setIdentifierMessage( int identifier, IdentifierProvider message )
public void setIdentifierMessage( int identifier, IBandIdentifier message )
{
/* we're only expecting 1 identifier, so use whatever is received */
mIdentifierUpdate = message;

View File

@@ -5,7 +5,7 @@ import org.slf4j.LoggerFactory;
import alias.AliasList;
import bits.BinaryMessage;
import decode.p25.message.IdentifierProvider;
import decode.p25.message.IBandIdentifier;
import decode.p25.message.IdentifierReceiver;
import decode.p25.message.tsbk.TSBKMessage;
import decode.p25.reference.DataUnitID;
@@ -30,8 +30,8 @@ public class SecondaryControlChannelBroadcast extends TSBKMessage
public static final int[] SYSTEM_SERVICE_CLASS_2 = { 136,137,138,139,140,
141,142,143 };
private IdentifierProvider mIdentifierUpdate1;
private IdentifierProvider mIdentifierUpdate2;
private IBandIdentifier mIdentifierUpdate1;
private IBandIdentifier mIdentifierUpdate2;
public SecondaryControlChannelBroadcast( BinaryMessage message,
DataUnitID duid,
@@ -145,7 +145,7 @@ public class SecondaryControlChannelBroadcast extends TSBKMessage
}
@Override
public void setIdentifierMessage( int identifier, IdentifierProvider message )
public void setIdentifierMessage( int identifier, IBandIdentifier message )
{
if( identifier == getIdentifier1() )
{

View File

@@ -2,7 +2,7 @@ package decode.p25.message.tsbk.osp.data;
import alias.AliasList;
import bits.BinaryMessage;
import decode.p25.message.IdentifierProvider;
import decode.p25.message.IBandIdentifier;
import decode.p25.message.IdentifierReceiver;
import decode.p25.reference.DataUnitID;
@@ -22,8 +22,8 @@ public class SNDCPDataChannelAnnouncementExplicit extends SNDCPData
public static final int[] DATA_ACCESS_CONTROL = { 128,129,130,131,132,133,
134,135,136,137,138,139,140,141,142,143 };
private IdentifierProvider mIdentifierUpdateTransmit;
private IdentifierProvider mIdentifierUpdateReceive;
private IBandIdentifier mIdentifierUpdateTransmit;
private IBandIdentifier mIdentifierUpdateReceive;
public SNDCPDataChannelAnnouncementExplicit( BinaryMessage message,
DataUnitID duid,
@@ -118,7 +118,7 @@ public class SNDCPDataChannelAnnouncementExplicit extends SNDCPData
}
@Override
public void setIdentifierMessage( int identifier, IdentifierProvider message )
public void setIdentifierMessage( int identifier, IBandIdentifier message )
{
if( identifier == getTransmitChannelIdentifier() )
{

View File

@@ -2,7 +2,7 @@ package decode.p25.message.tsbk.osp.data;
import alias.AliasList;
import bits.BinaryMessage;
import decode.p25.message.IdentifierProvider;
import decode.p25.message.IBandIdentifier;
import decode.p25.message.IdentifierReceiver;
import decode.p25.reference.DataUnitID;
@@ -18,8 +18,8 @@ public class SNDCPDataChannelGrant extends SNDCPData implements IdentifierReceiv
public static final int[] TARGET_ADDRESS = { 120,121,122,123,124,125,126,
127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143 };
private IdentifierProvider mIdentifierUpdateTransmit;
private IdentifierProvider mIdentifierUpdateReceive;
private IBandIdentifier mIdentifierUpdateTransmit;
private IBandIdentifier mIdentifierUpdateReceive;
public SNDCPDataChannelGrant( BinaryMessage message,
DataUnitID duid,
@@ -91,7 +91,7 @@ public class SNDCPDataChannelGrant extends SNDCPData implements IdentifierReceiv
}
@Override
public void setIdentifierMessage( int identifier, IdentifierProvider message )
public void setIdentifierMessage( int identifier, IBandIdentifier message )
{
if( identifier == getTransmitChannelIdentifier() )
{