]> sigrok.org Git - libsigrok.git/blobdiff - hardware/hantek-dso/dso.h
Centralise duplicated logging helper defines.
[libsigrok.git] / hardware / hantek-dso / dso.h
index beabbd5b205fac7810b6c6ba167dbd5169b508ec..16826db2623c62e152c3f37ef231a8a2e9e8398b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * This file is part of the sigrok project.
+ * This file is part of the libsigrok project.
  *
  * Copyright (C) 2012 Bert Vermeulen <bert@biot.com>
  * With protocol information from the hantekdso project,
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#ifndef LIBSIGROK_HARDWARE_HANTEK_DSO_H
-#define LIBSIGROK_HARDWARE_HANTEK_DSO_H
+#ifndef LIBSIGROK_HARDWARE_HANTEK_DSO_DSO_H
+#define LIBSIGROK_HARDWARE_HANTEK_DSO_DSO_H
 
-/* Message logging helpers with driver-specific prefix string. */
-#define DRIVER_LOG_DOMAIN "hantek-dso: "
-#define sr_log(l, s, args...) sr_log(l, DRIVER_LOG_DOMAIN s, ## args)
-#define sr_spew(s, args...) sr_spew(DRIVER_LOG_DOMAIN s, ## args)
-#define sr_dbg(s, args...) sr_dbg(DRIVER_LOG_DOMAIN s, ## args)
-#define sr_info(s, args...) sr_info(DRIVER_LOG_DOMAIN s, ## args)
-#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 LOG_PREFIX "hantek-dso"
 
-#define USB_INTERFACE                  0
-#define USB_CONFIGURATION              1
-#define DSO_EP_IN                      0x86
-#define DSO_EP_OUT                     0x02
+#define USB_INTERFACE           0
+#define USB_CONFIGURATION       1
+#define DSO_EP_IN               0x86
+#define DSO_EP_OUT              0x02
 
 /* FX2 renumeration delay in ms */
-#define MAX_RENUM_DELAY_MS             3000
+#define MAX_RENUM_DELAY_MS      3000
 
-#define MAX_CAPTURE_EMPTY              3
+#define MAX_CAPTURE_EMPTY       3
 
-#define DEFAULT_VOLTAGE                        VDIV_500MV
-#define DEFAULT_FRAMESIZE              FRAMESIZE_SMALL
-#define DEFAULT_TIMEBASE               TIME_100us
-#define DEFAULT_TRIGGER_SOURCE         "CH1"
-#define DEFAULT_COUPLING               COUPLING_DC
-#define DEFAULT_HORIZ_TRIGGERPOS       0.5
-#define DEFAULT_VERT_OFFSET            0.5
-#define DEFAULT_VERT_TRIGGERPOS                0.5
+#define DEFAULT_VOLTAGE         VDIV_500MV
+#define DEFAULT_FRAMESIZE       FRAMESIZE_SMALL
+#define DEFAULT_TIMEBASE        TIME_100us
+#define DEFAULT_TRIGGER_SOURCE  "CH1"
+#define DEFAULT_COUPLING        COUPLING_DC
+#define DEFAULT_HORIZ_TRIGGERPOS 0.5
+#define DEFAULT_VERT_OFFSET     0.5
+#define DEFAULT_VERT_TRIGGERPOS 0.5
 
-#define MAX_VERT_TRIGGER               0xfe
+#define MAX_VERT_TRIGGER        0xfe
 
 /* Hantek DSO-specific protocol values */
-#define EEPROM_CHANNEL_OFFSETS         0x08
+#define EEPROM_CHANNEL_OFFSETS  0x08
 
-#define FRAMESIZE_SMALL                        10240
-#define FRAMESIZE_LARGE                        32768
+/* All models have this for their "fast" mode. */
+#define FRAMESIZE_SMALL         10240
 
 enum control_requests {
        CTRL_READ_EEPROM = 0xa2,
@@ -76,8 +69,8 @@ enum dso_commands {
        CMD_GET_CAPTURESTATE,
        CMD_SET_VOLTAGE,
        /* unused */
-       cmdSetLogicalData,
-       cmdGetLogicalData,
+       CMD_SET_LOGICALDATA,
+       CMD_GET_LOGICALDATA,
 };
 
 /* Must match the coupling table. */
@@ -163,12 +156,12 @@ struct dso_profile {
        uint16_t fw_pid;
        char *vendor;
        char *model;
+       const uint64_t *buffersizes;
        char *firmware;
 };
 
 struct dev_context {
        const struct dso_profile *profile;
-       struct sr_usb_dev_inst *usb;
        void *cb_data;
        uint64_t limit_frames;
        uint64_t num_frames;
@@ -214,12 +207,12 @@ struct dev_context {
 
 SR_PRIV int dso_open(struct sr_dev_inst *sdi);
 SR_PRIV void dso_close(struct sr_dev_inst *sdi);
-SR_PRIV int dso_enable_trigger(struct dev_context *devc);
-SR_PRIV int dso_force_trigger(struct dev_context *devc);
-SR_PRIV int dso_init(struct dev_context *devc);
-SR_PRIV int dso_get_capturestate(struct dev_context *devc,
+SR_PRIV int dso_enable_trigger(const struct sr_dev_inst *sdi);
+SR_PRIV int dso_force_trigger(const struct sr_dev_inst *sdi);
+SR_PRIV int dso_init(const struct sr_dev_inst *sdi);
+SR_PRIV int dso_get_capturestate(const struct sr_dev_inst *sdi,
                uint8_t *capturestate, uint32_t *trigger_offset);
-SR_PRIV int dso_capture_start(struct dev_context *devc);
+SR_PRIV int dso_capture_start(const struct sr_dev_inst *sdi);
 SR_PRIV int dso_get_channeldata(const struct sr_dev_inst *sdi,
                libusb_transfer_cb_fn cb);