From eb5ef63d236d830bf240410ed044b084627d6832 Mon Sep 17 00:00:00 2001 From: drowe67 Date: Mon, 22 Oct 2012 01:35:43 +0000 Subject: [PATCH] spent a few hours trying to debug Stop not erasing bottom 25% of Waterfall, but haven't fixed bug. Leaving for now git-svn-id: https://svn.code.sf.net/p/freetel/code@787 01035d8c-6547-0410-b346-abe4f91aad63 --- fdmdv2/src/fdmdv2_main.cpp | 10 ++++++---- fdmdv2/src/fdmdv2_plot_waterfall_linux.cpp | 17 +++++++---------- fdmdv2/src/fdmdv2_plot_waterfall_linux.h | 2 +- 3 files changed, 14 insertions(+), 15 deletions(-) diff --git a/fdmdv2/src/fdmdv2_main.cpp b/fdmdv2/src/fdmdv2_main.cpp index 8f877807..79985101 100644 --- a/fdmdv2/src/fdmdv2_main.cpp +++ b/fdmdv2/src/fdmdv2_main.cpp @@ -255,6 +255,7 @@ void MainFrame::OnTimer(wxTimerEvent &evt) //---------------------------------------------------------------- void MainFrame::OnIdle(wxIdleEvent& event) { + printf("OnIdle\n"); if(m_panelWaterfall->m_newdata) { m_panelWaterfall->Refresh(); @@ -411,7 +412,8 @@ void MainFrame::OnTogBtnAnalogClick (wxCommandEvent& event) //------------------------------------------------------------------------- void MainFrame::OnTogBtnALCClick(wxCommandEvent& event) { -// wxMessageBox(wxT("Got Click!"), wxT("OnTogBtnALCClick"), wxOK); + wxMessageBox(wxT("Got Click!"), wxT("OnTogBtnALCClick"), wxOK); + event.Skip(); } @@ -887,7 +889,7 @@ void MainFrame::OnTogBtnOnOff(wxCommandEvent& event) m_plotTimer.Start(_REFRESH_TIMER_PERIOD, wxTIMER_CONTINUOUS); #endif // _USE_TIMER startRxStream(); -// startTxStream(); + //startTxStream(); if (m_RxRunning) { m_togBtnOnOff->SetLabel(wxT("Stop")); @@ -920,7 +922,7 @@ void MainFrame::OnTogBtnOnOff(wxCommandEvent& event) //---------------------------------------------------------- void MainFrame::OnTogBtnLoopRx( wxCommandEvent& event ) { - wxMessageBox(wxT("Got Click!"), wxT("OnTogBtnLoopRx()"), wxOK); + wxMessageBox(wxT("Got Click!"), wxT("OnTogBtnLoopRx()"), wxOK); } //---------------------------------------------------------- @@ -1053,7 +1055,7 @@ void MainFrame::startRxStream() fifo_destroy(m_rxUserdata->infifo); fifo_destroy(m_rxUserdata->outfifo); free(g_pRxOutBuf); - return; + return; } printf("end startRxStream\n"); } diff --git a/fdmdv2/src/fdmdv2_plot_waterfall_linux.cpp b/fdmdv2/src/fdmdv2_plot_waterfall_linux.cpp index 60a59678..0d0e2f00 100644 --- a/fdmdv2/src/fdmdv2_plot_waterfall_linux.cpp +++ b/fdmdv2/src/fdmdv2_plot_waterfall_linux.cpp @@ -70,16 +70,13 @@ void PlotWaterfall::OnSize(wxSizeEvent& event) { m_rCtrl = GetClientRect(); - // m_rGrid is coords of inner window we actually plot to. We defalte it a bit + // m_rGrid is coords of inner window we actually plot to. We deflate it a bit // to leave room for axis labels. m_rGrid = m_rCtrl; m_rGrid = m_rGrid.Deflate(PLOT_BORDER + (XLEFT_OFFSET/2), (PLOT_BORDER + (YBOTTOM_OFFSET/2))); - //m_rGrid.Offset(PLOT_BORDER + XLEFT_OFFSET, PLOT_BORDER); - //m_rGrid = m_rGrid.Deflate(PLOT_BORDER + (XLEFT_OFFSET*2), (PLOT_BORDER + (YBOTTOM_OFFSET*2))); - //m_rGrid.Offset(PLOT_BORDER + XLEFT_OFFSET, PLOT_BORDER); - // we want a bit map the size of m_rGrid + // we want a bit map the size of m_rGrid m_pBmp = new wxBitmap(m_rGrid.GetWidth(), m_rGrid.GetHeight(), 24); } @@ -158,13 +155,11 @@ unsigned PlotWaterfall::heatmap(float val, float min, float max) //---------------------------------------------------------------- void PlotWaterfall::draw(wxAutoBufferedPaintDC& pDC) { - printf("PlotWaterfall::draw m_newdata: %d\n", m_newdata); - pDC.Clear(); if(m_newdata) { m_newdata = false; - plotPixelData(pDC); + plotPixelData(); pDC.DrawBitmap(*m_pBmp, PLOT_BORDER + XLEFT_OFFSET, PLOT_BORDER); } else { @@ -172,12 +167,14 @@ void PlotWaterfall::draw(wxAutoBufferedPaintDC& pDC) // no data to plot so just erase to black. Blue looks nicer // but is same colour as low amplitude signal + // Bug: When Stop is pressed this code doesn't erase the lower + // 25% of the Waterfall Window + m_rPlot = wxRect(PLOT_BORDER + XLEFT_OFFSET, PLOT_BORDER, m_rGrid.GetWidth(), m_rGrid.GetHeight()); wxBrush ltGraphBkgBrush = wxBrush(BLACK_COLOR); pDC.SetBrush(ltGraphBkgBrush); pDC.SetPen(wxPen(BLACK_COLOR, 0)); pDC.DrawRectangle(m_rPlot); - //printf("x %d y %d w %d h %d\n", m_rPlot.x, m_rPlot.y, m_rPlot.width, m_rPlot.height); } drawGraticule(pDC); @@ -231,7 +228,7 @@ void PlotWaterfall::drawGraticule(wxAutoBufferedPaintDC& pDC) //------------------------------------------------------------------------- // plotPixelData() //------------------------------------------------------------------------- -void PlotWaterfall::plotPixelData(wxAutoBufferedPaintDC& dc) +void PlotWaterfall::plotPixelData() { float spec_index_per_px; float intensity_per_dB; diff --git a/fdmdv2/src/fdmdv2_plot_waterfall_linux.h b/fdmdv2/src/fdmdv2_plot_waterfall_linux.h index 97c64458..b7eaf392 100644 --- a/fdmdv2/src/fdmdv2_plot_waterfall_linux.h +++ b/fdmdv2/src/fdmdv2_plot_waterfall_linux.h @@ -63,7 +63,7 @@ class PlotWaterfall : public PlotPanel void OnShow(wxShowEvent& event); void drawGraticule(wxAutoBufferedPaintDC& dc); void draw(wxAutoBufferedPaintDC& pdc); - void plotPixelData(wxAutoBufferedPaintDC& dc); + void plotPixelData(); DECLARE_EVENT_TABLE() }; -- 2.25.1