struct dev_context *devc;
devc = g_malloc0(sizeof(struct dev_context));
-
- /* Device-specific settings */
- devc->max_samples = devc->max_samplerate = devc->protocol_version = 0;
-
- /* Acquisition settings */
- devc->limit_samples = devc->capture_ratio = 0;
devc->trigger_at = -1;
- devc->flag_reg = 0;
return devc;
}
devc->max_channels = num_chan;
}
+static void metadata_quirks(struct sr_dev_inst *sdi)
+{
+ struct dev_context *devc;
+ gboolean is_shrimp;
+
+ if (!sdi)
+ return;
+ devc = sdi->priv;
+ if (!devc)
+ return;
+
+ is_shrimp = sdi->model && strcmp(sdi->model, "Shrimp1.0") == 0;
+ if (is_shrimp) {
+ if (!devc->max_channels)
+ ols_channel_new(sdi, 4);
+ if (!devc->max_samples)
+ devc->max_samples = 256 * 1024;
+ if (!devc->max_samplerate)
+ devc->max_samplerate = SR_MHZ(20);
+ }
+}
+
SR_PRIV struct sr_dev_inst *get_metadata(struct sr_serial_dev_inst *serial)
{
struct sr_dev_inst *sdi;
g_string_free(devname, FALSE);
g_string_free(version, FALSE);
+ /* Optionally amend received metadata, model specific quirks. */
+ metadata_quirks(sdi);
+
return sdi;
}
}
/* Send the trigger. */
- packet.type = SR_DF_TRIGGER;
- sr_session_send(sdi, &packet);
+ std_session_send_df_trigger(sdi);
/* Send post-trigger samples. */
packet.type = SR_DF_LOGIC;