#1824 Adds diagnostic report generation to File>>Reports menu to log thread dumps and generate a processing diagnostic/status report. (#1825)

Co-authored-by: Dennis Sheirer <dsheirer@github.com>
This commit is contained in:
Denny Sheirer
2024-02-04 09:59:53 -05:00
committed by GitHub
parent 3acaea0019
commit 7b9adc1da2
12 changed files with 501 additions and 73 deletions

View File

@@ -1,6 +1,6 @@
/*
* *****************************************************************************
* Copyright (C) 2014-2023 Dennis Sheirer
* Copyright (C) 2014-2024 Dennis Sheirer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -59,13 +59,27 @@ public abstract class DiscoveredTuner implements ITunerErrorListener
* Logs current state of the tuner
*/
public void logState()
{
mLog.info(getDiagnosticReport());
}
/**
* Generates a state report for this tuner.
* @return
*/
public String getDiagnosticReport()
{
StringBuilder sb = new StringBuilder();
sb.append("Discovered Tuner: ").append(getId());
sb.append("\n\tClass:").append(getClass());
if(hasTuner())
{
sb.append("\n\tTuner - Frequency:").append(getTuner().getTunerController().getFrequency());
sb.append("\n\tTuner Class:").append(getTuner().getClass());
sb.append("\n\tTuner Controller Class:").append(getTuner().getTunerController().getClass());
sb.append("\n\tFrequency:").append(getTuner().getTunerController().getFrequency());
sb.append("\n\tError:").append(getErrorMessage());
sb.append("\n\tChannel Manager Class:").append(getTuner().getChannelSourceManager().getClass());
sb.append("\n\tChannel Manager:").append(getTuner().getChannelSourceManager().getStateDescription());
}
else
@@ -73,7 +87,7 @@ public abstract class DiscoveredTuner implements ITunerErrorListener
sb.append("\n\tTuner - no tuner");
}
mLog.info(sb.toString());
return sb.toString();
}
/**

View File

@@ -1,6 +1,6 @@
/*
* *****************************************************************************
* Copyright (C) 2014-2023 Dennis Sheirer
* Copyright (C) 2014-2024 Dennis Sheirer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -72,6 +72,7 @@ public class HeterodyneChannelSourceManager extends ChannelSourceManager
.append("] Frequency [").append(channelSource.getFrequency())
.append("] Mixer [").append(channelSource.getMixerFrequency())
.append("]");
sb.append(" HASH:").append(Integer.toHexString(channelSource.hashCode()).toUpperCase());
}
return sb.toString();

View File

@@ -1,6 +1,6 @@
/*
* *****************************************************************************
* Copyright (C) 2014-2023 Dennis Sheirer
* Copyright (C) 2014-2024 Dennis Sheirer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -776,16 +776,4 @@ public class TunerManager implements IDiscoveredTunerStatusListener
}
}
}
public static void main(String[] args)
{
mLog.info("Starting ...");
UserPreferences userPreferences = new UserPreferences();
TunerManager tunerManager = new TunerManager(userPreferences);
tunerManager.start();
while(true);
// mLog.info("Finished!");
}
}

View File

@@ -1,6 +1,6 @@
/*
* *****************************************************************************
* Copyright (C) 2014-2023 Dennis Sheirer
* Copyright (C) 2014-2024 Dennis Sheirer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -526,4 +526,23 @@ public class DiscoveredTunerModel extends AbstractTableModel implements Listener
{
return COLUMN_HEADERS[columnIndex];
}
/**
* Generates a diagnostic report for all discovered tuners.
*/
public String getDiagnosticReport()
{
StringBuilder sb = new StringBuilder();
sb.append("Discovered Tuner Model Diagnostic Report\n");
List<DiscoveredTuner> tunersCopy = new ArrayList<>(mDiscoveredTuners);
for(DiscoveredTuner tuner: tunersCopy)
{
sb.append("\n\n--------------- DISCOVERED TUNER --------------------\n\n");
sb.append(tuner.getDiagnosticReport()).append("\n");
}
return sb.toString();
}
}