siglent-sds: Added averaging function.

This commit is contained in:
marchelh 2018-02-25 09:14:57 +01:00 committed by Uwe Hermann
parent 80eba3857a
commit fe1aa53613
2 changed files with 18 additions and 3 deletions

View File

@ -682,6 +682,14 @@ static int config_set(uint32_t key, GVariant *data,
siglent_sds_get_dev_cfg_horizontal(sdi); siglent_sds_get_dev_cfg_horizontal(sdi);
data = g_variant_new_uint64(devc->samplerate); data = g_variant_new_uint64(devc->samplerate);
break; break;
case SR_CONF_AVERAGING:
devc->average_enabled = g_variant_get_boolean(data);
sr_dbg("%s averaging", devc->average_enabled ? "Enabling" : "Disabling");
break;
case SR_CONF_AVG_SAMPLES:
devc->average_samples = g_variant_get_uint64(data);
sr_dbg("Setting averaging rate to %" PRIu64, devc->average_samples);
break;
default: default:
return SR_ERR_NA; return SR_ERR_NA;
} }
@ -767,7 +775,7 @@ static int config_list(uint32_t key, GVariant **data,
*data = g_variant_new_int32(devc->model->series->num_horizontal_divs); *data = g_variant_new_int32(devc->model->series->num_horizontal_divs);
break; break;
case SR_CONF_AVERAGING: case SR_CONF_AVERAGING:
/* TODO: Implement averaging. */ *data = g_variant_new_boolean(devc->average_enabled);
break; break;
default: default:
return SR_ERR_NA; return SR_ERR_NA;
@ -854,8 +862,13 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi)
case SPO_MODEL: case SPO_MODEL:
if (siglent_sds_config_set(sdi, "WFSU SP,0,TYPE,1") != SR_OK) if (siglent_sds_config_set(sdi, "WFSU SP,0,TYPE,1") != SR_OK)
return SR_ERR; return SR_ERR;
if (siglent_sds_config_set(sdi, "ACQW SAMPLING") != SR_OK) if (devc->average_enabled) {
return SR_ERR; if (siglent_sds_config_set(sdi, "ACQW AVERAGE,%i", devc->average_samples) != SR_OK)
return SR_ERR;
} else {
if (siglent_sds_config_set(sdi, "ACQW SAMPLING") != SR_OK)
return SR_ERR;
}
break; break;
case NON_SPO_MODEL: case NON_SPO_MODEL:
/* TODO: Implement CML/CNL/DL models. */ /* TODO: Implement CML/CNL/DL models. */

View File

@ -101,6 +101,8 @@ struct dev_context {
/* Acquisition settings */ /* Acquisition settings */
GSList *enabled_channels; GSList *enabled_channels;
uint64_t limit_frames; uint64_t limit_frames;
uint64_t average_samples;
gboolean average_enabled;
enum data_source data_source; enum data_source data_source;
uint64_t analog_frame_size; uint64_t analog_frame_size;
uint64_t digital_frame_size; uint64_t digital_frame_size;