+ case SR_CONF_PROBE_FACTOR:
+ if (!cg) {
+ sr_err("No channel group specified.");
+ return SR_ERR_CHANNEL_GROUP;
+ }
+ p = g_variant_get_uint64(data);
+ for (i = 0; i < devc->model->analog_channels; i++) {
+ if (cg == devc->analog_groups[i]) {
+ for (j = 0; j < ARRAY_SIZE(probe_factor); j++) {
+ if (p == probe_factor[j]) {
+ devc->attenuation[i] = p;
+ ret = rigol_ds_config_set(sdi, ":CHAN%d:PROB %"PRIu64,
+ i + 1, p);
+ if (ret == SR_OK)
+ rigol_ds_get_dev_cfg_vertical(sdi);
+ return ret;
+ }
+ }
+ sr_err("Invalid probe factor: %"PRIu64".", p);
+ return SR_ERR_ARG;
+ }
+ }
+ sr_dbg("Didn't set probe factor, unknown channel(group).");
+ return SR_ERR_NA;