mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-31 13:10:19 -04:00 
			
		
		
		
	Merge branch 'release-2.1.0' of bitbucket.org:k1jt/wsjtx into release-2.1.0
This commit is contained in:
		
						commit
						4d1c5b9b70
					
				| @ -52,6 +52,7 @@ set (UG_SRCS | ||||
|   tutorial-example1.adoc | ||||
|   tutorial-example2.adoc | ||||
|   tutorial-example3.adoc | ||||
|   tutorial-example4.adoc | ||||
|   tutorial-main-window.adoc | ||||
|   tutorial-wide-graph-settings.adoc | ||||
|   utilities.adoc | ||||
| @ -77,6 +78,8 @@ set (UG_IMGS | ||||
|   images/FreqCal_Graph.png | ||||
|   images/FreqCal_Results.png | ||||
|   images/freemsg.png | ||||
|   images/ft4_decodes.png | ||||
|   images/ft4_waterfall.png | ||||
|   images/ft8_decodes.png | ||||
|   images/FT8_waterfall.png | ||||
|   images/help-menu.png | ||||
|  | ||||
| @ -116,6 +116,7 @@ d). Edit lines as needed. Keeping them in alphabetic order help see dupes. | ||||
| :QRA64_EME: http://physics.princeton.edu/pulsar/K1JT/QRA64_EME.pdf[QRA64 for microwave EME] | ||||
| :svn: http://subversion.apache.org/packages.html#windows[Subversion] | ||||
| :win32: http://physics.princeton.edu/pulsar/K1JT/wsjtx-{VERSION}-win32.exe[wsjtx-{VERSION}-win32.exe] | ||||
| :win64: http://physics.princeton.edu/pulsar/K1JT/wsjtx-{VERSION}-win64.exe[wsjtx-{VERSION}-win64.exe] | ||||
| :wsjt-devel: https://lists.sourceforge.net/lists/listinfo/wsjt-devel[here] | ||||
| :wsjt_repo: https://sourceforge.net/p/wsjt/wsjt_orig/ci/master/tree/[WSJT Source Repository] | ||||
| :wspr_code: http://physics.princeton.edu/pulsar/K1JT/WSPRcode.exe[WSPRcode.exe] | ||||
|  | ||||
							
								
								
									
										
											BIN
										
									
								
								doc/user_guide/en/images/ft4_decodes.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								doc/user_guide/en/images/ft4_decodes.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 23 KiB | 
							
								
								
									
										
											BIN
										
									
								
								doc/user_guide/en/images/ft4_waterfall.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								doc/user_guide/en/images/ft4_waterfall.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 35 KiB | 
| @ -1,11 +1,12 @@ | ||||
| // Status=review | ||||
| 
 | ||||
| Download and execute the package file {win32}, following these | ||||
| instructions: | ||||
| Download and execute the package file {win32} (WinXP, Vista, Win 7, | ||||
| Win 8, Win10, 32-bit) or {win64} (Vista, Win 7, Win 8, Win10, 64-bit) | ||||
| following these instructions: | ||||
| 
 | ||||
| * Install _WSJT-X_ into its own directory, for example `C:\WSJTX` or ` | ||||
|   C:\WSJT\WSJTX`, rather than the conventional location `C:\Program | ||||
|   Files (x86)\WSJTX`. | ||||
|   Files ...\WSJTX`. | ||||
| 
 | ||||
| * All program files relating to _WSJT-X_ will be stored in the chosen | ||||
|   installation directory and its subdirectories. | ||||
|  | ||||
| @ -7,10 +7,10 @@ K1**JT**,`" while the suffix "`-X`" indicates that _WSJT-X_ started as | ||||
| an extended and experimental branch of the program | ||||
| _WSJT_. | ||||
| 
 | ||||
| _WSJT-X_ Version {VERSION_MAJOR}.{VERSION_MINOR} offers nine different | ||||
| protocols or modes: *FT8*, *JT4*, *JT9*, *JT65*, *QRA64*, *ISCAT*, | ||||
| *MSK144*, *WSPR*, and *Echo*.  The first five are designed for making | ||||
| reliable QSOs under extreme weak-signal conditions. They use nearly | ||||
| _WSJT-X_ Version {VERSION_MAJOR}.{VERSION_MINOR} offers ten different | ||||
| protocols or modes: *FT4*, *FT8*, *JT4*, *JT9*, *JT65*, *QRA64*, | ||||
| *ISCAT*, *MSK144*, *WSPR*, and *Echo*.  The first six are designed for | ||||
| making reliable QSOs under weak-signal conditions. They use nearly | ||||
| identical message structure and source encoding.  JT65 and QRA64 were | ||||
| designed for EME ("`moonbounce`") on the VHF/UHF bands and have also | ||||
| proven very effective for worldwide QRP communication on the HF bands. | ||||
| @ -25,12 +25,17 @@ one-minute timed sequences of alternating transmission and reception, | ||||
| so a minimal QSO takes four to six minutes — two or three | ||||
| transmissions by each station, one sending in odd UTC minutes and the | ||||
| other even.  FT8 is operationally similar but four times faster | ||||
| (15-second T/R sequences) and less sensitive by a few dB.  On the HF | ||||
| bands, world-wide QSOs are possible with any of these modes using | ||||
| power levels of a few watts (or even milliwatts) and compromise | ||||
| antennas.  On VHF bands and higher, QSOs are possible (by EME and | ||||
| other propagation types) at signal levels 10 to 15 dB below those | ||||
| required for CW. | ||||
| (15-second T/R sequences) and less sensitive by a few dB.  FT4 is | ||||
| faster still (7.5 s T/R sequences) and especially well suited for | ||||
| radio contesting.  On the HF bands, world-wide QSOs are possible with | ||||
| any of these modes using power levels of a few watts (or even | ||||
| milliwatts) and compromise antennas.  On VHF bands and higher, QSOs | ||||
| are possible (by EME and other propagation types) at signal levels 10 | ||||
| to 15 dB below those required for CW. | ||||
| 
 | ||||
| Note that even though their T/R sequences are short, FT4 and FT8 are | ||||
| classified as slow modes because their message frames are sent | ||||
| only once per transmission. | ||||
| 
 | ||||
| *ISCAT*, *MSK144*, and optionally submodes *JT9E-H* are "`fast`" | ||||
| protocols designed to take advantage of brief signal enhancements from | ||||
| @ -65,10 +70,10 @@ are available for all three platforms. | ||||
| 
 | ||||
| *Version Numbers:* _WSJT-X_ release numbers have major, minor, and | ||||
| patch numbers separated by periods: for example, _WSJT-X_ Version | ||||
| 1.9.0.  Temporary "`beta`" release candidates are sometimes made in | ||||
| 2.1.0.  Temporary _beta release_ candidates are sometimes made in | ||||
| advance of a new general-availability release, in order to obtain user | ||||
| feedback.  For example, version 1.9.0-rc1, 1.9.0-rc2, etc., would | ||||
| be beta releases leading up to the final release of v1.9.0. | ||||
| feedback.  For example, version 2.1.0-rc1, 2.1.0-rc2, etc., would | ||||
| be beta releases leading up to the final release of v2.1.0. | ||||
| Release candidates should be used _only_ during a short testing | ||||
| period. They carry an implied obligation to provide feedback to the | ||||
| program development group.  Candidate releases should not be used on | ||||
|  | ||||
| @ -1,40 +1,17 @@ | ||||
| === New in Version {VERSION} | ||||
| 
 | ||||
| For quick reference, here's a short list of features and capabilities | ||||
| added to _WSJT-X_ since Version 1.9.1: | ||||
| added to _WSJT-X_ since Version 2.0.1: | ||||
| 
 | ||||
| - New FT8 and MSK144 protocols with 77-bit payloads permit these enhancements: | ||||
| - New FT4 protocol, designed especially for radio contesting | ||||
| 
 | ||||
| * Optimized contest messages for NA VHF, EU VHF, Field Day, RTTY Roundup | ||||
| * T/R sequence length 7.5 s | ||||
| 
 | ||||
| * Full support for "/R" and "/P" calls in relevant contests | ||||
| * Bandwidth 80 Hz | ||||
| 
 | ||||
| * New logging features for contesting | ||||
| 
 | ||||
| * Integration with {n1mm_logger} and {writelog} for contesting | ||||
| 
 | ||||
| * Improved support for compound and nonstandard callsigns | ||||
| 
 | ||||
| * Nearly equal (or better) sensitivity compared to old protocols | ||||
| 
 | ||||
| * Lower false decode rates | ||||
| 
 | ||||
| - Improved color highlighting of received messages | ||||
| 
 | ||||
| - Improved WSPR sensitivity | ||||
| 
 | ||||
| - Expanded and improved UDP messages sent to companion programs | ||||
| 
 | ||||
| - Bug fixes and other minor tweaks to user interface | ||||
| 
 | ||||
| IMPORTANT: Note that for FT8 and MSK144 there is no backward | ||||
| compatibility with WSJT-X 1.9.1 and earlier.  Everyone using these | ||||
| modes should upgrade to WSJT-X 2.0 by January 1, 2019. | ||||
| 
 | ||||
| IMPORTANT: _WSJT-X_ Version 2.0 drops support for Apple Mac OS X 10.9 | ||||
| (Mavericks). It is possible to build from source for this operating | ||||
| system version but the DMG installer package requires 10.10 or later. | ||||
| * Threshold sensitivity -17.5 dB | ||||
| 
 | ||||
| - Improvements to accessibility | ||||
| 
 | ||||
| === Documentation Conventions | ||||
| 
 | ||||
|  | ||||
| @ -12,10 +12,10 @@ Special cases allow other information such as add-on callsign prefixes | ||||
| aim is to compress the most common messages used for minimally valid | ||||
| QSOs into a fixed 72-bit length. | ||||
| 
 | ||||
| The information payload for FT8 and MSK144 contains 77 bits.  The 5 | ||||
| additional bits are used to flag special message types used for FT8 | ||||
| DXpedition Mode, contesting, nonstandard callsigns, and a few other | ||||
| special types. | ||||
| The information payload for FT4, FT8, and MSK144 contains 77 bits. | ||||
| The 5 additional bits are used to flag special message types used for | ||||
| FT8 DXpedition Mode, contesting, nonstandard callsigns, and a few | ||||
| other special types. | ||||
| 
 | ||||
| A standard amateur callsign consists of a one- or two-character | ||||
| prefix, at least one of which must be a letter, followed by a digit | ||||
| @ -67,18 +67,29 @@ _WSJT-X_ modes have continuous phase and constant envelope. | ||||
| [[SLOW_MODES]] | ||||
| === Slow Modes | ||||
| 
 | ||||
| [[FT4PRO]] | ||||
| ==== FT4 | ||||
| 
 | ||||
| Forward error correction (FEC) in FT4 uses a low-density parity check | ||||
| (LDPC) code with 77 information bits, a 14-bit cyclic redundancy check | ||||
| (CRC), and 83 parity bits making a 174-bit codeword.  It is thus | ||||
| called an LDPC (174,91) code.  Synchronization uses four 4×4 Costas | ||||
| arrays, and ramp-up and ramp-down symbols are inserted at the start | ||||
| and end of each transmission.  Modulation is 4-tone frequency-shift | ||||
| keying with Gaussian smoothing of frequency transitions (4-GFSK).  The | ||||
| keying rate is 12000/576 = 20.8333 baud.  Each transmitted symbol | ||||
| conveys two bits, so the total number of channel symbols is 174/2 + 16 | ||||
| + 2 = 105.  The total bandwidth is 4 × 20.8333 = 83.3 Hz. | ||||
| 
 | ||||
| [[FT8PRO]] | ||||
| ==== FT8 | ||||
| 
 | ||||
| Forward error correction (FEC) in FT8 uses a low-density parity check | ||||
| (LDPC) code with 77 information bits, a 14-bit cyclic redundancy check | ||||
| (CRC), and 83 parity bits making a 174-bit codeword.  It is thus | ||||
| called an LDPC (174,91) code.  Synchronization uses 7×7 Costas arrays | ||||
| at the beginning, middle, and end of each transmission.  Modulation is | ||||
| 8-tone frequency-shift keying (8-FSK) at 12000/1920 = 6.25 baud.  Each | ||||
| transmitted symbol carries three bits, so the total number of channel | ||||
| symbols is 174/3 + 21 = 79.  The total occupied bandwidth is 8 × 6.25 | ||||
| = 50 Hz. | ||||
| FT8 uses the same LDPC (174,91) code as FT4.  Modulation is 8-tone | ||||
| frequency-shift keying (8-GFSK) at 12000/1920 = 6.25 baud. | ||||
| Synchronization uses 7×7 Costas arrays at the beginning, middle, and | ||||
| end of each transmission.  Transmitted symbols carry three bits, so | ||||
| the total number of channel symbols is 174/3 + 21 = 79.  The total | ||||
| occupied bandwidth is 8 × 6.25 = 50 Hz. | ||||
| 
 | ||||
| [[JT4PRO]] | ||||
| ==== JT4 | ||||
| @ -227,7 +238,8 @@ which the probability of decoding is 50% or higher. | ||||
| |=============================================================================== | ||||
| |Mode |FEC Type |(n,k) | Q|Modulation type|Keying rate (Baud)|Bandwidth (Hz) | ||||
| |Sync Energy|Tx Duration (s)|S/N Threshold (dB) | ||||
| |FT8  |LDPC, r=1/2|(174,91)| 8| 8-FSK| 6.25 | 50.0 | 0.27| 12.6 | -21 | ||||
| |FT4  |LDPC, r=1/2|(174,91)| 4| 4-GFSK| 20.8333 | 83.3 | 0.15| 5.04 | -17.5 | ||||
| |FT8  |LDPC, r=1/2|(174,91)| 8| 8-GFSK| 6.25 | 50.0 | 0.27| 12.6 | -21 | ||||
| |JT4A |K=32, r=1/2|(206,72)| 2| 4-FSK| 4.375| 17.5 | 0.50| 47.1 | -23 | ||||
| |JT9A |K=32, r=1/2|(206,72)| 8| 9-FSK| 1.736| 15.6 | 0.19| 49.0 | -27 | ||||
| |JT65A |Reed Solomon|(63,12) |64|65-FSK| 2.692| 177.6 | 0.50| 46.8 | -25 | ||||
| @ -246,6 +258,7 @@ comparable to tone spacing. | ||||
| [width="50%",cols="h,3*^",frame=topbot,options="header"] | ||||
| |===================================== | ||||
| |Mode  |Tone Spacing  |BW (Hz)|S/N (dB) | ||||
| |FT4   |20.8333 | 83.3  |-17.5 | ||||
| |FT8   |6.25 |  50.0  |-21 | ||||
| |JT4A  |4.375|  17.5  |-23 | ||||
| |JT4B  |8.75 |  30.6  |-22 | ||||
|  | ||||
							
								
								
									
										51
									
								
								doc/user_guide/en/tutorial-example4.adoc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								doc/user_guide/en/tutorial-example4.adoc
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,51 @@ | ||||
| // Status=review | ||||
| .Main Window: | ||||
| - Select *FT4* on the *Mode* menu. | ||||
| - Double-click on *Erase* to clear both text windows. | ||||
| 
 | ||||
| .Wide Graph Settings: | ||||
| 
 | ||||
| - *Bins/Pixel* = 7, *Start* = 100 Hz, *N Avg* = 1 | ||||
| - Adjust the width of the Wide Graph window so that the upper | ||||
| frequency limit is approximately 4000 Hz. | ||||
| 
 | ||||
| .Open a Wave File: | ||||
| 
 | ||||
| - Select *File | Open* and navigate to | ||||
| +...\save\samples\FT4\000000_000002.wav+.  The waterfall and Band | ||||
| Activity window should look something like the following screen shots. | ||||
| Most of the decoded messages use the *RTTY Roundup* message formats. | ||||
| 
 | ||||
| [[X15]] | ||||
| image::ft4_waterfall.png[align="left",alt="Wide Graph Decode FT4"] | ||||
| 
 | ||||
| image::ft4_decodes.png[align="left"] | ||||
| 
 | ||||
| - Click with the mouse anywhere on the waterfall display. The green Rx | ||||
| frequency marker will jump to your selected frequency, and the Rx | ||||
| frequency control on the main window will be updated accordingly. | ||||
| 
 | ||||
| - Do the same thing with the *Shift* key held down.  Now the red Tx | ||||
| frequency marker and its associated control on the main window will | ||||
| follow your frequency selections. | ||||
| 
 | ||||
| - Do the same thing with the *Ctrl* key held down.  Now the both colored  | ||||
| markers and both spinner controls will follow your selections. | ||||
| 
 | ||||
| - Now double-click on any of the the lines of decoded text in the Band | ||||
| Activity window.  Any line will show similar behavior, setting | ||||
| Rx frequency to that of the selected message and leaving Tx frequency | ||||
| unchanged.  To change both Rx and Tx frequencies, hold *Ctrl* down | ||||
| when double-clicking. | ||||
| 
 | ||||
| TIP: To avoid QRM from competing callers, it is frequently desirable | ||||
| to answer a CQ on a different frequency from that of the CQing | ||||
| station.  The same is true when you tail-end another QSO.  Choose a Tx | ||||
| frequency that appears to be not in use.  You might want to check the | ||||
| box *Hold Tx Freq*. | ||||
| 
 | ||||
| TIP: Keyboard shortcuts *Shift+F11* and *Shift+F12* provide an easy | ||||
| way to move your FT4 Tx frequency down or up in 90 Hz steps. | ||||
| 
 | ||||
| IMPORTANT: When finished with this Tutorial, don't forget to re-enter | ||||
| your own callsign as *My Call* on the *Settings | General* tab. | ||||
| @ -140,6 +140,10 @@ include::tutorial-example2.adoc[] | ||||
| === FT8 | ||||
| include::tutorial-example3.adoc[] | ||||
| 
 | ||||
| [[TUT_EX4]] | ||||
| === FT4 | ||||
| include::tutorial-example4.adoc[] | ||||
| 
 | ||||
| [[MAKE_QSOS]] | ||||
| == Making QSOs | ||||
| include::make-qso.adoc[] | ||||
|  | ||||
| @ -22,15 +22,10 @@ i3.n3 Example message                    Bits           Total  Purpose | ||||
| 2     PA3XYZ/P GM4ABC/P R JO22           28 1 28 1 1 15   74   EU VHF contest | ||||
| 3     TU; W9XYZ K1ABC R 579 MA           1 28 28 1 3 13   74   ARRL RTTY Roundup | ||||
| 4     <WA9XYZ> PJ4/KA1ABC RR73           12 58 1 2 1      74   Nonstandard calls | ||||
| 5     ... tbd | ||||
| 5     TU; W9XYZ K1ABC R-07 FN            1 28 28 1 7 9    74   WWROF contest ? | ||||
| 6     ... tbd | ||||
| 7     ... tbd | ||||
| ---------------------------------------------------------------------------------- | ||||
| In case we need them, later: | ||||
| 
 | ||||
| 5     TU; W9XYZ K1ABC R 579 8 MA         1 28 28 1 3 6 7  74   CQ WW RTTY | ||||
| 6     TU; W9XYZ K1ABC R 579 MA           1 28 28 1 3 13   74   CQ WPX RTTY | ||||
| ---------------------------------------------------------------------------------- | ||||
| NB: three 74-bit message types and two 71-bit message subtypes are still TBD. | ||||
| ---------------------------------------------------------------------------------- | ||||
| 
 | ||||
|  | ||||
| @ -72,7 +72,18 @@ CQ W9XYZ EN37 | ||||
|                                    W9XYZ <YW18FIFA> R-09 | ||||
| YW18FIFA <W9XYZ> RRR | ||||
|                                    <W9XYZ> YW18FIFA 73 | ||||
| 10. Other stuff | ||||
| 
 | ||||
| 10. WWROF FT8/FT4 contest | ||||
| ----------------------------------------------------------- | ||||
| CQ TEST K1ABC FN42 | ||||
|                                    K1ABC W9XYZ -16 EN | ||||
| W9XYZ K1ABC R-07 FN | ||||
|                                    K1ABC W9XYZ RR73 | ||||
|                                    K1ABC G3AAA -11 IO | ||||
| TU; G3AAA K1ABC R-09 FN | ||||
|                                    K1ABC G3AAA RR73 | ||||
| 
 | ||||
| 11. Other stuff | ||||
| ----------------------------------------------------------- | ||||
| TNX BOB 73 GL | ||||
| CQ YW18FIFA | ||||
|  | ||||
| @ -172,6 +172,10 @@ subroutine pack77(msg0,i3,n3,c77) | ||||
|   call pack77_4(nwords,w,i3,n3,c77) | ||||
|   if(i3.ge.0) go to 900 | ||||
| 
 | ||||
| ! Check Type 5 (WWROF contest exchange) | ||||
|   call pack77_5(nwords,w,i3,n3,c77) | ||||
|   if(i3.ge.0) go to 900 | ||||
| 
 | ||||
| ! It defaults to free text | ||||
| 800 i3=0 | ||||
|   n3=0 | ||||
| @ -204,6 +208,7 @@ subroutine unpack77(c77,nrx,msg,unpk77_success) | ||||
|   character*6 cexch,grid6 | ||||
|   character*4 grid4,cserial | ||||
|   character*3 csec(NSEC) | ||||
|   character*2 cfield | ||||
|   character*38 c | ||||
|   integer hashmy10,hashmy12,hashmy22,hashdx10,hashdx12,hashdx22 | ||||
|   logical unpk28_success,unpk77_success | ||||
| @ -491,8 +496,31 @@ subroutine unpack77(c77,nrx,msg,unpk77_success) | ||||
|      else | ||||
|         msg='CQ '//trim(call_2) | ||||
|      endif | ||||
|       | ||||
|   else if(i3.eq.5) then | ||||
| ! 5    TU; W9XYZ K1ABC R-09 FN             1 28 28 1 7 9       74   WWROF contest | ||||
|      read(c77,1041) itu,n28a,n28b,ir,irpt,nexch,i3 | ||||
| 1041 format(b1,2b28.28,b1,b7.7,b9.9,b3.3) | ||||
|      call unpack28(n28a,call_1,unpk28_success) | ||||
|      if(.not.unpk28_success) unpk77_success=.false. | ||||
|      call unpack28(n28b,call_2,unpk28_success) | ||||
|      if(.not.unpk28_success) unpk77_success=.false. | ||||
|      write(crpt,'(i3.2)') irpt-35 | ||||
|      if(crpt(1:1).eq.' ') crpt(1:1)='+' | ||||
|      n1=nexch/18 | ||||
|      n2=nexch - 18*n1 | ||||
|      cfield(1:1)=char(ichar('A')+n1) | ||||
|      cfield(2:2)=char(ichar('A')+n2) | ||||
|      if(itu.eq.0 .and. ir.eq.0) msg=trim(call_1)//' '//trim(call_2)//             & | ||||
|           ' '//crpt//' '//cfield | ||||
|      if(itu.eq.1 .and. ir.eq.0) msg='TU; '//trim(call_1)//' '//trim(call_2)//     & | ||||
|           ' '//crpt//' '//cfield | ||||
|      if(itu.eq.0 .and. ir.eq.1) msg=trim(call_1)//' '//trim(call_2)//             & | ||||
|           ' R'//crpt//' '//cfield | ||||
|      if(itu.eq.1 .and. ir.eq.1) msg='TU; '//trim(call_1)//' '//trim(call_2)//     & | ||||
|           ' R'//crpt//' '//cfield | ||||
|   endif | ||||
|   if(msg(1:4).eq.'CQ <') unpk77_success=.false. | ||||
| !  if(msg(1:4).eq.'CQ <') unpk77_success=.false. | ||||
| 
 | ||||
|   return | ||||
| end subroutine unpack77 | ||||
| @ -1040,12 +1068,11 @@ subroutine pack77_3(nwords,w,i3,n3,c77) | ||||
|      call chkcall(w(i1+1),bcall_2,ok2) | ||||
|      if(.not.ok1 .or. .not.ok2) go to 900 | ||||
|      crpt=w(nwords-1)(1:3) | ||||
|      if(index(crpt,'-').ge.1 .or. index(crpt,'+').ge.1) go to 900 | ||||
|      if(crpt(1:1).eq.'5' .and. crpt(2:2).ge.'2' .and. crpt(2:2).le.'9' .and.    & | ||||
|           crpt(3:3).eq.'9') then | ||||
|         nserial=0 | ||||
|         read(w(nwords),*,err=1) nserial | ||||
| !1       i3=3 | ||||
| !        n3=0 | ||||
|      endif | ||||
| 1    mult='   ' | ||||
|      imult=-1 | ||||
| @ -1150,6 +1177,60 @@ subroutine pack77_4(nwords,w,i3,n3,c77) | ||||
| 900 return | ||||
| end subroutine pack77_4 | ||||
| 
 | ||||
| subroutine pack77_5(nwords,w,i3,n3,c77) | ||||
| ! Check Type 5 (WWROF contest exchange) | ||||
| 
 | ||||
|   character*13 w(19) | ||||
|   character*77 c77 | ||||
|   character*6 bcall_1,bcall_2 | ||||
|   character*3 mult | ||||
|   character crpt*4 | ||||
|   character c1*1,c2*2 | ||||
|   logical ok1,ok2 | ||||
| 
 | ||||
|   if(nwords.eq.4 .or. nwords.eq.5 .or. nwords.eq.6) then | ||||
|      i1=1 | ||||
|      if(trim(w(1)).eq.'TU;') i1=2 | ||||
|      call chkcall(w(i1),bcall_1,ok1) | ||||
|      call chkcall(w(i1+1),bcall_2,ok2) | ||||
|      if(.not.ok1 .or. .not.ok2) go to 900 | ||||
|      crpt=w(nwords-1)(1:4) | ||||
|      if(index(crpt,'-').lt.1 .and. index(crpt,'+').lt.1) go to 900 | ||||
| 
 | ||||
|      c1=crpt(1:1) | ||||
|      c2=crpt(1:2) | ||||
|      irpt=-1 | ||||
|      if(c1.eq.'+' .or. c1.eq.'-') then | ||||
|         ir=0 | ||||
|         read(w(nwords-1),*,err=900) irpt | ||||
|         irpt=irpt+35 | ||||
|      else if(c2.eq.'R+' .or. c2.eq.'R-') then | ||||
|         ir=1 | ||||
|         read(w(nwords-1)(2:),*) irpt | ||||
|         irpt=irpt+35 | ||||
|      endif | ||||
|      if(irpt.eq.-1 .or. len(trim(w(nwords))).ne.2) go to 900 | ||||
|      c2=w(nwords)(1:2) | ||||
|      n1=ichar(c2(1:1)) - ichar('A') | ||||
|      n2=ichar(c2(2:2)) - ichar('A') | ||||
|      if(n1.lt.0 .or. n1.gt.17) go to 900 | ||||
|      if(n2.lt.0 .or. n2.gt.17) go to 900 | ||||
|      nexch=18*n1 + n2 | ||||
|      i3=5 | ||||
|      n3=0 | ||||
|      itu=0 | ||||
|      if(trim(w(1)).eq.'TU;') itu=1 | ||||
|      call pack28(w(1+itu),n28a) | ||||
|      call pack28(w(2+itu),n28b) | ||||
| ! 5    TU; W9XYZ K1ABC R-09 FN             1 28 28 1 7 9       74   WWROF contest | ||||
|      write(c77,1010) itu,n28a,n28b,ir,irpt,nexch,i3 | ||||
| 1010 format(b1,2b28.28,b1,b7.7,b9.9,b3.3) | ||||
| 
 | ||||
|   end if | ||||
|    | ||||
| 900 return | ||||
| end subroutine pack77_5 | ||||
| 
 | ||||
| subroutine packtext77(c13,c71) | ||||
| 
 | ||||
|   character*13 c13,w | ||||
|  | ||||
| @ -13,11 +13,11 @@ | ||||
|   <tr><td><b>F7       </b></td><td>Display Message Averaging window</td></tr> | ||||
|   <tr><td><b>F11      </b></td><td>Move Rx frequency down 1 Hz</td></tr> | ||||
|   <tr><td><b>Ctrl+F11 </b></td><td>Move identical Rx and Tx frequencies down 1 Hz</td></tr> | ||||
|   <tr><td><b>Shift+F11 </b></td><td>Move Tx frequency down 60 Hz</td></tr> | ||||
|   <tr><td><b>Shift+F11 </b></td><td>Move Tx frequency down 60 Hz (FT8) or 90 Hz (FT4)</td></tr> | ||||
|   <tr><td><b>Ctrl+Shift+F11 </b></td><td>Move dial frequency down 2000 Hz</td></tr> | ||||
|   <tr><td><b>F12      </b></td><td>Move Rx frequency up 1 Hz</td></tr> | ||||
|   <tr><td><b>Ctrl+F12 </b></td><td>Move identical Rx and Tx frequencies up 1 Hz</td></tr> | ||||
|   <tr><td><b>Shift+F12 </b></td><td>Move Tx frequency up 60 Hz</td></tr> | ||||
|   <tr><td><b>Shift+F12 </b></td><td>Move Tx frequency up 60 Hz (FT8) or 90 Hz (FT4)</td></tr> | ||||
|   <tr><td><b>Ctrl+Shift+F12 </b></td><td>Move dial frequency up 2000 Hz</td></tr> | ||||
|   <tr><td><b>Alt+1-6  </b></td><td>Set now transmission to this number on Tab 1</td></tr> | ||||
|   <tr><td><b>Ctl+1-6  </b></td><td>Set next transmission to this number on Tab 1</td></tr> | ||||
|  | ||||
| @ -1991,7 +1991,7 @@ void MainWindow::keyPressEvent (QKeyEvent * e) | ||||
|         if(e->modifiers() & Qt::ControlModifier) n+=100; | ||||
|         if(e->modifiers() & Qt::ShiftModifier) { | ||||
|           int offset=60; | ||||
|           if(m_mode=="FT4") offset=100; | ||||
|           if(m_mode=="FT4") offset=90; | ||||
|           ui->TxFreqSpinBox->setValue(ui->TxFreqSpinBox->value()-offset); | ||||
|         } else{ | ||||
|           bumpFqso(n); | ||||
| @ -2007,7 +2007,7 @@ void MainWindow::keyPressEvent (QKeyEvent * e) | ||||
|         if(e->modifiers() & Qt::ControlModifier) n+=100; | ||||
|         if(e->modifiers() & Qt::ShiftModifier) { | ||||
|           int offset=60; | ||||
|           if(m_mode=="FT4") offset=100; | ||||
|           if(m_mode=="FT4") offset=90; | ||||
|           ui->TxFreqSpinBox->setValue(ui->TxFreqSpinBox->value()+offset); | ||||
|         } else { | ||||
|           bumpFqso(n); | ||||
| @ -5559,6 +5559,7 @@ void MainWindow::acceptQSO (QDateTime const& QSO_date_off, QString const& call, | ||||
|     } | ||||
| 
 | ||||
|   if(m_config.clear_DX () and SpecOp::HOUND != m_config.special_op_id()) clearDX (); | ||||
|   auto_tx_mode (false); | ||||
|   m_dateTimeQSOOn = QDateTime {}; | ||||
|   auto special_op = m_config.special_op_id (); | ||||
|   if (SpecOp::NONE < special_op && special_op < SpecOp::FOX && | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user