#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
SR_KHZ(100),
#define SAMPLERATE_REGS \
- 48, 30, 24, 16, 8, 4, 1, 50, 20, 10,
+ 48, 30, 24, 16, 8, 4, 1, 50, 20, 10,
#define VDIV_VALUES \
{ 100, 1000 }, \
#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
SAMPLERATE_REG = 0xe2,
TRIGGER_REG = 0xe3,
CHANNELS_REG = 0xe4,
+ COUPLING_REG = 0xe5,
};
enum states {
STOPPING,
};
+enum couplings {
+ COUPLING_AC = 0,
+ COUPLING_DC,
+};
+
struct hantek_6xxx_profile {
/* VID/PID after cold boot */
uint16_t orig_vid;
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
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;
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);