]> sigrok.org Git - libsigrok.git/blobdiff - src/hardware/rigol-ds/protocol.h
Backport recent changes from mainline.
[libsigrok.git] / src / hardware / rigol-ds / protocol.h
index e77797047eac5c160d21ff21e4d1e1b424f5b394..86669b40de0ebbb6e5727d86340e136b4ad35604 100644 (file)
@@ -74,12 +74,25 @@ struct rigol_ds_series {
        int buffer_samples;
 };
 
+enum cmds {
+       CMD_GET_HORIZ_TRIGGERPOS,
+       CMD_SET_HORIZ_TRIGGERPOS,
+};
+
+struct rigol_ds_command {
+       int cmd;
+       const char *str;
+};
+
 struct rigol_ds_model {
        const struct rigol_ds_series *series;
        const char *name;
        uint64_t min_timebase[2];
        unsigned int analog_channels;
        bool has_digital;
+       const char **trigger_sources;
+       unsigned int num_trigger_sources;
+       const struct rigol_ds_command *cmds;
 };
 
 enum wait_events {
@@ -89,9 +102,7 @@ enum wait_events {
        WAIT_STOP,    /* Wait for scope stopping (only single shots) */
 };
 
-/** Private, per-device-instance driver context. */
 struct dev_context {
-       /* Device model */
        const struct rigol_ds_model *model;
        enum data_format format;
 
@@ -120,15 +131,15 @@ struct dev_context {
        float attenuation[MAX_ANALOG_CHANNELS];
        float vdiv[MAX_ANALOG_CHANNELS];
        int vert_reference[MAX_ANALOG_CHANNELS];
+       float vert_origin[MAX_ANALOG_CHANNELS];
        float vert_offset[MAX_ANALOG_CHANNELS];
+       float vert_inc[MAX_ANALOG_CHANNELS];
        char *trigger_source;
        float horiz_triggerpos;
        char *trigger_slope;
        float trigger_level;
        char *coupling[MAX_ANALOG_CHANNELS];
 
-       /* Operational state */
-
        /* Number of frames received in total. */
        uint64_t num_frames;
        /* GSList entry for the current channel. */