Hi all,
At What-the-Hack Stephane and I finally got the usrp driver almost completely
working on windows.
We knew there still was a bug in our new code because the test_counting.py
example told us that we still were missing some samples.
It still worked for things like fm-reception (if you miss a few samples you
still get an audible signal)
But it bothered me because the driver is useless this way for analog-TV and
digital reception (One of the other things I am working on)
So today I took the time to find and kill this bug once and for all.
Of course it was just a tiny mistake, but aren't they allways.
This makes gnuradio one step closer to being primetime windows ready.
See atachment for the patch and below for changelog.
Greetings,
Martin Dvh
2005-09-06 Martin Dudok van Heel <nldudok1 at olifantasia.com>
* host/lib/fusb_win32.{cc}: Solved missing samples bug in usb code.
(Which you could see by running test_counting.py example)
Index: host/lib/fusb_win32.cc
===================================================================
RCS file: /cvsroot/opensdr/usrp/host/lib/fusb_win32.cc,v
retrieving revision 1.2
diff -u -b -B -r1.2 fusb_win32.cc
--- host/lib/fusb_win32.cc 29 Jul 2005 21:14:09 -0000 1.2
+++ host/lib/fusb_win32.cc 6 Sep 2005 20:37:54 -0000
@@ -155,9 +155,9 @@
return -1;
int bytes_to_write = nbytes;
+ int a=0;
if (d_output_short != 0) {
- int a;
buf = &d_buffer[d_curr*d_block_size +
d_block_size - d_output_short];
@@ -191,7 +191,7 @@
}
}
- memcpy(buf, buffer, bytes_to_write);
+ memcpy(buf, (void *) &(((char*)buffer)[a]), bytes_to_write);
d_output_short = d_block_size - bytes_to_write;
if (d_output_short == 0)
@@ -214,8 +214,8 @@
int bytes_to_read = nbytes;
+ int a=0;
if (d_input_leftover != 0) {
- int a;
buf = &d_buffer[d_curr*d_block_size +
d_block_size -
d_input_leftover];
@@ -244,7 +244,7 @@
fprintf(stderr, "%s: usb_reap_async: %s\n",
__FUNCTION__, usb_strerror());
- memcpy(buffer, buf, bytes_to_read);
+ memcpy((void *) &(((char*)buffer)[a]), buf, bytes_to_read);
d_input_leftover = d_block_size - bytes_to_read;
if (d_input_leftover == 0)_______________________________________________
Discuss-gnuradio mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio