On 17/08/2014 05:09, Michael Black wrote: Hi Mike, > How do you do a "make clean"? I am using the jtsdk-qt environment. > Do you just remove the wsjtx directory completely? Using CMake to invoke the build process, the normal way is to add '--clean-first' to the 'cmake --build <build-directory> --target <target-configuration> ...' command.
If CMake generates Unix style makefiles (which JTSDK-QT does on Windows as it uses the 'cmake -G "MinGW Makefiles" ...' generator option) you can also run 'make clean' in the build tree also. In this case with MinGW the command would be 'mingw32-make clean', this would require a correctly set up environment which may take some work. You can also remove the build tree for a build from scratch, this would require rerunning the CMake configure and generate step again. I believe JTSDK-QT might do this by default as I believe it is designed more as build for test tool than a build-test-edit-build-edit-test... cycle developer tool. I am less certain on this and perhaps Greg KI7MT can chip in with how it might be possible to use JTSDK-QT in a more conventional incremental developer cycle. Hope this helps & 73 Bill G4WJS. > > > -----Original Message----- > From: Bill Somerville [mailto:g4...@classdesign.com] > Sent: Saturday, August 16, 2014 5:13 PM > To: wsjt-devel@lists.sourceforge.net > Subject: Re: [wsjt-devel] Bug in HRD TCP > > On 16/08/2014 22:59, Michael Black wrote: > Hi Mike, >> It appears to me that the Omni VII does not allow you to specifically >> select Mode B from the panel. > Looking at the Omni VII programming manual it seems that SPLIT is always TX > on Sub VFO so selecting VFO is not required. >> But the programming docs do show both MODE and Split State available. >> Maybe HRD isn't implementing this correctly since it's not return the >> commands in the drop-down list? > Indeed the SPLIT state set and query is missing in HRD and that is going to > be quite limiting. > > I need to enhance that HRDTransceiver class and its clients to allow for > rigs that have no split control rather than just fall over as it has done > for you. That is a larger task that I cannot take on right now but will look > at in a week or so. >> I can contact them and report the problem. > OK but I doubt there will be any fast response. > > If you are going to ask them, then having a PTT button would also be helpful > as that seems to be missing too. >> This is from the Omni VII programming manual: >> Set/Get MODE >> *M VFOA VFOB<CR> VFOA/B=ASCII '0' .. '6' >> ?M <CR> M VFOA VFOB <CR> >> Set/Get Split State >> *N <d0> <CR> Range = 0..1 >> ?N N <d0> <CR> >> > 73 > Bill > G4WJS. >> -----Original Message----- >> From: Bill Somerville [mailto:g4...@classdesign.com] >> Sent: Saturday, August 16, 2014 4:43 PM >> To: wsjt-devel@lists.sourceforge.net >> Subject: Re: [wsjt-devel] Bug in HRD TCP >> >> On 16/08/2014 22:28, Michael Black wrote: >> Hii Mike, >>> Looks like I got a trace log after the segfault anyways. >> OK, the seg fault is probably as a result of a defect which is a >> consequence of not coping well with the following: >> >> It doesn't look like HRD has a way of selecting VFO A or VFO B nor any >> way of selecting split mode on the Omni VII. >> >> Is it possible to select the current VFO or to select split mode from >> the HRD UI fro that rig? >>> Sat Aug 16 21:15:11 2014 GMT(D:\JTSDK-QT\src\wsjtx\main.cpp:115)Debug: >>> "WSJT-X v1.4.0 r4231-dirty by K1JT - Program startup" >>> Sat Aug 16 21:15:11 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\Configuration.cpp:456)Debug: >>> Configuration::transceiver_online: open_if_closed: true >>> Transceiver::TransceiverState(online: no Frequency {0Hz, 0Hz} UNK; SPLIT: >>> unknown; PTT: off) >>> Sat Aug 16 21:15:11 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HamlibTransceiver.cpp:262)Debug: >>> HamlibTransceiver::do_start rig: "Kenwood TS-2000" >>> Sat Aug 16 21:15:11 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HamlibTransceiver.cpp:403)Debug: >>> HamlibTransceiver::init_rig rig_get_vfo = 0x1 Sat Aug 16 21:15:11 >>> 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HamlibTransceiver.cpp:413)Debug: >>> HamlibTransceiver::init_rig rig_get_mode = 4 bw = 2200 Sat Aug 16 >>> 21:15:12 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HamlibTransceiver.cpp:423)Debug: >>> HamlibTransceiver::init_rig exit Transceiver::TransceiverState(online: >>> no Frequency {7076000Hz, 18109000Hz} USB; SPLIT: off; PTT: off) >>> reversed = false Sat Aug 16 21:15:15 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\Configuration.cpp:1889)Debug: >>> Configuration::handle_transceiver_update: Transceiver State: >>> Transceiver::TransceiverState(online: yes Frequency {7076000Hz, >>> 18109000Hz} USB; SPLIT: off; PTT: off) Sat Aug 16 21:15:37 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HamlibTransceiver.cpp:736)Debug: >>> HamlibTransceiver::do_ptt: false Transceiver::TransceiverState(online: >>> yes Frequency {7076000Hz, 18109000Hz} USB; SPLIT: off; PTT: off) >>> reversed = false Sat Aug 16 21:15:37 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HamlibTransceiver.cpp:279)Debug: >>> HamlibTransceiver::do_stop: state: >>> Transceiver::TransceiverState(online: yes Frequency {7076000Hz, >>> 18109000Hz} USB; SPLIT: off; PTT: off) reversed = false Sat Aug 16 >>> 21:15:37 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:104)Debug: >>> HRDTransceiver::start >>> Sat Aug 16 21:15:37 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HamlibTransceiver.cpp:262)Debug: >>> HamlibTransceiver::do_start rig: "Hamlib Dummy" >>> Sat Aug 16 21:15:37 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HamlibTransceiver.cpp:423)Debug: >>> HamlibTransceiver::init_rig exit Transceiver::TransceiverState(online: >>> no Frequency {0Hz, 0Hz} UNK; SPLIT: unknown; PTT: off) reversed = >>> false Sat Aug 16 21:15:37 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:730)Debug: >>> HRDTransceiver::send_command: reply byte count: 28 Sat Aug 16 >>> 21:15:37 >>> 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:757)Debug: >>> HRDTransceiver::send_command( "get context" ): -> "619" >>> Sat Aug 16 21:15:37 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:730)Debug: >>> HRDTransceiver::send_command: reply byte count: 54 Sat Aug 16 >>> 21:15:37 >>> 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:757)Debug: >>> HRDTransceiver::send_command( "get id" ): -> "Ham Radio Deluxe" >>> Sat Aug 16 21:15:37 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:158)Debug: "Ham Radio > Deluxe" >>> Sat Aug 16 21:15:37 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:730)Debug: >>> HRDTransceiver::send_command: reply byte count: 52 Sat Aug 16 >>> 21:15:37 >>> 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:757)Debug: >>> HRDTransceiver::send_command( "get version" ): -> "v6.2.6.285 b285" >>> Sat Aug 16 21:15:37 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:159)Debug: "v6.2.6.285 b285" >>> Sat Aug 16 21:15:37 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:730)Debug: >>> HRDTransceiver::send_command: reply byte count: 68 Sat Aug 16 >>> 21:15:37 >>> 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:757)Debug: >>> HRDTransceiver::send_command( "get radios" ): -> "619:TT-OMNI VII > (Radio)" >>> Sat Aug 16 21:15:37 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:179)Debug: radios: >>> Sat Aug 16 21:15:37 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:182)Debug: [ 619 ] >>> "TT-OMNI VII (Radio)" >>> Sat Aug 16 21:15:37 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:730)Debug: >>> HRDTransceiver::send_command: reply byte count: 60 Sat Aug 16 >>> 21:15:37 >>> 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:757)Debug: >>> HRDTransceiver::send_command( "get radio" ): -> "TT-OMNI VII (Radio)" >>> Sat Aug 16 21:15:37 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:730)Debug: >>> HRDTransceiver::send_command: reply byte count: 60 Sat Aug 16 >>> 21:15:37 >>> 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:757)Debug: >>> HRDTransceiver::send_command( "get radio" ): -> "TT-OMNI VII (Radio)" >>> Sat Aug 16 21:15:37 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:730)Debug: >>> HRDTransceiver::send_command: reply byte count: 24 Sat Aug 16 >>> 21:15:37 >>> 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:757)Debug: >>> HRDTransceiver::send_command( "get vfo-count" ): -> "2" >>> Sat Aug 16 21:15:37 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:198)Debug: vfo count: 2 >>> Sat Aug 16 21:15:37 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:730)Debug: >>> HRDTransceiver::send_command: reply byte count: 60 Sat Aug 16 >>> 21:15:37 >>> 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:757)Debug: >>> HRDTransceiver::send_command( "get radio" ): -> "TT-OMNI VII (Radio)" >>> Sat Aug 16 21:15:37 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:730)Debug: >>> HRDTransceiver::send_command: reply byte count: 114 Sat Aug 16 >>> 21:15:37 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:757)Debug: >>> HRDTransceiver::send_command( "get buttons" ): -> >>> "ATT,Slow,Medm,Fast,Notch,NR,A <> B,A = B,B = A" >>> Sat Aug 16 21:15:37 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:204)Debug: HRD Buttons: >>> ("ATT", "Slow", "Medm", "Fast", "Notch", "NR", "A~<>~B", "A~=~B", >>> "B~=~A") Sat Aug 16 21:15:37 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:730)Debug: >>> HRDTransceiver::send_command: reply byte count: 60 Sat Aug 16 >>> 21:15:37 >>> 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:757)Debug: >>> HRDTransceiver::send_command( "get radio" ): -> "TT-OMNI VII (Radio)" >>> Sat Aug 16 21:15:37 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:730)Debug: >>> HRDTransceiver::send_command: reply byte count: 74 Sat Aug 16 >>> 21:15:37 >>> 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:757)Debug: >>> HRDTransceiver::send_command( "get dropdowns" ): -> "Mode A,Mode >>> B,Wide,Med,Nar" >>> Sat Aug 16 21:15:37 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:730)Debug: >>> HRDTransceiver::send_command: reply byte count: 60 Sat Aug 16 >>> 21:15:37 >>> 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:757)Debug: >>> HRDTransceiver::send_command( "get radio" ): -> "TT-OMNI VII (Radio)" >>> Sat Aug 16 21:15:37 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:730)Debug: >>> HRDTransceiver::send_command: reply byte count: 54 Sat Aug 16 >>> 21:15:37 >>> 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:757)Debug: >>> HRDTransceiver::send_command( "get dropdown-list {Mode A}" ): -> >>> "AM,USB,LSB,CW,FM" >>> Sat Aug 16 21:15:37 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:730)Debug: >>> HRDTransceiver::send_command: reply byte count: 60 Sat Aug 16 >>> 21:15:37 >>> 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:757)Debug: >>> HRDTransceiver::send_command( "get radio" ): -> "TT-OMNI VII (Radio)" >>> Sat Aug 16 21:15:37 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:730)Debug: >>> HRDTransceiver::send_command: reply byte count: 54 Sat Aug 16 >>> 21:15:37 >>> 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:757)Debug: >>> HRDTransceiver::send_command( "get dropdown-list {Mode B}" ): -> >>> "AM,USB,LSB,CW,FM" >>> Sat Aug 16 21:15:37 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:730)Debug: >>> HRDTransceiver::send_command: reply byte count: 60 Sat Aug 16 >>> 21:15:37 >>> 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:757)Debug: >>> HRDTransceiver::send_command( "get radio" ): -> "TT-OMNI VII (Radio)" >>> Sat Aug 16 21:15:37 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:730)Debug: >>> HRDTransceiver::send_command: reply byte count: 212 Sat Aug 16 >>> 21:15:37 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:757)Debug: >>> HRDTransceiver::send_command( "get dropdown-list {Wide}" ): -> "8000 >>> Hz,6000 >>> Hz,5700 Hz,5400 Hz,5100 Hz,4800 Hz,4500 Hz,4200 Hz,3900 Hz,3600 >>> Hz,3300 >>> Hz,3000 Hz" >>> Sat Aug 16 21:15:37 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:730)Debug: >>> HRDTransceiver::send_command: reply byte count: 60 Sat Aug 16 >>> 21:15:37 >>> 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:757)Debug: >>> HRDTransceiver::send_command( "get radio" ): -> "TT-OMNI VII (Radio)" >>> Sat Aug 16 21:15:37 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:730)Debug: >>> HRDTransceiver::send_command: reply byte count: 212 Sat Aug 16 >>> 21:15:37 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:757)Debug: >>> HRDTransceiver::send_command( "get dropdown-list {Med}" ): -> "2850 >>> Hz,2700 >>> Hz,2550 Hz,2400 Hz,2250 Hz,2100 Hz,1950 Hz,1800 Hz,1650 Hz,1500 >>> Hz,1350 >>> Hz,1200 Hz" >>> Sat Aug 16 21:15:37 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:730)Debug: >>> HRDTransceiver::send_command: reply byte count: 60 Sat Aug 16 >>> 21:15:37 >>> 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:757)Debug: >>> HRDTransceiver::send_command( "get radio" ): -> "TT-OMNI VII (Radio)" >>> Sat Aug 16 21:15:37 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:730)Debug: >>> HRDTransceiver::send_command: reply byte count: 162 Sat Aug 16 >>> 21:15:37 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:757)Debug: >>> HRDTransceiver::send_command( "get dropdown-list {Nar}" ): -> "1050 >>> Hz,900 >>> Hz,750 Hz,675 Hz,600 Hz,525 Hz,450 Hz,375 Hz,330 Hz,300 Hz" >>> Sat Aug 16 21:15:37 2014 >>> GMT(D:\JTSDK-QT\src\wsjtx\HRDTransceiver.cpp:214)Debug: HRD Dropdowns: >>> QMap(("Med", ("2850 Hz", "2700 Hz", "2550 Hz", "2400 Hz", "2250 Hz", >>> "2100 Hz", "1950 Hz", "1800 Hz", "1650 Hz", "1500 Hz", "1350 Hz", >>> "1200 Hz") ) ( "Mode A" , ("AM", "USB", "LSB", "CW", "FM") ) ( "Mode >>> B" , ("AM", "USB", "LSB", "CW", "FM") ) ( "Nar" , ("1050 Hz", "900 >>> Hz", "750 Hz", "675 Hz", >>> "600 Hz", "525 Hz", "450 Hz", "375 Hz", "330 Hz", "300 Hz") ) ( "Wide" >>> , >>> ("8000 Hz", "6000 Hz", "5700 Hz", "5400 Hz", "5100 Hz", "4800 Hz", >>> "4500 Hz", "4200 Hz", "3900 Hz", "3600 Hz", "3300 Hz", "3000 Hz") ) ) >> 73 >> Bill >> G4WJS. >>> -----Original Message----- >>> From: Bill Somerville [mailto:g4...@classdesign.com] >>> Sent: Saturday, August 16, 2014 1:50 PM >>> To: wsjt-devel@lists.sourceforge.net >>> Subject: Re: [wsjt-devel] Bug in HRD TCP >>> >>> On 16/08/2014 19:00, Michael Black wrote: >>> Hi Michael, >>>> Using WSJT-X 1.40 as of 7/30/14 >>>> >>>> Bug: >>>> HRD cat control doesn't not work over TCP/IP to port 7809 on HRD >>>> 6.2.7.285 (also on previous release that I had) I assume I'm setting >>>> it up correctly with 127.0.0.1:7809 and also tried with the setting >>>> empty. >>>> I get "Ham Radio Deluxe didn't respond as expected". >>>> I snooped the network traffic and it does appear to be getting the >>> "correct" >>>> response >>>> The problem seems to occur in here such that the "get dropdown" is >>>> not matching what it expects (I added some #'s to the error messages >>>> so I could tell where it was bombing). >>> The problem with the HRD TCP/IP interface is that the commands are >>> almost totally rig dependent, HRD makes no real attempt to abstract >>> the concept of controlling a rig, it just provides a way of twiddling >>> the on screen controls in HRD which themselves are rig dependent. >>> >>> You didn't say what rig you are using. >>> >>> There is extensive diagnostics already built in, you need to make a >>> build with the following CMake options on: >>> >>> WSJT_QDEBUG_TO_FILE >>> WSJT_QDEBUG_IN_RELEASE >>> WSJT_TRACE_CAT >>> >>> then run that version up to the failure and send the file >>> wsjtx_trace.log (in the directory of the executable) to me for analysis. >>> >>> It should only take a moment for me to add the fix as the HRD >>> interface code is designed to add new rig fixes very quickly. >>> >>> If you can get the file to me before early tomorrow morning UK time I >>> can have a go at a quick fix, otherwise I am off line for a week or >>> so from tomorrow. >>> >>>> int HRDTransceiver::get_dropdown (int dd, bool no_debug) { >>>> auto dd_name = dropdown_names_.value (dd); >>>> auto reply = send_command ("get dropdown-text {" + dd_name + >>>> "}", no_debug); >>>> auto colon_index = reply.indexOf (':'); >>>> >>>> if (colon_index < 0) >>>> { >>>> >>>> #if WSJT_TRACE_CAT >>>> qDebug () << "HRDTransceiver::get_dropdown bad response"; >>>> #endif >>>> >>>> throw error {tr ("Ham Radio Deluxe didn't respond as >>>> expected#1\n"+reply)}; >>>> } >>>> >>>> Q_ASSERT (reply.left (colon_index).trimmed () == dd_name); >>>> return lookup_dropdown_selection (dd, reply.mid (colon_index + >>> 1).trimmed >>>> ()); >>>> } >>>> >>>> I am able to use HRD over 3rd party serial port just fine with >>>> Kenwood >>>> TS-2000 setting. >>>> >>>> >>>> Mike W9MDB >>> 73 >>> Bill >>> G4WJS. >>> >>> --------------------------------------------------------------------- >>> - >>> ------ >>> -- >>> _______________________________________________ >>> wsjt-devel mailing list >>> wsjt-devel@lists.sourceforge.net >>> https://lists.sourceforge.net/lists/listinfo/wsjt-devel >>> >>> >>> --------------------------------------------------------------------- >>> - >>> -------- _______________________________________________ >>> wsjt-devel mailing list >>> wsjt-devel@lists.sourceforge.net >>> https://lists.sourceforge.net/lists/listinfo/wsjt-devel >> ---------------------------------------------------------------------- >> ------ >> -- >> _______________________________________________ >> wsjt-devel mailing list >> wsjt-devel@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/wsjt-devel >> >> >> ---------------------------------------------------------------------- >> -------- _______________________________________________ >> wsjt-devel mailing list >> wsjt-devel@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/wsjt-devel > > ---------------------------------------------------------------------------- > -- > _______________________________________________ > wsjt-devel mailing list > wsjt-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wsjt-devel > > > ------------------------------------------------------------------------------ > _______________________________________________ > wsjt-devel mailing list > wsjt-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wsjt-devel ------------------------------------------------------------------------------ _______________________________________________ wsjt-devel mailing list wsjt-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wsjt-devel