diff --git a/images/fire_truck.png b/images/fire_truck.png new file mode 100644 index 00000000..2e63669b Binary files /dev/null and b/images/fire_truck.png differ diff --git a/images/rescue_truck.png b/images/rescue_truck.png new file mode 100644 index 00000000..de51ff3a Binary files /dev/null and b/images/rescue_truck.png differ diff --git a/src/decode/p25/P25ChannelState.java b/src/decode/p25/P25ChannelState.java index daa3cbb8..3e5887f0 100644 --- a/src/decode/p25/P25ChannelState.java +++ b/src/decode/p25/P25ChannelState.java @@ -140,9 +140,9 @@ public class P25ChannelState extends ChannelState private String mSite; private String mSiteAlias; private String mFromTalkgroup; - private String mFromAlias; + private Alias mFromAlias; private String mToTalkgroup; - private String mToAlias; + private Alias mToAlias; /* The currently tuned traffic channel - dynamically updated */ private String mCurrentChannel = "CURRENT"; @@ -169,7 +169,7 @@ public class P25ChannelState extends ChannelState super.setSquelchState( SquelchState.UNSQUELCH ); } - + /** * Message processor. All messages are received and processed via this method. */ @@ -1083,12 +1083,12 @@ public class P25ChannelState extends ChannelState updateSite( site ); - if( mCurrentChannel == null || - !mCurrentChannel.contentEquals( rfsssb.getChannel() ) ) - { - mCurrentChannel = rfsssb.getChannel(); - mCurrentChannelFrequency = rfsssb.getDownlinkFrequency(); - } +// if( mCurrentChannel == null || +// !mCurrentChannel.contentEquals( rfsssb.getChannel() ) ) +// { +// mCurrentChannel = rfsssb.getChannel(); +// mCurrentChannelFrequency = rfsssb.getDownlinkFrequency(); +// } } else { @@ -1108,12 +1108,12 @@ public class P25ChannelState extends ChannelState updateSite( site ); - if( mCurrentChannel == null || - !mCurrentChannel.contentEquals( rfsssbe.getTransmitChannel() ) ) - { - mCurrentChannel = rfsssbe.getTransmitChannel(); - mCurrentChannelFrequency = rfsssbe.getDownlinkFrequency(); - } +// if( mCurrentChannel == null || +// !mCurrentChannel.contentEquals( rfsssbe.getTransmitChannel() ) ) +// { +// mCurrentChannel = rfsssbe.getTransmitChannel(); +// mCurrentChannelFrequency = rfsssbe.getDownlinkFrequency(); +// } } else { @@ -3034,14 +3034,14 @@ public class P25ChannelState extends ChannelState if( mAliasList != null ) { - Alias toAlias = mAliasList.getTalkgroupAlias( to ); - - if( toAlias != null ) - { - mToAlias = toAlias.getName(); - broadcastChange( ChangedAttribute.TO_TALKGROUP_ALIAS ); - } + mToAlias = mAliasList.getTalkgroupAlias( to ); } + else + { + mToAlias = null; + } + + broadcastChange( ChangedAttribute.TO_TALKGROUP_ALIAS ); } } @@ -3060,14 +3060,14 @@ public class P25ChannelState extends ChannelState if( mAliasList != null ) { - Alias toAlias = mAliasList.getTalkgroupAlias( from ); - - if( toAlias != null ) - { - mFromAlias = toAlias.getName(); - broadcastChange( ChangedAttribute.FROM_TALKGROUP_ALIAS ); - } + mFromAlias = mAliasList.getTalkgroupAlias( from ); } + else + { + mFromAlias = null; + } + + broadcastChange( ChangedAttribute.FROM_TALKGROUP_ALIAS ); } } @@ -3234,7 +3234,7 @@ public class P25ChannelState extends ChannelState return mFromTalkgroup; } - public String getFromAlias() + public Alias getFromAlias() { return mFromAlias; } @@ -3244,7 +3244,7 @@ public class P25ChannelState extends ChannelState return mToTalkgroup; } - public String getToAlias() + public Alias getToAlias() { return mToAlias; } diff --git a/src/decode/p25/P25Panel.java b/src/decode/p25/P25Panel.java index fb1010aa..c4be6e3b 100644 --- a/src/decode/p25/P25Panel.java +++ b/src/decode/p25/P25Panel.java @@ -23,6 +23,7 @@ import javax.swing.JLabel; import settings.ColorSetting; import settings.Setting; +import alias.Alias; import controller.channel.Channel; import controller.state.ChannelState.ChangedAttribute; import controller.state.ChannelState.State; @@ -144,8 +145,10 @@ public class P25Panel extends ChannelStatePanel { mFrom.setText( null ); mFromAlias.setText( null ); + mFromAlias.setIcon( null ); mTo.setText( null ); mToAlias.setText( null ); + mToAlias.setIcon( null ); } break; case SOURCE: @@ -173,15 +176,38 @@ public class P25Panel extends ChannelStatePanel mFrom.setText( channelState.getFromTalkgroup() ); break; case FROM_TALKGROUP_ALIAS: - mFromAlias.setText( channelState.getFromAlias() ); + Alias from = channelState.getFromAlias(); + + if( from != null ) + { + mFromAlias.setText( from.getName() ); + mFromAlias.setIcon( getSettingsManager() + .getImageIcon( from.getIconName(), 12 ) ); + } + else + { + mFromAlias.setText( null ); + mFromAlias.setIcon( null ); + } break; case TO_TALKGROUP: mTo.setText( channelState.getToTalkgroup() ); break; case TO_TALKGROUP_ALIAS: - mToAlias.setText( channelState.getToAlias() ); - break; + Alias to = channelState.getToAlias(); + if( to != null ) + { + mToAlias.setText( to.getName() ); + mToAlias.setIcon( getSettingsManager() + .getImageIcon( to.getIconName(), 12 ) ); + } + else + { + mToAlias.setText( null ); + mToAlias.setIcon( null ); + } + break; } repaint(); diff --git a/src/dsp/psk/CQPSKDemodulator.java b/src/dsp/psk/CQPSKDemodulator.java index 54dc9437..042cb160 100644 --- a/src/dsp/psk/CQPSKDemodulator.java +++ b/src/dsp/psk/CQPSKDemodulator.java @@ -229,7 +229,7 @@ public class CQPSKDemodulator implements Listener, private float mAlphaGain = ( 4.0f * mDamping * mLoopBandwidth ) / ( 1.0f + ( 2.0f * mDamping * mLoopBandwidth ) + - ( mLoopBandwidth * mLoopBandwidth ) ); + ( mLoopBandwidth * mLoopBandwidth ) ); private float mBetaGain = ( 4.0f * mLoopBandwidth * mLoopBandwidth ) / ( 1.0f + ( 2.0f * mDamping * mLoopBandwidth ) + @@ -240,7 +240,7 @@ public class CQPSKDemodulator implements Listener, private float mLoopFrequency = 0.0f; private float mMaximumFrequency = ( 2.0f * (float)Math.PI * 1200.0f ) / - 48000.0f; + 48000.0f; public CostasLoop() { diff --git a/src/settings/SettingsManager.java b/src/settings/SettingsManager.java index 475f98df..81247d47 100644 --- a/src/settings/SettingsManager.java +++ b/src/settings/SettingsManager.java @@ -260,6 +260,10 @@ public class SettingsManager new MapIcon( "Dump Truck", "images/dump_truck_red.png", false ); icons.add( dumpTruck ); + MapIcon fireTruck = + new MapIcon( "Fire Truck", "images/fire_truck.png", false ); + icons.add( fireTruck ); + MapIcon garbageTruck = new MapIcon( "Garbage Truck", "images/garbage_truck.png", false ); icons.add( garbageTruck ); @@ -275,6 +279,10 @@ public class SettingsManager new MapIcon( "Propane Truck", "images/propane_truck.png", false ); icons.add( propaneTruck ); + MapIcon rescueTruck = + new MapIcon( "Rescue Truck", "images/rescue_truck.png", false ); + icons.add( rescueTruck ); + MapIcon schoolBus = new MapIcon( "School Bus", "images/school_bus.png", false ); icons.add( schoolBus );