X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fhantek-dso%2Fapi.c;h=bfad5f7135f07750901e04a9fda5eb4fe1a87fbd;hb=5f50d6da1bc5cc5b48fdc6d4f1775313e97fb1d2;hp=d10c58d139ef3dcd7f8a2fd1c25e685bb703a218;hpb=c78fa9cf9416260e018c131f72e9115302deba7f;p=libsigrok.git diff --git a/src/hardware/hantek-dso/api.c b/src/hardware/hantek-dso/api.c index d10c58d1..bfad5f71 100644 --- a/src/hardware/hantek-dso/api.c +++ b/src/hardware/hantek-dso/api.c @@ -168,7 +168,7 @@ static const uint64_t vdivs[][2] = { }; static const char *trigger_sources[] = { - "CH1", "CH2", "EXT", "forced" + "CH1", "CH2", "EXT", }; static const char *trigger_slopes[] = { @@ -218,7 +218,7 @@ static struct sr_dev_inst *dso_dev_new(const struct dso_profile *prof) devc->voffset_trigger = DEFAULT_VERT_TRIGGERPOS; devc->framesize = DEFAULT_FRAMESIZE; devc->triggerslope = SLOPE_POSITIVE; - devc->triggersource = g_strdup(DEFAULT_TRIGGER_SOURCE); + devc->triggersource = NULL; devc->capture_ratio = DEFAULT_CAPTURE_RATIO; sdi->priv = devc; @@ -465,6 +465,8 @@ static int config_get(uint32_t key, GVariant **data, *data = g_variant_new_uint64(devc->framesize); break; case SR_CONF_TRIGGER_SOURCE: + if (!devc->triggersource) + return SR_ERR_NA; *data = g_variant_new_string(devc->triggersource); break; case SR_CONF_TRIGGER_SLOPE: @@ -555,6 +557,7 @@ static int config_set(uint32_t key, GVariant *data, case SR_CONF_TRIGGER_SOURCE: if ((idx = std_str_idx(data, ARRAY_AND_SIZE(trigger_sources))) < 0) return SR_ERR_ARG; + g_free(devc->triggersource); devc->triggersource = g_strdup(trigger_sources[idx]); break; default: @@ -836,8 +839,10 @@ static int handle_event(int fd, int revents, void *cb_data) return TRUE; if (dso_enable_trigger(sdi) != SR_OK) return TRUE; -// if (dso_force_trigger(sdi) != SR_OK) -// return TRUE; + if (!devc->triggersource) { + if (dso_force_trigger(sdi) != SR_OK) + return TRUE; + } sr_dbg("Successfully requested next chunk."); devc->dev_state = CAPTURE; return TRUE; @@ -858,7 +863,7 @@ static int handle_event(int fd, int revents, void *cb_data) break; if (dso_enable_trigger(sdi) != SR_OK) break; - if (!strcmp("forced", devc->triggersource)) { + if (!devc->triggersource) { if (dso_force_trigger(sdi) != SR_OK) break; }