SR_CONF_SERIALCOMM,
};
+static const uint32_t devopts_driver[] = {
+ SR_CONF_POWER_SUPPLY,
+ SR_CONF_CONTINUOUS,
+};
+
static struct pps_channel_instance pci[] = {
{ SR_MQ_VOLTAGE, SCPI_CMD_GET_MEAS_VOLTAGE, "V" },
{ SR_MQ_CURRENT, SCPI_CMD_GET_MEAS_CURRENT, "I" },
return NULL;
}
- sdi = sr_dev_inst_new(SR_ST_ACTIVE, vendor, hw_info->model,
- hw_info->firmware_version);
+ sdi = sr_dev_inst_new();
+ sdi->status = SR_ST_ACTIVE;
+ sdi->vendor = g_strdup(vendor);
+ sdi->model = g_strdup(hw_info->model);
+ sdi->version = g_strdup(hw_info->firmware_version);
sdi->conn = scpi;
sdi->driver = di;
sdi->inst_type = SR_INST_SCPI;
const GVariantType *gvtype;
unsigned int i;
int cmd, ret;
- const char *s;
if (!sdi)
return SR_ERR_ARG;
if (cg)
select_channel(sdi, cg->channels->data);
ret = scpi_cmd_resp(sdi, data, gvtype, cmd);
-
- if (gvtype == G_VARIANT_TYPE_STRING && ret == SR_OK) {
- /* Non-standard data type responses. */
- switch (key) {
- case SCPI_CMD_GET_OUTPUT_REGULATION:
- /*
- * This is specific to the Rigol DP800 series.
- * We return the same string for now until more
- * models with this key are supported. Do a check
- * just for the hell of it.
- */
- s = g_variant_get_string(*data, NULL);
- if (strcmp(s, "CC") && strcmp(s, "CV") && strcmp(s, "UR")) {
- sr_dbg("Unknown response to SCPI_CMD_GET_OUTPUT_REGULATION: %s", s);
- ret = SR_ERR_DATA;
- }
- break;
- }
- }
} else
ret = SR_ERR_NA;
*data = g_variant_new_fixed_array(G_VARIANT_TYPE_UINT32,
scanopts, ARRAY_SIZE(scanopts), sizeof(uint32_t));
return SR_OK;
+ } else if (key == SR_CONF_DEVICE_OPTIONS && !sdi) {
+ *data = g_variant_new_fixed_array(G_VARIANT_TYPE_UINT32,
+ devopts_driver, ARRAY_SIZE(devopts_driver), sizeof(uint32_t));
+ return SR_OK;
}
if (!sdi)