X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Frigol-ds%2Fprotocol.h;h=e77797047eac5c160d21ff21e4d1e1b424f5b394;hb=6c23b710ec21b6937be059aa7cb14313e929ec7c;hp=0117628ca04e72e6451d4b5680c670889db19497;hpb=155b680da482cea2381becb73c51cfb838bff31e;p=libsigrok.git diff --git a/src/hardware/rigol-ds/protocol.h b/src/hardware/rigol-ds/protocol.h index 0117628c..e7779704 100644 --- a/src/hardware/rigol-ds/protocol.h +++ b/src/hardware/rigol-ds/protocol.h @@ -23,13 +23,16 @@ #include #include -#include "libsigrok.h" +#include #include "libsigrok-internal.h" #define LOG_PREFIX "rigol-ds" /* Size of acquisition buffers */ -#define ACQ_BUFFER_SIZE 32768 +#define ACQ_BUFFER_SIZE (32 * 1024) + +/* Maximum number of samples to retrieve at once. */ +#define ACQ_BLOCK_SIZE (30 * 1000) #define MAX_ANALOG_CHANNELS 4 #define MAX_DIGITAL_CHANNELS 16 @@ -38,6 +41,7 @@ enum protocol_version { PROTOCOL_V1, /* VS5000 */ PROTOCOL_V2, /* DS1000 */ PROTOCOL_V3, /* DS2000, DSO1000 */ + PROTOCOL_V4, /* DS1000Z */ }; enum data_format { @@ -98,14 +102,12 @@ struct dev_context { uint64_t num_vdivs; /* Channel groups */ - struct sr_channel_group analog_groups[MAX_ANALOG_CHANNELS]; - struct sr_channel_group digital_group; + struct sr_channel_group **analog_groups; + struct sr_channel_group *digital_group; /* Acquisition settings */ - GSList *enabled_analog_channels; - GSList *enabled_digital_channels; + GSList *enabled_channels; uint64_t limit_frames; - void *cb_data; enum data_source data_source; uint64_t analog_frame_size; uint64_t digital_frame_size; @@ -115,12 +117,14 @@ struct dev_context { gboolean digital_channels[MAX_DIGITAL_CHANNELS]; gboolean la_enabled; float timebase; + float attenuation[MAX_ANALOG_CHANNELS]; float vdiv[MAX_ANALOG_CHANNELS]; int vert_reference[MAX_ANALOG_CHANNELS]; float vert_offset[MAX_ANALOG_CHANNELS]; char *trigger_source; float horiz_triggerpos; char *trigger_slope; + float trigger_level; char *coupling[MAX_ANALOG_CHANNELS]; /* Operational state */ @@ -151,5 +155,6 @@ SR_PRIV int rigol_ds_capture_start(const struct sr_dev_inst *sdi); SR_PRIV int rigol_ds_channel_start(const struct sr_dev_inst *sdi); SR_PRIV int rigol_ds_receive(int fd, int revents, void *cb_data); SR_PRIV int rigol_ds_get_dev_cfg(const struct sr_dev_inst *sdi); +SR_PRIV int rigol_ds_get_dev_cfg_vertical(const struct sr_dev_inst *sdi); #endif