/* Note: Caller checks devc and devc->ftdic. */
- /* Select interface B, otherwise communication will fail. */
ret = ftdi_set_interface(devc->ftdic, INTERFACE_B);
if (ret < 0) {
sr_err("Failed to set FTDI interface B (%d): %s", ret,
return SR_ERR;
}
- /* Check for the device and temporarily open it. */
ret = ftdi_usb_open_desc(devc->ftdic, USB_VENDOR_ID, USB_DEVICE_ID,
USB_IPRODUCT, NULL);
if (ret < 0) {
return SR_ERR;
}
- /* Purge RX/TX buffers in the FTDI chip. */
if ((ret = ftdi_usb_purge_buffers(devc->ftdic)) < 0) {
sr_err("Failed to purge FTDI RX/TX buffers (%d): %s.",
ret, ftdi_get_error_string(devc->ftdic));
goto err_open_close_ftdic;
}
- /* Reset the FTDI bitmode. */
ret = ftdi_set_bitmode(devc->ftdic, 0xff, BITMODE_RESET);
if (ret < 0) {
sr_err("Failed to reset the FTDI chip bitmode (%d): %s.",
goto err_open_close_ftdic;
}
- /* Set the FTDI latency timer to 16. */
ret = ftdi_set_latency_timer(devc->ftdic, 16);
if (ret < 0) {
sr_err("Failed to set FTDI latency timer (%d): %s.",
goto err_open_close_ftdic;
}
- /* Set the FTDI read data chunk size to 64kB. */
ret = ftdi_read_data_set_chunksize(devc->ftdic, 64 * 1024);
if (ret < 0) {
sr_err("Failed to set FTDI read data chunk size (%d): %s.",
uint8_t key, type, token;
GString *tmp_str, *devname, *version;
guchar tmp_c;
- int index, i;
+ int index;
sdi = g_malloc0(sizeof(struct sr_dev_inst));
sdi->status = SR_ST_INACTIVE;
break;
case 1:
/* 32-bit unsigned integer */
- tmp_int = 0;
- for (i = 0; i < 4; i++) {
- tmp_int = (tmp_int << 8) | buf[index++];
- }
+ tmp_int = RB32(&buf[index]);
+ index += sizeof(uint32_t);
sr_dbg("Got metadata key 0x%.2x value 0x%.8x.",
key, tmp_int);
switch (token) {
}
/* Send the trigger. */
- packet.type = SR_DF_TRIGGER;
- sr_session_send(sdi, &packet);
+ std_session_send_df_trigger(sdi);
/* Send post-trigger samples. */
packet.type = SR_DF_LOGIC;