mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-08-11 02:02:26 -04:00
GLScope redesign: moved static constants to GLScopeSettings
This commit is contained in:
parent
e9d51c99a7
commit
5ab495a3fb
@ -359,7 +359,7 @@ void ChannelAnalyzerGUI::on_signalSelect_currentIndexChanged(int index)
|
|||||||
if (m_settings.m_inputType == ChannelAnalyzerSettings::InputAutoCorr) {
|
if (m_settings.m_inputType == ChannelAnalyzerSettings::InputAutoCorr) {
|
||||||
m_scopeVis->setTraceChunkSize(ChannelAnalyzerSink::m_corrFFTLen);
|
m_scopeVis->setTraceChunkSize(ChannelAnalyzerSink::m_corrFFTLen);
|
||||||
} else {
|
} else {
|
||||||
m_scopeVis->setTraceChunkSize(ScopeVis::m_traceChunkDefaultSize);
|
m_scopeVis->setTraceChunkSize(GLScopeSettings::m_traceChunkDefaultSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
ui->scopeGUI->traceLengthChange();
|
ui->scopeGUI->traceLengthChange();
|
||||||
|
@ -165,6 +165,11 @@ public:
|
|||||||
std::vector<TraceData> m_tracesData;
|
std::vector<TraceData> m_tracesData;
|
||||||
std::vector<TriggerData> m_triggersData;
|
std::vector<TriggerData> m_triggersData;
|
||||||
static const double AMPS[27];
|
static const double AMPS[27];
|
||||||
|
static const uint32_t m_traceChunkDefaultSize = 4800;
|
||||||
|
static const uint32_t m_maxNbTriggers = 10;
|
||||||
|
static const uint32_t m_maxNbTraces = 10;
|
||||||
|
static const uint32_t m_nbTraceMemories = 50;
|
||||||
|
static const uint32_t m_nbTraceBuffers = 2;
|
||||||
|
|
||||||
GLScopeSettings();
|
GLScopeSettings();
|
||||||
virtual ~GLScopeSettings();
|
virtual ~GLScopeSettings();
|
||||||
|
@ -38,8 +38,6 @@ MESSAGE_CLASS_DEFINITION(ScopeVis::MsgScopeVisNGFocusOnTrace, Message)
|
|||||||
MESSAGE_CLASS_DEFINITION(ScopeVis::MsgScopeVisNGOneShot, Message)
|
MESSAGE_CLASS_DEFINITION(ScopeVis::MsgScopeVisNGOneShot, Message)
|
||||||
MESSAGE_CLASS_DEFINITION(ScopeVis::MsgScopeVisNGMemoryTrace, Message)
|
MESSAGE_CLASS_DEFINITION(ScopeVis::MsgScopeVisNGMemoryTrace, Message)
|
||||||
|
|
||||||
const uint ScopeVis::m_traceChunkDefaultSize = 4800;
|
|
||||||
|
|
||||||
|
|
||||||
ScopeVis::ScopeVis(GLScopeInterface* glScope) :
|
ScopeVis::ScopeVis(GLScopeInterface* glScope) :
|
||||||
m_glScope(glScope),
|
m_glScope(glScope),
|
||||||
@ -50,9 +48,9 @@ ScopeVis::ScopeVis(GLScopeInterface* glScope) :
|
|||||||
m_focusedTriggerIndex(0),
|
m_focusedTriggerIndex(0),
|
||||||
m_triggerState(TriggerUntriggered),
|
m_triggerState(TriggerUntriggered),
|
||||||
m_focusedTraceIndex(0),
|
m_focusedTraceIndex(0),
|
||||||
m_traceChunkSize(m_traceChunkDefaultSize),
|
m_traceChunkSize(GLScopeSettings::m_traceChunkDefaultSize),
|
||||||
m_traceSize(m_traceChunkDefaultSize),
|
m_traceSize(GLScopeSettings::m_traceChunkDefaultSize),
|
||||||
m_liveTraceSize(m_traceChunkDefaultSize),
|
m_liveTraceSize(GLScopeSettings::m_traceChunkDefaultSize),
|
||||||
m_nbSamples(0),
|
m_nbSamples(0),
|
||||||
m_timeBase(1),
|
m_timeBase(1),
|
||||||
m_timeOfsProMill(0),
|
m_timeOfsProMill(0),
|
||||||
@ -60,7 +58,7 @@ ScopeVis::ScopeVis(GLScopeInterface* glScope) :
|
|||||||
m_triggerLocation(0),
|
m_triggerLocation(0),
|
||||||
m_sampleRate(0),
|
m_sampleRate(0),
|
||||||
m_liveSampleRate(0),
|
m_liveSampleRate(0),
|
||||||
m_traceDiscreteMemory(m_nbTraceMemories),
|
m_traceDiscreteMemory(GLScopeSettings::m_nbTraceMemories),
|
||||||
m_freeRun(true),
|
m_freeRun(true),
|
||||||
m_maxTraceDelay(0),
|
m_maxTraceDelay(0),
|
||||||
m_triggerOneShot(false),
|
m_triggerOneShot(false),
|
||||||
@ -68,7 +66,7 @@ ScopeVis::ScopeVis(GLScopeInterface* glScope) :
|
|||||||
m_currentTraceMemoryIndex(0)
|
m_currentTraceMemoryIndex(0)
|
||||||
{
|
{
|
||||||
setObjectName("ScopeVis");
|
setObjectName("ScopeVis");
|
||||||
m_traceDiscreteMemory.resize(m_traceChunkDefaultSize); // arbitrary
|
m_traceDiscreteMemory.resize(GLScopeSettings::m_traceChunkDefaultSize); // arbitrary
|
||||||
m_glScope->setTraces(&m_traces.m_tracesData, &m_traces.m_traces[0]);
|
m_glScope->setTraces(&m_traces.m_tracesData, &m_traces.m_traces[0]);
|
||||||
for (int i = 0; i < (int) Projector::nbProjectionTypes; i++) {
|
for (int i = 0; i < (int) Projector::nbProjectionTypes; i++) {
|
||||||
m_projectorCache[i] = 0.0;
|
m_projectorCache[i] = 0.0;
|
||||||
@ -217,7 +215,6 @@ void ScopeVis::setMemoryIndex(uint32_t memoryIndex)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ScopeVis::feed(const std::vector<SampleVector::const_iterator>& vbegin, int nbSamples)
|
void ScopeVis::feed(const std::vector<SampleVector::const_iterator>& vbegin, int nbSamples)
|
||||||
//void ScopeVis::feed(const SampleVector::const_iterator& cbegin, const SampleVector::const_iterator& end, bool positiveOnly)
|
|
||||||
{
|
{
|
||||||
if (vbegin.size() == 0) {
|
if (vbegin.size() == 0) {
|
||||||
return;
|
return;
|
||||||
@ -286,12 +283,12 @@ void ScopeVis::feed(const std::vector<SampleVector::const_iterator>& vbegin, int
|
|||||||
|
|
||||||
void ScopeVis::processMemoryTrace()
|
void ScopeVis::processMemoryTrace()
|
||||||
{
|
{
|
||||||
if ((m_currentTraceMemoryIndex > 0) && (m_currentTraceMemoryIndex < m_nbTraceMemories))
|
if ((m_currentTraceMemoryIndex > 0) && (m_currentTraceMemoryIndex < GLScopeSettings::m_nbTraceMemories))
|
||||||
{
|
{
|
||||||
int traceMemoryIndex = m_traceDiscreteMemory.currentIndex() - m_currentTraceMemoryIndex; // actual index in memory bank
|
int traceMemoryIndex = m_traceDiscreteMemory.currentIndex() - m_currentTraceMemoryIndex; // actual index in memory bank
|
||||||
|
|
||||||
if (traceMemoryIndex < 0) {
|
if (traceMemoryIndex < 0) {
|
||||||
traceMemoryIndex += m_nbTraceMemories;
|
traceMemoryIndex += GLScopeSettings::m_nbTraceMemories;
|
||||||
}
|
}
|
||||||
|
|
||||||
SampleVector::const_iterator mend = m_traceDiscreteMemory.at(traceMemoryIndex).m_endPoint;
|
SampleVector::const_iterator mend = m_traceDiscreteMemory.at(traceMemoryIndex).m_endPoint;
|
||||||
|
@ -43,63 +43,6 @@ class GLScopeInterface;
|
|||||||
class SDRGUI_API ScopeVis : public QObject {
|
class SDRGUI_API ScopeVis : public QObject {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
struct TriggerData
|
|
||||||
{
|
|
||||||
uint32_t m_streamIndex; //!< I/Q stream index
|
|
||||||
Projector::ProjectionType m_projectionType; //!< Complex to real projection type
|
|
||||||
uint32_t m_inputIndex; //!< Input or feed index this trigger is associated with
|
|
||||||
Real m_triggerLevel; //!< Level in real units
|
|
||||||
int m_triggerLevelCoarse;
|
|
||||||
int m_triggerLevelFine;
|
|
||||||
bool m_triggerPositiveEdge; //!< Trigger on the positive edge (else negative)
|
|
||||||
bool m_triggerBothEdges; //!< Trigger on both edges (else only one)
|
|
||||||
uint32_t m_triggerHoldoff; //!< Trigger holdoff in number of samples
|
|
||||||
uint32_t m_triggerDelay; //!< Delay before the trigger is kicked off in number of samples (trigger delay)
|
|
||||||
double m_triggerDelayMult; //!< Trigger delay as a multiplier of trace length
|
|
||||||
int m_triggerDelayCoarse;
|
|
||||||
int m_triggerDelayFine;
|
|
||||||
uint32_t m_triggerRepeat; //!< Number of trigger conditions before the final decisive trigger
|
|
||||||
QColor m_triggerColor; //!< Trigger line display color
|
|
||||||
float m_triggerColorR; //!< Trigger line display color - red shortcut
|
|
||||||
float m_triggerColorG; //!< Trigger line display color - green shortcut
|
|
||||||
float m_triggerColorB; //!< Trigger line display color - blue shortcut
|
|
||||||
|
|
||||||
TriggerData() :
|
|
||||||
m_streamIndex(0),
|
|
||||||
m_projectionType(Projector::ProjectionReal),
|
|
||||||
m_inputIndex(0),
|
|
||||||
m_triggerLevel(0.0f),
|
|
||||||
m_triggerLevelCoarse(0),
|
|
||||||
m_triggerLevelFine(0),
|
|
||||||
m_triggerPositiveEdge(true),
|
|
||||||
m_triggerBothEdges(false),
|
|
||||||
m_triggerHoldoff(1),
|
|
||||||
m_triggerDelay(0),
|
|
||||||
m_triggerDelayMult(0.0),
|
|
||||||
m_triggerDelayCoarse(0),
|
|
||||||
m_triggerDelayFine(0),
|
|
||||||
m_triggerRepeat(0),
|
|
||||||
m_triggerColor(0,255,0)
|
|
||||||
{
|
|
||||||
setColor(m_triggerColor);
|
|
||||||
}
|
|
||||||
|
|
||||||
void setColor(QColor color)
|
|
||||||
{
|
|
||||||
m_triggerColor = color;
|
|
||||||
qreal r,g,b,a;
|
|
||||||
m_triggerColor.getRgbF(&r, &g, &b, &a);
|
|
||||||
m_triggerColorR = r;
|
|
||||||
m_triggerColorG = g;
|
|
||||||
m_triggerColorB = b;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
static const uint32_t m_traceChunkDefaultSize;
|
|
||||||
static const uint32_t m_maxNbTriggers = 10;
|
|
||||||
static const uint32_t m_maxNbTraces = 10;
|
|
||||||
static const uint32_t m_nbTraceMemories = 50;
|
|
||||||
|
|
||||||
ScopeVis(GLScopeInterface* glScope = nullptr);
|
ScopeVis(GLScopeInterface* glScope = nullptr);
|
||||||
virtual ~ScopeVis();
|
virtual ~ScopeVis();
|
||||||
|
|
||||||
@ -151,7 +94,7 @@ public:
|
|||||||
QByteArray buf;
|
QByteArray buf;
|
||||||
bool traceDiscreteMemorySuccess;
|
bool traceDiscreteMemorySuccess;
|
||||||
|
|
||||||
d.readU32(1, &traceSize, m_traceChunkDefaultSize);
|
d.readU32(1, &traceSize, GLScopeSettings::m_traceChunkDefaultSize);
|
||||||
d.readU32(2, &preTriggerDelay, 0);
|
d.readU32(2, &preTriggerDelay, 0);
|
||||||
d.readS32(3, &sampleRate, 0);
|
d.readS32(3, &sampleRate, 0);
|
||||||
setSampleRate(sampleRate);
|
setSampleRate(sampleRate);
|
||||||
@ -191,7 +134,6 @@ public:
|
|||||||
uint32_t getNbTriggers() const { return m_triggerConditions.size(); }
|
uint32_t getNbTriggers() const { return m_triggerConditions.size(); }
|
||||||
|
|
||||||
void feed(const std::vector<SampleVector::const_iterator>& vbegin, int nbSamples);
|
void feed(const std::vector<SampleVector::const_iterator>& vbegin, int nbSamples);
|
||||||
//virtual void feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end, bool positiveOnly);
|
|
||||||
//virtual void start();
|
//virtual void start();
|
||||||
//virtual void stop();
|
//virtual void stop();
|
||||||
bool handleMessage(const Message& message);
|
bool handleMessage(const Message& message);
|
||||||
@ -869,7 +811,7 @@ private:
|
|||||||
|
|
||||||
void addTrace(const GLScopeSettings::TraceData& traceData, int traceSize)
|
void addTrace(const GLScopeSettings::TraceData& traceData, int traceSize)
|
||||||
{
|
{
|
||||||
if (m_traces[0].size() < m_maxNbTraces)
|
if (m_traces[0].size() < GLScopeSettings::m_maxNbTraces)
|
||||||
{
|
{
|
||||||
qDebug("ScopeVis::addTrace");
|
qDebug("ScopeVis::addTrace");
|
||||||
m_traces[0].push_back(0);
|
m_traces[0].push_back(0);
|
||||||
@ -955,8 +897,8 @@ private:
|
|||||||
{
|
{
|
||||||
delete[] m_x0;
|
delete[] m_x0;
|
||||||
delete[] m_x1;
|
delete[] m_x1;
|
||||||
m_x0 = new float[2*m_traceSize*m_maxNbTraces];
|
m_x0 = new float[2*m_traceSize*GLScopeSettings::m_maxNbTraces];
|
||||||
m_x1 = new float[2*m_traceSize*m_maxNbTraces];
|
m_x1 = new float[2*m_traceSize*GLScopeSettings::m_maxNbTraces];
|
||||||
|
|
||||||
m_maxTraceSize = m_traceSize;
|
m_maxTraceSize = m_traceSize;
|
||||||
}
|
}
|
||||||
|
@ -51,13 +51,13 @@ GLScopeGUI::GLScopeGUI(QWidget* parent) :
|
|||||||
qDebug("GLScopeGUI::GLScopeGUI");
|
qDebug("GLScopeGUI::GLScopeGUI");
|
||||||
setEnabled(false);
|
setEnabled(false);
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
ui->trigDelayFine->setMaximum(ScopeVis::m_traceChunkDefaultSize / 10.0);
|
ui->trigDelayFine->setMaximum(GLScopeSettings::m_traceChunkDefaultSize / 10.0);
|
||||||
ui->traceColor->setStyleSheet("QLabel { background-color : rgb(255,255,64); }");
|
ui->traceColor->setStyleSheet("QLabel { background-color : rgb(255,255,64); }");
|
||||||
m_focusedTraceColor.setRgb(255,255,64);
|
m_focusedTraceColor.setRgb(255,255,64);
|
||||||
ui->trigColor->setStyleSheet("QLabel { background-color : rgb(0,255,0); }");
|
ui->trigColor->setStyleSheet("QLabel { background-color : rgb(0,255,0); }");
|
||||||
m_focusedTriggerColor.setRgb(0,255,0);
|
m_focusedTriggerColor.setRgb(0,255,0);
|
||||||
ui->traceText->setText("X");
|
ui->traceText->setText("X");
|
||||||
ui->mem->setMaximum(ScopeVis::m_nbTraceMemories - 1);
|
ui->mem->setMaximum(GLScopeSettings::m_nbTraceMemories - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
GLScopeGUI::~GLScopeGUI()
|
GLScopeGUI::~GLScopeGUI()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user