P25 work in progress

This commit is contained in:
dennis.sheirer
2015-01-02 14:08:22 +00:00
parent 95ddadc598
commit 03460eeb19
122 changed files with 5372 additions and 279 deletions

View File

@@ -7,7 +7,7 @@ package decode.p25.reference;
public enum DataUnitID
{
NID ( -1, 64, false, "NID ", "Network and Data Unit ID" ),
HDU ( 0, 722, false, "HDU ", "Header Data Unit" ),
HDU ( 0, 712, false, "HDU ", "Header Data Unit" ),
TDU ( 3, 64, false, "TDU ", "Simple Terminator Data Unit" ),
LDU1 ( 5, 1630, true, "LDU1 ", "Logical Link Data Unit 1" ),
TSBK1( 7, 260, false, "TSBK1", "Trunking Signaling Block" ),
@@ -15,9 +15,10 @@ public enum DataUnitID
TSBK3( 7, 260, false, "TSBK3", "Trunking Signaling Block" ),
LDU2 ( 10, 1632, true, "LDU2 ", "Logical Link Data Unit 2" ),
PDU0 ( 12, 260, false, "PDU0 ", "Packet Header Data Unit" ),
PDU1 ( 12, 356, false, "PDU1 ", "Packet Data Unit" ),
PDU2 ( 12, 452, false, "PDU2 ", "Packet Data Unit" ),
PDU3 ( 12, 548, false, "PDU3 ", "Packet Data Unit" ),
PDU1 ( 12, 356, false, "PDU1 ", "Packet Data Unit-Unconfirmed" ),
PDU2 ( 12, 452, false, "PDU2 ", "Packet Data Unit-Unconfirmed" ),
PDU3 ( 12, 548, false, "PDU3 ", "Packet Data Unit-Unconfirmed" ),
PDUC ( 12, 356, false, "PDUC", "Packet Data Unit-Confirmed" ),
TDULC( 15, 352, false, "TDULC", "Terminator Data Unit With Link Control" ),
UNKN ( -1, 0, false, "UNKWN", "Unknown" );

View File

@@ -0,0 +1,106 @@
package decode.p25.reference;
public enum LinkControlOpcode
{
GROUP_VOICE_CHANNEL_USER( "GRP_VCH_USER ", "Group Voice Channel User", 0 ),
RESERVED_01( "RESERVED_01 ", "Reserved", 1 ),
GROUP_VOICE_CHANNEL_UPDATE( "GRP_VCH_UPDATE ", "Group Voice Channel Grant Update", 2 ),
UNIT_TO_UNIT_VOICE_CHANNEL_USER( "UU_VCH_USER ", "Unit-to-Unit Voice Channel User", 3 ),
GROUP_VOICE_CHANNEL_UPDATE_EXPLICIT( "GRP_VCH_UPD_EXPL", "Group Voice Channel Update Explicit", 4 ),
UNIT_TO_UNIT_ANSWER_REQUEST( "UU_ANS_REQ ", "Unit-to-Unit Answer Request", 5 ),
TELEPHONE_INTERCONNECT_VOICE_CHANNEL_USER( "TEL_INT_VCH_USER", "Telephone Interconnect Voice Channel User", 6 ),
TELEPHONE_INTERCONNECT_ANSWER_REQUEST( "TEL_INT_ANS_RQST", "Telephone Interconnect Answer Request", 7 ),
RESERVED_08( "RESERVED_08 ", "Reserved", 8 ),
RESERVED_09( "RESERVED_09 ", "Reserved", 9 ),
RESERVED_0A( "RESERVED_0A ", "Reserved", 10 ),
RESERVED_0B( "RESERVED_0B ", "Reserved", 11 ),
RESERVED_0C( "RESERVED_0C ", "Reserved", 12 ),
RESERVED_0D( "RESERVED_0D ", "Reserved", 13 ),
RESERVED_0E( "RESERVED_0E ", "Reserved", 14 ),
CALL_TERMINATION_OR_CANCELLATION( "CALL TERMINATION", "Call Termination Cancellation", 15 ),
GROUP_AFFILIATION_QUERY( "GRP_AFFIL_QUERY ", "Group Affiliation Query", 16 ),
UNIT_REGISTRATION_COMMAND( "UNIT_REG_COMMAND", "Unit Registration Command", 17 ),
UNIT_AUTHENTICATION_COMMAND( "UNIT_AUTHEN_CMD ", "Unit Authentication Command", 18 ),
STATUS_QUERY( "STATUS QUERY ", "Status Query", 19 ),
STATUS_UPDATE( "STATUS_UPDATE ", "Status Update", 20 ),
MESSAGE_UPDATE( "MESSAGE UPDATE ", "Message Update", 21 ),
CALL_ALERT( "CALL ALERT", "Call Alert", 22 ),
EXTENDED_FUNCTION_COMMAND( "EXT FUNC COMMAND", "Extended Function Command", 23 ),
CHANNEL_IDENTIFIER_UPDATE( "CHAN IDEN UPDATE", "Channel Identifier Update", 24 ),
CHANNEL_IDENTIFIER_UPDATE_EXPLICIT( "CHAN IDEN UPD EX", "Channel Identifier Update Explicit", 25 ),
RESERVED_1A( "RESERVED_1A ", "Reserved", 26 ),
RESERVED_1B( "RESERVED_1B ", "Reserved", 27 ),
RESERVED_1C( "RESERVED_1C ", "Reserved", 28 ),
RESERVED_1D( "RESERVED_1D ", "Reserved", 29 ),
RESERVED_1E( "RESERVED_1E ", "Reserved", 30 ),
RESERVED_1F( "RESERVED_1F ", "Reserved", 31 ),
SYSTEM_SERVICE_BROADCAST( "SYS_SVC_BCAST ", "System Service Broadcast", 32 ),
SECONDARY_CONTROL_CHANNEL_BROADCAST( "SEC_CCH_BROADCST", "Secondary Control Channel Broadcast", 33 ),
ADJACENT_SITE_STATUS_BROADCAST( "ADJ SITE STATUS ", "Adjacent Site Status Broadcast", 34 ),
RFSS_STATUS_BROADCAST( "RFSS_STATUS_BCST", "RFSS Status Broadcast", 35 ),
NETWORK_STATUS_BROADCAST( "NET_STATUS_BCAST", "Network Status Broadcast", 36 ),
PROTECTION_PARAMETER_BROADCAST( "ENCRYPT_PAR_BCST", "Protection Parameter Broadcast", 37 ),
SECONDARY_CONTROL_CHANNEL_BROADCAST_EXPLICIT( "SCCB_CCH_BCST_EX", "Secondary Control Channel Broadcast-Explicit", 38 ),
ADJACENT_SITE_STATUS_BROADCAST_EXPLICIT( "ADJ SITE STAT EX", "Adjacent Site Status Broadcast Explicit", 39 ),
RFSS_STATUS_BROADCAST_EXPLICIT( "RFSS STAT BCST E", "RFSS Status Broadcast Explicit", 40 ),
NETWORK_STATUS_BROADCAST_EXPLICIT( "NET STAT BCAST E", "Network Status Broadcast", 41 ),
RESERVED_2A( "RESERVED_2A ", "Reserved", 42 ),
RESERVED_2B( "RESERVED_2B ", "Reserved", 43 ),
RESERVED_2C( "RESERVED_2C ", "Reserved", 44 ),
RESERVED_2D( "RESERVED_2D ", "Reserved", 45 ),
RESERVED_2E( "RESERVED_2E ", "Reserved", 46 ),
RESERVED_2F( "RESERVED_2F ", "Reserved", 47 ),
RESERVED_30( "RESERVED_30 ", "Reserved", 48 ),
RESERVED_31( "RESERVED_31 ", "Reserved", 49 ),
RESERVED_32( "RESERVED_32 ", "Reserved", 50 ),
RESERVED_33( "RESERVED_33 ", "Reserved", 51 ),
RESERVED_34( "RESERVED_34 ", "Reserved", 52 ),
RESERVED_35( "RESERVED_35 ", "Reserved", 53 ),
RESERVED_36( "RESERVED_36 ", "Reserved", 54 ),
RESERVED_37( "RESERVED_37 ", "Reserved", 55 ),
RESERVED_38( "RESERVED_38 ", "Reserved", 56 ),
RESERVED_39( "RESERVED_39 ", "Reserved", 57 ),
RESERVED_3A( "RESERVED_3A ", "Reserved", 58 ),
RESERVED_3B( "RESERVED_3B ", "Reserved", 59 ),
RESERVED_3C( "RESERVED_3C ", "Reserved", 60 ),
RESERVED_3D( "RESERVED_3D ", "Reserved", 61 ),
RESERVED_3E( "RESERVED_3E ", "Reserved", 62 ),
RESERVED_3F( "RESERVED_3F ", "Reserved", 63 ),
UNKNOWN( "UNKNOWN ", "Unknown", -1 );
private String mLabel;
private String mDescription;
private int mCode;
private LinkControlOpcode( String label, String description, int code )
{
mLabel = label;
mDescription = description;
mCode = code;
}
public String getLabel()
{
return mLabel;
}
public String getDescription()
{
return mDescription;
}
public int getCode()
{
return mCode;
}
public static LinkControlOpcode fromValue( int value )
{
if( 0 <= value && value <= 63 )
{
return values()[ value ];
}
return UNKNOWN;
}
}

View File

@@ -62,7 +62,7 @@ public enum Opcode
SECONDARY_CONTROL_CHANNEL_BROADCAST( "SEC_CCH_BROADCST", "Secondary Control Channel Broadcast", 57 ),
RFSS_STATUS_BROADCAST( "RFSS_STATUS_BCST", "RFSS Status Broadcast", 58 ),
NETWORK_STATUS_BROADCAST( "NET_STATUS_BCAST", "Network Status Broadcast", 59 ),
ADJACENT_STATUS_BROADCAST( "NGHBR_STAT_BCAST", "Adjacent Status Broadcast", 60 ),
ADJACENT_STATUS_BROADCAST( "ADJ SITE STATUS ", "Adjacent Site Status Broadcast", 60 ),
IDENTIFIER_UPDATE_NON_VUHF( "IDEN_UPDATE ", "Identifier Update", 61 ),
PROTECTION_PARAMETER_BROADCAST( "ENCRYPT_PAR_BCST", "Protection Parameter Broadcast", 62 ),
PROTECTION_PARAMETER_UPDATE( "ENCRYPT_PAR_UPDT", "Protection Parameter Update", 63 ),

View File

@@ -24,7 +24,7 @@ public enum PDUFormat
F19( "F19", 19 ),
F20( "F20", 20 ),
UNCONFIRMED_MULTI_BLOCK_TRUNKING_CONTROL( "UNCONFIRMED MBTC", 21 ),
F22( "F22", 22 ),
PACKET_DATA( "PACKET DATA", 22 ),
ALTERNATE_MULTI_BLOCK_TRUNKING_CONTROL( "ALTERNATE MBTC", 23 ),
F24( "F24", 24 ),
F25( "F25", 25 ),

View File

@@ -0,0 +1,106 @@
package decode.p25.reference;
public enum VendorLinkControlOpcode
{
RESERVED_00( "RESERVED_00 ", "Reserved", 0 ),
RESERVED_01( "RESERVED_01 ", "Reserved", 1 ),
RESERVED_02( "RESERVED_02 ", "Reserved", 2 ),
RESERVED_03( "RESERVED_03 ", "Reserved", 3 ),
RESERVED_04( "RESERVED_04 ", "Reserved", 4 ),
RESERVED_05( "RESERVED_05 ", "Reserved", 5 ),
RESERVED_06( "RESERVED_06 ", "Reserved", 6 ),
RESERVED_07( "RESERVED_07 ", "Reserved", 7 ),
RESERVED_08( "RESERVED_0B ", "Reserved", 8 ),
RESERVED_09( "RESERVED_0B ", "Reserved", 9 ),
RESERVED_0A( "RESERVED_0B ", "Reserved", 10 ),
RESERVED_0B( "RESERVED_0B ", "Reserved", 11 ),
RESERVED_0C( "RESERVED_0C ", "Reserved", 12 ),
RESERVED_0D( "RESERVED_0D ", "Reserved", 13 ),
RESERVED_0E( "RESERVED_0E ", "Reserved", 14 ),
RESERVED_0F( "RESERVED_0F ", "Reserved", 15 ),
RESERVED_10( "RESERVED_10 ", "Reserved", 16 ),
RESERVED_11( "RESERVED_11 ", "Reserved", 17 ),
RESERVED_12( "RESERVED_12 ", "Reserved", 18 ),
RESERVED_13( "RESERVED_13 ", "Reserved", 19 ),
RESERVED_14( "RESERVED_14 ", "Reserved", 20 ),
RESERVED_15( "RESERVED_15 ", "Reserved", 21 ),
RESERVED_16( "RESERVED_16 ", "Reserved", 22 ),
RESERVED_17( "RESERVED_17 ", "Reserved", 23 ),
RESERVED_18( "RESERVED_18 ", "Reserved", 24 ),
RESERVED_19( "RESERVED_19 ", "Reserved", 25 ),
RESERVED_1A( "RESERVED_1A ", "Reserved", 26 ),
RESERVED_1B( "RESERVED_1B ", "Reserved", 27 ),
RESERVED_1C( "RESERVED_1C ", "Reserved", 28 ),
RESERVED_1D( "RESERVED_1D ", "Reserved", 29 ),
RESERVED_1E( "RESERVED_1E ", "Reserved", 30 ),
RESERVED_1F( "RESERVED_1F ", "Reserved", 31 ),
RESERVED_20( "RESERVED_20 ", "Reserved", 32 ),
RESERVED_21( "RESERVED_21 ", "Reserved", 33 ),
RESERVED_22( "RESERVED_22 ", "Reserved", 34 ),
RESERVED_23( "RESERVED_23 ", "Reserved", 35 ),
RESERVED_24( "RESERVED_24 ", "Reserved", 36 ),
RESERVED_25( "RESERVED_25 ", "Reserved", 37 ),
RESERVED_26( "RESERVED_26 ", "Reserved", 38 ),
RESERVED_27( "RESERVED_27 ", "Reserved", 39 ),
RESERVED_28( "RESERVED_28 ", "Reserved", 40 ),
RESERVED_29( "RESERVED_29 ", "Reserved", 41 ),
RESERVED_2A( "RESERVED_2A ", "Reserved", 42 ),
RESERVED_2B( "RESERVED_2B ", "Reserved", 43 ),
RESERVED_2C( "RESERVED_2C ", "Reserved", 44 ),
RESERVED_2D( "RESERVED_2D ", "Reserved", 45 ),
RESERVED_2E( "RESERVED_2E ", "Reserved", 46 ),
RESERVED_2F( "RESERVED_2F ", "Reserved", 47 ),
RESERVED_30( "RESERVED_30 ", "Reserved", 48 ),
RESERVED_31( "RESERVED_31 ", "Reserved", 49 ),
RESERVED_32( "RESERVED_32 ", "Reserved", 50 ),
RESERVED_33( "RESERVED_33 ", "Reserved", 51 ),
RESERVED_34( "RESERVED_34 ", "Reserved", 52 ),
RESERVED_35( "RESERVED_35 ", "Reserved", 53 ),
RESERVED_36( "RESERVED_36 ", "Reserved", 54 ),
RESERVED_37( "RESERVED_37 ", "Reserved", 55 ),
RESERVED_38( "RESERVED_38 ", "Reserved", 56 ),
RESERVED_39( "RESERVED_39 ", "Reserved", 57 ),
RESERVED_3A( "RESERVED_3A ", "Reserved", 58 ),
RESERVED_3B( "RESERVED_3B ", "Reserved", 59 ),
RESERVED_3C( "RESERVED_3C ", "Reserved", 60 ),
RESERVED_3D( "RESERVED_3D ", "Reserved", 61 ),
RESERVED_3E( "RESERVED_3E ", "Reserved", 62 ),
RESERVED_3F( "RESERVED_3F ", "Reserved", 63 ),
UNKNOWN( "UNKNOWN ", "Unknown", -1 );
private String mLabel;
private String mDescription;
private int mCode;
private VendorLinkControlOpcode( String label, String description, int code )
{
mLabel = label;
mDescription = description;
mCode = code;
}
public String getLabel()
{
return mLabel;
}
public String getDescription()
{
return mDescription;
}
public int getCode()
{
return mCode;
}
public static VendorLinkControlOpcode fromValue( int value )
{
if( 0 <= value && value <= 63 )
{
return values()[ value ];
}
return UNKNOWN;
}
}