cp->ch_type = type;
cp->probe = cg->priv;
- ch = sr_channel_new(devc->num_channels++,
+ ch = sr_channel_new(sdi, devc->num_channels++,
SR_CHANNEL_ANALOG, TRUE, name);
g_free(name);
ch->priv = cp;
cg->channels = g_slist_append(cg->channels, ch);
- sdi->channels = g_slist_append(sdi->channels, ch);
}
SR_PRIV gboolean bl_acme_register_probe(struct sr_dev_inst *sdi, int type,
return TRUE;
}
+SR_PRIV int bl_acme_get_probe_type(const struct sr_channel_group *cg)
+{
+ struct channel_group_priv *cgp = cg->priv;
+
+ return cgp->probe_type;
+}
+
+SR_PRIV int bl_acme_probe_has_pws(const struct sr_channel_group *cg)
+{
+ struct channel_group_priv *cgp = cg->priv;
+
+ return sr_gpio_getval_export(pws_info_gpios[cgp->index]);
+}
+
/*
* Sets path to the hwmon attribute if this channel group
* supports shunt resistance setting. The caller has to supply
fd = g_fopen(path->str, "w");
if (!fd) {
sr_err("Error opening %s: %s", path->str, strerror(errno));
- g_string_free(path, TRUE);
- return SR_ERR_IO;
+ ret = SR_ERR_IO;
+ goto out;
}
- g_string_free(path, TRUE);
- g_fprintf(fd, "%llu\n", MOHM_TO_UOHM(shunt));
- /*
- * XXX There's no g_fclose() in GLib. This seems to work,
- * but is it safe?
- */
+ g_fprintf(fd, "%" PRIu64 "\n", MOHM_TO_UOHM(shunt));
fclose(fd);
out:
cgp = cg->priv;
- val = sr_gpio_getval_export(pws_info_gpios[cgp->index]);
- if (val != 1) {
+ if (!bl_acme_probe_has_pws(cg)) {
sr_err("Probe has no power-switch");
return SR_ERR_ARG;
}
cgp = cg->priv;
- val = sr_gpio_getval_export(pws_info_gpios[cgp->index]);
- if (val != 1) {
+ if (!bl_acme_probe_has_pws(cg)) {
sr_err("Probe has no power-switch");
return SR_ERR_ARG;
}
packet.type = SR_DF_ANALOG;
packet.payload = &analog;
- memset(&analog, 0, sizeof(analog));
+ memset(&analog, 0, sizeof(struct sr_datafeed_analog));
analog.data = &valf;
/*