]> sigrok.org Git - libsigrok.git/blobdiff - src/hardware/agilent-dmm/protocol.h
rigol-ds: Fix reading data from internal memory
[libsigrok.git] / src / hardware / agilent-dmm / protocol.h
index 796cc6722c7eef2157e853519d57a79c4dc6e9da..540d0e6e1e4701b9e84f919a6705d22248859da7 100644 (file)
 /* Always USB-serial, 1ms is plenty. */
 #define SERIAL_WRITE_TIMEOUT_MS 1
 
+#define DEFAULT_DATA_SOURCE    DATA_SOURCE_LIVE
+
+enum {
+       DATA_SOURCE_LIVE,
+       DATA_SOURCE_LOG_HAND,
+       DATA_SOURCE_LOG_TRIG,
+       DATA_SOURCE_LOG_AUTO,
+       DATA_SOURCE_LOG_EXPO,
+};
+
 /* Supported models */
 enum {
        AGILENT_U1231 = 1,
@@ -37,10 +47,18 @@ enum {
        AGILENT_U1241,
        AGILENT_U1242,
 
+       KEYSIGHT_U1241C,
+       KEYSIGHT_U1242C,
+
        AGILENT_U1251,
        AGILENT_U1252,
        AGILENT_U1253,
 
+       AGILENT_U1271,
+       AGILENT_U1272,
+       AGILENT_U1273,
+       AGILENT_U1273AX,
+
        KEYSIGHT_U1281,
        KEYSIGHT_U1282,
 };
@@ -50,16 +68,17 @@ struct agdmm_profile {
        int model;
        const char *modelname;
        int nb_channels;
-       const struct agdmm_job *jobs;
+       const struct agdmm_job *jobs_live;
+       const struct agdmm_job *jobs_log;
        const struct agdmm_recv *recvs;
 };
 
-/* Private, per-device-instance driver context. */
 struct dev_context {
        const struct agdmm_profile *profile;
        struct sr_sw_limits limits;
+       int data_source;
 
-       /* Runtime. */
+       const struct agdmm_job *jobs;
        int current_job;
        gboolean job_running;
        gboolean job_again;
@@ -69,6 +88,7 @@ struct dev_context {
        uint64_t cur_samplerate;
        struct sr_channel *cur_channel;
        struct sr_channel *cur_conf;
+       int cur_sample;
        int cur_mq[MAX_CHANNELS];
        int cur_unit[MAX_CHANNELS];
        int cur_mqflags[MAX_CHANNELS];
@@ -83,6 +103,7 @@ struct dev_context {
 
 enum job_type {
        JOB_AGAIN = 1,
+       JOB_STOP,
        JOB_CONF,
        JOB_STAT,
        JOB_FETC,