X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fkorad-kdxxxxp%2Fapi.c;h=c499d4b70c11b2db5ea4f60f016221da55cdf1c3;hb=89b3a0d8d1cd44e3959a5c332954f34d6e9bd685;hp=4a6c8179ca4924d49fdedfdccbba6e1cc109c3a4;hpb=b16d975a5c879b817583512b944b57198b71644e;p=libsigrok.git diff --git a/src/hardware/korad-kdxxxxp/api.c b/src/hardware/korad-kdxxxxp/api.c index 4a6c8179..c499d4b7 100644 --- a/src/hardware/korad-kdxxxxp/api.c +++ b/src/hardware/korad-kdxxxxp/api.c @@ -44,6 +44,8 @@ static const uint32_t devopts[] = { 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[] = { @@ -220,10 +222,13 @@ static int config_get(uint32_t key, GVariant **data, break; case SR_CONF_REGULATION: /* Dual channel not supported. */ - if (devc->cc_mode[0]) - *data = g_variant_new_string("CC"); - else - *data = g_variant_new_string("CV"); + *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; @@ -283,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; }