X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fhantek-6xxx%2Fapi.c;h=20d35a2b3aa30be70925e6a03cd4f258a13e6d4c;hb=2142a79b53e7fb2d9d050c382b624820601c1bd6;hp=f8940d8f3a5296b401b4e13e8d8dc43f96d07fce;hpb=4299fcc0b80e6bee0b42f48f1cda3863e64103f5;p=libsigrok.git diff --git a/src/hardware/hantek-6xxx/api.c b/src/hardware/hantek-6xxx/api.c index f8940d8f..20d35a2b 100644 --- a/src/hardware/hantek-6xxx/api.c +++ b/src/hardware/hantek-6xxx/api.c @@ -61,20 +61,39 @@ static const char *acdc_coupling[] = { static const struct hantek_6xxx_profile dev_profiles[] = { { + /* Windows: "Hantek6022BE DRIVER 1": 04b4:6022 */ 0x04b4, 0x6022, 0x1d50, 0x608e, 0x0001, "Hantek", "6022BE", "fx2lafw-hantek-6022be.fw", ARRAY_AND_SIZE(dc_coupling), FALSE, }, + { + /* Windows: "Hantek6022BE DRIVER 2": 04b5:6022 */ + 0x04b5, 0x6022, 0x1d50, 0x608e, 0x0001, + "Hantek", "6022BE", "fx2lafw-hantek-6022be.fw", + ARRAY_AND_SIZE(dc_coupling), FALSE, + }, { 0x8102, 0x8102, 0x1d50, 0x608e, 0x0002, "Sainsmart", "DDS120", "fx2lafw-sainsmart-dds120.fw", ARRAY_AND_SIZE(acdc_coupling), TRUE, }, { + /* Windows: "Hantek6022BL DRIVER 1": 04b4:602a */ 0x04b4, 0x602a, 0x1d50, 0x608e, 0x0003, "Hantek", "6022BL", "fx2lafw-hantek-6022bl.fw", ARRAY_AND_SIZE(dc_coupling), FALSE, }, + { + /* Windows: "Hantek6022BL DRIVER 2": 04b5:602a */ + 0x04b5, 0x602a, 0x1d50, 0x608e, 0x0003, + "Hantek", "6022BL", "fx2lafw-hantek-6022bl.fw", + ARRAY_AND_SIZE(dc_coupling), FALSE, + }, + { + 0xd4a2, 0x5660, 0x1d50, 0x608e, 0x0004, + "YiXingDianZi", "MDSO", "fx2lafw-yixingdianzi-mdso.fw", + ARRAY_AND_SIZE(dc_coupling), FALSE, + }, ALL_ZERO }; @@ -120,10 +139,6 @@ static struct sr_dev_inst *hantek_6xxx_dev_new(const struct hantek_6xxx_profile devc->coupling_tab_size = prof->coupling_tab_size; devc->has_coupling = prof->has_coupling; - devc->sample_buf = NULL; - devc->sample_buf_write = 0; - devc->sample_buf_size = 0; - devc->profile = prof; devc->dev_state = IDLE; devc->samplerate = DEFAULT_SAMPLERATE; @@ -232,11 +247,12 @@ static GSList *scan(struct sr_dev_driver *di, GSList *options) devices = g_slist_append(devices, sdi); devc = sdi->priv; if (ezusb_upload_firmware(drvc->sr_ctx, devlist[i], - USB_CONFIGURATION, prof->firmware) == SR_OK) + USB_CONFIGURATION, prof->firmware) == SR_OK) { /* Remember when the firmware on this device was updated. */ devc->fw_updated = g_get_monotonic_time(); - else - sr_err("Firmware upload failed."); + } else { + sr_err("Firmware upload failed, name %s.", prof->firmware); + } /* Dummy USB address of 0xff will get overwritten later. */ sdi->conn = sr_usb_dev_inst_new( libusb_get_bus_number(devlist[i]), 0xff, NULL); @@ -637,7 +653,6 @@ static int read_channel(const struct sr_dev_inst *sdi, uint32_t amount) amount = MIN(amount, MAX_PACKET_SIZE); ret = hantek_6xxx_get_channeldata(sdi, receive_transfer, amount); devc->read_start_ts = g_get_monotonic_time(); - devc->read_data_amount = amount; return ret; } @@ -721,9 +736,6 @@ static int dev_acquisition_stop(struct sr_dev_inst *sdi) devc = sdi->priv; devc->dev_state = STOPPING; - g_free(devc->sample_buf); - devc->sample_buf = NULL; - return SR_OK; }