logDetail( "Latency timer not started for " + _asset_id
if ( _logger.isDetailEnabled() ) _logger.detail( "Latency timer not started for " + _asset_id
    void startSensorLatencyTimer( )            throws BelievabilityException    {        // If there is an existing, unexpired publish delay timer,        // then that should take precedence over the sensor latency.        // The idea here is that the delay serves and important        // function (group simultaneous and near-simultaneous trigger        // events) and that it should be a relative short interval        // (less than a second).  Also, the delay alarm existing means        // we want to publish a belief state sonner rather than later.        // Thus, we do not create a latency alarm if there is an        // active delay alarm.        //        if (( _delay_alarm != null )            && ( ! _delay_alarm.hasExpired() ))        {            logDetail( "Latency timer not started for " + _asset_id                       + ". Existing publish delay alarm exists." );            return;        }        // If there is an existing publication interval timer, then        // we cancel that, as it is more important to wait for the        // sensors to report than the somewhat arbitrary        // inter-publication interval.        //        cancelAlarm( _publish_alarm );        _publish_alarm = null;                // Just for good luck, make sure any existing alarm gets        // cancelled.         //        cancelAlarm( _latency_alarm );        _latency_alarm = new IntervalAlarm                ( _model_manager.getMaxSensorLatency                  ( _asset_id.getType() ),                  _alarm_handler,                  this );                _alarm_handler.addAlarm( _latency_alarm );        logDetail( "Latency timer started for " + _asset_id                   + ". Alarm:" + _latency_alarm.toString() );    } // method startSensorLatencyTimer