mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-09-03 05:38:01 -04:00
Merge branch 'develop' into qmap
This commit is contained in:
commit
764fcaadcb
@ -493,6 +493,7 @@ set (wsjt_FSRCS
|
|||||||
lib/msk144sim.f90
|
lib/msk144sim.f90
|
||||||
lib/mskrtd.f90
|
lib/mskrtd.f90
|
||||||
lib/nuttal_window.f90
|
lib/nuttal_window.f90
|
||||||
|
lib/decode_msk144.f90
|
||||||
lib/ft4/ft4sim.f90
|
lib/ft4/ft4sim.f90
|
||||||
lib/ft4/ft4sim_mult.f90
|
lib/ft4/ft4sim_mult.f90
|
||||||
lib/ft4/ft4_downsample.f90
|
lib/ft4/ft4_downsample.f90
|
||||||
|
@ -244,7 +244,9 @@ namespace
|
|||||||
|X85|X86|X87|X88|X89|X90|X91
|
|X85|X86|X87|X88|X89|X90|X91
|
||||||
|X92|X93|X94|X95|X96|X97|X98
|
|X92|X93|X94|X95|X96|X97|X98
|
||||||
|X99
|
|X99
|
||||||
|[0-9][0-9][0-9][0-9] # 4-digit numbers
|
|[0][0][0][1-9] # 4-digit numbers
|
||||||
|
|[0][0-9][1-9][0-9] # between 0001
|
||||||
|
|[1-7][0-9][0-9][0-9] # and 7999
|
||||||
)
|
)
|
||||||
)", QRegularExpression::CaseInsensitiveOption | QRegularExpression::ExtendedPatternSyntaxOption};
|
)", QRegularExpression::CaseInsensitiveOption | QRegularExpression::ExtendedPatternSyntaxOption};
|
||||||
|
|
||||||
|
57
NEWS
57
NEWS
@ -11,6 +11,63 @@
|
|||||||
|
|
||||||
Copyright 2001 - 2024 by Joe Taylor, K1JT, and the WSJT Development Team
|
Copyright 2001 - 2024 by Joe Taylor, K1JT, and the WSJT Development Team
|
||||||
|
|
||||||
|
Release: WSJT-X 2.7.0-rc3
|
||||||
|
January 1, 2024
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
WSJT-X 2.7.0 Release Candidate 3 brings some new features, as well as
|
||||||
|
numerous detail improvements and bug fixes, such as:
|
||||||
|
|
||||||
|
- Added a new "Update Hamlib" function. On Windows, it allows the user to
|
||||||
|
update Hamlib directly from the program. The previously used version is
|
||||||
|
backed up, so the user can easily revert a hamlib update.
|
||||||
|
|
||||||
|
- The Hamlib version in use is now displayed (also on Linux and macOS).
|
||||||
|
|
||||||
|
- The FT Roundup Messages protocol has been enhanced. It now allows also
|
||||||
|
the exchange of static 4-digit numbers instead of serial numbers. This
|
||||||
|
extends the usability of the FT RU protocol for other contest types.
|
||||||
|
|
||||||
|
- Improved direct switching between modes. Submode, as well as the status
|
||||||
|
of the "Sh" and "Fast" checkboxes are now saved and restored by mode.
|
||||||
|
|
||||||
|
- Some right-click events were made more intuitive and consistent.
|
||||||
|
- Right-clicking the Q65 button enables Q65 Pileup mode, a left-click
|
||||||
|
brings you back to the normal Q65 mode.
|
||||||
|
- Right-click the JT65 button to switch to JT9 mode.
|
||||||
|
|
||||||
|
- For Q65, all messages for us are now displayed in the right window.
|
||||||
|
|
||||||
|
- Message averaging is now allowed only when VHF features are
|
||||||
|
enabled, and label texts are changed to "Single Period Decodes" and
|
||||||
|
"Average Decodes" only if averaging is enabled.
|
||||||
|
|
||||||
|
- Some improvements to the Hamlib Transceiver code. Behavior is now
|
||||||
|
more stable when Rig Split has been selected.
|
||||||
|
|
||||||
|
- Prevented redundant network communication between WSJT-X and DX Lab
|
||||||
|
Suite Commander.
|
||||||
|
|
||||||
|
- Download of the LotW file now works without OpenSSL libraries.
|
||||||
|
|
||||||
|
- Made the spot counter work for WSPR.
|
||||||
|
|
||||||
|
- Prevented insertion of an individual contest name when in Fox mode.
|
||||||
|
|
||||||
|
- WAE entities are now assigned to the correct DXCC when "Include
|
||||||
|
extra WAE entities" is not selected.
|
||||||
|
|
||||||
|
- Added a utility program 'cablog' which can be used to convert the
|
||||||
|
wsjtx.log file to Cabrillo format for the ARRL EME contest.
|
||||||
|
|
||||||
|
- Minor improvements to the Active Stations window.
|
||||||
|
|
||||||
|
- The Rx/Tx frequency for Echo mode has been fixed at 1500 Hz.
|
||||||
|
|
||||||
|
- Some corrections and updates to the INSTALL instructions for Linux.
|
||||||
|
|
||||||
|
- Updated CTY.DAT file.
|
||||||
|
|
||||||
Release: WSJT-X 2.7.0-rc2
|
Release: WSJT-X 2.7.0-rc2
|
||||||
July 7, 2023
|
July 7, 2023
|
||||||
-------------------------
|
-------------------------
|
||||||
|
@ -11,8 +11,8 @@
|
|||||||
|
|
||||||
Copyright 2001 - 2024 by Joe Taylor, K1JT, and the WSJT Development Team
|
Copyright 2001 - 2024 by Joe Taylor, K1JT, and the WSJT Development Team
|
||||||
|
|
||||||
Release: WSJT-X 2.7.0-rc3
|
Release: WSJT-X 2.7.0-rc3
|
||||||
January 1, 2024
|
January 1, 2024
|
||||||
-------------------------
|
-------------------------
|
||||||
|
|
||||||
WSJT-X 2.7.0 Release Candidate 3 brings some new features, as well as
|
WSJT-X 2.7.0 Release Candidate 3 brings some new features, as well as
|
||||||
@ -68,24 +68,7 @@ numerous detail improvements and bug fixes, such as:
|
|||||||
|
|
||||||
- Updated CTY.DAT file.
|
- Updated CTY.DAT file.
|
||||||
|
|
||||||
|
Release: WSJT-X 2.7.0-rc2
|
||||||
/////// NOT YET USED TEXT MODULES
|
|
||||||
|
|
||||||
QMAP:
|
|
||||||
- Use AlignCenter for Max Age and Max N controls in Active Stations window.
|
|
||||||
- Must define 'offset' as a Fortran integer. Increase NJUNK by 1.
|
|
||||||
- Protect against wacky settings of nfa, nfb, in Q65 mode.
|
|
||||||
|
|
||||||
WSJT-X:
|
|
||||||
- ldpcsim174_91: Add the option to simulate the (174,91) code with noncoherent 8FSK on AWGN and block Rayleigh channels.
|
|
||||||
- protect against invalid argument in pctile().
|
|
||||||
- Change the label texts to "Single Period Decodes" and "Average Decodes" only if averaging is enabled.
|
|
||||||
|
|
||||||
////////
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Release: WSJT-X 2.7.0-rc2
|
|
||||||
July 7, 2023
|
July 7, 2023
|
||||||
-------------------------
|
-------------------------
|
||||||
|
|
||||||
|
57
lib/decode_msk144.f90
Normal file
57
lib/decode_msk144.f90
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
subroutine decode_msk144(audio_samples, params, data_dir)
|
||||||
|
include 'jt9com.f90'
|
||||||
|
|
||||||
|
! constants
|
||||||
|
integer, parameter :: SAMPLING_RATE = 12000
|
||||||
|
integer, parameter :: BLOCK_SIZE = 7168
|
||||||
|
integer, parameter :: STEP_SIZE = BLOCK_SIZE / 2
|
||||||
|
integer, parameter :: CALL_LENGTH = 12
|
||||||
|
|
||||||
|
! aguments
|
||||||
|
integer*2 audio_samples(NMAX)
|
||||||
|
type(params_block) :: params
|
||||||
|
character(len = 500) :: data_dir
|
||||||
|
|
||||||
|
! parameters of mskrtd
|
||||||
|
integer*2 :: buffer(BLOCK_SIZE)
|
||||||
|
real :: tsec
|
||||||
|
logical :: bshmsg = .false. ! enables shorthand messages
|
||||||
|
logical :: btrain = .false. ! turns on training in MSK144 mode
|
||||||
|
real*8 :: pcoeffs(5) = (/ 0.0, 0.0, 0.0, 0.0, 0.0 /); ! phase equalization
|
||||||
|
logical :: bswl = .false.
|
||||||
|
character(len = 80) :: line
|
||||||
|
character(len = CALL_LENGTH) :: mycall
|
||||||
|
character(len = CALL_LENGTH) :: hiscall
|
||||||
|
|
||||||
|
! local variables
|
||||||
|
integer :: sample_count
|
||||||
|
integer :: position
|
||||||
|
integer :: message_count = 0
|
||||||
|
|
||||||
|
|
||||||
|
! decode in 0.3s blocks
|
||||||
|
sample_count = params%ntr * SAMPLING_RATE
|
||||||
|
mycall = transfer(params%mycall, mycall) ! string to char[]
|
||||||
|
hiscall = transfer(params%hiscall, hiscall)
|
||||||
|
|
||||||
|
do position = 1, sample_count - BLOCK_SIZE + 1, STEP_SIZE
|
||||||
|
buffer = audio_samples(position : position + BLOCK_SIZE - 1)
|
||||||
|
tsec = position / REAL(SAMPLING_RATE)
|
||||||
|
|
||||||
|
call mskrtd(buffer, params%nutc, tsec, params%ntol, params%nfqso, params%ndepth, &
|
||||||
|
mycall, hiscall, bshmsg, btrain, pcoeffs, bswl, data_dir, line)
|
||||||
|
|
||||||
|
if (line(1:1) .ne. char(0)) then
|
||||||
|
line = line(1:index(line, char(0))-1)
|
||||||
|
write(*, 1001) line
|
||||||
|
1001 format(a80)
|
||||||
|
message_count = message_count + 1;
|
||||||
|
end if
|
||||||
|
end do
|
||||||
|
|
||||||
|
if (.not. params%ndiskdat) then
|
||||||
|
write(*, 1002) 0, message_count, 0
|
||||||
|
1002 format('<DecodeFinished>', 2i4, i9)
|
||||||
|
end if
|
||||||
|
|
||||||
|
end subroutine decode_msk144
|
14
lib/jt9.f90
14
lib/jt9.f90
@ -27,7 +27,7 @@ program jt9
|
|||||||
logical :: read_files = .true., tx9 = .false., display_help = .false., &
|
logical :: read_files = .true., tx9 = .false., display_help = .false., &
|
||||||
bLowSidelobes = .false., nexp_decode_set = .false., &
|
bLowSidelobes = .false., nexp_decode_set = .false., &
|
||||||
have_ntol = .false.
|
have_ntol = .false.
|
||||||
type (option) :: long_options(32) = [ &
|
type (option) :: long_options(33) = [ &
|
||||||
option ('help', .false., 'h', 'Display this help message', ''), &
|
option ('help', .false., 'h', 'Display this help message', ''), &
|
||||||
option ('shmem',.true.,'s','Use shared memory for sample data','KEY'), &
|
option ('shmem',.true.,'s','Use shared memory for sample data','KEY'), &
|
||||||
option ('tr-period', .true., 'p', 'Tx/Rx period, default SECONDS=60', &
|
option ('tr-period', .true., 'p', 'Tx/Rx period, default SECONDS=60', &
|
||||||
@ -64,6 +64,7 @@ program jt9
|
|||||||
option ('ft8', .false., '8', 'FT8 mode', ''), &
|
option ('ft8', .false., '8', 'FT8 mode', ''), &
|
||||||
option ('jt9', .false., '9', 'JT9 mode', ''), &
|
option ('jt9', .false., '9', 'JT9 mode', ''), &
|
||||||
option ('qra64', .false., 'q', 'QRA64 mode', ''), &
|
option ('qra64', .false., 'q', 'QRA64 mode', ''), &
|
||||||
|
option ('msk144', .false., 'k', 'MSK144 mode', ''), &
|
||||||
option ('QSOprog', .true., 'Q', 'QSO progress (0-5), default PROGRESS=1',&
|
option ('QSOprog', .true., 'Q', 'QSO progress (0-5), default PROGRESS=1',&
|
||||||
'QSOprogress'), &
|
'QSOprogress'), &
|
||||||
option ('sub-mode', .true., 'b', 'Sub mode, default SUBMODE=A', 'A'), &
|
option ('sub-mode', .true., 'b', 'Sub mode, default SUBMODE=A', 'A'), &
|
||||||
@ -91,7 +92,7 @@ program jt9
|
|||||||
TRperiod=60.d0
|
TRperiod=60.d0
|
||||||
|
|
||||||
do
|
do
|
||||||
call getopt('hs:e:a:b:r:m:p:d:f:F:w:t:9876543WYqTL:S:H:c:G:x:g:X:Q:', &
|
call getopt('hs:e:a:b:r:m:p:d:f:F:w:t:9876543WYqkTL:S:H:c:G:x:g:X:Q:', &
|
||||||
long_options,c,optarg,arglen,stat,offset,remain,.true.)
|
long_options,c,optarg,arglen,stat,offset,remain,.true.)
|
||||||
if (stat .ne. 0) then
|
if (stat .ne. 0) then
|
||||||
exit
|
exit
|
||||||
@ -129,7 +130,9 @@ program jt9
|
|||||||
read (optarg(:arglen), *) fhigh
|
read (optarg(:arglen), *) fhigh
|
||||||
case ('q')
|
case ('q')
|
||||||
mode = 164
|
mode = 164
|
||||||
case ('Q')
|
case ('k')
|
||||||
|
mode = 144
|
||||||
|
case ('Q')
|
||||||
read (optarg(:arglen), *) nQSOProg
|
read (optarg(:arglen), *) nQSOProg
|
||||||
case ('3')
|
case ('3')
|
||||||
mode = 66
|
mode = 66
|
||||||
@ -352,7 +355,12 @@ program jt9
|
|||||||
call multimode_decoder(shared_data%ss,id2a, &
|
call multimode_decoder(shared_data%ss,id2a, &
|
||||||
shared_data%params,nfsample)
|
shared_data%params,nfsample)
|
||||||
cycle
|
cycle
|
||||||
|
|
||||||
|
! MSK144
|
||||||
|
else if (mode .eq. 144) then
|
||||||
|
call decode_msk144(shared_data%id2, shared_data%params, data_dir)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
! Normal decoding pass
|
! Normal decoding pass
|
||||||
call multimode_decoder(shared_data%ss,shared_data%id2, &
|
call multimode_decoder(shared_data%ss,shared_data%id2, &
|
||||||
shared_data%params,nfsample)
|
shared_data%params,nfsample)
|
||||||
|
11
lib/jt9a.f90
11
lib/jt9a.f90
@ -70,8 +70,15 @@ subroutine jt9a()
|
|||||||
call multimode_decoder(shared_data%ss,id2a,local_params,12000)
|
call multimode_decoder(shared_data%ss,id2a,local_params,12000)
|
||||||
local_params%nzhsym=50
|
local_params%nzhsym=50
|
||||||
endif
|
endif
|
||||||
! Normal decoding pass
|
|
||||||
call multimode_decoder(shared_data%ss,shared_data%id2,local_params,12000)
|
if(local_params%nmode .eq. 144) then
|
||||||
|
! MSK144
|
||||||
|
call decode_msk144(shared_data%id2, shared_data%params, data_dir)
|
||||||
|
else
|
||||||
|
! Normal decoding pass
|
||||||
|
call multimode_decoder(shared_data%ss,shared_data%id2,local_params,12000)
|
||||||
|
endif
|
||||||
|
|
||||||
call timer('decoder ',1)
|
call timer('decoder ',1)
|
||||||
|
|
||||||
|
|
||||||
|
@ -10177,9 +10177,6 @@ list1Done:
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(m_foxQSO.count()>=5*3 /* could have 5 slots * 3 states ([0-2],4,5) */) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
list2Done:
|
list2Done:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user