#include <stdint.h>
#include <glib.h>
-#include <unistd.h> /* pipe() */
-#include "libsigrok.h"
+#include <unistd.h>
+#include <libsigrok/libsigrok.h>
#include "libsigrok-internal.h"
#define LOG_PREFIX "baylibre-acme"
#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,
PROBE_TEMP,
};
-enum channel_type {
- ENRG_PWR = 1,
- ENRG_CURR,
- ENRG_VOL,
- TEMP_IN,
- TEMP_OUT,
-};
-
/** Private, per-device-instance driver context. */
struct dev_context {
uint64_t samplerate;
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;
};
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