* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-/** @file
- * <em>Motech LPS-30x series</em> power supply driver
- * @internal
- */
-
#include <config.h>
#include <errno.h>
#include <string.h>
packet.type = SR_DF_ANALOG;
packet.payload = &analog;
+ /* Note: digits/spec_digits will be overridden later. */
sr_analog_init(&analog, &encoding, &meaning, &spec, 0);
analog.meaning->channels = sdi->channels;
analog.meaning->mq = SR_MQ_VOLTAGE;
analog.meaning->unit = SR_UNIT_VOLT;
analog.meaning->mqflags = SR_MQFLAG_DC;
+ analog.encoding->digits = 3;
+ analog.spec->spec_digits = 2;
analog.data = data;
for (i = 0; i < devc->model->num_channels; i++)
analog.meaning->mq = SR_MQ_CURRENT;
analog.meaning->unit = SR_UNIT_AMPERE;
analog.meaning->mqflags = 0;
+ analog.encoding->digits = 4;
+ analog.spec->spec_digits = 3;
analog.data = data;
for (i = 0; i < devc->model->num_channels; i++)
((float *)analog.data)[i] = devc->channel_status[i].output_current_last; /* Value always 0 for channel 3, if present! */
int auxint;
devc = sdi->priv;
+ if (!devc)
+ return;
switch (devc->acq_req_pending) {
case 0: /* Should not happen... */
case AQ_U2:
case AQ_I1:
case AQ_I2:
- if (sr_atod(devc->buf, &dbl) != SR_OK) {
+ dbl = 0.0;
+ if (sr_atod_ascii(devc->buf, &dbl) != SR_OK) {
sr_err("Failed to convert '%s' to double, errno=%d %s",
devc->buf, errno, g_strerror(errno));
dbl = 0.0;
}
break;
case AQ_STATUS:
+ auxint = 0;
if (sr_atoi(devc->buf, &auxint) != SR_OK) {
sr_err("Failed to convert '%s' to int, errno=%d %s",
devc->buf, errno, g_strerror(errno));
}
if (sr_sw_limits_check(&devc->limits))
- sdi->driver->dev_acquisition_stop(sdi);
+ sr_dev_acquisition_stop(sdi);
/* Only request the next packet if required. */
if (!((sdi->status == SR_ST_ACTIVE) && (devc->acq_running)))