X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Farachnid-labs-re-load-pro%2Fprotocol.c;h=36785b2cf7eb89959e3c5d0f791d45b2d5a696ca;hb=ea9cbb6c2f2d73680ed118c4d74e7b590190ab29;hp=86e317a5cff8eca7c0aef5869bc9b8696105da7e;hpb=a0bc8afd7d7bac81f14b232703ac0a29a7f77e29;p=libsigrok.git diff --git a/src/hardware/arachnid-labs-re-load-pro/protocol.c b/src/hardware/arachnid-labs-re-load-pro/protocol.c index 86e317a5..36785b2c 100644 --- a/src/hardware/arachnid-labs-re-load-pro/protocol.c +++ b/src/hardware/arachnid-labs-re-load-pro/protocol.c @@ -265,32 +265,6 @@ SR_PRIV int reloadpro_get_voltage_current(const struct sr_dev_inst *sdi, return SR_OK; } -static int send_config_update_key(const struct sr_dev_inst *sdi, - uint32_t key, GVariant *var) -{ - struct sr_config *cfg; - struct sr_datafeed_packet packet; - struct sr_datafeed_meta meta; - int ret; - - cfg = sr_config_new(key, var); - if (!cfg) - return SR_ERR; - - memset(&meta, 0, sizeof(meta)); - - packet.type = SR_DF_META; - packet.payload = &meta; - - meta.config = g_slist_append(NULL, cfg); - - ret = sr_session_send(sdi, &packet); - g_slist_free(meta.config); - sr_config_free(cfg); - - return ret; -} - static void handle_packet(const struct sr_dev_inst *sdi) { struct sr_datafeed_packet packet; @@ -307,7 +281,7 @@ static void handle_packet(const struct sr_dev_inst *sdi) if (g_str_has_prefix((const char *)devc->buf, "overtemp")) { sr_warn("Overtemperature condition!"); devc->otp_active = TRUE; - send_config_update_key(sdi, SR_CONF_OVER_TEMPERATURE_PROTECTION_ACTIVE, + sr_session_send_meta(sdi, SR_CONF_OVER_TEMPERATURE_PROTECTION_ACTIVE, g_variant_new_boolean(TRUE)); return; } @@ -315,7 +289,7 @@ static void handle_packet(const struct sr_dev_inst *sdi) if (g_str_has_prefix((const char *)devc->buf, "undervolt")) { sr_warn("Undervoltage condition!"); devc->uvc_active = TRUE; - send_config_update_key(sdi, SR_CONF_UNDER_VOLTAGE_CONDITION_ACTIVE, + sr_session_send_meta(sdi, SR_CONF_UNDER_VOLTAGE_CONDITION_ACTIVE, g_variant_new_boolean(TRUE)); return; } @@ -330,7 +304,7 @@ static void handle_packet(const struct sr_dev_inst *sdi) devc->current_limit = g_ascii_strtod(tokens[1], NULL) / 1000; g_strfreev(tokens); g_cond_signal(&devc->current_limit_cond); - send_config_update_key(sdi, SR_CONF_CURRENT_LIMIT, + sr_session_send_meta(sdi, SR_CONF_CURRENT_LIMIT, g_variant_new_double(devc->current_limit)); return; } @@ -341,12 +315,12 @@ static void handle_packet(const struct sr_dev_inst *sdi) g_strfreev(tokens); g_cond_signal(&devc->uvc_threshold_cond); if (devc->uvc_threshold == .0) { - send_config_update_key(sdi, SR_CONF_UNDER_VOLTAGE_CONDITION, + sr_session_send_meta(sdi, SR_CONF_UNDER_VOLTAGE_CONDITION, g_variant_new_boolean(FALSE)); } else { - send_config_update_key(sdi, SR_CONF_UNDER_VOLTAGE_CONDITION, + sr_session_send_meta(sdi, SR_CONF_UNDER_VOLTAGE_CONDITION, g_variant_new_boolean(TRUE)); - send_config_update_key(sdi, + sr_session_send_meta(sdi, SR_CONF_UNDER_VOLTAGE_CONDITION_THRESHOLD, g_variant_new_double(devc->uvc_threshold)); } @@ -362,11 +336,10 @@ static void handle_packet(const struct sr_dev_inst *sdi) devc->voltage = g_ascii_strtod(tokens[2], NULL) / 1000; devc->current = g_ascii_strtod(tokens[1], NULL) / 1000; g_strfreev(tokens); + g_cond_signal(&devc->voltage_cond); /* Begin frame. */ - packet.type = SR_DF_FRAME_BEGIN; - packet.payload = NULL; - sr_session_send(sdi, &packet); + std_session_send_df_frame_begin(sdi); sr_analog_init(&analog, &encoding, &meaning, &spec, 4); @@ -399,9 +372,7 @@ static void handle_packet(const struct sr_dev_inst *sdi) g_slist_free(l); /* End frame. */ - packet.type = SR_DF_FRAME_END; - packet.payload = NULL; - sr_session_send(sdi, &packet); + std_session_send_df_frame_end(sdi); sr_sw_limits_update_samples_read(&devc->limits, 1); }