X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fhp-3457a%2Fprotocol.h;h=407756eb76428fb8a20e9d5f1c6a5cae52bc975f;hb=1f706c21a2977c768692f72d09b35633628d2b0d;hp=a245b7718a39474ea43bd23352d93af3f6d60d1b;hpb=00b2a092c3e4b0ab9a12b44a50c6b271f4cf71f8;p=libsigrok.git diff --git a/src/hardware/hp-3457a/protocol.h b/src/hardware/hp-3457a/protocol.h index a245b771..407756eb 100644 --- a/src/hardware/hp-3457a/protocol.h +++ b/src/hardware/hp-3457a/protocol.h @@ -21,24 +21,56 @@ #define LIBSIGROK_HARDWARE_HP_3457A_PROTOCOL_H #include -#include -#include #include "libsigrok-internal.h" #define LOG_PREFIX "hp-3457a" +/* Information about the rear card option currently installed. */ +enum card_type { + CARD_UNKNOWN, + REAR_TERMINALS, + HP_44491A, + HP_44492A, +}; + +struct rear_card_info { + unsigned int card_id; + enum card_type type; + const char *name; + const char *cg_name; +}; + +/* Possible states in an acquisition. */ +enum acquisition_state { + ACQ_TRIGGERED_MEASUREMENT, + ACQ_REQUESTED_HIRES, + ACQ_REQUESTED_RANGE, + ACQ_GOT_MEASUREMENT, +}; + /** Private, per-device-instance driver context. */ struct dev_context { /* Model-specific information */ + /* Information about rear card option, or NULL if unknown */ + const struct rear_card_info *rear_card; /* Acquisition settings */ + enum sr_mq measurement_mq; + enum sr_unit measurement_unit; + uint64_t limit_samples; + float nplc; /* Operational state */ - - /* Temporary state across callbacks */ - + enum acquisition_state acq_state; + uint64_t num_samples; + double base_measurement; + double hires_register; + double measurement_range; }; +SR_PRIV const struct rear_card_info *hp_3457a_probe_rear_card(struct sr_scpi_dev_inst *scpi); SR_PRIV int hp_3457a_receive_data(int fd, int revents, void *cb_data); +SR_PRIV int hp_3457a_set_mq(const struct sr_dev_inst *sdi, enum sr_mq mq); +SR_PRIV int hp_3457a_set_nplc(const struct sr_dev_inst *sdi, float nplc); #endif