X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;ds=inline;f=src%2Fhardware%2Fscpi-dmm%2Fprotocol.h;h=8146c4555402511f8532dc479778e4472e1f9b80;hb=a0418c20d8eebb4ed127b04256e1b7a1dc2bdc7e;hp=6af9496940aab6d62b53d33741fa2080b79b878e;hpb=7fcdc35e1709c37b2c3175dda3c3c217e331717d;p=libsigrok.git diff --git a/src/hardware/scpi-dmm/protocol.h b/src/hardware/scpi-dmm/protocol.h index 6af94969..8146c455 100644 --- a/src/hardware/scpi-dmm/protocol.h +++ b/src/hardware/scpi-dmm/protocol.h @@ -41,6 +41,10 @@ enum scpi_dmm_cmdcode { DMM_CMD_QUERY_VALUE, DMM_CMD_QUERY_PREC, DMM_CMD_SETUP_LOCAL, + DMM_CMD_QUERY_RANGE_AUTO, + DMM_CMD_QUERY_RANGE, + DMM_CMD_SETUP_RANGE_AUTO, + DMM_CMD_SETUP_RANGE, }; struct mqopt_item { @@ -66,6 +70,10 @@ struct scpi_dmm_model { unsigned int read_timeout_us; /* If zero, use default from src/scpi/scpi.c. */ float infinity_limit; /* If zero, use default from protocol.c */ gboolean check_opc; + const char *(*get_range_text)(const struct sr_dev_inst *sdi); + int (*set_range_from_text)(const struct sr_dev_inst *sdi, + const char *range); + GVariant *(*get_range_text_list)(const struct sr_dev_inst *sdi); }; struct dev_context { @@ -87,6 +95,7 @@ struct dev_context { struct sr_analog_spec spec[SCPI_DMM_MAX_CHANNELS]; } run_acq_info; gchar *precision; + char range_text[32]; }; SR_PRIV void scpi_dmm_cmd_delay(struct sr_scpi_dev_inst *scpi); @@ -99,6 +108,10 @@ SR_PRIV int scpi_dmm_get_mq(const struct sr_dev_inst *sdi, const struct mqopt_item **mqitem); SR_PRIV int scpi_dmm_set_mq(const struct sr_dev_inst *sdi, enum sr_mq mq, enum sr_mqflag flag); +SR_PRIV const char *scpi_dmm_get_range_text(const struct sr_dev_inst *sdi); +SR_PRIV int scpi_dmm_set_range_from_text(const struct sr_dev_inst *sdi, + const char *range); +SR_PRIV GVariant *scpi_dmm_get_range_text_list(const struct sr_dev_inst *sdi); SR_PRIV int scpi_dmm_get_meas_agilent(const struct sr_dev_inst *sdi, size_t ch); SR_PRIV int scpi_dmm_get_meas_gwinstek(const struct sr_dev_inst *sdi, size_t ch); SR_PRIV int scpi_dmm_receive_data(int fd, int revents, void *cb_data);