X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fzeroplus-logic-cube%2Fapi.c;h=9d15fe6c97c13ec7e915e3036861ba348e228f30;hb=d65f51bf5c549e5dbacb5c6fb6636e482ff02da8;hp=d8067416286b47d7654cf3bb271a55c532972a09;hpb=efad7cccec8ab00043939b36de950ba2ced15f85;p=libsigrok.git diff --git a/src/hardware/zeroplus-logic-cube/api.c b/src/hardware/zeroplus-logic-cube/api.c index d8067416..9d15fe6c 100644 --- a/src/hardware/zeroplus-logic-cube/api.c +++ b/src/hardware/zeroplus-logic-cube/api.c @@ -42,6 +42,7 @@ struct zp_model { */ static const struct zp_model zeroplus_models[] = { {0x0c12, 0x7002, "LAP-16128U", 16, 128, 200}, + {0x0c12, 0x7007, "LAP-16032U", 16, 32, 200}, {0x0c12, 0x7009, "LAP-C(16064)", 16, 64, 100}, {0x0c12, 0x700a, "LAP-C(16128)", 16, 128, 200}, {0x0c12, 0x700b, "LAP-C(32128)", 32, 128, 200}, @@ -49,7 +50,9 @@ static const struct zp_model zeroplus_models[] = { {0x0c12, 0x700d, "LAP-C(322000)", 32, 2048, 200}, {0x0c12, 0x700e, "LAP-C(16032)", 16, 32, 100}, {0x0c12, 0x7016, "LAP-C(162000)", 16, 2048, 200}, - {0x0c12, 0x7100, "AKIP-9101", 16, 256, 200}, + {0x0c12, 0x7025, "LAP-C(16128+)", 16, 128, 200}, + {0x0c12, 0x7064, "Logian-16L", 16, 128, 200}, + {0x0c12, 0x7100, "AKIP-9101", 16, 256, 200}, ALL_ZERO }; @@ -68,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, }; /* @@ -193,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++) { @@ -391,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) @@ -543,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; @@ -575,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;