mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-26 02:20:20 -04:00 
			
		
		
		
	Merge branch 'develop' of bitbucket.org:k1jt/wsjtx into hound-list-changes
This commit is contained in:
		
						commit
						2ba4496baf
					
				| @ -73,10 +73,6 @@ subroutine sync8(dd,nfa,nfb,syncmin,nfqso,maxcand,nzhsym,candidate,   & | |||||||
|               t0c=t0c + sum(s(i:i+nfos*6:nfos,m+nssy*72)) |               t0c=t0c + sum(s(i:i+nfos*6:nfos,m+nssy*72)) | ||||||
|            endif |            endif | ||||||
|         enddo |         enddo | ||||||
|         t=ta+tb |  | ||||||
|         t0=t0a+t0b |  | ||||||
|         t0=(t0-t)/6.0 |  | ||||||
|         sync_ab=t/t0 |  | ||||||
|         t=ta+tb+tc |         t=ta+tb+tc | ||||||
|         t0=t0a+t0b+t0c |         t0=t0a+t0b+t0c | ||||||
|         t0=(t0-t)/6.0 |         t0=(t0-t)/6.0 | ||||||
| @ -85,14 +81,7 @@ subroutine sync8(dd,nfa,nfb,syncmin,nfqso,maxcand,nzhsym,candidate,   & | |||||||
|         t0=t0b+t0c |         t0=t0b+t0c | ||||||
|         t0=(t0-t)/6.0 |         t0=(t0-t)/6.0 | ||||||
|         sync_bc=t/t0 |         sync_bc=t/t0 | ||||||
|         if(j.le.-12) then |         sync2d(i,j)=max(sync_abc,sync_bc) | ||||||
|            sync2d(i,j)=sync_bc |  | ||||||
|         elseif(j.gt.-12 .and. j.lt. 49) then |  | ||||||
|            if(nzhsym.eq.41) sync2d(i,j)=sync_ab |  | ||||||
|            if(nzhsym.eq.50) sync2d(i,j)=max(sync_abc,sync_bc) |  | ||||||
|         elseif(j.ge.49) then |  | ||||||
|            sync2d(i,j)=sync_ab |  | ||||||
|         endif |  | ||||||
|      enddo |      enddo | ||||||
|   enddo |   enddo | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -44,7 +44,7 @@ contains | |||||||
| 
 | 
 | ||||||
|     class(ft8_decoder), intent(inout) :: this |     class(ft8_decoder), intent(inout) :: this | ||||||
|     procedure(ft8_decode_callback) :: callback |     procedure(ft8_decode_callback) :: callback | ||||||
|     parameter (MAXCAND=500,MAX_EARLY=100) |     parameter (MAXCAND=600,MAX_EARLY=100) | ||||||
|     real*8 tsec,tseq |     real*8 tsec,tseq | ||||||
|     real s(NH1,NHSYM) |     real s(NH1,NHSYM) | ||||||
|     real sbase(NH1) |     real sbase(NH1) | ||||||
| @ -109,6 +109,7 @@ contains | |||||||
|        dd=iwave |        dd=iwave | ||||||
|        dd1=dd |        dd1=dd | ||||||
|     endif |     endif | ||||||
|  | 
 | ||||||
|     if(nzhsym.eq.41) then |     if(nzhsym.eq.41) then | ||||||
|        ndecodes=0 |        ndecodes=0 | ||||||
|        allmessages='                                     ' |        allmessages='                                     ' | ||||||
| @ -116,10 +117,12 @@ contains | |||||||
|     else |     else | ||||||
|        ndecodes=ndec_early |        ndecodes=ndec_early | ||||||
|     endif |     endif | ||||||
|  | 
 | ||||||
|     if(nzhsym.eq.47 .and. ndec_early.eq.0) then |     if(nzhsym.eq.47 .and. ndec_early.eq.0) then | ||||||
|        dd1=dd |        dd1=dd | ||||||
|        go to 800 |        go to 800 | ||||||
|     endif |     endif | ||||||
|  | 
 | ||||||
|     if(nzhsym.eq.47 .and. ndec_early.ge.1) then |     if(nzhsym.eq.47 .and. ndec_early.ge.1) then | ||||||
|        lsubtracted=.false. |        lsubtracted=.false. | ||||||
|        lrefinedt=.true. |        lrefinedt=.true. | ||||||
| @ -142,6 +145,7 @@ contains | |||||||
|        dd1=dd |        dd1=dd | ||||||
|        go to 900 |        go to 900 | ||||||
|     endif |     endif | ||||||
|  | 
 | ||||||
|     if(nzhsym.eq.50 .and. ndec_early.ge.1 .and. .not.nagain) then |     if(nzhsym.eq.50 .and. ndec_early.ge.1 .and. .not.nagain) then | ||||||
|        n=47*3456 |        n=47*3456 | ||||||
|        dd(1:n)=dd1(1:n) |        dd(1:n)=dd1(1:n) | ||||||
| @ -153,6 +157,7 @@ contains | |||||||
|        enddo |        enddo | ||||||
|        call timer('sub_ft8c',1) |        call timer('sub_ft8c',1) | ||||||
|     endif |     endif | ||||||
|  | 
 | ||||||
|     ifa=nfa |     ifa=nfa | ||||||
|     ifb=nfb |     ifb=nfb | ||||||
|     if(nzhsym.eq.50 .and. nagain) then |     if(nzhsym.eq.50 .and. nagain) then | ||||||
| @ -171,7 +176,6 @@ contains | |||||||
|       newdat=.true. |       newdat=.true. | ||||||
|       syncmin=1.3 |       syncmin=1.3 | ||||||
|       if(ndepth.le.2) syncmin=1.6 |       if(ndepth.le.2) syncmin=1.6 | ||||||
| !      if(nzhsym.eq.41.or.ipass.eq.1) syncmin=2.0 |  | ||||||
|       if(nzhsym.eq.41) syncmin=2.0 |       if(nzhsym.eq.41) syncmin=2.0 | ||||||
|       if(ipass.eq.1) then |       if(ipass.eq.1) then | ||||||
|         lsubtract=.true. |         lsubtract=.true. | ||||||
| @ -225,10 +229,6 @@ contains | |||||||
|               if(emedelay.ne.0) xdt=xdt+2.0 |               if(emedelay.ne.0) xdt=xdt+2.0 | ||||||
|               call this%callback(sync,nsnr,xdt,f1,msg37,iaptype,qual) |               call this%callback(sync,nsnr,xdt,f1,msg37,iaptype,qual) | ||||||
|               call ft8_a7_save(nutc,xdt,f1,msg37)  !Enter decode in table |               call ft8_a7_save(nutc,xdt,f1,msg37)  !Enter decode in table | ||||||
| !              ii=ndec(jseq,1) |  | ||||||
| !              write(41,3041) jseq,ii,nint(f0(ii,jseq,0)),msg0(ii,jseq,0)(1:22),& |  | ||||||
| !                   nint(f0(ii,jseq,1)),msg0(ii,jseq,1)(1:22) |  | ||||||
| !3041          format(3i5,2x,a22,i5,2x,a22) |  | ||||||
|            endif |            endif | ||||||
|         endif |         endif | ||||||
|         call timestamp(tsec,tseq,ctime) |         call timestamp(tsec,tseq,ctime) | ||||||
|  | |||||||
| @ -7,6 +7,7 @@ | |||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
| #include "SettingsGroup.hpp" | #include "SettingsGroup.hpp" | ||||||
| #include "commons.h" | #include "commons.h" | ||||||
|  | #include <math.h> | ||||||
| 
 | 
 | ||||||
| extern "C" { | extern "C" { | ||||||
|   void astrosub_ (int* nyear, int* month, int* nday, double* uth, int* nfreq, |   void astrosub_ (int* nyear, int* month, int* nday, double* uth, int* nfreq, | ||||||
| @ -44,7 +45,7 @@ Astro::~Astro() | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void Astro::astroUpdate(QDateTime t, QString mygrid, QString hisgrid, | void Astro::astroUpdate(QDateTime t, QString mygrid, QString hisgrid, | ||||||
|                         int fQSO, int nsetftx, int ntxFreq, QString azelDir) |                         int fQSO, int nsetftx, int ntxFreq, QString azelDir, double xavg) | ||||||
| { | { | ||||||
|   static int ntxFreq0=-99; |   static int ntxFreq0=-99; | ||||||
|   char cc[300]; |   char cc[300]; | ||||||
| @ -86,6 +87,65 @@ void Astro::astroUpdate(QDateTime t, QString mygrid, QString hisgrid, | |||||||
|           ntsky,xnr,dgrd); |           ntsky,xnr,dgrd); | ||||||
|   ui->astroTextBrowser->setText(" "+ date + "\nUTC: " + utc + "\n" + cc); |   ui->astroTextBrowser->setText(" "+ date + "\nUTC: " + utc + "\n" + cc); | ||||||
| 
 | 
 | ||||||
|  |   double azOffset=0.0; | ||||||
|  |   double elOffset=0.0; | ||||||
|  |   double rad=57.2957795131; | ||||||
|  |   int iCycle=2; | ||||||
|  | // Are we doing pointing tests?
 | ||||||
|  |   bool bPointing=ui->cbPointingTests->isChecked(); | ||||||
|  |   ui->gbPointing->setVisible(bPointing); | ||||||
|  |   if(bPointing) { | ||||||
|  |     int nDwell=int(ui->sbDwell->value()); | ||||||
|  |     if(ui->cbAutoCycle->isChecked()) { | ||||||
|  |       iCycle=(t.currentSecsSinceEpoch()%(6*nDwell))/nDwell + 1; | ||||||
|  |       if(iCycle==1) { | ||||||
|  |         azOffset = -ui->sbOffset->value()/cos(elsun/rad); | ||||||
|  |         ui->rb1->setChecked(true); | ||||||
|  |       } | ||||||
|  |       if(iCycle==2 or iCycle==5) { | ||||||
|  |         ui->rb2->setChecked(true); | ||||||
|  |       } | ||||||
|  |       if(iCycle==3) { | ||||||
|  |         azOffset = +ui->sbOffset->value()/cos(elsun/rad); | ||||||
|  |         ui->rb3->setChecked(true); | ||||||
|  |       } | ||||||
|  |       if(iCycle==4) { | ||||||
|  |         elOffset = -ui->sbOffset->value(); | ||||||
|  |         ui->rb4->setChecked(true); | ||||||
|  |       } | ||||||
|  |       if(iCycle==6) { | ||||||
|  |         elOffset = +ui->sbOffset->value(); | ||||||
|  |         ui->rb6->setChecked(true); | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |     if(ui->cbOnOff->isChecked()) { | ||||||
|  |       iCycle=(t.currentSecsSinceEpoch()%(2*nDwell))/nDwell + 1; | ||||||
|  |       if(iCycle==1) { | ||||||
|  |         azOffset = -ui->sbOffset->value()/cos(elsun/rad); | ||||||
|  |         ui->rb1->setChecked(true); | ||||||
|  |       } | ||||||
|  |       if(iCycle==2) { | ||||||
|  |         ui->rb2->setChecked(true); | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |     if(ui->cbAutoCycle->isChecked() or ui->cbOnOff->isChecked()) { | ||||||
|  |       QFile f("pointing.out"); | ||||||
|  |       if(f.open(QIODevice::WriteOnly | QIODevice::Append)) { | ||||||
|  |         QTextStream out(&f); | ||||||
|  |         out << t.toString("yyyy-MMM-dd hh:mm:ss"); | ||||||
|  |         sprintf(cc,"%7.1f %7.1f   %d %7.1f %7.1f %10.1f %7.2f\n", | ||||||
|  |                 azsun,elsun,iCycle,azOffset,elOffset,xavg,10.0*log10(xavg)); | ||||||
|  |         out << cc; | ||||||
|  |         f.close(); | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |   } else { | ||||||
|  |     ui->rb2->setChecked(true); | ||||||
|  |     ui->cbAutoCycle->setChecked(false); | ||||||
|  |     ui->cbOnOff->setChecked(false); | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  | // Write pointing data to azel.dat
 | ||||||
|   QString fname=azelDir+"/azel.dat"; |   QString fname=azelDir+"/azel.dat"; | ||||||
|   QFile f(fname); |   QFile f(fname); | ||||||
|   if(!f.open(QIODevice::WriteOnly | QIODevice::Text)) { |   if(!f.open(QIODevice::WriteOnly | QIODevice::Text)) { | ||||||
| @ -107,7 +167,7 @@ void Astro::astroUpdate(QDateTime t, QString mygrid, QString hisgrid, | |||||||
|           "%3d,%1d,fQSO\n" |           "%3d,%1d,fQSO\n" | ||||||
|           "%3d,%1d,fQSO2\n", |           "%3d,%1d,fQSO2\n", | ||||||
|           nhr,nmin,isec,azmoon,elmoon, |           nhr,nmin,isec,azmoon,elmoon, | ||||||
|           nhr,nmin,isec,azsun,elsun, |           nhr,nmin,isec,azsun+azOffset,elsun+elOffset, | ||||||
|           nhr,nmin,isec,0.0,0.0, |           nhr,nmin,isec,0.0,0.0, | ||||||
|           nfreq,ndop,ndop00, |           nfreq,ndop,ndop00, | ||||||
|           fQSO,nsetftx, |           fQSO,nsetftx, | ||||||
| @ -120,3 +180,14 @@ void Astro::setFontSize(int n) | |||||||
| { | { | ||||||
|   ui->astroTextBrowser->setFontPointSize(n); |   ui->astroTextBrowser->setFontPointSize(n); | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | void Astro::on_cbAutoCycle_clicked(bool checked) | ||||||
|  | { | ||||||
|  |   if(checked) ui->cbOnOff->setChecked(false); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void Astro::on_cbOnOff_clicked(bool checked) | ||||||
|  | { | ||||||
|  |   if(checked) ui->cbAutoCycle->setChecked(false); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | |||||||
| @ -15,10 +15,14 @@ class Astro : public QWidget | |||||||
| public: | public: | ||||||
|   explicit Astro (QString const& settings_filename, QWidget *parent = 0); |   explicit Astro (QString const& settings_filename, QWidget *parent = 0); | ||||||
|   void astroUpdate(QDateTime t, QString mygrid, QString hisgrid, |   void astroUpdate(QDateTime t, QString mygrid, QString hisgrid, | ||||||
|                    int fQSO, int nsetftx, int ntxFreq, QString azelDir); |                    int fQSO, int nsetftx, int ntxFreq, QString azelDir, double xavg); | ||||||
|   void setFontSize(int n); |   void setFontSize(int n); | ||||||
|   ~Astro (); |   ~Astro (); | ||||||
| 
 | 
 | ||||||
|  | private slots: | ||||||
|  |   void on_cbOnOff_clicked(bool checked); | ||||||
|  |   void on_cbAutoCycle_clicked(bool checked); | ||||||
|  | 
 | ||||||
| private: | private: | ||||||
|   Ui::Astro *ui; |   Ui::Astro *ui; | ||||||
|   QString m_settings_filename; |   QString m_settings_filename; | ||||||
|  | |||||||
							
								
								
									
										220
									
								
								map65/astro.ui
									
									
									
									
									
								
							
							
						
						
									
										220
									
								
								map65/astro.ui
									
									
									
									
									
								
							| @ -6,22 +6,194 @@ | |||||||
|    <rect> |    <rect> | ||||||
|     <x>0</x> |     <x>0</x> | ||||||
|     <y>0</y> |     <y>0</y> | ||||||
|     <width>262</width> |     <width>441</width> | ||||||
|     <height>483</height> |     <height>483</height> | ||||||
|    </rect> |    </rect> | ||||||
|   </property> |   </property> | ||||||
|   <property name="windowTitle"> |   <property name="windowTitle"> | ||||||
|    <string>Form</string> |    <string>Form</string> | ||||||
|   </property> |   </property> | ||||||
|   <widget class="QTextBrowser" name="astroTextBrowser"> |   <widget class="QGroupBox" name="gbPointing"> | ||||||
|  |    <property name="geometry"> | ||||||
|  |     <rect> | ||||||
|  |      <x>269</x> | ||||||
|  |      <y>19</y> | ||||||
|  |      <width>151</width> | ||||||
|  |      <height>431</height> | ||||||
|  |     </rect> | ||||||
|  |    </property> | ||||||
|  |    <property name="title"> | ||||||
|  |     <string/> | ||||||
|  |    </property> | ||||||
|  |    <widget class="QRadioButton" name="rb1"> | ||||||
|  |     <property name="geometry"> | ||||||
|  |      <rect> | ||||||
|  |       <x>10</x> | ||||||
|  |       <y>100</y> | ||||||
|  |       <width>30</width> | ||||||
|  |       <height>17</height> | ||||||
|  |      </rect> | ||||||
|  |     </property> | ||||||
|  |     <property name="text"> | ||||||
|  |      <string>1</string> | ||||||
|  |     </property> | ||||||
|  |    </widget> | ||||||
|  |    <widget class="QRadioButton" name="rb2"> | ||||||
|  |     <property name="geometry"> | ||||||
|  |      <rect> | ||||||
|  |       <x>60</x> | ||||||
|  |       <y>100</y> | ||||||
|  |       <width>40</width> | ||||||
|  |       <height>17</height> | ||||||
|  |      </rect> | ||||||
|  |     </property> | ||||||
|  |     <property name="text"> | ||||||
|  |      <string>2, 5</string> | ||||||
|  |     </property> | ||||||
|  |     <property name="checked"> | ||||||
|  |      <bool>true</bool> | ||||||
|  |     </property> | ||||||
|  |    </widget> | ||||||
|  |    <widget class="QRadioButton" name="rb3"> | ||||||
|  |     <property name="geometry"> | ||||||
|  |      <rect> | ||||||
|  |       <x>110</x> | ||||||
|  |       <y>100</y> | ||||||
|  |       <width>30</width> | ||||||
|  |       <height>17</height> | ||||||
|  |      </rect> | ||||||
|  |     </property> | ||||||
|  |     <property name="text"> | ||||||
|  |      <string>3</string> | ||||||
|  |     </property> | ||||||
|  |    </widget> | ||||||
|  |    <widget class="QRadioButton" name="rb4"> | ||||||
|  |     <property name="geometry"> | ||||||
|  |      <rect> | ||||||
|  |       <x>60</x> | ||||||
|  |       <y>150</y> | ||||||
|  |       <width>30</width> | ||||||
|  |       <height>17</height> | ||||||
|  |      </rect> | ||||||
|  |     </property> | ||||||
|  |     <property name="text"> | ||||||
|  |      <string>4</string> | ||||||
|  |     </property> | ||||||
|  |    </widget> | ||||||
|  |    <widget class="QRadioButton" name="rb6"> | ||||||
|  |     <property name="geometry"> | ||||||
|  |      <rect> | ||||||
|  |       <x>60</x> | ||||||
|  |       <y>50</y> | ||||||
|  |       <width>30</width> | ||||||
|  |       <height>17</height> | ||||||
|  |      </rect> | ||||||
|  |     </property> | ||||||
|  |     <property name="text"> | ||||||
|  |      <string>6</string> | ||||||
|  |     </property> | ||||||
|  |    </widget> | ||||||
|  |    <widget class="QDoubleSpinBox" name="sbOffset"> | ||||||
|  |     <property name="geometry"> | ||||||
|  |      <rect> | ||||||
|  |       <x>10</x> | ||||||
|  |       <y>230</y> | ||||||
|  |       <width>130</width> | ||||||
|  |       <height>22</height> | ||||||
|  |      </rect> | ||||||
|  |     </property> | ||||||
|  |     <property name="alignment"> | ||||||
|  |      <set>Qt::AlignCenter</set> | ||||||
|  |     </property> | ||||||
|  |     <property name="prefix"> | ||||||
|  |      <string>Offset   </string> | ||||||
|  |     </property> | ||||||
|  |     <property name="suffix"> | ||||||
|  |      <string>  deg</string> | ||||||
|  |     </property> | ||||||
|  |     <property name="decimals"> | ||||||
|  |      <number>1</number> | ||||||
|  |     </property> | ||||||
|  |     <property name="minimum"> | ||||||
|  |      <double>0.500000000000000</double> | ||||||
|  |     </property> | ||||||
|  |     <property name="maximum"> | ||||||
|  |      <double>20.000000000000000</double> | ||||||
|  |     </property> | ||||||
|  |     <property name="singleStep"> | ||||||
|  |      <double>0.500000000000000</double> | ||||||
|  |     </property> | ||||||
|  |     <property name="value"> | ||||||
|  |      <double>2.500000000000000</double> | ||||||
|  |     </property> | ||||||
|  |    </widget> | ||||||
|  |    <widget class="QCheckBox" name="cbAutoCycle"> | ||||||
|  |     <property name="geometry"> | ||||||
|  |      <rect> | ||||||
|  |       <x>30</x> | ||||||
|  |       <y>330</y> | ||||||
|  |       <width>91</width> | ||||||
|  |       <height>17</height> | ||||||
|  |      </rect> | ||||||
|  |     </property> | ||||||
|  |     <property name="text"> | ||||||
|  |      <string>Auto Cycle</string> | ||||||
|  |     </property> | ||||||
|  |    </widget> | ||||||
|  |    <widget class="QCheckBox" name="cbOnOff"> | ||||||
|  |     <property name="geometry"> | ||||||
|  |      <rect> | ||||||
|  |       <x>30</x> | ||||||
|  |       <y>380</y> | ||||||
|  |       <width>70</width> | ||||||
|  |       <height>17</height> | ||||||
|  |      </rect> | ||||||
|  |     </property> | ||||||
|  |     <property name="text"> | ||||||
|  |      <string>On Off</string> | ||||||
|  |     </property> | ||||||
|  |    </widget> | ||||||
|  |    <widget class="QSpinBox" name="sbDwell"> | ||||||
|  |     <property name="geometry"> | ||||||
|  |      <rect> | ||||||
|  |       <x>10</x> | ||||||
|  |       <y>280</y> | ||||||
|  |       <width>130</width> | ||||||
|  |       <height>22</height> | ||||||
|  |      </rect> | ||||||
|  |     </property> | ||||||
|  |     <property name="alignment"> | ||||||
|  |      <set>Qt::AlignCenter</set> | ||||||
|  |     </property> | ||||||
|  |     <property name="suffix"> | ||||||
|  |      <string>   s</string> | ||||||
|  |     </property> | ||||||
|  |     <property name="prefix"> | ||||||
|  |      <string>Dwell   </string> | ||||||
|  |     </property> | ||||||
|  |     <property name="minimum"> | ||||||
|  |      <number>10</number> | ||||||
|  |     </property> | ||||||
|  |     <property name="maximum"> | ||||||
|  |      <number>300</number> | ||||||
|  |     </property> | ||||||
|  |     <property name="singleStep"> | ||||||
|  |      <number>10</number> | ||||||
|  |     </property> | ||||||
|  |    </widget> | ||||||
|  |   </widget> | ||||||
|  |   <widget class="QWidget" name=""> | ||||||
|    <property name="geometry"> |    <property name="geometry"> | ||||||
|     <rect> |     <rect> | ||||||
|      <x>0</x> |      <x>0</x> | ||||||
|      <y>10</y> |      <y>10</y> | ||||||
|      <width>256</width> |      <width>258</width> | ||||||
|      <height>451</height> |      <height>471</height> | ||||||
|     </rect> |     </rect> | ||||||
|    </property> |    </property> | ||||||
|  |    <layout class="QVBoxLayout" name="verticalLayout"> | ||||||
|  |     <item> | ||||||
|  |      <widget class="QTextBrowser" name="astroTextBrowser"> | ||||||
|       <property name="font"> |       <property name="font"> | ||||||
|        <font> |        <font> | ||||||
|         <family>Courier New</family> |         <family>Courier New</family> | ||||||
| @ -31,6 +203,46 @@ | |||||||
|        </font> |        </font> | ||||||
|       </property> |       </property> | ||||||
|      </widget> |      </widget> | ||||||
|  |     </item> | ||||||
|  |     <item> | ||||||
|  |      <layout class="QHBoxLayout" name="horizontalLayout"> | ||||||
|  |       <item> | ||||||
|  |        <spacer name="horizontalSpacer_2"> | ||||||
|  |         <property name="orientation"> | ||||||
|  |          <enum>Qt::Horizontal</enum> | ||||||
|  |         </property> | ||||||
|  |         <property name="sizeHint" stdset="0"> | ||||||
|  |          <size> | ||||||
|  |           <width>40</width> | ||||||
|  |           <height>20</height> | ||||||
|  |          </size> | ||||||
|  |         </property> | ||||||
|  |        </spacer> | ||||||
|  |       </item> | ||||||
|  |       <item> | ||||||
|  |        <widget class="QCheckBox" name="cbPointingTests"> | ||||||
|  |         <property name="text"> | ||||||
|  |          <string>Pointing Tests</string> | ||||||
|  |         </property> | ||||||
|  |        </widget> | ||||||
|  |       </item> | ||||||
|  |       <item> | ||||||
|  |        <spacer name="horizontalSpacer"> | ||||||
|  |         <property name="orientation"> | ||||||
|  |          <enum>Qt::Horizontal</enum> | ||||||
|  |         </property> | ||||||
|  |         <property name="sizeHint" stdset="0"> | ||||||
|  |          <size> | ||||||
|  |           <width>40</width> | ||||||
|  |           <height>20</height> | ||||||
|  |          </size> | ||||||
|  |         </property> | ||||||
|  |        </spacer> | ||||||
|  |       </item> | ||||||
|  |      </layout> | ||||||
|  |     </item> | ||||||
|  |    </layout> | ||||||
|  |   </widget> | ||||||
|  </widget> |  </widget> | ||||||
|  <resources/> |  <resources/> | ||||||
|  <connections/> |  <connections/> | ||||||
|  | |||||||
| @ -520,6 +520,8 @@ void MainWindow::dataSink(int k) | |||||||
|   static int nkhz; |   static int nkhz; | ||||||
|   static int nfsample=96000; |   static int nfsample=96000; | ||||||
|   static int nxpol=0; |   static int nxpol=0; | ||||||
|  |   static int nsec0=0; | ||||||
|  |   static int nsum=0; | ||||||
|   static float fgreen; |   static float fgreen; | ||||||
|   static int ndiskdat; |   static int ndiskdat; | ||||||
|   static int nb; |   static int nb; | ||||||
| @ -529,6 +531,7 @@ void MainWindow::dataSink(int k) | |||||||
|   static float rejectx; |   static float rejectx; | ||||||
|   static float rejecty; |   static float rejecty; | ||||||
|   static float slimit; |   static float slimit; | ||||||
|  |   static double xsum=0.0; | ||||||
| 
 | 
 | ||||||
|   if(m_diskData) { |   if(m_diskData) { | ||||||
|     ndiskdat=1; |     ndiskdat=1; | ||||||
| @ -551,8 +554,22 @@ void MainWindow::dataSink(int k) | |||||||
|            &nfsample, &fgreen, &m_adjustIQ, &m_applyIQcal, |            &nfsample, &fgreen, &m_adjustIQ, &m_applyIQcal, | ||||||
|            &m_gainx, &m_gainy, &m_phasex, &m_phasey, &rejectx, &rejecty, |            &m_gainx, &m_gainy, &m_phasex, &m_phasey, &rejectx, &rejecty, | ||||||
|            &px, &py, s, &nkhz, &ihsym, &nzap, &slimit, lstrong); |            &px, &py, s, &nkhz, &ihsym, &nzap, &slimit, lstrong); | ||||||
|  | 
 | ||||||
|  |   int nsec=QDateTime::currentSecsSinceEpoch(); | ||||||
|  |   if(nsec==nsec0) { | ||||||
|  |     xsum+=pow(10.0,0.1*px); | ||||||
|  |     nsum+=1; | ||||||
|  |   } else { | ||||||
|  |     m_xavg=0.0; | ||||||
|  |     if(nsum>0) m_xavg=xsum/nsum; | ||||||
|  |     xsum=pow(10.0,0.1*px); | ||||||
|  |     nsum=1; | ||||||
|  |   } | ||||||
|  |   nsec0=nsec; | ||||||
|  | 
 | ||||||
|   QString t; |   QString t; | ||||||
|   m_pctZap=nzap/178.3; |   m_pctZap=nzap/178.3; | ||||||
|  |   ui->yMeterFrame->setVisible(m_xpol); | ||||||
|   if(m_xpol) { |   if(m_xpol) { | ||||||
|     lab4->setText ( |     lab4->setText ( | ||||||
|                   QString {" Rx noise: %1  %2 %3 %% "} |                   QString {" Rx noise: %1  %2 %3 %% "} | ||||||
| @ -1693,7 +1710,7 @@ void MainWindow::guiUpdate() | |||||||
|     QDateTime t = QDateTime::currentDateTimeUtc(); |     QDateTime t = QDateTime::currentDateTimeUtc(); | ||||||
|     int fQSO=m_wide_graph_window->QSOfreq(); |     int fQSO=m_wide_graph_window->QSOfreq(); | ||||||
|     m_astro_window->astroUpdate(t, m_myGrid, m_hisGrid, fQSO, m_setftx, |     m_astro_window->astroUpdate(t, m_myGrid, m_hisGrid, fQSO, m_setftx, | ||||||
|                           m_txFreq, m_azelDir); |                           m_txFreq, m_azelDir, m_xavg); | ||||||
|     m_setftx=0; |     m_setftx=0; | ||||||
|     QString utc = t.date().toString(" yyyy MMM dd \n") + t.time().toString(); |     QString utc = t.date().toString(" yyyy MMM dd \n") + t.time().toString(); | ||||||
|     ui->labUTC->setText(utc); |     ui->labUTC->setText(utc); | ||||||
|  | |||||||
| @ -200,6 +200,7 @@ private: | |||||||
|   //    double  m_IQphase;
 |   //    double  m_IQphase;
 | ||||||
|   double  m_cal570; |   double  m_cal570; | ||||||
|   double  m_TxOffset; |   double  m_TxOffset; | ||||||
|  |   double  m_xavg; | ||||||
| 
 | 
 | ||||||
|   bool    m_monitoring; |   bool    m_monitoring; | ||||||
|   bool    m_transmitting; |   bool    m_transmitting; | ||||||
|  | |||||||
| @ -209,6 +209,8 @@ QVector<QColor> g_ColorTbl; | |||||||
| using SpecOp = Configuration::SpecialOperatingActivity; | using SpecOp = Configuration::SpecialOperatingActivity; | ||||||
| 
 | 
 | ||||||
| bool m_displayBand = false; | bool m_displayBand = false; | ||||||
|  | bool no_a7_decodes = false; | ||||||
|  | bool keep_frequency = false; | ||||||
| 
 | 
 | ||||||
| namespace | namespace | ||||||
| { | { | ||||||
| @ -3700,6 +3702,10 @@ void MainWindow::readFromStdout()                             //readFromStdout | |||||||
|           continue; |           continue; | ||||||
|         } |         } | ||||||
|       } |       } | ||||||
|  | 
 | ||||||
|  |     // Don't allow a7 decodes during the first period because they can be leftovers from the previous band
 | ||||||
|  |     if (!(no_a7_decodes && line_read.contains("a7"))) { | ||||||
|  | 
 | ||||||
|     if (m_mode!="FT8" and m_mode!="FT4" and !m_mode.startsWith ("FST4") and m_mode!="Q65") { |     if (m_mode!="FT8" and m_mode!="FT4" and !m_mode.startsWith ("FST4") and m_mode!="Q65") { | ||||||
|       //Pad 22-char msg to at least 37 chars
 |       //Pad 22-char msg to at least 37 chars
 | ||||||
|       line_read = line_read.left(44) + "              " + line_read.mid(44); |       line_read = line_read.left(44) + "              " + line_read.mid(44); | ||||||
| @ -3766,6 +3772,7 @@ void MainWindow::readFromStdout()                             //readFromStdout | |||||||
|           } |           } | ||||||
|         m_tBlankLine = line_read.left(ntime); |         m_tBlankLine = line_read.left(ntime); | ||||||
|       } |       } | ||||||
|  |     } | ||||||
|       if ("FST4W" == m_mode) |       if ("FST4W" == m_mode) | ||||||
|         { |         { | ||||||
|           uploadWSPRSpots (true, line_read); |           uploadWSPRSpots (true, line_read); | ||||||
| @ -4139,7 +4146,7 @@ void MainWindow::pskPost (DecodedText const& decodedtext) | |||||||
|   } |   } | ||||||
|   int snr = decodedtext.snr(); |   int snr = decodedtext.snr(); | ||||||
|   Frequency frequency = m_freqNominalPeriod + audioFrequency;   // prevent spotting wrong band
 |   Frequency frequency = m_freqNominalPeriod + audioFrequency;   // prevent spotting wrong band
 | ||||||
|   if(grid.contains (grid_regexp)) { |   if(grid.contains (grid_regexp)  || decodedtext.string().contains(" CQ ")) { | ||||||
| //    qDebug() << "To PSKreporter:" << deCall << grid << frequency << msgmode << snr;
 | //    qDebug() << "To PSKreporter:" << deCall << grid << frequency << msgmode << snr;
 | ||||||
|     if (!m_psk_Reporter.addRemoteStation (deCall, grid, frequency, msgmode, snr)) |     if (!m_psk_Reporter.addRemoteStation (deCall, grid, frequency, msgmode, snr)) | ||||||
|       { |       { | ||||||
| @ -6764,7 +6771,7 @@ void MainWindow::on_actionFT8_triggered() | |||||||
|     ui->txb5->setEnabled(false); |     ui->txb5->setEnabled(false); | ||||||
|     ui->txb6->setEnabled(false); |     ui->txb6->setEnabled(false); | ||||||
|   } else { |   } else { | ||||||
|     switch_mode (Modes::FT8); |     if (!(keep_frequency)) switch_mode (Modes::FT8); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   if(m_specOp != SpecOp::HOUND) { |   if(m_specOp != SpecOp::HOUND) { | ||||||
| @ -7487,6 +7494,10 @@ void MainWindow::on_bandComboBox_activated (int index) | |||||||
| 
 | 
 | ||||||
| void MainWindow::band_changed (Frequency f) | void MainWindow::band_changed (Frequency f) | ||||||
| { | { | ||||||
|  |   // Don't allow a7 decodes during the first period because they can be leftovers from the previous band
 | ||||||
|  |   no_a7_decodes = true; | ||||||
|  |   QTimer::singleShot ((int(1000.0*m_TRperiod)), [=] {no_a7_decodes = false;}); | ||||||
|  | 
 | ||||||
|   // Set the attenuation value if options are checked
 |   // Set the attenuation value if options are checked
 | ||||||
|   if (m_config.pwrBandTxMemory() && !m_tune) { |   if (m_config.pwrBandTxMemory() && !m_tune) { | ||||||
|     auto const&curBand = ui->bandComboBox->currentText(); |     auto const&curBand = ui->bandComboBox->currentText(); | ||||||
| @ -10113,6 +10124,8 @@ void MainWindow::on_houndButton_clicked (bool checked) | |||||||
|   } else { |   } else { | ||||||
|     ui->houndButton->setStyleSheet(""); |     ui->houndButton->setStyleSheet(""); | ||||||
|     m_config.setSpecial_None(); |     m_config.setSpecial_None(); | ||||||
|  |     keep_frequency = true; | ||||||
|  |     QTimer::singleShot (250, [=] {keep_frequency = false;}); | ||||||
|   } |   } | ||||||
|   m_specOp=m_config.special_op_id(); |   m_specOp=m_config.special_op_id(); | ||||||
|   on_actionFT8_triggered(); |   on_actionFT8_triggered(); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user