mirror of
https://github.com/DSheirer/sdrtrunk.git
synced 2026-11-13 00:57:31 -05:00
P25 work in progress
This commit is contained in:
@@ -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" );
|
||||
|
||||
|
||||
106
src/decode/p25/reference/LinkControlOpcode.java
Normal file
106
src/decode/p25/reference/LinkControlOpcode.java
Normal 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;
|
||||
}
|
||||
}
|
||||
@@ -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 ),
|
||||
|
||||
@@ -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 ),
|
||||
|
||||
106
src/decode/p25/reference/VendorLinkControlOpcode.java
Normal file
106
src/decode/p25/reference/VendorLinkControlOpcode.java
Normal 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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user