Icom: Add missing break keyword for RIG_LEVEL_KEYSPD. Fix rounding of RIG_LEVEL_KEYSPD and RIG_LEVEL_CWPITCH. Set correct ranges for LVL_KEYSPD and LVL_CWPITCH on many Icom rigs.

pull/114/head
Mikael Nousiainen 2019-06-10 23:42:05 +03:00
rodzic af7bb1a0fc
commit 624c6ab3f7
13 zmienionych plików z 55 dodań i 23 usunięć

Wyświetl plik

@ -179,6 +179,8 @@ const struct rig_caps ic7000_caps = {
.level_gran = { .level_gran = {
[LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } }, [LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } },
[LVL_VOXDELAY] = { .min = { .i = 0 }, .max = { .i = 20 }, .step = { .i = 1 } }, [LVL_VOXDELAY] = { .min = { .i = 0 }, .max = { .i = 20 }, .step = { .i = 1 } },
[LVL_KEYSPD] = { .min = { .i = 6 }, .max = { .i = 48 }, .step = { .i = 1 } },
[LVL_CWPITCH] = { .min = { .i = 300 }, .max = { .i = 900 }, .step = { .i = 1 } },
}, },
.parm_gran = {}, .parm_gran = {},
.ctcss_list = common_ctcss_list, .ctcss_list = common_ctcss_list,

Wyświetl plik

@ -203,6 +203,8 @@ const struct rig_caps ic7100_caps = {
.level_gran = { .level_gran = {
[LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } }, [LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } },
[LVL_VOXDELAY] = { .min = { .i = 0 }, .max = { .i = 20 }, .step = { .i = 1 } }, [LVL_VOXDELAY] = { .min = { .i = 0 }, .max = { .i = 20 }, .step = { .i = 1 } },
[LVL_KEYSPD] = { .min = { .i = 6 }, .max = { .i = 48 }, .step = { .i = 1 } },
[LVL_CWPITCH] = { .min = { .i = 300 }, .max = { .i = 900 }, .step = { .i = 1 } },
}, },
.parm_gran = {}, .parm_gran = {},
.ctcss_list = common_ctcss_list, .ctcss_list = common_ctcss_list,

Wyświetl plik

@ -143,6 +143,8 @@ const struct rig_caps ic7200_caps = {
.level_gran = { .level_gran = {
[LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } }, [LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } },
[LVL_VOXDELAY] = { .min = { .i = 0 }, .max = { .i = 20 }, .step = { .i = 1 } }, [LVL_VOXDELAY] = { .min = { .i = 0 }, .max = { .i = 20 }, .step = { .i = 1 } },
[LVL_KEYSPD] = { .min = { .i = 6 }, .max = { .i = 48 }, .step = { .i = 1 } },
[LVL_CWPITCH] = { .min = { .i = 300 }, .max = { .i = 900 }, .step = { .i = 1 } },
}, },
.parm_gran = {}, .parm_gran = {},
.ctcss_list = NULL, .ctcss_list = NULL,

Wyświetl plik

@ -246,8 +246,10 @@ const struct rig_caps ic7300_caps = {
.has_get_parm = IC7300_PARMS, .has_get_parm = IC7300_PARMS,
.has_set_parm = RIG_PARM_SET(IC7300_PARMS), .has_set_parm = RIG_PARM_SET(IC7300_PARMS),
.level_gran = { .level_gran = {
[LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } }, [LVL_RAWSTR] = {.min = {.i = 0}, .max = {.i = 255}},
[LVL_VOXDELAY] = { .min = { .i = 0 }, .max = { .i = 20 }, .step = { .i = 1 } }, [LVL_VOXDELAY] = {.min = {.i = 0}, .max = {.i = 20}, .step = {.i = 1}},
[LVL_KEYSPD] = {.min = {.i = 6}, .max = {.i = 48}, .step = {.i = 1}},
[LVL_CWPITCH] = {.min = {.i = 300}, .max = {.i = 900}, .step = {.i = 1}},
}, },
.parm_gran = {}, .parm_gran = {},
.extlevels = NULL, .extlevels = NULL,

Wyświetl plik

@ -137,6 +137,8 @@ const struct rig_caps ic7410_caps = {
.level_gran = { .level_gran = {
[LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } }, [LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } },
[LVL_VOXDELAY] = { .min = { .i = 0 }, .max = { .i = 20 }, .step = { .i = 1 } }, [LVL_VOXDELAY] = { .min = { .i = 0 }, .max = { .i = 20 }, .step = { .i = 1 } },
[LVL_KEYSPD] = { .min = { .i = 6 }, .max = { .i = 48 }, .step = { .i = 1 } },
[LVL_CWPITCH] = { .min = { .i = 300 }, .max = { .i = 900 }, .step = { .i = 1 } },
}, },
.parm_gran = {}, .parm_gran = {},
.ctcss_list = common_ctcss_list, .ctcss_list = common_ctcss_list,

Wyświetl plik

@ -203,7 +203,9 @@ const struct rig_caps ic746_caps = {
.has_set_parm = RIG_PARM_ANN, .has_set_parm = RIG_PARM_ANN,
.level_gran = { .level_gran = {
[LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } }, [LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } },
}, [LVL_KEYSPD] = { .min = { .i = 6 }, .max = { .i = 48 }, .step = { .i = 1 } },
[LVL_CWPITCH] = { .min = { .i = 300 }, .max = { .i = 900 }, .step = { .i = 1 } },
},
.parm_gran = {}, .parm_gran = {},
.ctcss_list = common_ctcss_list, .ctcss_list = common_ctcss_list,
.dcs_list = NULL, .dcs_list = NULL,

Wyświetl plik

@ -311,7 +311,9 @@ const struct rig_caps ic756pro_caps = {
.has_set_parm = RIG_PARM_NONE, /* FIXME: parms */ .has_set_parm = RIG_PARM_NONE, /* FIXME: parms */
.level_gran = { .level_gran = {
[LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } }, [LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } },
}, [LVL_KEYSPD] = { .min = { .i = 6 }, .max = { .i = 48 }, .step = { .i = 1 } },
[LVL_CWPITCH] = { .min = { .i = 300 }, .max = { .i = 900 }, .step = { .i = 1 } },
},
.parm_gran = {}, .parm_gran = {},
.ctcss_list = common_ctcss_list, .ctcss_list = common_ctcss_list,
.dcs_list = NULL, .dcs_list = NULL,
@ -529,6 +531,8 @@ const struct rig_caps ic756pro2_caps = {
.level_gran = { .level_gran = {
[LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } }, [LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } },
[LVL_VOXDELAY] = { .min = { .i = 0 }, .max = { .i = 20 }, .step = { .i = 1 } }, [LVL_VOXDELAY] = { .min = { .i = 0 }, .max = { .i = 20 }, .step = { .i = 1 } },
[LVL_KEYSPD] = { .min = { .i = 6 }, .max = { .i = 48 }, .step = { .i = 1 } },
[LVL_CWPITCH] = { .min = { .i = 300 }, .max = { .i = 900 }, .step = { .i = 1 } },
}, },
.parm_gran = {}, .parm_gran = {},
.extparms = ic756pro2_ext_parms, .extparms = ic756pro2_ext_parms,
@ -900,6 +904,8 @@ const struct rig_caps ic756pro3_caps = {
.level_gran = { .level_gran = {
[LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } }, [LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } },
[LVL_VOXDELAY] = { .min = { .i = 0 }, .max = { .i = 20 }, .step = { .i = 1 } }, [LVL_VOXDELAY] = { .min = { .i = 0 }, .max = { .i = 20 }, .step = { .i = 1 } },
[LVL_KEYSPD] = { .min = { .i = 6 }, .max = { .i = 48 }, .step = { .i = 1 } },
[LVL_CWPITCH] = { .min = { .i = 300 }, .max = { .i = 900 }, .step = { .i = 1 } },
}, },
.parm_gran = {}, .parm_gran = {},
.extparms = ic756pro2_ext_parms, .extparms = ic756pro2_ext_parms,

Wyświetl plik

@ -181,6 +181,8 @@ const struct rig_caps ic7600_caps = {
.level_gran = { .level_gran = {
[LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } }, [LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } },
[LVL_VOXDELAY] = { .min = { .i = 0 }, .max = { .i = 20 }, .step = { .i = 1 } }, [LVL_VOXDELAY] = { .min = { .i = 0 }, .max = { .i = 20 }, .step = { .i = 1 } },
[LVL_KEYSPD] = { .min = { .i = 6 }, .max = { .i = 48 }, .step = { .i = 1 } },
[LVL_CWPITCH] = { .min = { .i = 300 }, .max = { .i = 900 }, .step = { .i = 1 } },
}, },
.parm_gran = {}, .parm_gran = {},
.extlevels = ic7600_ext_levels, .extlevels = ic7600_ext_levels,

Wyświetl plik

@ -186,6 +186,8 @@ const struct rig_caps ic7610_caps = {
.level_gran = { .level_gran = {
[LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } }, [LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } },
[LVL_VOXDELAY] = { .min = { .i = 0 }, .max = { .i = 20 }, .step = { .i = 1 } }, [LVL_VOXDELAY] = { .min = { .i = 0 }, .max = { .i = 20 }, .step = { .i = 1 } },
[LVL_KEYSPD] = { .min = { .i = 6 }, .max = { .i = 48 }, .step = { .i = 1 } },
[LVL_CWPITCH] = { .min = { .i = 300 }, .max = { .i = 900 }, .step = { .i = 1 } },
}, },
.parm_gran = {}, .parm_gran = {},
.extlevels = ic7610_ext_levels, .extlevels = ic7610_ext_levels,

Wyświetl plik

@ -171,6 +171,8 @@ const struct rig_caps ic7700_caps = {
.level_gran = { .level_gran = {
[LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } }, [LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } },
[LVL_VOXDELAY] = { .min = { .i = 0 }, .max = { .i = 20 }, .step = { .i = 1 } }, [LVL_VOXDELAY] = { .min = { .i = 0 }, .max = { .i = 20 }, .step = { .i = 1 } },
[LVL_KEYSPD] = { .min = { .i = 6 }, .max = { .i = 48 }, .step = { .i = 1 } },
[LVL_CWPITCH] = { .min = { .i = 300 }, .max = { .i = 900 }, .step = { .i = 1 } },
}, },
.parm_gran = {}, .parm_gran = {},
.extlevels = ic7700_ext_levels, .extlevels = ic7700_ext_levels,

Wyświetl plik

@ -171,6 +171,8 @@ const struct rig_caps ic7800_caps = {
.level_gran = { .level_gran = {
[LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } }, [LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } },
[LVL_VOXDELAY] = { .min = { .i = 0 }, .max = { .i = 20 }, .step = { .i = 1 } }, [LVL_VOXDELAY] = { .min = { .i = 0 }, .max = { .i = 20 }, .step = { .i = 1 } },
[LVL_KEYSPD] = { .min = { .i = 6 }, .max = { .i = 48 }, .step = { .i = 1 } },
[LVL_CWPITCH] = { .min = { .i = 300 }, .max = { .i = 900 }, .step = { .i = 1 } },
}, },
.parm_gran = {}, .parm_gran = {},
.extlevels = ic7800_ext_levels, .extlevels = ic7800_ext_levels,

Wyświetl plik

@ -176,6 +176,8 @@ const struct rig_caps ic785x_caps = {
.level_gran = { .level_gran = {
[LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } }, [LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } },
[LVL_VOXDELAY] = { .min = { .i = 0 }, .max = { .i = 20 }, .step = { .i = 1 } }, [LVL_VOXDELAY] = { .min = { .i = 0 }, .max = { .i = 20 }, .step = { .i = 1 } },
[LVL_KEYSPD] = { .min = { .i = 6 }, .max = { .i = 48 }, .step = { .i = 1 } },
[LVL_CWPITCH] = { .min = { .i = 300 }, .max = { .i = 900 }, .step = { .i = 1 } },
}, },
.parm_gran = {}, .parm_gran = {},
.extlevels = ic785x_ext_levels, .extlevels = ic785x_ext_levels,

Wyświetl plik

@ -1275,22 +1275,26 @@ int icom_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
} }
} }
switch (level) { switch (level) {
case RIG_LEVEL_KEYSPD: case RIG_LEVEL_KEYSPD:
if (val.i < 6) val.i = 6; if (val.i < 6) {
if (val.i > 48) val.i = 48; icom_val = 6;
icom_val = (val.i-6)*(255/42.0)+.99; } else if (val.i > 48) {
case RIG_LEVEL_CWPITCH: icom_val = 48;
if (val.i < 300) { }
icom_val = 300; icom_val = (int) lroundf(((float) icom_val - 6.0f) * (255.0f / 42.0f));
} else if (val.i >= 900) { break;
icom_val = 900; case RIG_LEVEL_CWPITCH:
} if (val.i < 300) {
icom_val = (icom_val - 300) * (255.0f / 600.0f); icom_val = 300;
break; } else if (val.i >= 900) {
default: icom_val = 900;
break; }
} icom_val = (int) lroundf(((float) icom_val - 300) * (255.0f / 600.0f));
break;
default:
break;
}
/* /*
* Most of the time, the data field is a 3 digit BCD, * Most of the time, the data field is a 3 digit BCD,
@ -1764,10 +1768,10 @@ int icom_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
} }
break; break;
case RIG_LEVEL_CWPITCH: case RIG_LEVEL_CWPITCH:
val->i = 300 + (icom_val * 600.0f / 255.0f); val->i = (int) lroundf(300.0f + ((float) icom_val * 600.0f / 255.0f));
break; break;
case RIG_LEVEL_KEYSPD: case RIG_LEVEL_KEYSPD:
val->i = icom_val * (42.0 / 255) + 6 + .5; val->i = (int) lroundf((float) icom_val * (42.0f / 255.0f) + 6.0f);
break; break;
case RIG_LEVEL_PREAMP: case RIG_LEVEL_PREAMP:
if (icom_val == 0) { if (icom_val == 0) {