- send_config_update_key(sdi, SR_CONF_CURRENT_LIMIT,
- g_variant_new_double(current));
+ g_cond_signal(&devc->current_limit_cond);
+ sr_session_send_meta(sdi, SR_CONF_CURRENT_LIMIT,
+ g_variant_new_double(devc->current_limit));
+ return;
+ }
+
+ if (g_str_has_prefix((const char *)devc->buf, "uvlo ")) {
+ tokens = g_strsplit((const char *)devc->buf, " ", 2);
+ devc->uvc_threshold = g_ascii_strtod(tokens[1], NULL) / 1000;
+ g_strfreev(tokens);
+ g_cond_signal(&devc->uvc_threshold_cond);
+ if (devc->uvc_threshold == .0) {
+ sr_session_send_meta(sdi, SR_CONF_UNDER_VOLTAGE_CONDITION,
+ g_variant_new_boolean(FALSE));
+ } else {
+ sr_session_send_meta(sdi, SR_CONF_UNDER_VOLTAGE_CONDITION,
+ g_variant_new_boolean(TRUE));
+ sr_session_send_meta(sdi,
+ SR_CONF_UNDER_VOLTAGE_CONDITION_THRESHOLD,
+ g_variant_new_double(devc->uvc_threshold));
+ }