/*
- * This file is part of the sigrok project.
+ * This file is part of the libsigrok project.
*
* Copyright (C) 2013 Bert Vermeulen <bert@biot.com>
*
#include "libsigrok.h"
#include "libsigrok-internal.h"
-/* Message logging helpers with driver-specific prefix string. */
-#define DRIVER_LOG_DOMAIN "ols: "
-#define sr_log(l, s, args...) sr_log(l, DRIVER_LOG_DOMAIN s, ## args)
-#define sr_spew(s, args...) sr_spew(DRIVER_LOG_DOMAIN s, ## args)
-#define sr_dbg(s, args...) sr_dbg(DRIVER_LOG_DOMAIN s, ## args)
-#define sr_info(s, args...) sr_info(DRIVER_LOG_DOMAIN s, ## args)
-#define sr_warn(s, args...) sr_warn(DRIVER_LOG_DOMAIN s, ## args)
-#define sr_err(s, args...) sr_err(DRIVER_LOG_DOMAIN s, ## args)
+/* Message logging helpers with subsystem-specific prefix string. */
+#define LOG_PREFIX "ols: "
+#define sr_log(l, s, args...) sr_log(l, LOG_PREFIX s, ## args)
+#define sr_spew(s, args...) sr_spew(LOG_PREFIX s, ## args)
+#define sr_dbg(s, args...) sr_dbg(LOG_PREFIX s, ## args)
+#define sr_info(s, args...) sr_info(LOG_PREFIX s, ## args)
+#define sr_warn(s, args...) sr_warn(LOG_PREFIX s, ## args)
+#define sr_err(s, args...) sr_err(LOG_PREFIX s, ## args)
#define NUM_PROBES 32
#define NUM_TRIGGER_STAGES 4
#define SERIAL_SPEED B115200
#define CLOCK_RATE SR_MHZ(100)
#define MIN_NUM_SAMPLES 4
+#define DEFAULT_SAMPLERATE SR_KHZ(200)
/* Command opcodes */
#define CMD_RESET 0x00
/* Private, per-device-instance driver context. */
struct dev_context {
- uint32_t max_samplerate;
+ /* Fixed device settings */
uint32_t max_samples;
+ uint32_t max_samplerate;
uint32_t protocol_version;
+ /* Acquisition settings */
uint64_t cur_samplerate;
uint32_t cur_samplerate_divider;
uint64_t limit_samples;
- /* Current state of the flag register */
- uint32_t flag_reg;
-
- /* Pre/post trigger capture ratio, in percentage.
- * 0 means no pre-trigger data. */
int capture_ratio;
int trigger_at;
uint32_t probe_mask;
uint32_t trigger_mask[4];
uint32_t trigger_value[4];
int num_stages;
+ uint32_t flag_reg;
+ /* Operational states */
unsigned int num_transfers;
unsigned int num_samples;
- int rle_count;
int num_bytes;
+
+ /* Temporary variables */
+ int rle_count;
unsigned char sample[4];
unsigned char tmp_sample[4];
unsigned char *raw_sample_buf;
-
- struct sr_serial_dev_inst *serial;
};
SR_PRIV struct dev_context *ols_dev_new(void);
SR_PRIV struct sr_dev_inst *get_metadata(struct sr_serial_dev_inst *serial);
SR_PRIV int ols_set_samplerate(const struct sr_dev_inst *sdi,
- uint64_t samplerate,
- const struct sr_samplerates *samplerates);
+ uint64_t samplerate);
SR_PRIV void abort_acquisition(const struct sr_dev_inst *sdi);
SR_PRIV int ols_receive_data(int fd, int revents, void *cb_data);