100, 120, 1000, 10000, 100000, 0,
};
-enum { QUANT_AUTO = 5, };
-
-static const char *const quantities1[] = {
- "NONE", "INDUCTANCE", "CAPACITANCE", "RESISTANCE", "RESISTANCE", "AUTO",
-};
-
-static const char *const list_quantities1[] = {
- "NONE", "INDUCTANCE", "CAPACITANCE", "RESISTANCE", "AUTO",
-};
-
-static const char *const quantities2[] = {
- "NONE", "DISSIPATION", "QUALITY", "RESISTANCE", "ANGLE", "AUTO",
-};
-
enum { MODEL_NONE, MODEL_PAR, MODEL_SER, MODEL_AUTO, };
static const char *const models[] = {
/** The frequency of the test signal (index to frequencies[]). */
unsigned int freq;
- /** Measured primary quantity (index to quantities1[]). */
- unsigned int quant1;
-
- /** Measured secondary quantity (index to quantities2[]). */
- unsigned int quant2;
-
/** Equivalent circuit model (index to models[]). */
unsigned int model;
};
return freq;
}
-static unsigned int parse_quant(const uint8_t *pkt, int is_secondary)
-{
- const uint8_t *buf;
-
- if (pkt[2] & 0x20)
- return QUANT_AUTO;
-
- buf = pkt_to_buf(pkt, is_secondary);
-
- return buf[0];
-}
-
static unsigned int parse_model(const uint8_t *pkt)
{
if (pkt[2] & 0x40)
g_variant_new_double(frequencies[freq]));
}
-static int send_quant1_update(struct sr_dev_inst *sdi, unsigned int quant)
-{
- return do_config_update(sdi, SR_CONF_MEASURED_QUANTITY,
- g_variant_new_string(quantities1[quant]));
-}
-
-static int send_quant2_update(struct sr_dev_inst *sdi, unsigned int quant)
-{
- return do_config_update(sdi, SR_CONF_MEASURED_2ND_QUANTITY,
- g_variant_new_string(quantities2[quant]));
-}
-
static int send_model_update(struct sr_dev_inst *sdi, unsigned int model)
{
return do_config_update(sdi, SR_CONF_EQUIV_CIRCUIT_MODEL,
return;
}
- val = parse_quant(pkt, 0);
- if (val != devc->quant1) {
- if (send_quant1_update(sdi, val) == SR_OK)
- devc->quant1 = val;
- else
- return;
- }
-
- val = parse_quant(pkt, 1);
- if (val != devc->quant2) {
- if (send_quant2_update(sdi, val) == SR_OK)
- devc->quant2 = val;
- else
- return;
- }
-
val = parse_model(pkt);
if (val != devc->model) {
if (send_model_update(sdi, val) == SR_OK)
case SR_CONF_OUTPUT_FREQUENCY:
*data = g_variant_new_double(frequencies[devc->freq]);
break;
- case SR_CONF_MEASURED_QUANTITY:
- *data = g_variant_new_string(quantities1[devc->quant1]);
- break;
- case SR_CONF_MEASURED_2ND_QUANTITY:
- *data = g_variant_new_string(quantities2[devc->quant2]);
- break;
case SR_CONF_EQUIV_CIRCUIT_MODEL:
*data = g_variant_new_string(models[devc->model]);
break;
SR_CONF_LIMIT_FRAMES | SR_CONF_SET,
SR_CONF_LIMIT_MSEC | SR_CONF_SET,
SR_CONF_OUTPUT_FREQUENCY | SR_CONF_GET | SR_CONF_LIST,
- SR_CONF_MEASURED_QUANTITY | SR_CONF_GET | SR_CONF_LIST,
- SR_CONF_MEASURED_2ND_QUANTITY | SR_CONF_GET | SR_CONF_LIST,
SR_CONF_EQUIV_CIRCUIT_MODEL | SR_CONF_GET | SR_CONF_LIST,
};
*data = g_variant_new_fixed_array(G_VARIANT_TYPE_DOUBLE,
frequencies, ARRAY_SIZE(frequencies), sizeof(double));
break;
- case SR_CONF_MEASURED_QUANTITY:
- *data = g_variant_new_strv(list_quantities1,
- ARRAY_SIZE(list_quantities1));
- break;
- case SR_CONF_MEASURED_2ND_QUANTITY:
- *data = g_variant_new_strv(quantities2,
- ARRAY_SIZE(quantities2));
- break;
case SR_CONF_EQUIV_CIRCUIT_MODEL:
*data = g_variant_new_strv(models, ARRAY_SIZE(models));
break;