]> sigrok.org Git - libsigrok.git/blobdiff - src/hardware/hantek-6xxx/protocol.h
hantek-6xxx: Add ISDS205B support
[libsigrok.git] / src / hardware / hantek-6xxx / protocol.h
index 0e3e04d4a160c656e9c5f78aa982e25fc031e3d3..35d2a97f2ef242911d2e4ce461e131592dada1af 100644 (file)
        48, 30, 24, 16, 8, 4, 1, 50, 20, 10,
 
 #define VDIV_VALUES \
-       { 100, 1000 }, \
-       { 250, 1000 }, \
+       { 1, 1 }, \
        { 500, 1000 }, \
-       { 1, 1 },
+       { 250, 1000 }, \
+       { 100, 1000 },
+
+#define VDIV_VALUES_INSTRUSTAR \
+       { 128, 100 }, \
+       { 705, 1000 }, \
+       { 288, 1000 }, \
+       { 140, 1000 }, \
+       { 576, 10000 }, \
+       { 176, 10000 },
 
 #define VDIV_REG \
-       10, 5, 2, 1,
+       1, 2, 5, 10, 11, 12, 13,
 
 #define VDIV_MULTIPLIER                10
 
 #define FLUSH_PACKET_SIZE      1024
 
 #define MIN_PACKET_SIZE                512
+#ifdef _WIN32
+#define MAX_PACKET_SIZE                (2 * 1024 * 1024)
+#else
 #define MAX_PACKET_SIZE                (12 * 1024 * 1024)
+#endif
 
 #define HANTEK_EP_IN           0x86
 #define USB_INTERFACE          0
@@ -94,12 +106,15 @@ struct hantek_6xxx_profile {
        /* VID/PID after firmware upload */
        uint16_t fw_vid;
        uint16_t fw_pid;
+       uint16_t fw_prod_ver;
        const char *vendor;
        const char *model;
        const char *firmware;
        const char **coupling_vals;
        uint8_t coupling_tab_size;
        gboolean has_coupling;
+       const uint64_t (*vdivs)[2];
+       const uint32_t vdivs_size;
 };
 
 struct dev_context {
@@ -117,11 +132,6 @@ struct dev_context {
        uint64_t aq_started;
 
        uint64_t read_start_ts;
-       uint32_t read_data_amount;
-
-       struct libusb_transfer **sample_buf;
-       uint32_t sample_buf_write;
-       uint32_t sample_buf_size;
 
        gboolean ch_enabled[NUM_CHANNELS];
        int voltage[NUM_CHANNELS];
@@ -130,6 +140,8 @@ struct dev_context {
        uint8_t coupling_tab_size;
        gboolean has_coupling;
        uint64_t samplerate;
+       const uint64_t (*vdivs)[2];
+       uint8_t vdivs_size;
 
        uint64_t limit_msec;
        uint64_t limit_samples;