]> sigrok.org Git - libsigrok.git/blobdiff - hardware/tekpower-dmm/protocol.h
tekpower-dmm: Generalize & first-class TP4000ZC driver.
[libsigrok.git] / hardware / tekpower-dmm / protocol.h
index e797515b67a33781ebaf74fb5da1dc434617f267..e37224834513833af590fbe9054f94955247de97 100644 (file)
 #define sr_warn(s, args...) sr_warn(DRIVER_LOG_DOMAIN s, ## args)
 #define sr_err(s, args...) sr_err(DRIVER_LOG_DOMAIN s, ## args)
 
-#define DMM_BUFSIZE            256
+enum {
+       TEKPOWER_TP4000ZC,
+};
+
+struct dmm_info {
+       char *vendor;
+       char *device;
+       char *conn;
+       uint32_t baudrate;
+       int packet_size;
+       gboolean (*packet_valid)(const uint8_t *);
+       int (*packet_parse)(const uint8_t *, float *,
+                           struct sr_datafeed_analog *, void *);
+       void (*dmm_details)(struct sr_datafeed_analog *, void *);
+};
+
+SR_PRIV struct dmm_info dmms[1];
+
+#define DMM_BUFSIZE 256
 
 /** Private, per-device-instance driver context. */
 struct dev_context {
@@ -43,13 +61,13 @@ struct dev_context {
        uint64_t num_samples;
 
        struct sr_serial_dev_inst *serial;
-       char *serialcomm;
 
        uint8_t buf[DMM_BUFSIZE];
        int bufoffset;
        int buflen;
 };
 
-SR_PRIV int tekpower_dmm_receive_data(int fd, int revents, void *cb_data);
+SR_PRIV int tekpower_tp4000zc_receive_data(int fd, int revents, void *cb_data);
+SR_PRIV void dmm_details_tp4000zc(struct sr_datafeed_analog *analog, void *info);
 
 #endif