Fix USB_AF and USB_AF_INPUT for TS590

https://github.com/Hamlib/Hamlib/issues/1402
pull/1404/head
Mike Black W9MDB 2023-10-20 09:35:03 -05:00
rodzic 01292b261f
commit ff2c0e6b03
4 zmienionych plików z 38 dodań i 8 usunięć

Wyświetl plik

@ -3418,8 +3418,8 @@ int kenwood_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
break; break;
default: default:
rig_debug(RIG_DEBUG_ERR, "%s: unsupported set_level %s", __func__, rig_debug(RIG_DEBUG_ERR, "%s: unsupported set_level (0x%08lx) %s", __func__,
rig_strlevel(level)); level, rig_strlevel(level));
RETURNFUNC(-RIG_EINVAL); RETURNFUNC(-RIG_EINVAL);
} }

Wyświetl plik

@ -40,6 +40,6 @@
[LVL_VOXGAIN] = { .min = { .f = .0 }, .max = { .f = 1 }, .step = { .f = 1.0f/100.0f } }, [LVL_VOXGAIN] = { .min = { .f = .0 }, .max = { .f = 1 }, .step = { .f = 1.0f/100.0f } },
[LVL_ANTIVOX] = { .min = { .f = .0 }, .max = { .f = 1 }, .step = { .f = 1.0f/100.0f } }, [LVL_ANTIVOX] = { .min = { .f = .0 }, .max = { .f = 1 }, .step = { .f = 1.0f/100.0f } },
[LVL_ALC] = { .min = { .f = .0 }, .max = { .f = 1 }, .step = { .f = 1.0f/100.0f } }, [LVL_ALC] = { .min = { .f = .0 }, .max = { .f = 1 }, .step = { .f = 1.0f/100.0f } },
[LVL_USB_AF] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f/9.0f } }, [LVL_USB_AF] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f/10.0f } },
[LVL_USB_AF_INPUT] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f/9.0f } }, [LVL_USB_AF_INPUT] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f/10.0f } },

Wyświetl plik

@ -459,6 +459,16 @@ static int ts590_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
switch (level) switch (level)
{ {
case RIG_LEVEL_USB_AF:
kenwood_val = val.f * 10;
SNPRINTF(levelbuf, sizeof(levelbuf), "EX0650000%d", kenwood_val);
break;
case RIG_LEVEL_USB_AF_INPUT:
kenwood_val = val.f * 10;
SNPRINTF(levelbuf, sizeof(levelbuf), "EX0640000%d", kenwood_val);
break;
case RIG_LEVEL_RF: case RIG_LEVEL_RF:
kenwood_val = val.f * 255; kenwood_val = val.f * 255;
SNPRINTF(levelbuf, sizeof(levelbuf), "RG%03d", kenwood_val); SNPRINTF(levelbuf, sizeof(levelbuf), "RG%03d", kenwood_val);
@ -655,12 +665,12 @@ static int ts590_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
{ {
case RIG_LEVEL_USB_AF: case RIG_LEVEL_USB_AF:
retval = ts590_get_ex_menu(rig, 65, 1, &levelint); retval = ts590_get_ex_menu(rig, 65, 1, &levelint);
val->f = levelint / 9.0; val->f = levelint / 10.0;
return retval; return retval;
case RIG_LEVEL_USB_AF_INPUT: case RIG_LEVEL_USB_AF_INPUT:
retval = ts590_get_ex_menu(rig, 64, 1, &levelint); retval = ts590_get_ex_menu(rig, 64, 1, &levelint);
val->f = levelint / 9.0; val->f = levelint / 10.0;
return retval; return retval;
case RIG_LEVEL_AF: case RIG_LEVEL_AF:
@ -1594,7 +1604,7 @@ const struct rig_caps ts590_caps =
RIG_MODEL(RIG_MODEL_TS590S), RIG_MODEL(RIG_MODEL_TS590S),
.model_name = "TS-590S", .model_name = "TS-590S",
.mfg_name = "Kenwood", .mfg_name = "Kenwood",
.version = BACKEND_VER ".8", .version = BACKEND_VER ".9",
.copyright = "LGPL", .copyright = "LGPL",
.status = RIG_STATUS_STABLE, .status = RIG_STATUS_STABLE,
.rig_type = RIG_TYPE_TRANSCEIVER, .rig_type = RIG_TYPE_TRANSCEIVER,
@ -1986,7 +1996,7 @@ const struct rig_caps ts590sg_caps =
RIG_MODEL(RIG_MODEL_TS590SG), RIG_MODEL(RIG_MODEL_TS590SG),
.model_name = "TS-590SG", .model_name = "TS-590SG",
.mfg_name = "Kenwood", .mfg_name = "Kenwood",
.version = BACKEND_VER ".5", .version = BACKEND_VER ".6",
.copyright = "LGPL", .copyright = "LGPL",
.status = RIG_STATUS_STABLE, .status = RIG_STATUS_STABLE,
.rig_type = RIG_TYPE_TRANSCEIVER, .rig_type = RIG_TYPE_TRANSCEIVER,

Wyświetl plik

@ -30,6 +30,8 @@ int keyspd = 25;
int width_high = 0; int width_high = 0;
int width_low = 0; int width_low = 0;
int afgain = 50; int afgain = 50;
int usb_af = 5;
int usb_af_input = 2;
int int
getmyline(int fd, char *buf) getmyline(int fd, char *buf)
@ -226,6 +228,24 @@ int main(int argc, char *argv[])
pbuf = "VS0;"; pbuf = "VS0;";
WRITE(fd, pbuf, strlen(pbuf)); WRITE(fd, pbuf, strlen(pbuf));
} }
else if (strcmp(buf, "EX0640000;") == 0)
{
SNPRINTF(buf, sizeof(buf), "EX0640000%d;", usb_af_input);
WRITE(fd, buf, strlen(buf));
}
else if (strncmp(buf, "EX0640000", 9) == 0)
{
sscanf(buf, "EX0640000%d", &usb_af_input);
}
else if (strcmp(buf, "EX0650000;") == 0)
{
SNPRINTF(buf, sizeof(buf), "EX0650000%d;", usb_af);
WRITE(fd, buf, strlen(buf));
}
else if (strncmp(buf, "EX0650000", 9) == 0)
{
sscanf(buf, "EX0650000%d", &usb_af);
}
else if (strcmp(buf, "EX032;") == 0) else if (strcmp(buf, "EX032;") == 0)
{ {
static int ant = 0; static int ant = 0;