kopia lustrzana https://github.com/Hamlib/Hamlib
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.
rodzic
af7bb1a0fc
commit
624c6ab3f7
|
@ -179,6 +179,8 @@ const struct rig_caps ic7000_caps = {
|
|||
.level_gran = {
|
||||
[LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } },
|
||||
[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 = {},
|
||||
.ctcss_list = common_ctcss_list,
|
||||
|
|
|
@ -203,6 +203,8 @@ const struct rig_caps ic7100_caps = {
|
|||
.level_gran = {
|
||||
[LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } },
|
||||
[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 = {},
|
||||
.ctcss_list = common_ctcss_list,
|
||||
|
|
|
@ -143,6 +143,8 @@ const struct rig_caps ic7200_caps = {
|
|||
.level_gran = {
|
||||
[LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } },
|
||||
[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 = {},
|
||||
.ctcss_list = NULL,
|
||||
|
|
|
@ -246,8 +246,10 @@ const struct rig_caps ic7300_caps = {
|
|||
.has_get_parm = IC7300_PARMS,
|
||||
.has_set_parm = RIG_PARM_SET(IC7300_PARMS),
|
||||
.level_gran = {
|
||||
[LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } },
|
||||
[LVL_VOXDELAY] = { .min = { .i = 0 }, .max = { .i = 20 }, .step = { .i = 1 } },
|
||||
[LVL_RAWSTR] = {.min = {.i = 0}, .max = {.i = 255}},
|
||||
[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 = {},
|
||||
.extlevels = NULL,
|
||||
|
|
|
@ -137,6 +137,8 @@ const struct rig_caps ic7410_caps = {
|
|||
.level_gran = {
|
||||
[LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } },
|
||||
[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 = {},
|
||||
.ctcss_list = common_ctcss_list,
|
||||
|
|
|
@ -203,7 +203,9 @@ const struct rig_caps ic746_caps = {
|
|||
.has_set_parm = RIG_PARM_ANN,
|
||||
.level_gran = {
|
||||
[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 = {},
|
||||
.ctcss_list = common_ctcss_list,
|
||||
.dcs_list = NULL,
|
||||
|
|
|
@ -311,7 +311,9 @@ const struct rig_caps ic756pro_caps = {
|
|||
.has_set_parm = RIG_PARM_NONE, /* FIXME: parms */
|
||||
.level_gran = {
|
||||
[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 = {},
|
||||
.ctcss_list = common_ctcss_list,
|
||||
.dcs_list = NULL,
|
||||
|
@ -529,6 +531,8 @@ const struct rig_caps ic756pro2_caps = {
|
|||
.level_gran = {
|
||||
[LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } },
|
||||
[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 = {},
|
||||
.extparms = ic756pro2_ext_parms,
|
||||
|
@ -900,6 +904,8 @@ const struct rig_caps ic756pro3_caps = {
|
|||
.level_gran = {
|
||||
[LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } },
|
||||
[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 = {},
|
||||
.extparms = ic756pro2_ext_parms,
|
||||
|
|
|
@ -181,6 +181,8 @@ const struct rig_caps ic7600_caps = {
|
|||
.level_gran = {
|
||||
[LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } },
|
||||
[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 = {},
|
||||
.extlevels = ic7600_ext_levels,
|
||||
|
|
|
@ -186,6 +186,8 @@ const struct rig_caps ic7610_caps = {
|
|||
.level_gran = {
|
||||
[LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } },
|
||||
[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 = {},
|
||||
.extlevels = ic7610_ext_levels,
|
||||
|
|
|
@ -171,6 +171,8 @@ const struct rig_caps ic7700_caps = {
|
|||
.level_gran = {
|
||||
[LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } },
|
||||
[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 = {},
|
||||
.extlevels = ic7700_ext_levels,
|
||||
|
|
|
@ -171,6 +171,8 @@ const struct rig_caps ic7800_caps = {
|
|||
.level_gran = {
|
||||
[LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } },
|
||||
[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 = {},
|
||||
.extlevels = ic7800_ext_levels,
|
||||
|
|
|
@ -176,6 +176,8 @@ const struct rig_caps ic785x_caps = {
|
|||
.level_gran = {
|
||||
[LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } },
|
||||
[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 = {},
|
||||
.extlevels = ic785x_ext_levels,
|
||||
|
|
42
icom/icom.c
42
icom/icom.c
|
@ -1275,22 +1275,26 @@ int icom_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
|
|||
}
|
||||
}
|
||||
|
||||
switch (level) {
|
||||
case RIG_LEVEL_KEYSPD:
|
||||
if (val.i < 6) val.i = 6;
|
||||
if (val.i > 48) val.i = 48;
|
||||
icom_val = (val.i-6)*(255/42.0)+.99;
|
||||
case RIG_LEVEL_CWPITCH:
|
||||
if (val.i < 300) {
|
||||
icom_val = 300;
|
||||
} else if (val.i >= 900) {
|
||||
icom_val = 900;
|
||||
}
|
||||
icom_val = (icom_val - 300) * (255.0f / 600.0f);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
switch (level) {
|
||||
case RIG_LEVEL_KEYSPD:
|
||||
if (val.i < 6) {
|
||||
icom_val = 6;
|
||||
} else if (val.i > 48) {
|
||||
icom_val = 48;
|
||||
}
|
||||
icom_val = (int) lroundf(((float) icom_val - 6.0f) * (255.0f / 42.0f));
|
||||
break;
|
||||
case RIG_LEVEL_CWPITCH:
|
||||
if (val.i < 300) {
|
||||
icom_val = 300;
|
||||
} else if (val.i >= 900) {
|
||||
icom_val = 900;
|
||||
}
|
||||
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,
|
||||
|
@ -1764,10 +1768,10 @@ int icom_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
}
|
||||
break;
|
||||
case RIG_LEVEL_CWPITCH:
|
||||
val->i = 300 + (icom_val * 600.0f / 255.0f);
|
||||
break;
|
||||
val->i = (int) lroundf(300.0f + ((float) icom_val * 600.0f / 255.0f));
|
||||
break;
|
||||
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;
|
||||
case RIG_LEVEL_PREAMP:
|
||||
if (icom_val == 0) {
|
||||
|
|
Ładowanie…
Reference in New Issue