mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-30 20:40:28 -04:00 
			
		
		
		
	Adjustable start frequency for waterfall.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3502 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
		
							parent
							
								
									88c73582a0
								
							
						
					
					
						commit
						18f1119b1a
					
				
							
								
								
									
										16
									
								
								in.dat
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								in.dat
									
									
									
									
									
								
							| @ -1,16 +0,0 @@ | ||||
|   35  36  22   8  31  11  14  55  20  36  55  13  24  15  56  38  16  28  61  58 | ||||
|   15  26  45   8  41  53  37  57  59  60  29  29  41  46  44  35  52  61  24  26 | ||||
|   16  20  53  35   2   6   9  27  47  28  57   6  15   9  16  10  56   9  63  46 | ||||
|    9  15   3 | ||||
|   74  61  44 233  29 245 254  64 119  64 250 111  38 145  53  29 140 194 119  99 | ||||
|   55  86  48 110 142  95  48 120  61  66 252 252 245  88  62  41 124 249 246  68 | ||||
|  250 249  65  64 140 142  88 190 237  90 240  52  79 216  55  31 112 135  66  44 | ||||
|   99  57  68 | ||||
|   54  61  26   5  13  60   3  56  30  58  57   4  16  43  28  43   6  61  13  19 | ||||
|   56   8   4   9  45  32   9   7  14  52   4  38  40  27   3  26  51  54  40  29 | ||||
|   36  63  34  43   3  48  36  49  46  30   8  20  40  59  29  28  17  11   8  19 | ||||
|   11  63   5 | ||||
|   38  25  35   8  28   0   0  60  60  25   0  31  28  52  14  24   9  30  18  54 | ||||
|   49  55  48  15  27  54  26  22  30  27   1   1   4  31  35  29  23   2   2  27 | ||||
|    0   1  25  32  21  84  28  19   5  60   2  27  15   9  39  23  42  12  29  17 | ||||
|   16  50  49 | ||||
| @ -35,7 +35,7 @@ QTextEdit* pShortcuts; | ||||
| QTcpSocket* commanderSocket = new QTcpSocket(0); | ||||
| 
 | ||||
| QString rev="$Rev$"; | ||||
| QString Program_Title_Version="  WSJT-X   v1.1, r" + rev.mid(6,4) + | ||||
| QString Program_Title_Version="  WSJT-X   v1.1.1, r" + rev.mid(6,4) + | ||||
|                               "    by K1JT"; | ||||
| 
 | ||||
| //-------------------------------------------------- MainWindow constructor
 | ||||
|  | ||||
							
								
								
									
										25
									
								
								plotter.cpp
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								plotter.cpp
									
									
									
									
									
								
							| @ -15,7 +15,7 @@ CPlotter::CPlotter(QWidget *parent) :                  //CPlotter Constructor | ||||
|   setAttribute(Qt::WA_OpaquePaintEvent, false); | ||||
|   setAttribute(Qt::WA_NoSystemBackground, true); | ||||
| 
 | ||||
|   m_StartFreq = 0; | ||||
|   m_startFreq = 0; | ||||
|   m_nSpan=2;                         //used for FFT bins/pixel
 | ||||
|   m_fSpan=(float)m_nSpan; | ||||
|   m_hdivs = HORZ_DIVS; | ||||
| @ -83,12 +83,11 @@ void CPlotter::paintEvent(QPaintEvent *)                    // paintEvent() | ||||
|   m_paintEventBusy=false; | ||||
| } | ||||
| 
 | ||||
| void CPlotter::draw(float swide[], int i0)             //draw()
 | ||||
| void CPlotter::draw(float swide[])             //draw()
 | ||||
| { | ||||
|   int j,y2; | ||||
|   float y; | ||||
| 
 | ||||
|   m_i0=i0; | ||||
|   double gain = pow(10.0,0.05*(m_plotGain+7)); | ||||
| 
 | ||||
| //move current data down one line (must do this before attaching a QPainter object)
 | ||||
| @ -306,16 +305,15 @@ void CPlotter::MakeFrequencyStrs()                       //MakeFrequencyStrs | ||||
| { | ||||
|   float freq; | ||||
|   for(int i=0; i<=m_hdivs; i++) { | ||||
|     freq = m_StartFreq + i*m_freqPerDiv; | ||||
|     freq = m_startFreq + i*m_freqPerDiv; | ||||
|     m_HDivText[i].setNum((int)freq); | ||||
|     //      StartFreq += m_freqPerDiv;
 | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| int CPlotter::XfromFreq(float f)                               //XfromFreq()
 | ||||
| { | ||||
| //  float w = m_WaterfallPixmap.width();
 | ||||
|   int x = int(m_w * (f - m_StartFreq)/m_fSpan + 0.5); | ||||
|   int x = int(m_w * (f - m_startFreq)/m_fSpan + 0.5); | ||||
|   if(x<0 ) return 0; | ||||
|   if(x>m_w) return m_w; | ||||
|   return x; | ||||
| @ -323,8 +321,7 @@ int CPlotter::XfromFreq(float f)                               //XfromFreq() | ||||
| 
 | ||||
| float CPlotter::FreqfromX(int x)                               //FreqfromX()
 | ||||
| { | ||||
| //  return float(1000.0 + x*m_binsPerPixel*m_fftBinWidth);
 | ||||
|   return float(x*m_binsPerPixel*m_fftBinWidth); | ||||
|   return float(m_startFreq + x*m_binsPerPixel*m_fftBinWidth); | ||||
| } | ||||
| 
 | ||||
| void CPlotter::SetRunningState(bool running)              //SetRunningState()
 | ||||
| @ -352,16 +349,16 @@ int CPlotter::getPlotGain()                               //getPlotGain() | ||||
|   return m_plotGain; | ||||
| } | ||||
| 
 | ||||
| void CPlotter::SetStartFreq(quint64 f)                    //SetStartFreq()
 | ||||
| void CPlotter::setStartFreq(int f)                    //SetStartFreq()
 | ||||
| { | ||||
|   m_StartFreq=f; | ||||
| //    resizeEvent(NULL);
 | ||||
|   DrawOverlay(); | ||||
|   m_startFreq=f; | ||||
|   resizeEvent(NULL); | ||||
|   update(); | ||||
| } | ||||
| 
 | ||||
| qint64 CPlotter::startFreq()                              //startFreq()
 | ||||
| int CPlotter::startFreq()                              //startFreq()
 | ||||
| { | ||||
|   return m_StartFreq; | ||||
|   return m_startFreq; | ||||
| } | ||||
| 
 | ||||
| int CPlotter::plotWidth(){return m_WaterfallPixmap.width();} | ||||
|  | ||||
							
								
								
									
										11
									
								
								plotter.h
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								plotter.h
									
									
									
									
									
								
							| @ -43,14 +43,14 @@ public: | ||||
|   qint32  m_binsPerPixel; | ||||
|   qint32  m_w; | ||||
| 
 | ||||
|   void draw(float sw[], int i0);		//Update the waterfall
 | ||||
|   void draw(float sw[]);		//Update the waterfall
 | ||||
|   void SetRunningState(bool running); | ||||
|   void setPlotZero(int plotZero); | ||||
|   int  getPlotZero(); | ||||
|   void setPlotGain(int plotGain); | ||||
|   int  getPlotGain(); | ||||
|   void SetStartFreq(quint64 f); | ||||
|   qint64 startFreq(); | ||||
|   void setStartFreq(int f); | ||||
|   int startFreq(); | ||||
|   int  plotWidth(); | ||||
|   void setNSpan(int n); | ||||
|   void UpdateOverlay(); | ||||
| @ -87,7 +87,6 @@ private: | ||||
|   void UTCstr(); | ||||
|   int XfromFreq(float f); | ||||
|   float FreqfromX(int x); | ||||
|   qint64 RoundFreq(qint64 freq, int resolution); | ||||
| 
 | ||||
|   QPixmap m_WaterfallPixmap; | ||||
|   QPixmap m_2DPixmap; | ||||
| @ -108,14 +107,11 @@ private: | ||||
|   double  m_fftBinWidth; | ||||
|   double  m_dialFreq; | ||||
| 
 | ||||
|   qint64  m_StartFreq; | ||||
| 
 | ||||
|   qint32  m_dBStepSize; | ||||
|   qint32  m_FreqUnits; | ||||
|   qint32  m_hdivs; | ||||
|   qint32  m_line; | ||||
|   qint32  m_fSample; | ||||
|   qint32  m_i0; | ||||
|   qint32  m_xClick; | ||||
|   qint32  m_freqPerDiv; | ||||
|   qint32  m_nsps; | ||||
| @ -128,6 +124,7 @@ private: | ||||
|   qint32  m_txFreq; | ||||
|   qint32  m_fMin; | ||||
|   qint32  m_fMax; | ||||
|   qint32  m_startFreq; | ||||
| 
 | ||||
|   char    m_sutc[6]; | ||||
| 
 | ||||
|  | ||||
| @ -5,22 +5,23 @@ F3	Display keyboard shortcuts | ||||
| F4	Clear Dx Call and Dx Grid entries | ||||
| Alt+F4	Exit program | ||||
| F5	Display special mouse commands | ||||
| F6	Open next in directory | ||||
| F6	Open next file in directory | ||||
| Shift+F6        Decode all remaining files in directrory | ||||
| F11	Move Rx frequency down 1 Hz | ||||
| Ctrl+F11     	Move Rx and Tx frequencies down 1 Hz | ||||
| F12	Move Rx frequency up 1 Hz | ||||
| Ctrl+F12     	Move Rx and Tx frequencies up 1 Hz | ||||
| Shift+F6     	Decode remaining files in directory | ||||
| Alt+1-6	Set next transmission to this number on Tab 1 | ||||
| Alt+D	Decode again at QSO frequency | ||||
| Shift+D	Full-bandwidth decode (both windows) | ||||
| Alt+E	Erase() | ||||
| Shift+D	Full decode (both windows) | ||||
| Alt+E	Erase | ||||
| Ctrl+F	Edit the free text message box | ||||
| Alt+G	Generate standard messages | ||||
| Alt+H	Halt Tx() | ||||
| Alt+H	Halt Tx | ||||
| Ctrl+L	Lookup callsign in database, generate standard messages | ||||
| Alt M	Monitor() | ||||
| Alt+N	Enable Tx() | ||||
| Alt+Q	Log QSO() | ||||
| Alt+S	Stop() | ||||
| Alt M	Monitor | ||||
| Alt+N	Enable Tx | ||||
| Alt+Q	Log QSO | ||||
| Alt+S	Stop monitoring | ||||
| Alt+T	Tune | ||||
| Alt+V	Save the most recently completed *.wav file | ||||
|  | ||||
| @ -49,6 +49,8 @@ WideGraph::WideGraph(QWidget *parent) : | ||||
|   ui->widePlot->setBinsPerPixel(nbpp); | ||||
|   m_slope=settings.value("Slope",0.0).toDouble(); | ||||
|   ui->slopeSpinBox->setValue(m_slope); | ||||
|   ui->widePlot->setStartFreq(settings.value("StartFreq",0).toInt()); | ||||
|   ui->fStartSpinBox->setValue(ui->widePlot->startFreq()); | ||||
|   settings.endGroup(); | ||||
| } | ||||
| 
 | ||||
| @ -75,6 +77,7 @@ void WideGraph::saveSettings() | ||||
|   settings.setValue("Cumulative",ui->widePlot->m_bCumulative); | ||||
|   settings.setValue("BinsPerPixel",ui->widePlot->binsPerPixel()); | ||||
|   settings.setValue("Slope",m_slope); | ||||
|   settings.setValue("StartFreq",ui->widePlot->startFreq()); | ||||
|   settings.endGroup(); | ||||
| } | ||||
| 
 | ||||
| @ -100,16 +103,12 @@ void WideGraph::dataSink2(float s[], float df3, int ihsym, | ||||
|     for (int i=0; i<NSMAX; i++) | ||||
|         splot[i] /= n;                       //Normalize the average
 | ||||
|     n=0; | ||||
| 
 | ||||
| //    int w=ui->widePlot->plotWidth();
 | ||||
|     int i0=-1;                            //###
 | ||||
|     int i=i0; | ||||
|     int i=int(ui->widePlot->startFreq()/df3 + 0.5); | ||||
|     int jz=5000.0/(nbpp*df3); | ||||
|     for (int j=0; j<jz; j++) { | ||||
|       float sum=0; | ||||
|       for (int k=0; k<nbpp; k++) { | ||||
|         i++; | ||||
|         sum += splot[i]; | ||||
|         sum += splot[i++]; | ||||
|       } | ||||
|       swide[j]=sum; | ||||
|     } | ||||
| @ -123,7 +122,7 @@ void WideGraph::dataSink2(float s[], float df3, int ihsym, | ||||
|       } | ||||
|     } | ||||
|     m_ntr0=ntr; | ||||
|     ui->widePlot->draw(swide,i0); | ||||
|     ui->widePlot->draw(swide); | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| @ -312,3 +311,8 @@ void WideGraph::setDialFreq(double d) | ||||
|   m_dialFreq=d; | ||||
|   ui->widePlot->setDialFreq(d); | ||||
| } | ||||
| 
 | ||||
| void WideGraph::on_fStartSpinBox_valueChanged(int n) | ||||
| { | ||||
|   ui->widePlot->setStartFreq(n); | ||||
| } | ||||
|  | ||||
| @ -61,6 +61,7 @@ private slots: | ||||
|   void on_spec2dComboBox_currentIndexChanged(const QString &arg1); | ||||
|   void on_fMinSpinBox_valueChanged(int n); | ||||
|   void on_slopeSpinBox_valueChanged(double d); | ||||
|   void on_fStartSpinBox_valueChanged(int n); | ||||
| 
 | ||||
| private: | ||||
|   double m_slope; | ||||
|  | ||||
							
								
								
									
										46
									
								
								widegraph.ui
									
									
									
									
									
								
							
							
						
						
									
										46
									
								
								widegraph.ui
									
									
									
									
									
								
							| @ -68,6 +68,50 @@ | ||||
|          </property> | ||||
|         </spacer> | ||||
|        </item> | ||||
|        <item> | ||||
|         <widget class="QSpinBox" name="fStartSpinBox"> | ||||
|          <property name="sizePolicy"> | ||||
|           <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> | ||||
|            <horstretch>0</horstretch> | ||||
|            <verstretch>0</verstretch> | ||||
|           </sizepolicy> | ||||
|          </property> | ||||
|          <property name="minimumSize"> | ||||
|           <size> | ||||
|            <width>80</width> | ||||
|            <height>0</height> | ||||
|           </size> | ||||
|          </property> | ||||
|          <property name="suffix"> | ||||
|           <string> Hz</string> | ||||
|          </property> | ||||
|          <property name="prefix"> | ||||
|           <string>Start </string> | ||||
|          </property> | ||||
|          <property name="maximum"> | ||||
|           <number>5000</number> | ||||
|          </property> | ||||
|          <property name="singleStep"> | ||||
|           <number>100</number> | ||||
|          </property> | ||||
|         </widget> | ||||
|        </item> | ||||
|        <item> | ||||
|         <spacer name="horizontalSpacer_5"> | ||||
|          <property name="orientation"> | ||||
|           <enum>Qt::Horizontal</enum> | ||||
|          </property> | ||||
|          <property name="sizeType"> | ||||
|           <enum>QSizePolicy::Minimum</enum> | ||||
|          </property> | ||||
|          <property name="sizeHint" stdset="0"> | ||||
|           <size> | ||||
|            <width>8</width> | ||||
|            <height>20</height> | ||||
|           </size> | ||||
|          </property> | ||||
|         </spacer> | ||||
|        </item> | ||||
|        <item> | ||||
|         <widget class="QSpinBox" name="freqSpanSpinBox"> | ||||
|          <property name="sizePolicy"> | ||||
| @ -256,7 +300,7 @@ | ||||
|         <widget class="QDoubleSpinBox" name="slopeSpinBox"> | ||||
|          <property name="minimumSize"> | ||||
|           <size> | ||||
|            <width>60</width> | ||||
|            <width>80</width> | ||||
|            <height>0</height> | ||||
|           </size> | ||||
|          </property> | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user