]> sigrok.org Git - libsigrok.git/blobdiff - src/hardware/hantek-6xxx/protocol.h
hantek-6xxx: Ignore requests to set Hantek 6022BE coupling.
[libsigrok.git] / src / hardware / hantek-6xxx / protocol.h
index 7c8de938db05fcf4fad8e901313625ae708f59c3..c32792e3c898712d0486485e0cba5221e27080d0 100644 (file)
@@ -31,6 +31,7 @@
 #define MAX_RENUM_DELAY_MS     3000
 
 #define DEFAULT_VOLTAGE                2
+#define DEFAULT_COUPLING        COUPLING_DC
 #define DEFAULT_SAMPLERATE     SR_MHZ(8)
 
 #define NUM_CHANNELS           2
@@ -56,9 +57,9 @@
 #define VDIV_MULTIPLIER                10
 
 /* Weird flushing needed for filtering glitch away. */
-#define FLUSH_PACKET_SIZE      2600
+#define FLUSH_PACKET_SIZE      1024
 
-#define MIN_PACKET_SIZE                600
+#define MIN_PACKET_SIZE                512
 #define MAX_PACKET_SIZE                (12 * 1024 * 1024)
 
 #define HANTEK_EP_IN           0x86
@@ -71,6 +72,7 @@ enum control_requests {
        SAMPLERATE_REG = 0xe2,
        TRIGGER_REG    = 0xe3,
        CHANNELS_REG   = 0xe4,
+       COUPLING_REG   = 0xe5,
 };
 
 enum states {
@@ -80,6 +82,11 @@ enum states {
        STOPPING,
 };
 
+enum couplings {
+       COUPLING_AC = 0,
+       COUPLING_DC,
+};
+
 struct hantek_6xxx_profile {
        /* VID/PID after cold boot */
        uint16_t orig_vid;
@@ -90,11 +97,13 @@ struct hantek_6xxx_profile {
        const char *vendor;
        const char *model;
        const char *firmware;
+       const char **coupling_vals;
+       uint8_t coupling_tab_size;
+       gboolean has_coupling;
 };
 
 struct dev_context {
        const struct hantek_6xxx_profile *profile;
-       void *cb_data;
        GSList *enabled_channels;
        /*
         * We can't keep track of an FX2-based device after upgrading
@@ -116,6 +125,10 @@ struct dev_context {
 
        gboolean ch_enabled[NUM_CHANNELS];
        int voltage[NUM_CHANNELS];
+       int coupling[NUM_CHANNELS];
+       const char **coupling_vals;
+       uint8_t coupling_tab_size;
+       gboolean has_coupling;
        uint64_t samplerate;
 
        uint64_t limit_msec;
@@ -130,6 +143,7 @@ SR_PRIV int hantek_6xxx_get_channeldata(const struct sr_dev_inst *sdi,
 SR_PRIV int hantek_6xxx_start_data_collecting(const struct sr_dev_inst *sdi);
 SR_PRIV int hantek_6xxx_stop_data_collecting(const struct sr_dev_inst *sdi);
 
+SR_PRIV int hantek_6xxx_update_coupling(const struct sr_dev_inst *sdi);
 SR_PRIV int hantek_6xxx_update_samplerate(const struct sr_dev_inst *sdi);
 SR_PRIV int hantek_6xxx_update_vdiv(const struct sr_dev_inst *sdi);
 SR_PRIV int hantek_6xxx_update_channels(const struct sr_dev_inst *sdi);