+ case SR_CONF_LIMIT_SAMPLES:
+ case SR_CONF_LIMIT_MSEC:
+ ret = sr_sw_limits_config_get(&devc->limits, key, data);
+ break;
+ case SR_CONF_ENABLED:
+ if ((ret = rdtech_dps_get_reg(modbus, REG_ENABLE, &ivalue)) == SR_OK)
+ *data = g_variant_new_boolean(ivalue);
+ break;
+ case SR_CONF_REGULATION:
+ if ((ret = rdtech_dps_get_reg(modbus, REG_CV_CC, &ivalue)) != SR_OK)
+ break;
+ *data = g_variant_new_string((ivalue == MODE_CC) ? "CC" : "CV");
+ break;
+ case SR_CONF_VOLTAGE:
+ if ((ret = rdtech_dps_get_reg(modbus, REG_UOUT, &ivalue)) == SR_OK)
+ *data = g_variant_new_double((float)ivalue / 100.0f);
+ break;
+ case SR_CONF_VOLTAGE_TARGET:
+ if ((ret = rdtech_dps_get_reg(modbus, REG_USET, &ivalue)) == SR_OK)
+ *data = g_variant_new_double((float)ivalue / 100.0f);
+ break;
+ case SR_CONF_CURRENT:
+ if ((ret = rdtech_dps_get_reg(modbus, REG_IOUT, &ivalue)) == SR_OK)
+ *data = g_variant_new_double((float)ivalue / 100.0f);
+ break;
+ case SR_CONF_CURRENT_LIMIT:
+ if ((ret = rdtech_dps_get_reg(modbus, REG_ISET, &ivalue)) == SR_OK)
+ *data = g_variant_new_double((float)ivalue / 1000.0f);
+ break;
+ case SR_CONF_OVER_VOLTAGE_PROTECTION_ENABLED:
+ *data = g_variant_new_boolean(TRUE);
+ break;
+ case SR_CONF_OVER_VOLTAGE_PROTECTION_ACTIVE:
+ if ((ret = rdtech_dps_get_reg(modbus, REG_PROTECT, &ivalue)) == SR_OK)
+ *data = g_variant_new_boolean(ivalue == STATE_OVP);
+ break;
+ case SR_CONF_OVER_VOLTAGE_PROTECTION_THRESHOLD:
+ if ((ret = rdtech_dps_get_reg(modbus, PRE_OVPSET, &ivalue)) == SR_OK)
+ *data = g_variant_new_double((float)ivalue / 100.0f);
+ break;
+ case SR_CONF_OVER_CURRENT_PROTECTION_ENABLED:
+ *data = g_variant_new_boolean(TRUE);
+ break;
+ case SR_CONF_OVER_CURRENT_PROTECTION_ACTIVE:
+ if ((ret = rdtech_dps_get_reg(modbus, REG_PROTECT, &ivalue)) == SR_OK)
+ *data = g_variant_new_boolean(ivalue == STATE_OCP);
+ break;
+ case SR_CONF_OVER_CURRENT_PROTECTION_THRESHOLD:
+ if ((ret = rdtech_dps_get_reg(modbus, PRE_OCPSET, &ivalue)) == SR_OK)
+ *data = g_variant_new_double((float)ivalue / 1000.0f);
+ break;