]> sigrok.org Git - libsigrok.git/blobdiff - src/hardware/hantek-dso/protocol.h
Backport recent changes from mainline.
[libsigrok.git] / src / hardware / hantek-dso / protocol.h
index 9cab61b351d533b0f2c1031d73a2fabad65bd553..21131613144c3d4dd82480c2ff26746720f9154e 100644 (file)
 #define DEFAULT_VOLTAGE         VDIV_500MV
 #define DEFAULT_FRAMESIZE       FRAMESIZE_SMALL
 #define DEFAULT_TIMEBASE        TIME_100us
+#define DEFAULT_SAMPLERATE      SR_KHZ(10)
 #define DEFAULT_TRIGGER_SOURCE  "CH1"
 #define DEFAULT_COUPLING        COUPLING_DC
-#define DEFAULT_HORIZ_TRIGGERPOS 0.5
+#define DEFAULT_CAPTURE_RATIO   100
 #define DEFAULT_VERT_OFFSET     0.5
 #define DEFAULT_VERT_TRIGGERPOS 0.5
 
@@ -51,6 +52,8 @@
 /* All models have this for their "fast" mode. */
 #define FRAMESIZE_SMALL         (10 * 1024)
 
+#define NUM_CHANNELS            2
+
 enum control_requests {
        CTRL_READ_EEPROM = 0xa2,
        CTRL_GETSPEED = 0xb2,
@@ -60,17 +63,27 @@ enum control_requests {
 };
 
 enum dso_commands {
-       CMD_SET_FILTERS 0,
-       CMD_SET_TRIGGER_SAMPLERATE,
-       CMD_FORCE_TRIGGER,
-       CMD_CAPTURE_START,
-       CMD_ENABLE_TRIGGER,
-       CMD_GET_CHANNELDATA,
-       CMD_GET_CAPTURESTATE,
-       CMD_SET_VOLTAGE,
+       CMD_SET_FILTERS                     = 0x0,
+       CMD_SET_TRIGGER_SAMPLERATE          = 0x1,
+       CMD_FORCE_TRIGGER                   = 0x2,
+       CMD_CAPTURE_START                   = 0x3,
+       CMD_ENABLE_TRIGGER                  = 0x4,
+       CMD_GET_CHANNELDATA                 = 0x5,
+       CMD_GET_CAPTURESTATE                = 0x6,
+       CMD_SET_VOLTAGE                     = 0x7,
        /* unused */
-       CMD_SET_LOGICALDATA,
-       CMD_GET_LOGICALDATA,
+       CMD_SET_LOGICALDATA                 = 0x8,
+       CMD_GET_LOGICALDATA                 = 0x9,
+       CMD__UNUSED1                        = 0xa,
+       /*
+        * For the following and other specials please see
+        * http://openhantek.sourceforge.net/doc/namespaceHantek.html#ac1cd181814cf3da74771c29800b39028
+        */
+       CMD_2250_SET_CHANNELS               = 0xb,
+       CMD_2250_SET_TRIGGERSOURCE          = 0xc,
+       CMD_2250_SET_RECORD_LENGTH          = 0xd,
+       CMD_2250_SET_SAMPLERATE             = 0xe,
+       CMD_2250_SET_TRIGGERPOS_AND_BUFFER  = 0xf,
 };
 
 /* Must match the coupling table. */
@@ -128,6 +141,7 @@ enum capturestates {
        CAPTURE_EMPTY = 0,
        CAPTURE_FILLING = 1,
        CAPTURE_READY_8BIT = 2,
+       CAPTURE_READY_2250 = 3,
        CAPTURE_READY_9BIT = 7,
        CAPTURE_TIMEOUT = 127,
        CAPTURE_UNKNOWN = 255,
@@ -176,6 +190,7 @@ struct dev_context {
        int dev_state;
 
        /* Oscilloscope settings. */
+       uint64_t samplerate;
        int timebase;
        gboolean ch_enabled[2];
        int voltage[2];
@@ -189,7 +204,7 @@ struct dev_context {
        gboolean filter[2];
        int triggerslope;
        char *triggersource;
-       float triggerposition;
+       uint64_t capture_ratio;
        int triggermode;
 
        /* Frame transfer */
@@ -209,5 +224,7 @@ SR_PRIV int dso_get_capturestate(const struct sr_dev_inst *sdi,
 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);
+SR_PRIV int dso_set_trigger_samplerate(const struct sr_dev_inst *sdi);
+SR_PRIV int dso_set_voffsets(const struct sr_dev_inst *sdi);
 
 #endif