mirror of
https://github.com/DSheirer/sdrtrunk.git
synced 2026-11-11 16:17:24 -05:00
121 lines
3.4 KiB
Java
121 lines
3.4 KiB
Java
package decode.p25.message.tsbk;
|
|
|
|
import alias.AliasList;
|
|
import bits.BinaryMessage;
|
|
import decode.p25.message.IBandIdentifier;
|
|
import decode.p25.reference.DataUnitID;
|
|
|
|
public abstract class GroupChannelGrantExplicit extends ChannelGrant
|
|
{
|
|
public static final int[] TRANSMIT_IDENTIFIER = { 96,97,98,99 };
|
|
public static final int[] TRANSMIT_NUMBER = { 100,101,102,103,
|
|
104,105,106,107,108,109,110,111 };
|
|
public static final int[] RECEIVE_IDENTIFIER = { 112,113,114,115 };
|
|
public static final int[] RECEIVE_NUMBER = { 116,117,118,119,
|
|
120,121,122,123,124,125,126,127 };
|
|
public static final int[] GROUP_ADDRESS = { 128,129,130,131,132,133,134,135,
|
|
136,137,138,139,140,141,142,143 };
|
|
|
|
private IBandIdentifier mTransmitIdentifierUpdate;
|
|
private IBandIdentifier mReceiveIdentifierUpdate;
|
|
|
|
public GroupChannelGrantExplicit( BinaryMessage message,
|
|
DataUnitID duid,
|
|
AliasList aliasList )
|
|
{
|
|
super( message, duid, aliasList );
|
|
}
|
|
|
|
public String getMessage()
|
|
{
|
|
StringBuilder sb = new StringBuilder();
|
|
|
|
sb.append( getMessageStub() );
|
|
|
|
if( isEmergency() )
|
|
{
|
|
sb.append( " EMERGENCY" );
|
|
}
|
|
|
|
sb.append( " XMIT:" );
|
|
sb.append( getTransmitChannelIdentifier() + "/" + getTransmitChannelNumber() );
|
|
|
|
sb.append( " RCV:" );
|
|
sb.append( getReceiveChannelIdentifier() + "/" + getReceiveChannelNumber() );
|
|
|
|
sb.append( " GRP:" );
|
|
sb.append( getGroupAddress() );
|
|
|
|
return sb.toString();
|
|
}
|
|
|
|
public int getTransmitChannelIdentifier()
|
|
{
|
|
return mMessage.getInt( TRANSMIT_IDENTIFIER );
|
|
}
|
|
|
|
public int getTransmitChannelNumber()
|
|
{
|
|
return mMessage.getInt( TRANSMIT_NUMBER );
|
|
}
|
|
|
|
public String getTransmitChannel()
|
|
{
|
|
return getTransmitChannelIdentifier() + "-" + getTransmitChannelNumber();
|
|
}
|
|
|
|
public int getReceiveChannelIdentifier()
|
|
{
|
|
return mMessage.getInt( RECEIVE_IDENTIFIER );
|
|
}
|
|
|
|
public int getReceiveChannelNumber()
|
|
{
|
|
return mMessage.getInt( RECEIVE_NUMBER );
|
|
}
|
|
|
|
public String getReceiveChannel()
|
|
{
|
|
return getReceiveChannelIdentifier() + "-" + getReceiveChannelNumber();
|
|
}
|
|
|
|
public String getGroupAddress()
|
|
{
|
|
return mMessage.getHex( GROUP_ADDRESS, 4 );
|
|
}
|
|
|
|
@Override
|
|
public void setIdentifierMessage( int identifier, IBandIdentifier message )
|
|
{
|
|
if( identifier == getTransmitChannelIdentifier() )
|
|
{
|
|
mTransmitIdentifierUpdate = message;
|
|
}
|
|
|
|
if( identifier == getReceiveChannelIdentifier() )
|
|
{
|
|
mReceiveIdentifierUpdate = message;
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public int[] getIdentifiers()
|
|
{
|
|
int[] identifiers = new int[ 2 ];
|
|
identifiers[ 0 ] = getTransmitChannelIdentifier();
|
|
identifiers[ 1 ] = getReceiveChannelIdentifier();
|
|
|
|
return identifiers;
|
|
}
|
|
|
|
public long getDownlinkFrequency()
|
|
{
|
|
return calculateDownlink( mTransmitIdentifierUpdate, getTransmitChannelNumber() );
|
|
}
|
|
|
|
public long getUplinkFrequency()
|
|
{
|
|
return calculateUplink( mReceiveIdentifierUpdate, getReceiveChannelNumber() );
|
|
}
|
|
}
|