]> sigrok.org Git - libsigrok.git/blobdiff - src/hardware/hameg-hmo/protocol.h
hameg-hmo: Add support for SR_CONF_LOGIC_THRESHOLD/_CUSTOM.
[libsigrok.git] / src / hardware / hameg-hmo / protocol.h
index 74ef3da9a0afb137f613089f692092a846f360ff..da48ce9a65ee484198a051823282dfadf474ee49 100644 (file)
@@ -46,16 +46,23 @@ struct scope_config {
        const uint32_t (*devopts)[];
        const uint8_t num_devopts;
 
-       const uint32_t (*analog_devopts)[];
-       const uint8_t num_analog_devopts;
+       const uint32_t (*devopts_cg_analog)[];
+       const uint8_t num_devopts_cg_analog;
+
+       const uint32_t (*devopts_cg_digital)[];
+       const uint8_t num_devopts_cg_digital;
 
        const char *(*coupling_options)[];
        const uint8_t num_coupling_options;
 
+       const char *(*logic_threshold)[];
+       const uint8_t num_logic_threshold;
+
        const char *(*trigger_sources)[];
        const uint8_t num_trigger_sources;
 
        const char *(*trigger_slopes)[];
+       const uint8_t num_trigger_slopes;
 
        const uint64_t (*timebases)[][2];
        const uint8_t num_timebases;
@@ -79,10 +86,17 @@ struct analog_channel_state {
        char probe_unit;
 };
 
+struct digital_pod_state {
+       gboolean state;
+
+       int threshold;
+       float user_threshold;
+};
+
 struct scope_state {
        struct analog_channel_state *analog_channels;
        gboolean *digital_channels;
-       gboolean *digital_pods;
+       struct digital_pod_state *digital_pods;
 
        int timebase;
        float horiz_triggerpos;
@@ -101,8 +115,10 @@ struct dev_context {
 
        GSList *enabled_channels;
        GSList *current_channel;
+       uint64_t num_samples;
        uint64_t num_frames;
 
+       uint64_t samples_limit;
        uint64_t frame_limit;
 
        size_t pod_count;