X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fzeroplus-logic-cube%2Fapi.c;h=9d15fe6c97c13ec7e915e3036861ba348e228f30;hb=b28e391a755e28568b6e0a8161d55d87e0c5f3cc;hp=da3899dd404d217de644efb0ad671e35b66d6aee;hpb=be61937929fa85f57ba3a495ce42af1539f19b03;p=libsigrok.git diff --git a/src/hardware/zeroplus-logic-cube/api.c b/src/hardware/zeroplus-logic-cube/api.c index da3899dd..9d15fe6c 100644 --- a/src/hardware/zeroplus-logic-cube/api.c +++ b/src/hardware/zeroplus-logic-cube/api.c @@ -71,6 +71,9 @@ static const uint32_t devopts[] = { static const int32_t trigger_matches[] = { SR_TRIGGER_ZERO, SR_TRIGGER_ONE, + SR_TRIGGER_RISING, + SR_TRIGGER_FALLING, + SR_TRIGGER_EDGE, }; /* @@ -196,7 +199,8 @@ static GSList *scan(struct sr_dev_driver *di, GSList *options) libusb_close(hdl); - usb_get_port_path(devlist[i], connection_id, sizeof(connection_id)); + if (usb_get_port_path(devlist[i], connection_id, sizeof(connection_id)) < 0) + continue; prof = NULL; for (j = 0; j < zeroplus_models[j].vid; j++) { @@ -394,7 +398,7 @@ static int config_list(uint32_t key, GVariant **data, switch (key) { case SR_CONF_DEVICE_OPTIONS: - return STD_CONFIG_LIST(key, data, sdi, cg, NULL, drvopts, devopts); + return STD_CONFIG_LIST(key, data, sdi, cg, NO_OPTS, drvopts, devopts); case SR_CONF_SAMPLERATE: devc = sdi->priv; if (devc->prof->max_sampling_freq == 100) @@ -546,8 +550,9 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi) unsigned int buf_offset; res = analyzer_read_data(usb->devhdl, buf, PACKET_SIZE); - sr_info("Tried to read %d bytes, actually read %d bytes.", - PACKET_SIZE, res); + if (res != PACKET_SIZE) + sr_warn("Tried to read %d bytes, actually read %d.", + PACKET_SIZE, res); if (discard >= PACKET_SIZE / 4) { discard -= PACKET_SIZE / 4; @@ -578,12 +583,8 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi) buf_offset += logic.length; } - if (samples_read == trigger_offset) { - /* Send out trigger */ - packet.type = SR_DF_TRIGGER; - packet.payload = NULL; - sr_session_send(sdi, &packet); - } + if (samples_read == trigger_offset) + std_session_send_df_trigger(sdi); /* Send out data (or data after trigger) */ packet.type = SR_DF_LOGIC;