]> sigrok.org Git - libsigrok.git/blobdiff - src/hardware/korad-kdxxxxp/api.c
doxygen: Only use @since on public API functions.
[libsigrok.git] / src / hardware / korad-kdxxxxp / api.c
index 107bdc4070d258cc1cf8f986e0f01ca72f94586b..c499d4b70c11b2db5ea4f60f016221da55cdf1c3 100644 (file)
@@ -43,6 +43,9 @@ static const uint32_t devopts[] = {
        SR_CONF_CURRENT | SR_CONF_GET,
        SR_CONF_CURRENT_LIMIT | SR_CONF_GET | SR_CONF_SET | SR_CONF_LIST,
        SR_CONF_ENABLED | SR_CONF_GET | SR_CONF_SET,
+       SR_CONF_REGULATION | SR_CONF_GET,
+       SR_CONF_OVER_CURRENT_PROTECTION_ENABLED | SR_CONF_GET | SR_CONF_SET,
+       SR_CONF_OVER_VOLTAGE_PROTECTION_ENABLED | SR_CONF_GET | SR_CONF_SET,
 };
 
 static const struct korad_kdxxxxp_model models[] = {
@@ -217,6 +220,16 @@ static int config_get(uint32_t key, GVariant **data,
        case SR_CONF_ENABLED:
                *data = g_variant_new_boolean(devc->output_enabled);
                break;
+       case SR_CONF_REGULATION:
+               /* Dual channel not supported. */
+               *data = g_variant_new_string((devc->cc_mode[0]) ? "CC" : "CV");
+               break;
+       case SR_CONF_OVER_CURRENT_PROTECTION_ENABLED:
+               *data = g_variant_new_boolean(devc->ocp_enabled);
+               break;
+       case SR_CONF_OVER_VOLTAGE_PROTECTION_ENABLED:
+               *data = g_variant_new_boolean(devc->ovp_enabled);
+               break;
        default:
                return SR_ERR_NA;
        }
@@ -275,6 +288,20 @@ static int config_set(uint32_t key, GVariant *data,
                if (korad_kdxxxxp_set_value(sdi->conn, devc) < 0)
                        return SR_ERR;
                break;
+       case SR_CONF_OVER_CURRENT_PROTECTION_ENABLED:
+               bval = g_variant_get_boolean(data);
+               devc->ocp_enabled = bval;
+               devc->target = KDXXXXP_OCP;
+               if (korad_kdxxxxp_set_value(sdi->conn, devc) < 0)
+                       return SR_ERR;
+               break;
+       case SR_CONF_OVER_VOLTAGE_PROTECTION_ENABLED:
+               bval = g_variant_get_boolean(data);
+               devc->ovp_enabled = bval;
+               devc->target = KDXXXXP_OVP;
+               if (korad_kdxxxxp_set_value(sdi->conn, devc) < 0)
+                       return SR_ERR;
+               break;
        default:
                return SR_ERR_NA;
        }