summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gr-iio/lib/device_source_impl.cc3
-rw-r--r--gr-iio/lib/fmcomms2_sink_impl.cc8
-rw-r--r--gr-iio/lib/fmcomms2_source_impl.cc8
3 files changed, 12 insertions, 7 deletions
diff --git a/gr-iio/lib/device_source_impl.cc b/gr-iio/lib/device_source_impl.cc
index 59f5eb3069..d837a06eb2 100644
--- a/gr-iio/lib/device_source_impl.cc
+++ b/gr-iio/lib/device_source_impl.cc
@@ -92,7 +92,8 @@ void device_source_impl::set_params(struct iio_device* phy,
ret = iio_device_debug_attr_write(phy, attr, val.c_str());
if (ret < 0) {
GR_LOG_WARN(logger,
- boost::format("Unable to write attribute %s: %d") % key % ret);
+ boost::format("Unable to write attribute %s: %d %s") % key % ret %
+ val);
}
}
}
diff --git a/gr-iio/lib/fmcomms2_sink_impl.cc b/gr-iio/lib/fmcomms2_sink_impl.cc
index dea67e9129..ceaaf2505e 100644
--- a/gr-iio/lib/fmcomms2_sink_impl.cc
+++ b/gr-iio/lib/fmcomms2_sink_impl.cc
@@ -185,9 +185,11 @@ void fmcomms2_sink_impl::set_attenuation(size_t chan, double attenuation)
throw std::runtime_error("Channel out of range for this device");
}
std::vector<std::string> params;
-
- params.push_back("out_voltage" + std::to_string(chan) +
- "_hardwaregain=" + std::to_string(-attenuation));
+ std::string att_value = std::to_string(-attenuation);
+ std::string::size_type idx = att_value.find(',');
+ if (idx != std::string::npos) // found , as decimal separator, so change to .
+ att_value.replace(idx, 1, ".");
+ params.push_back("out_voltage" + std::to_string(chan) + "_hardwaregain=" + att_value);
device_source_impl::set_params(this->phy, params);
diff --git a/gr-iio/lib/fmcomms2_source_impl.cc b/gr-iio/lib/fmcomms2_source_impl.cc
index 23bf34d28b..934206e5ff 100644
--- a/gr-iio/lib/fmcomms2_source_impl.cc
+++ b/gr-iio/lib/fmcomms2_source_impl.cc
@@ -220,10 +220,12 @@ void fmcomms2_source_impl::set_gain(size_t chan, double gain_value)
std::vector<std::string> params;
if (d_gain_mode[chan].compare("manual") == 0) {
- // params.push_back("in_voltage" + std::to_string(chan) +
- // "_gain_control_mode=" + d_gain_mode[chan]);
+ std::string gain_string = std::to_string(gain_value);
+ std::string::size_type idx = gain_string.find(',');
+ if (idx != std::string::npos) // found , as decimal separator, so change to .
+ gain_string.replace(idx, 1, ".");
params.push_back("in_voltage" + std::to_string(chan) +
- "_hardwaregain=" + std::to_string(gain_value));
+ "_hardwaregain=" + gain_string);
}
device_source_impl::set_params(params);
d_gain_value[chan] = gain_value;