scpi-dmm: Add infinity limit to model-specific config.
Owon multimeters seem otherwise compatible with gwinstek reader, except infinity is only 1e9.
This commit is contained in:
parent
5433907ed9
commit
33306b13ac
|
@ -168,42 +168,42 @@ SR_PRIV const struct scpi_dmm_model models[] = {
|
||||||
1, 5, cmdset_agilent, ARRAY_AND_SIZE(mqopts_agilent_34405a),
|
1, 5, cmdset_agilent, ARRAY_AND_SIZE(mqopts_agilent_34405a),
|
||||||
scpi_dmm_get_meas_agilent,
|
scpi_dmm_get_meas_agilent,
|
||||||
ARRAY_AND_SIZE(devopts_generic),
|
ARRAY_AND_SIZE(devopts_generic),
|
||||||
0,
|
0, 0,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Agilent", "34410A",
|
"Agilent", "34410A",
|
||||||
1, 6, cmdset_hp, ARRAY_AND_SIZE(mqopts_agilent_34405a),
|
1, 6, cmdset_hp, ARRAY_AND_SIZE(mqopts_agilent_34405a),
|
||||||
scpi_dmm_get_meas_agilent,
|
scpi_dmm_get_meas_agilent,
|
||||||
ARRAY_AND_SIZE(devopts_generic),
|
ARRAY_AND_SIZE(devopts_generic),
|
||||||
0,
|
0, 0,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"GW", "GDM8251A",
|
"GW", "GDM8251A",
|
||||||
1, 6, cmdset_gwinstek, ARRAY_AND_SIZE(mqopts_gwinstek_gdm8200a),
|
1, 6, cmdset_gwinstek, ARRAY_AND_SIZE(mqopts_gwinstek_gdm8200a),
|
||||||
scpi_dmm_get_meas_gwinstek,
|
scpi_dmm_get_meas_gwinstek,
|
||||||
ARRAY_AND_SIZE(devopts_generic),
|
ARRAY_AND_SIZE(devopts_generic),
|
||||||
1000 * 2500,
|
1000 * 2500, 0,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"GW", "GDM8255A",
|
"GW", "GDM8255A",
|
||||||
1, 6, cmdset_gwinstek, ARRAY_AND_SIZE(mqopts_gwinstek_gdm8200a),
|
1, 6, cmdset_gwinstek, ARRAY_AND_SIZE(mqopts_gwinstek_gdm8200a),
|
||||||
scpi_dmm_get_meas_gwinstek,
|
scpi_dmm_get_meas_gwinstek,
|
||||||
ARRAY_AND_SIZE(devopts_generic),
|
ARRAY_AND_SIZE(devopts_generic),
|
||||||
1000 * 2500,
|
1000 * 2500, 0,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"GWInstek", "GDM9060",
|
"GWInstek", "GDM9060",
|
||||||
1, 6, cmdset_gwinstek_906x, ARRAY_AND_SIZE(mqopts_gwinstek_gdm906x),
|
1, 6, cmdset_gwinstek_906x, ARRAY_AND_SIZE(mqopts_gwinstek_gdm906x),
|
||||||
scpi_dmm_get_meas_agilent,
|
scpi_dmm_get_meas_agilent,
|
||||||
ARRAY_AND_SIZE(devopts_generic),
|
ARRAY_AND_SIZE(devopts_generic),
|
||||||
0,
|
0, 0,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"GWInstek", "GDM9061",
|
"GWInstek", "GDM9061",
|
||||||
1, 6, cmdset_gwinstek_906x, ARRAY_AND_SIZE(mqopts_gwinstek_gdm906x),
|
1, 6, cmdset_gwinstek_906x, ARRAY_AND_SIZE(mqopts_gwinstek_gdm906x),
|
||||||
scpi_dmm_get_meas_agilent,
|
scpi_dmm_get_meas_agilent,
|
||||||
ARRAY_AND_SIZE(devopts_generic),
|
ARRAY_AND_SIZE(devopts_generic),
|
||||||
0,
|
0, 0,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"HP", "34401A",
|
"HP", "34401A",
|
||||||
|
@ -211,14 +211,14 @@ SR_PRIV const struct scpi_dmm_model models[] = {
|
||||||
scpi_dmm_get_meas_agilent,
|
scpi_dmm_get_meas_agilent,
|
||||||
ARRAY_AND_SIZE(devopts_generic),
|
ARRAY_AND_SIZE(devopts_generic),
|
||||||
/* 34401A: typ. 1020ms for AC readings (default is 1000ms). */
|
/* 34401A: typ. 1020ms for AC readings (default is 1000ms). */
|
||||||
1000 * 1500,
|
1000 * 1500, 0,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Keysight", "34465A",
|
"Keysight", "34465A",
|
||||||
1, 5, cmdset_agilent, ARRAY_AND_SIZE(mqopts_agilent_34405a),
|
1, 5, cmdset_agilent, ARRAY_AND_SIZE(mqopts_agilent_34405a),
|
||||||
scpi_dmm_get_meas_agilent,
|
scpi_dmm_get_meas_agilent,
|
||||||
ARRAY_AND_SIZE(devopts_generic),
|
ARRAY_AND_SIZE(devopts_generic),
|
||||||
0,
|
0, 0,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -459,9 +459,11 @@ SR_PRIV int scpi_dmm_get_meas_gwinstek(const struct sr_dev_inst *sdi, size_t ch)
|
||||||
if (!response)
|
if (!response)
|
||||||
return SR_ERR;
|
return SR_ERR;
|
||||||
limit = 9e37;
|
limit = 9e37;
|
||||||
if (info->d_value > +limit) {
|
if (devc->model->infinity_limit != 0.0)
|
||||||
|
limit = devc->model->infinity_limit;
|
||||||
|
if (info->d_value >= +limit) {
|
||||||
info->d_value = +INFINITY;
|
info->d_value = +INFINITY;
|
||||||
} else if (info->d_value < -limit) {
|
} else if (info->d_value <= -limit) {
|
||||||
info->d_value = -INFINITY;
|
info->d_value = -INFINITY;
|
||||||
} else {
|
} else {
|
||||||
p = response;
|
p = response;
|
||||||
|
|
|
@ -64,6 +64,7 @@ struct scpi_dmm_model {
|
||||||
const uint32_t *devopts;
|
const uint32_t *devopts;
|
||||||
size_t devopts_size;
|
size_t devopts_size;
|
||||||
unsigned int read_timeout_us; /* If zero, use default from src/scpi/scpi.c. */
|
unsigned int read_timeout_us; /* If zero, use default from src/scpi/scpi.c. */
|
||||||
|
float infinity_limit; /* If zero, use default from protocol.c */
|
||||||
};
|
};
|
||||||
|
|
||||||
struct dev_context {
|
struct dev_context {
|
||||||
|
|
Loading…
Reference in New Issue