break;
case SR_CONF_VOLTAGE_TARGET:
ret = itech_it8500_get_int(sdi, CMD_GET_CV_VOLTAGE, &ival);
break;
case SR_CONF_VOLTAGE_TARGET:
ret = itech_it8500_get_int(sdi, CMD_GET_CV_VOLTAGE, &ival);
break;
case SR_CONF_CURRENT_LIMIT:
ret = itech_it8500_get_int(sdi, CMD_GET_CC_CURRENT, &ival);
break;
case SR_CONF_CURRENT_LIMIT:
ret = itech_it8500_get_int(sdi, CMD_GET_CC_CURRENT, &ival);
break;
case SR_CONF_POWER_TARGET:
ret = itech_it8500_get_int(sdi, CMD_GET_CW_POWER, &ival);
break;
case SR_CONF_POWER_TARGET:
ret = itech_it8500_get_int(sdi, CMD_GET_CW_POWER, &ival);
break;
case SR_CONF_RESISTANCE_TARGET:
ret = itech_it8500_get_int(sdi, CMD_GET_CR_RESISTANCE, &ival);
break;
case SR_CONF_RESISTANCE_TARGET:
ret = itech_it8500_get_int(sdi, CMD_GET_CR_RESISTANCE, &ival);
break;
case SR_CONF_OVER_VOLTAGE_PROTECTION_ENABLED:
*data = g_variant_new_boolean(TRUE);
break;
case SR_CONF_OVER_VOLTAGE_PROTECTION_ACTIVE:
ret = itech_it8500_get_status(sdi);
break;
case SR_CONF_OVER_VOLTAGE_PROTECTION_ENABLED:
*data = g_variant_new_boolean(TRUE);
break;
case SR_CONF_OVER_VOLTAGE_PROTECTION_ACTIVE:
ret = itech_it8500_get_status(sdi);
break;
case SR_CONF_OVER_VOLTAGE_PROTECTION_THRESHOLD:
ret = itech_it8500_get_int(sdi, CMD_GET_MAX_VOLTAGE, &ival);
break;
case SR_CONF_OVER_VOLTAGE_PROTECTION_THRESHOLD:
ret = itech_it8500_get_int(sdi, CMD_GET_MAX_VOLTAGE, &ival);
break;
case SR_CONF_OVER_CURRENT_PROTECTION_ENABLED:
*data = g_variant_new_boolean(TRUE);
break;
case SR_CONF_OVER_CURRENT_PROTECTION_ACTIVE:
ret = itech_it8500_get_status(sdi);
break;
case SR_CONF_OVER_CURRENT_PROTECTION_ENABLED:
*data = g_variant_new_boolean(TRUE);
break;
case SR_CONF_OVER_CURRENT_PROTECTION_ACTIVE:
ret = itech_it8500_get_status(sdi);
break;
case SR_CONF_OVER_CURRENT_PROTECTION_THRESHOLD:
ret = itech_it8500_get_int(sdi, CMD_GET_MAX_CURRENT, &ival);
break;
case SR_CONF_OVER_CURRENT_PROTECTION_THRESHOLD:
ret = itech_it8500_get_int(sdi, CMD_GET_MAX_CURRENT, &ival);
break;
case SR_CONF_OVER_TEMPERATURE_PROTECTION:
*data = g_variant_new_boolean(TRUE);
break;
case SR_CONF_OVER_TEMPERATURE_PROTECTION_ACTIVE:
ret = itech_it8500_get_status(sdi);
break;
case SR_CONF_OVER_TEMPERATURE_PROTECTION:
*data = g_variant_new_boolean(TRUE);
break;
case SR_CONF_OVER_TEMPERATURE_PROTECTION_ACTIVE:
ret = itech_it8500_get_status(sdi);
sr_dbg("%s: Unsupported key: %u (%s)", __func__, key,
kinfo ? kinfo->name : "unknown");
ret = SR_ERR_NA;
sr_dbg("%s: Unsupported key: %u (%s)", __func__, key,
kinfo ? kinfo->name : "unknown");
ret = SR_ERR_NA;
case SR_CONF_LIMIT_MSEC:
case SR_CONF_LIMIT_SAMPLES:
ret = sr_sw_limits_config_set(&devc->limits, key, data);
case SR_CONF_LIMIT_MSEC:
case SR_CONF_LIMIT_SAMPLES:
ret = sr_sw_limits_config_set(&devc->limits, key, data);
- if (new_sr < MIN_SAMPLE_RATE ||
- new_sr > samplerates[devc->max_sample_rate_idx]) {
+ if (new_sr < MIN_SAMPLE_RATE) {
+ ret = SR_ERR_SAMPLERATE;
+ break;
+ }
+ if (new_sr > samplerates[devc->max_sample_rate_idx]) {
s = g_variant_get_string(data, NULL);
if (itech_it8500_string_to_mode(s, &mode) != SR_OK) {
ret = SR_ERR_ARG;
s = g_variant_get_string(data, NULL);
if (itech_it8500_string_to_mode(s, &mode) != SR_OK) {
ret = SR_ERR_ARG;
ivalue = g_variant_get_double(data) * 10000.0;
WL32(&cmd->data[0], ivalue);
break;
ivalue = g_variant_get_double(data) * 10000.0;
WL32(&cmd->data[0], ivalue);
break;
default:
sr_dbg("%s: Unsupported key: %u (%s)", __func__, key,
kinfo ? kinfo->name : "unknown");
ret = SR_ERR_NA;
default:
sr_dbg("%s: Unsupported key: %u (%s)", __func__, key,
kinfo ? kinfo->name : "unknown");
ret = SR_ERR_NA;
- cmd->address = devc->address;
- ret = itech_it8500_cmd(sdi, cmd, &response);
+ if (ret == SR_OK && cmd->command) {
+ cmd->address = devc->address;
+ ret = itech_it8500_cmd(sdi, cmd, &response);
+ }