]> sigrok.org Git - libsigrok.git/blobdiff - src/hardware/baylibre-acme/protocol.h
baylibre-acme: Add a workaround for slow data acquisition.
[libsigrok.git] / src / hardware / baylibre-acme / protocol.h
index 5252118815b7070af1e87c76cd7603db0f64247f..a3f4452c12e1d67ae2ce07fdd55e904c133d1985 100644 (file)
@@ -22,7 +22,7 @@
 
 #include <stdint.h>
 #include <glib.h>
-#include <unistd.h> /* pipe() */
+#include <unistd.h>
 #include "libsigrok.h"
 #include "libsigrok-internal.h"
 
@@ -42,7 +42,7 @@
 #define TEMP_PROBE_NAME                "tmp435"
 
 /* For the user we number the probes starting from 1. */
-#define PROBE_NUM(n) ((n)+1)
+#define PROBE_NUM(n) ((n) + 1)
 
 enum probe_type {
        PROBE_ENRG = 1,
@@ -65,9 +65,10 @@ struct dev_context {
 
        uint32_t num_channels;
        uint64_t samples_read;
+       uint64_t samples_missed;
        int64_t start_time;
        int64_t last_sample_fin;
-       int pipe_fds[2];
+       int timer_fd;
        GIOChannel *channel;
 };
 
@@ -81,6 +82,24 @@ SR_PRIV gboolean bl_acme_detect_probe(unsigned int addr,
 SR_PRIV gboolean bl_acme_register_probe(struct sr_dev_inst *sdi, int type,
                                        unsigned int addr, int prb_num);
 
+SR_PRIV int bl_acme_get_probe_type(const struct sr_channel_group *cg);
+SR_PRIV int bl_acme_probe_has_pws(const struct sr_channel_group *cg);
+
+SR_PRIV void bl_acme_maybe_set_update_interval(const struct sr_dev_inst *sdi,
+                                              uint64_t samplerate);
+
+SR_PRIV int bl_acme_get_shunt(const struct sr_channel_group *cg,
+                             uint64_t *shunt);
+SR_PRIV int bl_acme_set_shunt(const struct sr_channel_group *cg,
+                             uint64_t shunt);
+SR_PRIV int bl_acme_read_power_state(const struct sr_channel_group *cg,
+                                    gboolean *off);
+SR_PRIV int bl_acme_set_power_off(const struct sr_channel_group *cg,
+                                 gboolean off);
+
 SR_PRIV int bl_acme_receive_data(int fd, int revents, void *cb_data);
 
+SR_PRIV int bl_acme_open_channel(struct sr_channel *ch);
+
+SR_PRIV void bl_acme_close_channel(struct sr_channel *ch);
 #endif