diff --git a/rigs/kenwood/kenwood.c b/rigs/kenwood/kenwood.c index 6bc88a289..5eb780514 100644 --- a/rigs/kenwood/kenwood.c +++ b/rigs/kenwood/kenwood.c @@ -3418,8 +3418,8 @@ int kenwood_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val) break; default: - rig_debug(RIG_DEBUG_ERR, "%s: unsupported set_level %s", __func__, - rig_strlevel(level)); + rig_debug(RIG_DEBUG_ERR, "%s: unsupported set_level (0x%08lx) %s", __func__, + level, rig_strlevel(level)); RETURNFUNC(-RIG_EINVAL); } diff --git a/rigs/kenwood/level_gran_kenwood.h b/rigs/kenwood/level_gran_kenwood.h index c922e7d37..af5e85ddf 100644 --- a/rigs/kenwood/level_gran_kenwood.h +++ b/rigs/kenwood/level_gran_kenwood.h @@ -40,6 +40,6 @@ [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_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_INPUT] = { .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/10.0f } }, diff --git a/rigs/kenwood/ts590.c b/rigs/kenwood/ts590.c index 20dea7d0b..0ab348b0f 100644 --- a/rigs/kenwood/ts590.c +++ b/rigs/kenwood/ts590.c @@ -459,6 +459,16 @@ static int ts590_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val) 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: kenwood_val = val.f * 255; 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: retval = ts590_get_ex_menu(rig, 65, 1, &levelint); - val->f = levelint / 9.0; + val->f = levelint / 10.0; return retval; case RIG_LEVEL_USB_AF_INPUT: retval = ts590_get_ex_menu(rig, 64, 1, &levelint); - val->f = levelint / 9.0; + val->f = levelint / 10.0; return retval; case RIG_LEVEL_AF: @@ -1594,7 +1604,7 @@ const struct rig_caps ts590_caps = RIG_MODEL(RIG_MODEL_TS590S), .model_name = "TS-590S", .mfg_name = "Kenwood", - .version = BACKEND_VER ".8", + .version = BACKEND_VER ".9", .copyright = "LGPL", .status = RIG_STATUS_STABLE, .rig_type = RIG_TYPE_TRANSCEIVER, @@ -1986,7 +1996,7 @@ const struct rig_caps ts590sg_caps = RIG_MODEL(RIG_MODEL_TS590SG), .model_name = "TS-590SG", .mfg_name = "Kenwood", - .version = BACKEND_VER ".5", + .version = BACKEND_VER ".6", .copyright = "LGPL", .status = RIG_STATUS_STABLE, .rig_type = RIG_TYPE_TRANSCEIVER, diff --git a/simulators/simts590.c b/simulators/simts590.c index 70aff5965..303c587a5 100644 --- a/simulators/simts590.c +++ b/simulators/simts590.c @@ -30,6 +30,8 @@ int keyspd = 25; int width_high = 0; int width_low = 0; int afgain = 50; +int usb_af = 5; +int usb_af_input = 2; int getmyline(int fd, char *buf) @@ -226,6 +228,24 @@ int main(int argc, char *argv[]) pbuf = "VS0;"; 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) { static int ant = 0;