- if (packet->type == SR_DF_ANALOG) {
- if (cdtime() - cfdev->last_dispatch < cfdev->min_dispatch_interval)
- return;
-
- analog = packet->payload;
- num_probes = g_slist_length(analog->probes);
- if (!(values = malloc(sizeof(value_t) * num_probes))) {
- ERROR("malloc() failed.");
- return;
- }
- for (s = 0; s < analog->num_samples; s++) {
- for (p = 0; p < num_probes; p++) {
- values[s + p].gauge = analog->data[s + p];
- }
- }
- vl.values = values;
- vl.values_len = num_probes;
- sstrncpy(vl.host, hostname_g, sizeof(vl.host));
- sstrncpy(vl.plugin, "sigrok", sizeof(vl.plugin));
- ssnprintf(vl.plugin_instance, sizeof(vl.plugin_instance),
- "%s", cfdev->name);
- sstrncpy(vl.type, "gauge", sizeof(vl.type));
- plugin_dispatch_values(&vl);
-
- cfdev->last_dispatch = cdtime();
+ if (packet->type == SR_DF_END) {
+ /* TODO: try to restart acquisition after a delay? */
+ WARNING("sigrok plugin: acquisition for \"%s\" ended.",
+ cfdev->name);
+ return;