Fix TS990S SWR read -- strange behavior of RM command reading first RM turned on for read

New SWR table too for TS990S
https://github.com/Hamlib/Hamlib/issues/1423
pull/1426/head
Mike Black W9MDB 2023-11-12 13:22:02 -06:00
rodzic 43159e55a1
commit e7786cee4c
4 zmienionych plików z 24 dodań i 5 usunięć

Wyświetl plik

@ -1100,6 +1100,15 @@ int kenwood_open(RIG *rig)
// mismatched IDs can still be tested
rig->state.rigport.retry = retry_save;
// TS-990S needs to ensure all RM meters are turned off as first one with read on gets read
// Any RM commands need to be ON/READ/OFF to allow other apps or threads to read meters
if (RIG_IS_TS990S)
{
kenwood_transaction(rig, "RM10;RM20;RM30;RM40;RM50;RM60;", NULL, 0);
}
RETURNFUNC(RIG_OK);
}

Wyświetl plik

@ -28,7 +28,7 @@
#include "token.h"
#include "idx_builtin.h"
#define BACKEND_VER "20231031"
#define BACKEND_VER "20231112"
#define EOM_KEN ';'
#define EOM_TH '\r'

Wyświetl plik

@ -59,9 +59,9 @@
#define TS990S_SWR_CAL { 5, \
{ \
{ 0, 1.0f }, \
{ 14, 1.5f }, \
{ 28, 2.0f }, \
{ 42, 3.0f }, \
{ 7, 1.5f }, \
{ 36, 3.0f }, \
{ 43, 6.0f }, \
{ 70, 10.0f } \
} }
@ -647,7 +647,9 @@ int ts990s_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
break;
case RIG_LEVEL_SWR:
retval = kenwood_safe_transaction(rig, "RM21", lvlbuf, sizeof(lvlbuf), 7);
// we need to turn on read, read it, and turn it off again
// first RM meter with read on is the that gets read with RM;
retval = kenwood_safe_transaction(rig, "RM21;RM;RM20", lvlbuf, sizeof(lvlbuf), 8);
if (retval != RIG_OK)
{

Wyświetl plik

@ -2740,6 +2740,14 @@ int HAMLIB_API rig_get_mode(RIG *rig,
*width = rig->state.cache.widthMainA;
RETURNFUNC(RIG_OK);
}
else if (vfo == RIG_VFO_B)
{
if (rig->state.cache.modeMainB == RIG_MODE_NONE)
{
retcode = caps->get_mode(rig, vfo, mode, width);
return retcode;
}
}
if ((*mode != RIG_MODE_NONE && cache_ms_mode < rig->state.cache.timeout_ms)
&& cache_ms_width < rig->state.cache.timeout_ms)