Updated Call Event handling/display for all decoders and updated channel display values for all decoders.

- Call events now show start-stop timestamps.  (or START-In Progress if call is ongoing )
 - Call start/stop events are now on the same event line.
 - Channel panels now display site and/or channel info
 - LTR call events are limited to CALLs on the current LCN, in order to cut down on false call events resulting from noise.
 - Passport display channels now show site/channel.
 - Changed default window used by the DFTProcessor to Cosine, which doesn't have as much FFT bin leakage.
This commit is contained in:
dennis.sheirer
2014-09-15 00:42:20 +00:00
parent 0f43c7ed22
commit ad456d81a3
18 changed files with 949 additions and 412 deletions

View File

@@ -23,6 +23,7 @@ import source.config.SourceConfigTuner;
import alias.AliasList;
import audio.SquelchListener;
import audio.SquelchListener.SquelchState;
import controller.activity.CallEvent;
import controller.activity.CallEvent.CallEventType;
import controller.channel.Channel;
import controller.channel.Channel.ChannelType;
@@ -43,7 +44,6 @@ public class MPT1327ChannelState extends ChannelState
private ChannelMap mChannelMap;
private MPT1327ActivitySummary mActivitySummary;
public MPT1327ChannelState( ProcessingChain processingChain,
AliasList aliasList,
ChannelMap channelMap )
@@ -63,6 +63,12 @@ public class MPT1327ChannelState extends ChannelState
mActivitySummary.dispose();
mActivitySummary = null;
mCurrentCallEvent = null;
}
public void setCurrentCall( MPT1327CallEvent event )
{
mCurrentCallEvent = event;
}
@Override
@@ -203,8 +209,8 @@ public class MPT1327ChannelState extends ChannelState
traffic.addListener( (Listener<Message>)this );
CallEventType type = traffic.isProcessing() ?
CallEventType.CALL_START :
CallEventType.CALL_START_NO_TUNER;
CallEventType.CALL :
CallEventType.CALL_NO_TUNER;
/*
* Set the traffic channel's call event model to
@@ -212,15 +218,20 @@ public class MPT1327ChannelState extends ChannelState
*/
traffic.getProcessingChain().getChannelState()
.setCallEventModel( mCallEventModel );
MPT1327CallEvent callStartEvent =
new MPT1327CallEvent.Builder( type )
.aliasList( traffic.getProcessingChain().getAliasList() )
.channel( channelNumber )
.frequency( mChannelMap.getFrequency( channelNumber ) )
.from( mpt.getFromID() )
.to( mpt.getToID() )
.build();
mCallEventModel.add(
new MPT1327CallEvent.Builder( type )
.aliasList( traffic.getProcessingChain().getAliasList() )
.channel( channelNumber )
.frequency( mChannelMap.getFrequency( channelNumber ) )
.from( mpt.getFromID() )
.to( mpt.getToID() )
.build() );
traffic.getProcessingChain().getChannelState()
.setCurrentCallEvent( callStartEvent );
mCallEventModel.add( callStartEvent );
}
}
break;
@@ -260,14 +271,25 @@ public class MPT1327ChannelState extends ChannelState
*/
if( getState().canChangeTo( State.FADE ) )
{
mCallEventModel.add(
new MPT1327CallEvent.Builder( type )
.aliasList( getAliasList() )
.channel( mChannelNumber )
.frequency( mChannelMap.getFrequency( mChannelNumber ) )
.from( mFromTalkgroup )
.to( mToTalkgroup )
.build() );
CallEvent current = getCurrentCallEvent();
if( current != null )
{
mCallEventModel.setEnd( current );
}
else
{
mCallEventModel.add(
new MPT1327CallEvent.Builder( type )
.aliasList( getAliasList() )
.channel( mChannelNumber )
.frequency( mChannelMap.getFrequency( mChannelNumber ) )
.from( mFromTalkgroup )
.to( mToTalkgroup )
.build() );
}
setCurrentCall( null );
}
super.fade( type );