diff --git a/src/decode/p25/message/tsbk/TSBKMessageFactory.java b/src/decode/p25/message/tsbk/TSBKMessageFactory.java index 73a50611..dae0b96b 100644 --- a/src/decode/p25/message/tsbk/TSBKMessageFactory.java +++ b/src/decode/p25/message/tsbk/TSBKMessageFactory.java @@ -2,8 +2,7 @@ package decode.p25.message.tsbk; import alias.AliasList; import bits.BinaryMessage; -import decode.p25.message.tsbk.motorola.ChannelCWIDUpdate; -import decode.p25.message.tsbk.motorola.CongestionHoldOffTimer; +import decode.p25.message.tsbk.motorola.ControlChannelBaseStationIdentification; import decode.p25.message.tsbk.motorola.MotorolaOpcode; import decode.p25.message.tsbk.motorola.MotorolaTSBKMessage; import decode.p25.message.tsbk.motorola.PatchGroupAdd; @@ -12,6 +11,7 @@ import decode.p25.message.tsbk.motorola.PatchGroupVoiceChannelGrant; import decode.p25.message.tsbk.motorola.PatchGroupVoiceChannelGrantUpdate; import decode.p25.message.tsbk.motorola.PlannedControlChannnelShutdown; import decode.p25.message.tsbk.motorola.SystemLoading; +import decode.p25.message.tsbk.motorola.TrafficChannelBaseStationIdentification; import decode.p25.message.tsbk.osp.control.AcknowledgeResponse; import decode.p25.message.tsbk.osp.control.AdjacentStatusBroadcast; import decode.p25.message.tsbk.osp.control.AuthenticationCommand; @@ -207,10 +207,8 @@ public class TSBKMessageFactory { case CCH_PLANNED_SHUTDOWN: return new PlannedControlChannnelShutdown( message, duid, aliasList ); - case CWID_UPDATE: - return new ChannelCWIDUpdate( message, duid, aliasList ); - case CONGESTION_HOLD_OFF_TIMER: - return new CongestionHoldOffTimer( message, duid, aliasList ); + case CONTROL_CHANNEL_ID: + return new ControlChannelBaseStationIdentification( message, duid, aliasList ); case PATCH_GROUP_ADD: return new PatchGroupAdd( message, duid, aliasList ); case PATCH_GROUP_DELETE: @@ -221,6 +219,8 @@ public class TSBKMessageFactory return new PatchGroupVoiceChannelGrantUpdate( message, duid, aliasList ); case SYSTEM_LOAD: return new SystemLoading( message, duid, aliasList ); + case TRAFFIC_CHANNEL_ID: + return new TrafficChannelBaseStationIdentification( message, duid, aliasList ); default: } diff --git a/src/decode/p25/message/tsbk/motorola/CongestionHoldOffTimer.java b/src/decode/p25/message/tsbk/motorola/CongestionHoldOffTimer.java deleted file mode 100644 index 72ff29c1..00000000 --- a/src/decode/p25/message/tsbk/motorola/CongestionHoldOffTimer.java +++ /dev/null @@ -1,32 +0,0 @@ -package decode.p25.message.tsbk.motorola; - -import alias.AliasList; -import bits.BinaryMessage; -import decode.p25.reference.DataUnitID; - -public class CongestionHoldOffTimer extends MotorolaTSBKMessage -{ - public CongestionHoldOffTimer( BinaryMessage message, - DataUnitID duid, - AliasList aliasList ) - { - super( message, duid, aliasList ); - } - - @Override - public String getEventType() - { - return MotorolaOpcode.CONGESTION_HOLD_OFF_TIMER.getDescription(); - } - - public String getMessage() - { - StringBuilder sb = new StringBuilder(); - - sb.append( getMessageStub() ); - - - - return sb.toString(); - } -} diff --git a/src/decode/p25/message/tsbk/motorola/ChannelCWIDUpdate.java b/src/decode/p25/message/tsbk/motorola/ControlChannelBaseStationIdentification.java similarity index 90% rename from src/decode/p25/message/tsbk/motorola/ChannelCWIDUpdate.java rename to src/decode/p25/message/tsbk/motorola/ControlChannelBaseStationIdentification.java index 3720f52f..f441f87f 100644 --- a/src/decode/p25/message/tsbk/motorola/ChannelCWIDUpdate.java +++ b/src/decode/p25/message/tsbk/motorola/ControlChannelBaseStationIdentification.java @@ -6,7 +6,7 @@ import decode.p25.message.IBandIdentifier; import decode.p25.message.IdentifierReceiver; import decode.p25.reference.DataUnitID; -public class ChannelCWIDUpdate extends MotorolaTSBKMessage +public class ControlChannelBaseStationIdentification extends MotorolaTSBKMessage implements IdentifierReceiver { public static final int[] CHARACTER_1 = { 80,81,82,83,84,85 }; @@ -24,7 +24,7 @@ public class ChannelCWIDUpdate extends MotorolaTSBKMessage private IBandIdentifier mIdentifierUpdate; - public ChannelCWIDUpdate( BinaryMessage message, + public ControlChannelBaseStationIdentification( BinaryMessage message, DataUnitID duid, AliasList aliasList ) { @@ -34,7 +34,7 @@ public class ChannelCWIDUpdate extends MotorolaTSBKMessage @Override public String getEventType() { - return MotorolaOpcode.CWID_UPDATE.getDescription(); + return MotorolaOpcode.CONTROL_CHANNEL_ID.getDescription(); } public String getMessage() diff --git a/src/decode/p25/message/tsbk/motorola/MotorolaOpcode.java b/src/decode/p25/message/tsbk/motorola/MotorolaOpcode.java index 48cedf59..848578bb 100644 --- a/src/decode/p25/message/tsbk/motorola/MotorolaOpcode.java +++ b/src/decode/p25/message/tsbk/motorola/MotorolaOpcode.java @@ -7,13 +7,13 @@ public enum MotorolaOpcode PATCH_GROUP_CHANNEL_GRANT( "PATCH VOICE CHANNEL GRANT", "PATCH VOICE CHANNEL GRANT", 0x02 ), PATCH_GROUP_CHANNEL_GRANT_UPDATE( "PATCH VOICE CHANNEL UPDATE", "PATCH VOICE CHANNEL GRANT UPDATE", 0x03 ), OP04( "MOT OP04:UNKNOWN", "Opcode 0x04 Unknown", 0x04 ), - CONGESTION_HOLD_OFF_TIMER( "CONGESTION HOLD-OFF TIMER", "CONGESTION HOLD-OFF TIMER", 0x05 ), + TRAFFIC_CHANNEL_ID( "TRAFFIC CHAN STATION ID", "TRAFFIC CHAN STATION ID", 0x05 ), OP06( "MOT OP06:UNKNOWN ", "Opcode 0x06 Unknown", 0x06 ), OP07( "MOT OP07:UNKNOWN ", "Opcode 0x07 Unknown", 0x07 ), OP08( "MOT OP08:UNKNOWN ", "Opcode 0x08 Unknown", 0x08 ), SYSTEM_LOAD( "SYSTEM LOADING", "SYSTEM LOAD", 0x09 ), OP0A( "OP0A:UNKNOWN ", "Opcode 0x0A Unknown", 0x0A ), - CWID_UPDATE( "FCC CWID UPDATE", "FCC CWID CALLSIGN", 0x0B ), + CONTROL_CHANNEL_ID( "CONTROL CHAN BASE STATION ID", "CONTROL CHAN BASE STATION ID", 0x0B ), OP0C( "MOT OP0C:UNKNOWN ", "Opcode 0x0C Unknown", 0x0C ), OP0D( "MOT OP0D:UNKNOWN ", "Opcode 0x0D Unknown", 0x0D ), CCH_PLANNED_SHUTDOWN( "PLANNED CONTROL CHANNEL SHUTDOWN ", "PLANNED CONTROL CHANNEL SHUTDOWN", 0x0E ), diff --git a/src/decode/p25/message/tsbk/motorola/TrafficChannelBaseStationIdentification.java b/src/decode/p25/message/tsbk/motorola/TrafficChannelBaseStationIdentification.java new file mode 100644 index 00000000..194d3572 --- /dev/null +++ b/src/decode/p25/message/tsbk/motorola/TrafficChannelBaseStationIdentification.java @@ -0,0 +1,70 @@ +package decode.p25.message.tsbk.motorola; + +import alias.AliasList; +import bits.BinaryMessage; +import decode.p25.reference.DataUnitID; + +public class TrafficChannelBaseStationIdentification extends MotorolaTSBKMessage +{ + public static final int[] CHARACTER_1 = { 80,81,82,83,84,85 }; + public static final int[] CHARACTER_2 = { 86,87,88,89,90,91 }; + public static final int[] CHARACTER_3 = { 92,93,94,95,96,97 }; + public static final int[] CHARACTER_4 = { 98,99,100,101,102,103 }; + public static final int[] CHARACTER_5 = { 104,105,106,107,108,109 }; + public static final int[] CHARACTER_6 = { 110,111,112,113,114,115 }; + public static final int[] CHARACTER_7 = { 116,117,118,119,120,121 }; + public static final int[] CHARACTER_8 = { 122,123,124,125,126,127 }; + + public TrafficChannelBaseStationIdentification( BinaryMessage message, + DataUnitID duid, + AliasList aliasList ) + { + super( message, duid, aliasList ); + } + + @Override + public String getEventType() + { + return MotorolaOpcode.TRAFFIC_CHANNEL_ID.getDescription(); + } + + public String getMessage() + { + StringBuilder sb = new StringBuilder(); + + sb.append( getMessageStub() ); + + sb.append( " ID:" + getID() ); + + return sb.toString(); + } + + + public String getID() + { + StringBuilder sb = new StringBuilder(); + + sb.append( getCharacter( CHARACTER_1 ) ); + sb.append( getCharacter( CHARACTER_2 ) ); + sb.append( getCharacter( CHARACTER_3 ) ); + sb.append( getCharacter( CHARACTER_4 ) ); + sb.append( getCharacter( CHARACTER_5 ) ); + sb.append( getCharacter( CHARACTER_6 ) ); + sb.append( getCharacter( CHARACTER_7 ) ); + sb.append( getCharacter( CHARACTER_8 ) ); + + return sb.toString(); + } + + private String getCharacter( int[] field ) + { + int value = mMessage.getInt( field ); + + if( value != 0 ) + { + return String.valueOf( (char)( value + 43 ) ); + } + + return null; + } +}