I just pushed a commit that has a new dummy device without set_vfo or get_vfo.
I was able to patch it to work with this situation so this should apply to any 
older Icom rigs and Yaesu rigs that don't have set_vfo capability and/or 
get_vfo capability.
I'm still waiting for my tester to get a current compile but he's having 
problems and will have to respond tomorrow.
Bill...if you compile this into WSJT-X and choose the new dummy device it 
should work and trigger the ENAVAIL for set_vfo and get_vfo.
Mike W9MDB

 

    On Wednesday, June 3, 2020, 07:34:36 AM CDT, Bill Somerville 
<[email protected]> wrote:  
 
  Hi Mike, 
  thanks for chasing this down. I have some confusion whether there are two 
issues, one with direct rig control and another when using rigctld. I would be 
good to test both, let me know if a test version of WSJT-X is needed with your 
patch for any platform required? Although in this case I think just using an 
'f' command with rigctl will suffice.
  
  73
 Bill
 G4WJS. 
  On 03/06/2020 13:22, Black Michael via wsjt-devel wrote:
  
   I've got a patched version that I sent to one of the testers.... 
  
   
    
  
      On Wednesday, June 3, 2020, 06:26:20 AM CDT, Bill Somerville 
<[email protected]> wrote:  
  
     Mike, 
  I believe it is quite reasonable to implement rig_get_vfo for the FT-891, 
FT991, and similar. In this case it may be that a implementation that always 
returns VFO A is correct as I don't believe these rigs use VFO B for anything 
other than SPLIT Tx transmit frequency. That aside, what is important here is 
that we have a regression that needs a solution. The simple fact is that every 
rig (except for a couple of ancient ones with one-way CAT control) have the 
ability to query the current frequency without specifying a VFO. The current 
Hamlib seems not to reflect that reality for the rigs in question and that 
needs to be fixed. 
  Getting to detail, a rig_get_vfo(RIG_VFO_CURR) on these rigs need do no more 
than issue an IF; command and return the VFO frequency in the reply. That 
doesn't seem difficult to me! This is no different than the solution for the 
Icom rigs you bring up, in that an 0x03 query command has a similar function, 
i.e. return the frequency of the current VFO.
  
  73
 Bill
 G4WJS. 
   On 03/06/2020 05:20, Black Michael via wsjt-devel wrote:
  
   The FT-991 is one that doesn't have the ability to query which VFO is active 
and doesn't have the ability to query "current VFO" either. 
  Since we allow currVFO to pass through to the Icoms it's also now passing 
through to all rigs.   
  So it seems the only choice here would be to set the current VFO when it's 
not already set and set it to VFOA or Main as appropriate for non-Icom rigs. 
  I think we can use the get_vfo function absence to determine when to do this. 
  
  Out of 37 Yaesu rigs only 25 have get_vfo. Of course no Icom rigs have this 
capability but they do understand currVFO concept. And 4 Kenwood rigs don't 
have get_vfo 
  
   
    
  
      On Tuesday, June 2, 2020, 11:01:04 PM CDT, Bill Somerville 
<[email protected]> wrote:  
  
     Mike, 
  OK, WSJT-X checks for both of those return codes when it makes its first 
attempt to get the current VFO. So Hamlib must not lie about that capability 
and return a success status, otherwise WSJT-X continue on the basis that 
rig_get_vfo() works for the current rig. 
  Is this error because WSJT-X calls rig_get_vfo(), because I still don't 
understand why the error being reported by WSJT-X as coming from Hamlib is 
"Invalid parameter", while trying to get the current frequency. That sounds 
like an unrelated issue within Hamlib. 
  The first few Hamlib API calls WSJT-X makes when Hamlib reports that the 
current rig cannot respond to rig_get_vfo(), but can be set to SPLIT mode, are: 
  rig_init()
 rig_open()
 rig_get_vfo()  //  allows -RIG_ENIMPL and -RIG_EINVAL error statuses
 rig_get_freq(RIG_VFO_CURR) 
  I believe it is the last of those that is failing with -RIG_EINVAL, that 
shouldn't happen as it must be possible to read the current frequency of any 
rig. 
  This must be collateral damage within Hamlib from the last minute fixes to 
sort out similar issues with some Icom rigs.  Nothing relevant has changed in 
the Hamlib interface code in WSJT-X since v2.2.0 RC3, yet these rigs (FT-891 & 
FT-991) were OK then and not now.
  
  73
 Bill
 G4WJS. 
   On 03/06/2020 04:28, Black Michael via wsjt-devel wrote:
  
   Don't know for sure...but it's been that way since version 3.3 
  As the error codes say in rig.h 
        RIG_ENIMPL,     /*!< 4 function not implemented, but will be */ 
        RIG_ENAVAIL,    /*!< 11 Function not available */ 
   
   
    
  
      On Tuesday, June 2, 2020, 05:35:42 PM CDT, Bill Somerville 
<[email protected]> wrote:  
  
     Mike, 
  don't do that, the whole point of that query is to find out if the rig can be 
queried for the current VFO, the result determines how the rig is handled via 
the Hamlib API. Hamlib should return "not implemented", why is an "invalid 
parameter" error being returned?
  
  73
 Bill
 G4WJS. 
   On 02/06/2020 23:21, Black Michael via wsjt-devel wrote:
  
   So WSJT_X is asking "v" when the rig has no get_vfo function. 
  I could modify rig.c to return RIG_OK from rig_get_vfo if RIG_VFO_CURR is 
asked for. 
  Bill? 
  Mike W9MDB 
   
    
  
      On Tuesday, June 2, 2020, 04:03:30 PM CDT, DG2YCB, Uwe <[email protected]> 
wrote:  
  
      
Hi Bill,
 
  
 
Done. See file enclosed. FYI: During the test, I clicked two times on the Test 
CAT button. Each times the error message popped up.
 
  
  
73 de Uwe, DG2YCB 
        
       
       
       
 

 
 _______________________________________________
wsjt-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wsjt-devel
  
_______________________________________________
wsjt-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wsjt-devel

Reply via email to