Changed to slf4j logging framework

Enhanced error handling/logging in RTL2832 eeprom device descriptor read method for troubleshooting issue present in some R820T tuners.
This commit is contained in:
dennis.sheirer
2014-09-20 10:04:04 +00:00
parent f2f658c43a
commit e441ebf0c9
78 changed files with 791 additions and 834 deletions

View File

@@ -22,7 +22,9 @@ import java.util.concurrent.RejectedExecutionException;
import javax.swing.JPanel;
import javax.usb.UsbException;
import log.Log;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import sample.Listener;
import source.SourceException;
import source.tuner.FrequencyChangeListener;
@@ -38,6 +40,9 @@ import controller.ThreadPoolManager;
public class RTL2832Tuner extends Tuner
{
private final static Logger mLog =
LoggerFactory.getLogger( RTL2832Tuner.class );
private TunerClass mTunerClass;
protected RTL2832TunerController mController;
@@ -98,8 +103,7 @@ public class RTL2832Tuner extends Tuner
}
catch( SourceException e )
{
Log.error( "RTL2832 Tuner - couldn't get sample rate - " +
e.getLocalizedMessage() );
mLog.error( "RTL2832 Tuner - couldn't get sample rate", e );
}
return 0;

View File

@@ -54,8 +54,8 @@ import javax.usb.event.UsbPipeErrorEvent;
import javax.usb.event.UsbPipeListener;
import javax.usb.util.DefaultUsbControlIrp;
import log.Log;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.usb4java.LibUsb;
import sample.Listener;
@@ -68,6 +68,9 @@ import controller.ResourceManager;
public abstract class RTL2832TunerController extends TunerController
{
private final static Logger mLog =
LoggerFactory.getLogger( RTL2832TunerController.class );
public final static int sINT_NULL_VALUE = -1;
public final static long sLONG_NULL_VALUE = -1l;
public final static double sDOUBLE_NULL_VALUE = -1.0D;
@@ -215,7 +218,7 @@ public abstract class RTL2832TunerController extends TunerController
+ "set default sample rate", e );
}
byte[] eeprom;
byte[] eeprom = null;
try
{
@@ -224,8 +227,7 @@ public abstract class RTL2832TunerController extends TunerController
}
catch( Exception e )
{
throw new SourceException( "RTL2832 Tuner Controller - couldn't "
+ "read EEPROM descriptor byte array", e );
mLog.error( "error while reading the EEPROM device descriptor", e );
}
try
@@ -234,14 +236,15 @@ public abstract class RTL2832TunerController extends TunerController
if( eeprom == null )
{
Log.error( "RTL2832 Tuner Controller - eeprom byte array was "
+ "null - constructed empty descriptor object" );
mLog.error( "eeprom byte array was null - constructed "
+ "empty descriptor object" );
}
}
catch( Exception e )
{
throw new SourceException( "RTL2832 Tuner Controller - error "
+ "constructing descriptor object from eeprom byte array", e );
mLog.error( "error while constructing device descriptor using "
+ "descriptor byte array " +
( eeprom == null ? "[null]" : Arrays.toString( eeprom )), e );
}
}
@@ -391,23 +394,23 @@ public abstract class RTL2832TunerController extends TunerController
if( claim( iface ) )
{
Log.debug( "RTL2832 - usb interface claimed" );
mLog.debug( "usb interface claimed" );
/* Perform a dummy write to see if the device needs reset */
writeRegister( device, Block.USB, Address.USB_SYSCTL.getAddress(), 0x09, 1 );
Log.debug( "RTL2832 - initializing baseband" );
mLog.debug( "initializing baseband" );
/* Initialize the baseband */
initBaseband( device );
Log.debug( "RTL2832 - enabling I2C repeater" );
mLog.debug( "enabling I2C repeater" );
enableI2CRepeater( device, true );
boolean controlI2CRepeater = false;
Log.debug( "RTL2832 - testing for tuner types" );
mLog.debug( "testing for tuner types" );
/* Test for each tuner type until we find the correct one */
if( isE4000Tuner( device, controlI2CRepeater ) )
@@ -435,19 +438,18 @@ public abstract class RTL2832TunerController extends TunerController
tunerClass = TunerType.FITIPOWER_FC0012;
}
Log.debug( "RTL2832 - disabling I2C repeater -- detected tuner type:" + tunerClass.toString() );
mLog.debug( "disabling I2C repeater -- detected tuner type:" + tunerClass.toString() );
enableI2CRepeater( device, false );
Log.debug( "RTL2832 - releasing USB interface" );
mLog.debug( "releasing USB interface" );
iface.release();
}
}
catch( Exception e )
{
Log.error( "RTL2832TunerController - error while determining "
+ "tuner type - ", e );
mLog.error( "error while determining tuner type", e );
}
return tunerClass;
@@ -518,8 +520,8 @@ public abstract class RTL2832TunerController extends TunerController
}
else
{
Log.error( "RTL2832 Tuner Controller - attempt to claim USB "
+ "interface failed - in use by another application" );
mLog.error( "attempt to claim USB interface failed - in use by "
+ "another application" );
}
return false;
@@ -556,8 +558,7 @@ public abstract class RTL2832TunerController extends TunerController
}
catch ( Exception e )
{
Log.error( "RTL2832 Tuner Controller - attempt to release USB "
+ "interface failed - " + e.getLocalizedMessage() );
mLog.error( "attempt to release USB interface failed", e );
}
}
@@ -962,7 +963,7 @@ public abstract class RTL2832TunerController extends TunerController
protected static boolean isE4000Tuner( UsbDevice device,
boolean controlI2CRepeater ) throws UsbClaimException
{
Log.debug( "RTL2832 - testing for E4000 tuner" );
mLog.debug( "testing for E4000 tuner" );
try
{
@@ -1011,7 +1012,8 @@ public abstract class RTL2832TunerController extends TunerController
boolean controlI2CRepeater )
throws UsbClaimException
{
Log.debug( "RTL2832 - testing for F0013 tuner" );
mLog.debug( "testing for F0013 tuner" );
try
{
int value = readI2CRegister( device, FC0013_I2C_ADDRESS,
@@ -1068,7 +1070,8 @@ public abstract class RTL2832TunerController extends TunerController
protected static boolean isR820TTuner( UsbDevice device,
boolean controlI2CRepeater ) throws UsbClaimException
{
Log.debug( "RTL2832 - testing for R820T tuner" );
mLog.debug( "testing for R820T tuner" );
try
{
int value = readI2CRegister( device, R820T_I2C_ADDRESS,
@@ -1210,24 +1213,44 @@ public abstract class RTL2832TunerController extends TunerController
* Label 4,5 ... (user defined)
*/
public byte[] readEEPROM( UsbDevice device, short offset, int length )
throws IllegalArgumentException, UsbDisconnectedException, UsbException
throws IllegalArgumentException
{
if( offset + length > 256 )
{
throw new IllegalArgumentException( "RTL2832 Tuner Controller - "
+ "cannot read more than 256 bytes from EEPROM" );
throw new IllegalArgumentException( "cannot read more than 256 "
+ "bytes from EEPROM - requested to read to byte [" +
( offset + length ) + "]" );
}
byte[] data = new byte[ length ];
byte[] onebyte = new byte[ 1 ];
/* Tell the RTL-2832 to address the EEPROM */
writeRegister( device, Block.IIC, EEPROM_ADDRESS, (byte)offset, 1 );
try
{
/* Tell the RTL-2832 to address the EEPROM */
writeRegister( device, Block.IIC, EEPROM_ADDRESS, (byte)offset, 1 );
}
catch( UsbException e )
{
mLog.error( "usb error while attempting to set read address to "
+ "EEPROM register, prior to reading the EEPROM device "
+ "descriptor", e );
}
for( int x = 0; x < length; x++ )
{
byte[] temp = read( device, Block.IIC, EEPROM_ADDRESS, onebyte );
data[ x ] = temp[ 0 ];
try
{
byte[] temp = read( device, Block.IIC, EEPROM_ADDRESS, onebyte );
data[ x ] = temp[ 0 ];
}
catch( Exception e )
{
mLog.error( "error while reading eeprom byte [" + x + "/" +
length + "] aborting eeprom read and returning partially "
+ "filled descriptor byte array", e );
x = length;
}
}
return data;
@@ -1514,7 +1537,8 @@ public abstract class RTL2832TunerController extends TunerController
{
if( mRunning.compareAndSet( false, true ) )
{
Log.debug( "RTL2832TunerController [" + getUniqueID() + "] - starting sample fetch thread" );
mLog.debug( "rtl2832 [" + getUniqueID() +
"] - starting sample fetch thread" );
ArrayList<UsbIrp> irps = new ArrayList<UsbIrp>();
@@ -1570,7 +1594,8 @@ public abstract class RTL2832TunerController extends TunerController
{
if( mRunning.compareAndSet( true, false ) )
{
Log.debug( "RTL2832TunerController - stopping sample fetch thread" );
mLog.debug( "rtl2832 [" + getUniqueID() +
"] - stopping sample fetch thread" );
mUSBPipe.abortAllSubmissions();
@@ -1626,8 +1651,7 @@ public abstract class RTL2832TunerController extends TunerController
| IllegalArgumentException | UsbDisconnectedException
| UsbException e )
{
Log.error( "RTL2832TunerController - error while "
+ "processing samples - " + e.getLocalizedMessage() );
mLog.error( "error while processing samples", e );
}
}
}
@@ -1640,9 +1664,8 @@ public abstract class RTL2832TunerController extends TunerController
* the reset process and ignore all subsequent errors */
if( mResetting.compareAndSet( false, true ) )
{
Log.error( "RTL2832TunerController - error during data transfer - "
+ "resetting USB pipe to RTL-2832 - " +
e.getUsbException().getLocalizedMessage() );
mLog.error( "error during data transfer resetting USB pipe to "
+ "RTL-2832", e );
stop();
@@ -1714,7 +1737,7 @@ public abstract class RTL2832TunerController extends TunerController
sb.append( " count:" );
sb.append( mSampleRateAverageCount );
Log.info( sb.toString() );
mLog.info( sb.toString() );
}
}

View File

@@ -42,10 +42,11 @@ import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.usb.UsbException;
import com.jidesoft.swing.JideTabbedPane;
import log.Log;
import net.miginfocom.swing.MigLayout;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import source.SourceException;
import source.tuner.TunerConfiguration;
import source.tuner.TunerConfigurationAssignment;
@@ -60,7 +61,10 @@ import controller.ResourceManager;
public class E4KTunerConfigurationPanel extends JPanel
{
private static final long serialVersionUID = 1L;
private ResourceManager mResourceManager;
private final static Logger mLog =
LoggerFactory.getLogger( E4KTunerConfigurationPanel.class );
private ResourceManager mResourceManager;
private E4KTunerController mController;
private E4KTunerConfiguration mSelectedConfig;
@@ -223,9 +227,8 @@ public class E4KTunerConfigurationPanel extends JPanel
+ "frequency correction value: " + value +
e1.getLocalizedMessage() );
Log.error( "E4K Tuner Controller - couldn't apply "
+ "frequency correction value: " + value +
e1.getLocalizedMessage() );
mLog.error( "E4K Tuner Controller - couldn't apply "
+ "frequency correction value: " + value, e1 );
}
}
} );
@@ -263,9 +266,9 @@ public class E4KTunerConfigurationPanel extends JPanel
+ "rate setting [" + sampleRate.getLabel() + "] " +
eSampleRate.getLocalizedMessage() );
Log.error( "E4K Tuner Controller - couldn't apply sample "
+ "rate setting [" + sampleRate.getLabel() + "] " +
eSampleRate.getLocalizedMessage() );
mLog.error( "E4K Tuner Controller - couldn't apply sample "
+ "rate setting [" + sampleRate.getLabel() + "]",
eSampleRate );
}
}
} );
@@ -389,8 +392,8 @@ public class E4KTunerConfigurationPanel extends JPanel
"E4K Tuner Controller - couldn't apply the gain "
+ "setting - " + e.getLocalizedMessage() );
Log.error( "E4K Tuner Controller - couldn't apply "
+ "gain setting - " + e.getLocalizedMessage() );
mLog.error( "E4K Tuner Controller - couldn't apply "
+ "gain setting", e );
}
}
} );
@@ -435,8 +438,8 @@ public class E4KTunerConfigurationPanel extends JPanel
"E4K Tuner Controller - couldn't apply the mixer "
+ "gain setting - " + e.getLocalizedMessage() );
Log.error( "E4K Tuner Controller - couldn't apply mixer "
+ "gain setting - " + e.getLocalizedMessage() );
mLog.error( "E4K Tuner Controller - couldn't apply mixer "
+ "gain setting", e );
}
}
} );
@@ -475,8 +478,8 @@ public class E4KTunerConfigurationPanel extends JPanel
"E4K Tuner Controller - couldn't apply the LNA "
+ "gain setting - " + e.getLocalizedMessage() );
Log.error( "E4K Tuner Controller - couldn't apply LNA "
+ "gain setting - " + e.getLocalizedMessage() );
mLog.error( "E4K Tuner Controller - couldn't apply LNA "
+ "gain setting - ", e );
}
}
} );
@@ -514,8 +517,8 @@ public class E4KTunerConfigurationPanel extends JPanel
"E4K Tuner Controller - couldn't apply the enhance "
+ "gain setting - " + e.getLocalizedMessage() );
Log.error( "E4K Tuner Controller - couldn't apply enhance "
+ "gain setting - " + e.getLocalizedMessage() );
mLog.error( "E4K Tuner Controller - couldn't apply enhance "
+ "gain setting", e );
}
}
} );
@@ -630,9 +633,8 @@ public class E4KTunerConfigurationPanel extends JPanel
+ "apply the tuner configuration settings - " +
e1.getLocalizedMessage() );
Log.error( "E4K Tuner Controller - couldn't apply "
+ "config [" + config.getName() + "] - " +
e1.getLocalizedMessage() );
mLog.error( "E4K Tuner Controller - couldn't apply "
+ "config [" + config.getName() + "]", e1 );
}
}

View File

@@ -25,8 +25,11 @@ import java.awt.EventQueue;
import javax.swing.JLabel;
import javax.swing.JPanel;
import log.Log;
import net.miginfocom.swing.MigLayout;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import source.SourceException;
import source.tuner.FrequencyChangeListener;
import source.tuner.rtl.RTL2832InfoPanel;
@@ -37,6 +40,9 @@ import controller.ResourceManager;
public class E4KTunerEditorPanel extends JPanel implements FrequencyChangeListener
{
private final static Logger mLog =
LoggerFactory.getLogger( E4KTunerEditorPanel.class );
private static final long serialVersionUID = 1L;
private E4KTunerController mController;
@@ -101,8 +107,8 @@ public class E4KTunerEditorPanel extends JPanel implements FrequencyChangeListen
}
catch ( SourceException e )
{
Log.error( "E4KTunerController - error setting frequency [" +
frequency + "] - " + e.getLocalizedMessage() );
mLog.error( "E4KTunerController - error setting frequency [" +
frequency + "]", e );
}
}
} );

View File

@@ -42,8 +42,11 @@ import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.usb.UsbException;
import log.Log;
import net.miginfocom.swing.MigLayout;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import source.SourceException;
import source.tuner.TunerConfiguration;
import source.tuner.TunerConfigurationAssignment;
@@ -57,7 +60,10 @@ import controller.ResourceManager;
public class R820TTunerConfigurationPanel extends JPanel
{
private static final long serialVersionUID = 1L;
private final static Logger mLog =
LoggerFactory.getLogger( R820TTunerConfigurationPanel.class );
private static final long serialVersionUID = 1L;
private static final R820TGain DEFAULT_GAIN = R820TGain.GAIN_279;
private ResourceManager mResourceManager;
@@ -214,9 +220,8 @@ public class R820TTunerConfigurationPanel extends JPanel
+ "frequency correction value: " + value +
e1.getLocalizedMessage() );
Log.error( "R820T Tuner Controller - couldn't apply "
+ "frequency correction value: " + value +
e1.getLocalizedMessage() );
mLog.error( "R820T Tuner Controller - couldn't apply "
+ "frequency correction value: " + value, e1 );
}
}
} );
@@ -254,9 +259,9 @@ public class R820TTunerConfigurationPanel extends JPanel
+ "rate setting [" + sampleRate.getLabel() + "] " +
eSampleRate.getLocalizedMessage() );
Log.error( "R820T Tuner Controller - couldn't apply sample "
+ "rate setting [" + sampleRate.getLabel() + "] " +
eSampleRate.getLocalizedMessage() );
mLog.error( "R820T Tuner Controller - couldn't apply sample "
+ "rate setting [" + sampleRate.getLabel() + "]",
eSampleRate );
}
}
} );
@@ -318,8 +323,8 @@ public class R820TTunerConfigurationPanel extends JPanel
"R820T Tuner Controller - couldn't apply the gain "
+ "setting - " + e.getLocalizedMessage() );
Log.error( "R820T Tuner Controller - couldn't apply "
+ "gain setting - " + e.getLocalizedMessage() );
mLog.error( "R820T Tuner Controller - couldn't apply "
+ "gain setting - ", e );
}
}
} );
@@ -369,8 +374,8 @@ public class R820TTunerConfigurationPanel extends JPanel
"R820T Tuner Controller - couldn't apply the mixer "
+ "gain setting - " + e.getLocalizedMessage() );
Log.error( "R820T Tuner Controller - couldn't apply mixer "
+ "gain setting - " + e.getLocalizedMessage() );
mLog.error( "R820T Tuner Controller - couldn't apply mixer "
+ "gain setting - ", e );
}
}
} );
@@ -415,8 +420,8 @@ public class R820TTunerConfigurationPanel extends JPanel
"R820T Tuner Controller - couldn't apply the LNA "
+ "gain setting - " + e.getLocalizedMessage() );
Log.error( "R820T Tuner Controller - couldn't apply LNA "
+ "gain setting - " + e.getLocalizedMessage() );
mLog.error( "R820T Tuner Controller - couldn't apply LNA "
+ "gain setting - ", e );
}
}
} );
@@ -459,8 +464,8 @@ public class R820TTunerConfigurationPanel extends JPanel
"R820T Tuner Controller - couldn't apply the VGA "
+ "gain setting - " + e.getLocalizedMessage() );
Log.error( "R820T Tuner Controller - couldn't apply VGA "
+ "gain setting - " + e.getLocalizedMessage() );
mLog.error( "R820T Tuner Controller - couldn't apply VGA "
+ "gain setting", e );
}
}
} );
@@ -575,9 +580,8 @@ public class R820TTunerConfigurationPanel extends JPanel
+ "apply the tuner configuration settings - " +
e1.getLocalizedMessage() );
Log.error( "R820T Tuner Controller - couldn't apply "
+ "config [" + config.getName() + "] - " +
e1.getLocalizedMessage() );
mLog.error( "R820T Tuner Controller - couldn't apply "
+ "config [" + config.getName() + "]", e1 );
}
}

View File

@@ -25,7 +25,9 @@ package source.tuner.rtl.r820t;
import javax.swing.JPanel;
import javax.usb.UsbException;
import log.Log;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import source.SourceException;
import source.tuner.TunerConfiguration;
import source.tuner.TunerType;
@@ -35,6 +37,9 @@ import controller.ResourceManager;
public class R820TTunerController extends RTL2832TunerController
{
private final static Logger mLog =
LoggerFactory.getLogger( R820TTunerController.class );
public static final long MIN_FREQUENCY = 3180000;
public static final long MAX_FREQUENCY = 1782030000;
public static final int R820T_IF_FREQUENCY = 3570000;
@@ -236,33 +241,32 @@ public class R820TTunerController extends RTL2832TunerController
{
try
{
Log.debug( "R820T Tuner Controller - testing USB interface" );
mLog.debug( "testing USB interface" );
/* Dummy write to test USB interface */
writeRegister( mUSBDevice, Block.USB,
Address.USB_SYSCTL.getAddress(), (short)0x09, 1 );
Log.debug( "R820T Tuner Controller - initializing RTL2832 tuner baseband" );
mLog.debug( "initializing RTL2832 tuner baseband" );
initBaseband( mUSBDevice );
Log.debug( "R820T Tuner Controller - enabling I2C repeater" );
mLog.debug( "enabling I2C repeater" );
enableI2CRepeater( mUSBDevice, true );
boolean i2CRepeaterControl = false;
Log.debug( "R820T Tuner Controller - initializing R820T tuner" );
mLog.debug( "initializing R820T tuner" );
initTuner( i2CRepeaterControl );
Log.debug( "R820T Tuner Controller - disabling I2C repeater" );
mLog.debug( "disabling I2C repeater" );
enableI2CRepeater( mUSBDevice, false );
Log.debug( "R820T Tuner Controller - initializing RTL tuner controller super class" );
mLog.debug( "initializing RTL2832 tuner controller super class" );
/* Initialize the super class */
super.init();
}
catch( UsbException e )
{
throw new SourceException( "R820T Tuner Controller - error during "
+ "init()", e );
throw new SourceException( "error during init()", e );
}
}
@@ -345,7 +349,8 @@ public class R820TTunerController extends RTL2832TunerController
if( !calibrationSuccessful( calibrationCode ) )
{
Log.error( "Calibration NOT successful!!" );
mLog.error( "Calibration NOT successful - code: " +
calibrationCode );
}
}
@@ -354,14 +359,11 @@ public class R820TTunerController extends RTL2832TunerController
calibrationCode = 0;
}
Log.debug( "Calibration Code is:" + calibrationCode );
/* Write calibration code */
byte filt_q = 0x10;
calibrationCode = calibrationCode | filt_q;
writeR820TRegister( Register.FILTER_CALIBRATION_CODE,
(byte)calibrationCode, controlI2C );
(byte)( calibrationCode | filt_q ), controlI2C );
/* Set BW, Filter gain & HP Corner */
writeR820TRegister( Register.BANDWIDTH_FILTER_GAIN_HIGHPASS_FILTER_CORNER,

View File

@@ -22,23 +22,28 @@ import gui.control.JFrequencyControl;
import java.awt.Color;
import java.awt.EventQueue;
import javax.swing.BorderFactory;
import javax.swing.JLabel;
import javax.swing.JPanel;
import com.jidesoft.swing.JideTabbedPane;
import log.Log;
import net.miginfocom.swing.MigLayout;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import source.SourceException;
import source.tuner.FrequencyChangeListener;
import source.tuner.rtl.RTL2832InfoPanel;
import source.tuner.rtl.e4k.E4KTunerConfigurationPanel;
import com.jidesoft.swing.JideTabbedPane;
import controller.ResourceManager;
public class R820TTunerEditorPanel extends JPanel implements FrequencyChangeListener
{
private static final long serialVersionUID = 1L;
private final static Logger mLog =
LoggerFactory.getLogger( R820TTunerEditorPanel.class );
private static final long serialVersionUID = 1L;
private R820TTunerController mController;
private ResourceManager mResourceManager;
@@ -101,8 +106,8 @@ public class R820TTunerEditorPanel extends JPanel implements FrequencyChangeList
}
catch ( SourceException e )
{
Log.error( "R820T Tuner Controller - error setting frequency [" +
frequency + "] - " + e.getLocalizedMessage() );
mLog.error( "R820T Tuner Controller - error setting frequency [" +
frequency + "]", e );
}
}
} );