- struct ftdi_context ftdic;
- uint64_t samplerate;
- struct sr_sw_limits cfg_limits; /* Configured limits (user specified). */
- struct sr_sw_limits acq_limits; /* Acquisition limits (internal use). */
- struct sr_sw_limits feed_limits; /* Datafeed limits (internal use). */
- int cur_firmware;
- int num_channels;
- int samples_per_event;
+ struct {
+ struct ftdi_context ctx;
+ gboolean is_open, must_close;
+ } ftdi;
+ struct {
+ uint64_t samplerate;
+ gboolean use_ext_clock;
+ size_t clock_pin;
+ enum ext_clock_edge_t clock_edge;
+ } clock;
+ struct {
+ /*
+ * User specified configuration values, in contrast to
+ * internal arrangement of acquisition, and submission
+ * to the session feed.
+ */
+ struct sr_sw_limits config;
+ struct sr_sw_limits acquire;
+ struct sr_sw_limits submit;
+ } limit;
+ enum sigma_firmware_idx firmware_idx;
+ struct sigma_sample_interp {
+ /* Interpretation of sample memory. */
+ size_t num_channels;
+ size_t samples_per_event;
+ struct {
+ uint16_t ts;
+ uint16_t sample;
+ } last;
+ struct sigma_location {
+ size_t raw, line, cluster, event;
+ } start, stop, trig, iter, trig_arm;
+ struct {
+ size_t lines_total, lines_done;
+ size_t lines_per_read; /* USB transfer limit */
+ size_t lines_rcvd;
+ struct sigma_dram_line *rcvd_lines;
+ struct sigma_dram_line *curr_line;
+ } fetch;
+ struct {
+ gboolean armed;
+ gboolean matched;
+ size_t evt_remain;
+ } trig_chk;
+ } interp;