Johnathan Corgan [Tue, 18 Aug 2009 03:46:30 +0000 (23:46 -0400)]
Applied libusb-1.0 patch set from Thomas Tsou <ttsou@vt.edu>:
This patch set updates the usrp to support libusb-1.0. Asynchronous I/O
through libusb is added with fusb_libusb1.*, which is heavily based on
fusb_linux.*. In short, URB's and ioctl calls are replaced with
libusb_transfer structs and native calls. Transfer reaping is handled by
libusb and associated callbacks. I get 32Mb/s on all of my machines using
test_usrp_standard_rx or tx. Due to the API rewrite in 1.0 from 0.12, there
are alot of changes, many are simply name changes.
Known Issues:
Transmit and receive both work, but not at same time
(e.g. usrp_benchmark_usb.py). libusb does not create any internal threads,
so for a single session fusb_libusb1 works in the same manner as
fusb_linux with the callback called at controlled times. With multiple
libusb sessions the callback may occur at any time and threading issues
come into play causing behavior to become undefined. The use of separate
libusb_contexts _might_ solve this issue; I have not had the time to look
into it.
Merge branch 'grc' of http://gnuradio.org/git/jblum into master
* 'grc' of http://gnuradio.org/git/jblum:
fixed issue where entry boxes lost focus (mishandling of hide changing)
fixed bool converter in forms to work with non bool options
tweaked key handling callbacks
fix for uniformity convention with gtk signal name strings
Simply Actions module imports, using module prefix.
Reworked actions api and actions objects:
Move key press extraction logic into actions module.
rename variable, use keysyms in props dialog
use the keymap's translate_keyboard_state, use the key value rather than name
ignore irrelevant modifiers and events pending
properties dialog with ok/cancel buttons
Reworked actions api and actions objects:
Created standardized Action object for all gui actions.
Actions module constants are actual Action objects (not strings).
Keypresses, labels, tooltips, stock icons, etc all associate in the Action constructor.
Usage of the action's signaling call () eliminated the need for a reference to handle_states.
Move key press extraction logic into actions module.
Replaced xml encode with gtk escape text.
Added templates for category and docs tool tips.
Other various code tweaks in gui modules.
Merge branch 'grc' of http://gnuradio.org/git/jblum into master
* 'grc' of http://gnuradio.org/git/jblum:
use show signal to perform initial gui update
Fixed the usrp and usrp2 probe scripts to work with the new gui param api.
propsdialog tweaks
more code cleanup for properties dialog
Rework the params/properties dialog and param gui class:
renamed params dialog to props dialog
remove unused imports, copyright date update, tweak
Created recursive create labels and shapes method for gui element.
replaced dict[rot] storage of areas and lines with a single list for the current rotation
standardized the Element inheritance __init__ usage in gui
better error msg for empty statements
Implement a recursive validation api in the base Element class.
Merge branch 'usrp_siggen' of http://gnuradio.org/git/jblum into master
* 'usrp_siggen' of http://gnuradio.org/git/jblum:
only import usrp and usrp2 modules in the setup methods
updated digital to use installed usrp options
tweaked ampl slider params
copied usrp_siggen stuff from experimental gui into gnuradio tree
Round the slider's value, but not the internal representation.
Now, the slider can operate on any step size without killing the precision for other forms.
Fixed the usrp and usrp2 probe scripts to work with the new gui param api.
Also fixed the scripts to work since they were broken by previous changes.
Get input in param class now pases a param instance (self) into the object.
Created recursive create labels and shapes method for gui element.
Replaces update methods in the gui classes and simplifies calls.
The master update method in flow graph calls create labels and shapes.
Implement a recursive validation api in the base Element class.
The rewrite and validate methods will invoke themselves on the child elements.
The error messages are now a super-list of element and child error messages.
As a side-effect, this cleans up code in base Block and Flowgraph class.
Merge branch 'grc' from http://gnuradio.org/git/jblum.git into master
we dont use test() -> remove it
Made the window for the pass band filters integers (take firdes.WIN_XXX).
Evaluation fix in param.to_code().
Removed the flagging api and usage from the base classes.
added ref scale param to fft and waterfall
Switched the python classes to inherit from the base and gui classes.
port and param types from an overloaded method
todo
Replaced TYPES in Port and Param with types parameter.
made is_virtual_xxx a block level function, used by port and param classes
added stream id type and checking in evaluate
avoid loops
Recursive resolution of virtual sources.
added virtual source and added stream ids, logic to clone in port
added rewrite methods to element to separate from validation logic
Added virtual sink and logic to clone port.
removed repurposing of pads
Work on command line options for generated code.
renamed the colors dialog to types
use pkgpythondir
...
Eric Blossom [Fri, 4 Sep 2009 10:32:32 +0000 (03:32 -0700)]
Fix problem with commands timing out (specifically stop_rx_streaming)
After fixing the race, this change uses Tom's idea to stop enqueuing
data when trying to stop, and adds a new flush_rx_samples method
to drop any samples that may have already been accumulated.
I ran Tom's test case 500 times with 0 failures ;-)
Merge branch 'sync' from http://gnuradio.org/git/trondeau.git into master
* Fixing a line in the clock recovery algorithm. This works with a bit larger error than there proably should be.
* Adding clock sync algorithm using PFB. This works, but needs a bit more work.
Dont force an evaluation in to code unless the type is string or list.
Not doing so forces the variables to call evaluate before the namespace was bootstrapped.
This fixes a bug that came up when the validate was replaced with rewrite in flowgraph.import_data().
By replacing the validate, evaluate was only called once, and the namespace was not bootstrapped.
Merge branch 'lo_fix' from http://gnuradio.org/git/jblum.git into master
* Modifications to usrp2 source and sink so that set center freq is called afer set lo offset.
* Modifications to the usrp blocks and wrapper so that the lo offset is set with the lo frequency.
Fix so that the waterfall texture is initialized with a buffer of the same size.
If the fft size was a non power of two, the buffer would be a different size.
This would cause a segfault. Particularly because fft_window was throwing out a bin.
Merge branch 'wxgui' from http://gnuradio.org/git/jblum.git into master
* Modified log power fft block so ref scale is peak to peak.
* Tweaked fft sink autoscale routine to come up with better numbers.
* Modified scope sink ac couple block to use constant tap. The previous
tap calculation would cause failure for very small sample rates.
Modified log power fft block so ref scale is peak to peak.
Tweaked fft sink autoscale routine to come up with better numbers.
Modified scope sink ac couple block to use constant tap.
The previous tap calculation would cause failure for very small sample rates.
Josh Blum [Sun, 30 Aug 2009 17:34:10 +0000 (10:34 -0700)]
Switched the python classes to inherit from the base and gui classes.
Use only **kwargs so all contructor parameters must be passed with keys.
Moved gui input forms classes from base to gui param module.
Josh Blum [Sat, 29 Aug 2009 08:04:58 +0000 (01:04 -0700)]
Replaced TYPES in Port and Param with types parameter.
Replaced odict in options for storing options with a list.
Fix virtual port check in flow graph template.
Johnathan Corgan [Wed, 26 Aug 2009 23:52:40 +0000 (16:52 -0700)]
Merge vrt of http://gnuradio.org/git/jblum.git into master
* automatic store for empty traces on enable
* added traces to fft window
* added quadradio method to enable/disable cal
* use enum for band select
* added get band select
Johnathan Corgan [Wed, 26 Aug 2009 23:48:36 +0000 (16:48 -0700)]
Merge msg-passing from http://gnuradio.org/git/eb.git
* Add shorthand for making tuples.
* Add blobs and shorthand pmt pseudo-constructors.
* gruel::send can now send to a pmt.
* Add top-level msg_passing.h include file.
* QA code now works.
* Add pmt type that wraps a gruel::msg_accepter.
Josh Blum [Wed, 26 Aug 2009 18:23:23 +0000 (11:23 -0700)]
Added virtual sink and logic to clone port.
Tweaks to the base validation routines.
Validate twice in the update until rewrite functions are implemented.