return 0;
}
-static int opendev3(struct sigrok_device_instance **sdi, libusb_device *dev,
+static int opendev4(struct sigrok_device_instance **sdi, libusb_device *dev,
struct libusb_device_descriptor *des)
{
unsigned int i;
libusb_get_device_list(usb_context, &devlist);
for (i = 0; devlist[i]; i++) {
/* TODO: Error handling. */
- err = opendev3(&sdi, devlist[i], &des);
+ err = opendev4(&sdi, devlist[i], &des);
}
} else {
/* Status must be ST_ACTIVE, i.e. already in use... */
libusb_device **devlist;
int err, devcnt, i;
- /* QUICK HACK */
+ /* Avoid compiler warnings. */
deviceinfo = deviceinfo;
if (libusb_init(&usb_context) != 0) {
}
analyzer_reset(sdi->usb->devhdl);
analyzer_initialize(sdi->usb->devhdl);
- analyzer_configure(sdi->usb->devhdl);
analyzer_set_memory_size(MEMORY_SIZE_512K);
// analyzer_set_freq(g_freq, g_freq_scale);
/* TODO: This will set the same samplerate for all devices. */
static int set_configuration_samplerate(uint64_t samplerate)
{
- g_message("%s(%llu)", __FUNCTION__, samplerate);
+ g_message("%s(%" PRIu64 ")", __FUNCTION__, samplerate);
if (samplerate > MHZ(1))
analyzer_set_freq(samplerate / MHZ(1), FREQ_SCALE_MHZ);
else if (samplerate > KHZ(1))
case HWCAP_PROBECONFIG:
return configure_probes((GSList *) value);
case HWCAP_LIMIT_SAMPLES:
- limit_samples = strtoull(value, NULL, 10);
+ tmp_u64 = value;
+ limit_samples = *tmp_u64;
return SIGROK_OK;
default:
return SIGROK_ERR;
if (!(sdi = get_sigrok_device_instance(device_instances, device_index)))
return SIGROK_ERR;
+ /* push configured settings to device */
+ analyzer_configure(sdi->usb->devhdl);
+
analyzer_start(sdi->usb->devhdl);
g_message("Waiting for data");
analyzer_wait_data(sdi->usb->devhdl);
gettimeofday(&header.starttime, NULL);
header.samplerate = cur_samplerate;
header.protocol_id = PROTO_RAW;
- header.num_probes = num_channels;
+ header.num_logic_probes = num_channels;
+ header.num_analog_probes = 0;
session_bus(session_device_id, &packet);
buf = g_malloc(PACKET_SIZE);
PACKET_SIZE, res);
#endif
- packet.type = DF_LOGIC32;
+ packet.type = DF_LOGIC;
packet.length = PACKET_SIZE;
+ packet.unitsize = 4;
packet.payload = buf;
session_bus(session_device_id, &packet);
}