RE: [Discuss-gnuradio] Zynq-7000

2011-03-02 Thread Mike Cornelius
I was speaking to my local Xilinx FAE in Australia today, he seems to think
actual parts are something like 18 months out.

> -Original Message-
> From: discuss-gnuradio-bounces+dr=drelectro@gnu.org
> [mailto:discuss-gnuradio-bounces+dr=drelectro@gnu.org] On Behalf Of
> Philip Balister
> Sent: Wednesday, 2 March 2011 1:18 PM
> To: Jordan Hayes
> Cc: gnuradio
> Subject: Re: [Discuss-gnuradio] Zynq-7000
> 
> On 03/01/2011 08:27 PM, Jordan Hayes wrote:
> > Just saw that Xilinx has announced the Zynq-7000 family -- chips that
> > combine a dual-core ARM Cortex-A9 processor and peripherals with
> > programmable logic cells (i.e., FPGA fabric). Seems like this could
> make
> > a pretty good base for an embedded gnuradio platform. Anyone looked
> at
> > this yet?
> >
> > Details at
> > http://www.xilinx.com/publications/prod_mktg/zynq7000/Product-
> Brief.pdf
> 
> Yes, this is an exciting product. Xilinx announced this last April
> during an Embedded Conference. They are slowly releasing technical
> details, but what I haven't seen in the announcements is a solid time
> frame for getting silicon and dev boards :(
> 
> Philip
> 
> ___
> Discuss-gnuradio mailing list
> Discuss-gnuradio@gnu.org
> http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] GNUradio DVB-S/S2

2011-03-02 Thread Dinos Pastos
Hi there

Just a quick question related to GNUradio.

Is it possible to use USRP2 + WBX + Gnuradio to send DVB-S or S2 signals to
a satellite set top box (using a cable)

I am trying to emulate an OTA update on a box I have which tunes to a
specific Freq/Transponder to "download" its OS.

Please let me know

Regards

Dino
___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] Save all the samples of a packet (all complex values) and demodulate at once. (Is it possible?)

2011-03-02 Thread Minsuk Kang
Dear all,

We're using benchmark_tx(rx) apps to implement a simple cellular-like
network.

In the benchmark_rx example, the demodulator demodulates some amount of
symbols at a time and the correlator and the framer, which followed the
demodulator, read the demodulated bits and packetize them into a frame.

But, for some reasons, we want to change the way the receiver decodes a
packet.
That is, we are trying save all the samples of a packet (all complex
values) and demodulate at once in a function at a receiver.

However, we haven't implemented or seen this kind of receiver structure in
gnuradio.

If you have seen or any experience with similar examples, please let us
know.
Any comment on it would be very appreciated.

Thanks in advance.

PS. we're using USRP1 / gnuradio 3.3.0 / Ubuntu 10.04

-- 
Minsuk
___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] nature of gr_vector data

2011-03-02 Thread Marius
Hi!

I have a general question related to the data-type model.

I looked through much of the API documentation but it doesn't seem to
glue together to something what I would describe as a complete
picture. I want to know how the GNUradio framework actually converts
the signal into a digital data-type like a vector.
I'd be satisfied to get a very broad description because I can
research details on my own. What I'm interested is the way how the
gr_vector stuff interacts with the various streams and what "Slicing
and Dicing Streams" (group__slicedice__blk) means. This is important
for me in order to know the data representation and to interpret the
results.

Best,
Marius

___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] nature of gr_vector data

2011-03-02 Thread Sim IJskes

On 02-03-11 14:11, Marius wrote:


I'd be satisfied to get a very broad description because I can
research details on my own. What I'm interested is the way how the
gr_vector stuff interacts with the various streams and what "Slicing
and Dicing Streams" (group__slicedice__blk) means. This is important
for me in order to know the data representation and to interpret the
results.


It all depends on what you want to do i guess. I've learned a lot about 
gnuradio by playing with the gnuradio-companion 'grc'. It makes it 
really easy to drag and drop a SDR solution together. And if things are 
not clear, i grep the sources for the specific method name.


Gr. Sim


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Save all the samples of a packet (all complex values) and demodulate at once. (Is it possible?)

2011-03-02 Thread Jason Uher
On Wed, Mar 2, 2011 at 6:00 AM, Minsuk Kang  wrote:
> Dear all,
> We're using benchmark_tx(rx) apps to implement a simple cellular-like
> network.
> In the benchmark_rx example, the demodulator demodulates some amount of
> symbols at a time and the correlator and the framer, which followed the
> demodulator, read the demodulated bits and packetize them into a frame.
> But, for some reasons, we want to change the way the receiver decodes a
> packet.
> That is, we are trying save all the samples of a packet (all complex
> values) and demodulate at once in a function at a receiver.
> However, we haven't implemented or seen this kind of receiver structure in
> gnuradio.
> If you have seen or any experience with similar examples, please let us
> know.
> Any comment on it would be very appreciated.
> Thanks in advance.
> PS. we're using USRP1 / gnuradio 3.3.0 / Ubuntu 10.04

The main issue with this is "what is a packet".  In the benchmark
scripts there is a defined start and end of the packet, namely,
correlation sequence at the beginning, and the n_bytes field.  To save
the demodulated samples into packets would not do you any good, as you
have no idea where packets begin and end.  You could just save fixed
size blocks using the packetizer, but then your real packets would be
split between your saved blocks at random.

If what you are trying to do is really the best way to go about it,
you would still need to demodulate at least /some/ of the bits
(probably just the header) so you would know when to a packet starts,
then packetize the raw stream starting at that point.

Jason

___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] nature of gr_vector data

2011-03-02 Thread Martin Braun
Hi Marius,

a lot of the confusion understanding GR stuff (in particular, data
types) comes from using Simulink, where vector- or samplebased
processing actually is different. There's a lot of Simulinkers around
here, so I've explained this a couple of times :)

In GNU Radio, the scheduler simply moves binary data from one block to
another. It doesn't matter whether it's samples, vectors of samples or
even pink fluffy teddybears (rather, binary representations thereof) as long
as they have a *fixed size*. One binary object of this fixed size is
called an 'item'. What an item is is up to you to define.

The most common item in GNU Radio is the complex value. Every
item usually has 64 bits (depends on the architecture, but that's the
most common value) and stores one complex value. All the scheduler cares
about here is the item size. It will reserve a buffer for each edge in
the flow graph to store 'enough' items. How much 'enough' is depends on
a couple of things, e.g. how many items does my block need to produce
one output item.

So say you have fixed vector length of 10 complex samples. The scheduler
couldn't care less. All it knows is that you now have an item size of
640 bytes.

One important slicer is the vector_to_stream block. This block is much
simpler than you might imagine (judging from what you asked). It takes
two parameters: The vector length (N), and the size (in bytes) of every
item (M). All it pretty much does is copy the input buffer to the output
buffer, but redefines the item size on the output buffer to M, whereas
it was M*N on the input buffer.

The scheduler, which handles the inter-block-buffers, thus know how many
items are stored in the buffer (it's a ring buffer, to be precise) and
how large they are.

Now say you have a signal source which outputs vectors of 10 samples, and
you want to run them through an FIR filter, which operates on individual
samples.
This is your flow graph:

SRC > Vec2Stream -> Filter.

Now let's pretend this is the scheduler order:

1) SRC produces 1 item (vector). It is copied to the first buffer.
2) Vec2Stream copies the vector to its output buffer.
   The SRC output buffer is now empty (because 1 item was copied into it,
   then was consumed by Vec2Stream). The Vec2Stream output buffer
   contains 10 items.
3) Filter is called and because it's a weird filter, uses 7 input items.
   The Vec2Stream output buffer thus now has 3 items left.
4) SRC and Vec2Stream are called with one item each. This produces 10
   more items in the Vec2Stream output buffer, which now has 13 items.

And so on.

I've been deliberately inaccurate in two respects:
- The GR scheduler does a lot more stuff, and
- there's another way to pass data (messages).

I hope this was helpful.

Cheers,
MB



On Wed, Mar 02, 2011 at 02:11:38PM +0100, Marius wrote:
> Hi!
> 
> I have a general question related to the data-type model.
> 
> I looked through much of the API documentation but it doesn't seem to
> glue together to something what I would describe as a complete
> picture. I want to know how the GNUradio framework actually converts
> the signal into a digital data-type like a vector.
> I'd be satisfied to get a very broad description because I can
> research details on my own. What I'm interested is the way how the
> gr_vector stuff interacts with the various streams and what "Slicing
> and Dicing Streams" (group__slicedice__blk) means. This is important
> for me in order to know the data representation and to interpret the
> results.

-- 
Karlsruhe Institute of Technology (KIT)
Communications Engineering Lab (CEL)

Dipl.-Ing. Martin Braun
Research Associate

Kaiserstraße 12
Building 05.01
76131 Karlsruhe

Phone: +49 721 608-43790
Fax: +49 721 608-46071
www.cel.kit.edu

KIT -- University of the State of Baden-Württemberg and
National Laboratory of the Helmholtz Association



pgpwU8Lpc8Jwb.pgp
Description: PGP signature
___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Re: UHD Announcement - February 25rd 2011

2011-03-02 Thread Feng Andrew Ge

Josh,

As predicted, changing from "RECV_MODE_FULL_BUFF" to 
"RECV_MODE_ONE_PACKET" and then "RECV_MODE_FULL_BUFF" reduced the 
latency significantly. My ping RTT time was >17ms in average, now it is 
10.5ms. This is GREAT:-)


Nonetheless, 10.5ms still includes quite some overhead because the 
communication time for my ping message is less than 3.9 ms in total. 
Above 6ms delay still exists somewhere.


In your description below, "for the source, the work function waits for 
the entire RX buffer" (now it is one UDP packet of samples first and 
then the entire RX buffer), do you mean the buffer size determined by 
"noutput_items"? Likewise, is the entire TX buffer at the sink 
determined by "ninput_items"?


One UDP packet of samples is only 1472/4= 368 samples and  1472/4/2/8 = 
23 B of user data (given BPSK and 2 SPS). For a ping ICMP message ( 42B, 
which is tiny), plus 19B of frame overhead,  it still must wait for 
"waits for the entire RX buffer" which may be possibly 10s of thousands 
of samples.


Is there some way that we can further optimize the behavior? For 
example, can we limit the size of noutput_items? Is this purely GNU 
Radio scheduler's job?


One previous question I had is this: why *recv_buff_size*  is needed for 
benchmark_tx.py which involves only gr_uhd_usrp_sink.cc? I thought only 
*send_buff_siz* is needed.


Andrew


On 03/01/2011 08:20 PM, Josh Blum wrote:


On 03/01/2011 04:39 PM, Feng Andrew Ge wrote:

Josh,

Your explanation makes sense.  Is there a quick fix for me to bypass
this problem temporarily while you are working on the modification.


http://gnuradio.org/cgit/jblum.git/commit/?id=75538e12300cb0d593792a986841ba2df9997c54

:-)


Further,  following your current bandwidth optimization implementation,
is the code trying to fill the buffer in both uhd_single_usrp_sink
(sending buffer) and uhd_single_usrp_source (receiving buffer)?


For the source, the work function waits for the entire RX buffer to be
filled with samples. I strongly believe this is the cause of the latency.

For the sink, the work function sends the entire buffer. This is correct
behavior for optimum latency and bandwidth.


When I started uhd_benchmark_tx.py, it also asked for specification of
*recv_buff_size, where is it used? *


http://www.ettus.com/uhd_docs/manual/html/transport.html#resize-socket-buffers

-Josh

On 03/01/2011 07:01 PM, Josh Blum wrote:

On 03/01/2011 03:25 PM, Feng Andrew Ge wrote:

Josh,

Everything is in the attachment, look for python-based UHD_* code.

The performance before and after Feb.25 was both poor. At one point
before Feb. 25, the latency was even worse, up to>30ms. But I forgot
the time.

In terms of GNU Radio, for running UHD I checked out next from GNU Radio
git.  However, for raw Ethernet, I only ran GNU Radio 3.3.0.  I haven't
found time to check GNU Radio changes yet, what might cause such huge
performance drop.


Andrew,

Here is an idea that may explain your problem:

When the raw ethernet source calls into work(), it does not attempt to
fill the entire buffer (noutput_items). Rather, it waits at least one
packet to become available and then copies only the data that is
available immediately into the buffer.

In contrast, the UHD work function is bandwidth optimized and tries to
fill the entire buffer. At your sample rate (500ksps), this will impose
serious delays for very large noutput_items (10s of thousands). I hope
that explains the issue you see.

I am going to attempt a modification to the work function, where we recv
a single packet with timeout, and then anything else that is available
without waiting.

I will let you know when I post a branch with changes.
-Josh


Andrew

On 03/01/2011 06:13 PM, Josh Blum wrote:

On 03/01/2011 02:21 PM, Feng Andrew Ge wrote:

Josh,

First of all, I am aware of what you pointed out and I did use the
code
latency_test.cpp for measuring latency between USRP2 and a host.  The
latency is negligible.


Ok, i see. You were measuring the ping time over the tunnel. :-)

Can you tell me: Is this a new problem with UHD since the " February
25rd 2011" announcement. That is, was it working properly for you
previously?


I think I was not clear enough in my previous email.
My setting is this: host_1--USRP2_1   talks to  host_2--USRP2_2.  The
latency I measured is based on GNU Radio-created wireless network
interface, e.g., gr0.  I started tunnel.py and created a digital link
between host_1 and host_2; then I compared ping RTT time performance
between using the UHD code and using the Raw_Ethernet code base.  UHD
introduced 9 ms of overhead and I am really puzzled about this. Since

I am puzzled as well. 9ms sounds pretty bad. Is this a port of
tunnel.py
to UHD, can you share it?


USRP2 sends samples immediately out and the latency between the
host and
USRP2 is negligible, the likely place I can think of is the interface
between UHD and GNU Radio, for example, can UDP packet sending be
preempted by other threads? Each time how many 

[Discuss-gnuradio] problems using USRP as transmitter

2011-03-02 Thread Simon Denvir
Hello All,
I've got a simple setup in GRC whereby I record a basic ASK signal directly to 
a file from a USRP source. After recording the signal I can sucessfully play it 
back to a USRP sink. The problem occurs whenever I attempt to to skip the first 
step and playback a pre-recorded signal - theres no transmission from the USRP. 
Can anybody explain why this is? Is there some init done by the USRP source 
instance that isnt performed when the USRP sink is created in isolation?

Thanks.

Simon Denvir.___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Save all the samples of a packet (all complex values) and demodulate at once. (Is it possible?)

2011-03-02 Thread Michael Ossmann
On Wed, Mar 02, 2011 at 09:00:36PM +0900, Minsuk Kang wrote:
>
> That is, we are trying save all the samples of a packet (all complex
> values) and demodulate at once in a function at a receiver.

We do something somewhat like this in gr-bluetooth.  See
bluetooth_multi_block.cc and its subclasses in the git repo here:

http://sourceforge.net/projects/gr-bluetooth/develop

We originally tried to string together separate blocks (squelch, ddc,
demodulator, clock recovery, binary slicer), but the resulting symbol
stream lost too much information about the relative timing between
packets.  For our application we needed precise packet interval
information (like counting the number of samples between packets), but,
even without the squelch block, the demodulator produced a stream of
symbols that varied too much with respect to the sample timing.

Instead we use the history mechanism to ensure that we are always
working with a chunk of samples long enough to encompass an entire
packet, and we have reimplemented (mostly by copy and paste) all the
things mentioned above (that would traditionally be done in separate
blocks) in a single block.  Then we use the demodulated symbol stream to
detect packets, and we construct a packet data structure from the
complete set of symbols all at once.  At that point we could also store
the raw samples of the entire packet, but we haven't had a need to do
so.

Frankly, I think it is ugly, but it does what I think you want to do.
For years I have had in mind a rewrite using something like the new
stream tags mechanism to do all this in separate blocks that pass time
stamps along with the data streams.

mossmann

___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] Is data communication between UHD_USRP_SOURCE and USRP2 "polling" or "pushing"

2011-03-02 Thread Feng Andrew Ge

Josh,

Once I start uhd_benmark_rx.py,  USRP2 continuously sends data to the 
host. The data rate is the sample rate times 4 (bytes per sample). This 
happens even when no transmitter is around. Therefore, I assume that the 
ADC just converts noise into samples and USRP2 sends those samples at 
the rate specified by the sample rate when uhd_usrp_source is initialized.


I have one question, is data communication between USRP2 and 
uhd_usrp_source "polling" or "pushing"? I thought it is "polling" 
because only UDP socket client exists in uhd_usrp_source. In this case, 
data RECV is triggered by the scheduler's work function. Usually the 
noutput_items varies from time to time. If so, how can USRP2 send 
samples at a constant rate of the specified samp_rate (as I observed)?


If it is "pushing" (which means that USRP2's firmware initiates the data 
sending to the host),  it looks like that USRP2 even sends samples of 
noise at a constant speed. But if so, would the such samples fill the 
kernel socket buffer (whose size is determined by "sudo sysctl -w 
net.core.rmem_max=")?  Newer packets will get dropped.



On 03/01/2011 06:13 PM, Josh Blum wrote:

Nothing gets buffered in the UHD in the usrp2/n210 implementation.
However, there is a kernel socket buffer on receive that has enough
buffering for a second of samples. Once this buffer fills, newer packets
are dropped.

I also believe that this is the same on the raw ethernet driver.

-josh



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Re: UHD Announcement - February 25rd 2011

2011-03-02 Thread Josh Blum


On 03/02/2011 07:37 AM, Feng Andrew Ge wrote:
> Josh,
> 
> As predicted, changing from "RECV_MODE_FULL_BUFF" to
> "RECV_MODE_ONE_PACKET" and then "RECV_MODE_FULL_BUFF" reduced the
> latency significantly. My ping RTT time was >17ms in average, now it is
> 10.5ms. This is GREAT:-)
> 

glad to hear improvement!

> Nonetheless, 10.5ms still includes quite some overhead because the
> communication time for my ping message is less than 3.9 ms in total.
> Above 6ms delay still exists somewhere.
> 

True. Can you run the tunnel application on the same gnuradio install
with the raw ethernet driver? That way we can isolate the problem. It
would be good to know if there was a regression in the scheduler, or
that the issue is inside gr-uhd.

> In your description below, "for the source, the work function waits for
> the entire RX buffer" (now it is one UDP packet of samples first and
> then the entire RX buffer), 

So, its not the entire rx buffer on the "gr_uhd_source_latency_work"
branch. The second call to recv() is non blocking, so it only handles
data that is already available without delay. It should return less than
noutput_items. You can confirm this by printing (num_samps <
noutput_items) before work() returns.


do you mean the buffer size determined by
> "noutput_items"? Likewise, is the entire TX buffer at the sink
> determined by "ninput_items"?
> 

yes (although its still called noutput_items thanks to copy/paste)

> One UDP packet of samples is only 1472/4= 368 samples and  1472/4/2/8 =
> 23 B of user data (given BPSK and 2 SPS). For a ping ICMP message ( 42B,
> which is tiny), plus 19B of frame overhead,  it still must wait for
> "waits for the entire RX buffer" which may be possibly 10s of thousands
> of samples.
> 
> Is there some way that we can further optimize the behavior? For
> example, can we limit the size of noutput_items? Is this purely GNU
> Radio scheduler's job?
> 

We can return less than noutput_items but not zero. Which is what the
changes on that branch attempt to do.

> One previous question I had is this: why *recv_buff_size*  is needed for
> benchmark_tx.py which involves only gr_uhd_usrp_sink.cc? I thought only
> *send_buff_siz* is needed.
> 

It is not needed; and whoever made that application should not have put
those options in. UHD will choose the best settings automatically.

-josh

___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Re: UHD Announcement - February 25rd 2011

2011-03-02 Thread Feng Andrew Ge

Josh,

Before I test it with the raw ethernet driver, would you tell me what's 
the difference in gr_uhd_usrp_sink between blocking send and 
non-blocking send? Since the sending data is already in the buffer and 
it is UDP sending, I don't see any difference. But perhaps you might 
point out any difference from a time delay perspective.


Andrew

On 03/02/2011 02:11 PM, Josh Blum wrote:

True. Can you run the tunnel application on the same gnuradio install
with the raw ethernet driver? That way we can isolate the problem. It
would be good to know if there was a regression in the scheduler, or
that the issue is inside gr-uhd.



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] smart pointer problem

2011-03-02 Thread Josh Blum


On 03/01/2011 11:36 PM, johan kuijpers wrote:
> Hi,
> 
> I'm fighting a bit with a smart pointer. I want to apply a filter in my
> block. Hence I construct a filter as shown below:
> 
> gr_fir_filter_fff_sptr hi_pass = gr_make_fir_filter_fff(1,
> gr_firdes::high_pass (1.0,
> 64000,
> 5000,
> 1000,
> gr_firdes::WIN_HAMMING,
> 6.76
> ));
> 
> as soon as I dereference the smart pointer in order to use the filter I
> get an assertion error: const [with T = gr_block_detail]: Assertion `px
> != 0' failed.
> 
> hi_pass->general_work(noutput_items, ninput_items, input_items,
> output_items);
> 
> this means the smart pointer doesn't have a pointer (any longer?) to the
> filter. Does anyone see what I'm doing wrong. I've been trying quite
> hard to find the mistake but I simply don't get it.
> 

It looks like you are using the shared pointer correctly, but perhaps
there is something else that the scheduler sets-up that you are missing
by using the block in a stand-alone fashion. Only the gurus know.

You may want to use the vector source -> block -> vector sink paradigm
that all the qa code uses; to process a single chunk of samples.

-Josh

___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] How is "UU" generated

2011-03-02 Thread Feng Andrew Ge


Another question is how "UUU" gets generated---I still got many of 
them?  Further, "UUU" makes sense when GNU Radio works with an audio 
device; however, I am not sure about its use when GNU Radio sends 
non-continuous data to USRP. When this "UUU" happens, will it be 
possible that some samples get held somewhere or even get dropped? I 
assume not, but like to get your confirmation.


Andrew

___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] new feature work: qtgui support in grc

2011-03-02 Thread Alexandru Csete
Hi Josh,

I had a few moments to try it out. It worked very well and I think it
will be useful.

I got a little confused when I cloned the repository because it said
there was no HEAD (or something like that) and the directory was
empty, but I could still checkout to the wip/qtgui/grc branch. I hope
I got the right thing.

You mention engineering notation for the widget. I believe for the
text entry it is quite straightforward (xml attached - I just copied
the code from the gr-qtgui example).

I will do more tests during the coming days.

Alex


On Wed, Mar 2, 2011 at 2:52 AM, Josh Blum  wrote:
> Hey list,
>
> I have been working on supporting PyQt widgets and the qtgui sinks in
> the Gnuradio Companion. Get the code on my wip/qtgui/grc branch on
> jblum.git http://gnuradio.org/cgit/jblum.git/log/?h=wip/qtgui/grc
>
> Available widgets:
>  * qtgui plotter (dft, scope, etc)
>  * tabbed panel
>  * slider
>  * combo box
>  * radio buttons
>  * text entry
>  * label
>
> 1) The slider adds a new requirement of PyQwt (python Qwt bindings). Qwt
> should already be installed for the qtgui sinks themselves.
>
> 2) The qtgui and wxgui widgets are distinctly separated. Previously, the
> "variable slider" was a wx slider form. Now, there is a WX GUI Slider
> and a QT GUI Slider. And the generate options now have a QT GUI option.
> You cannot mix and match widgets from different graphics libraries.
>
> 3) No attempt was made to make the existence of different graphics
> toolkits transparent to the user. That would have been a huge pain on my
> part and I couldn't try new things. If this Qt thing catches on, I am
> considering a migration script from wx->qt.
>
> 4) The Qt widgets in grc do not have a python wrapper/forms library like
> they do in gnuradio. All the generated code uses the PyQt API directly.
> This is in-part possible because Qwt supplies its own set of useful
> wrappers around Qt widgets. Examples: http://qwt.sourceforge.net/sliders.png
>
> 5) Each widget block in grc has a gui hint parameter. This parameter is
> a combination of the grid parameter and notebook parameter seen in the
> wx widget blocks. It also allowed the implementation code to be a lot
> more generic.
>
> Whats missing?
> I feel that the widgets still need a bit of polishing. Engineering
> notation would be nice. I'd like to see features in the wx scope sink
> brought to the qtgui scope such as trigger modes and multiple channels.
> I think the qt equivalent of the numbersink would be nice too (and that
> could use some of those real fancy qwt widets):
> http://read.pudn.com/downloads186/sourcecode/embed/872381/qwt/doc/images/dials2.png
>
> Why qtgui stuff?
> The WX stuff in gnuradio is fairly polished in comparison; and when it
> works, it works. But we have seen many issues with wx outside of the
> linux+x86 world, not to mention opengl issues on the x86. I hope that
> the qt stuff is a viable, cross platform option for live gnuradio
> plotting and graphical applications.
>
> Please try it out. Feedback is welcome!
> -Josh
>
> ___
> Discuss-gnuradio mailing list
> Discuss-gnuradio@gnu.org
> http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>



	QT GUI Entry
	variable_qtgui_entry
	QT GUI Widgets
	from PyQt4 import Qt
	self.$(id) = $(id) = $value
	#set $win = 'self._%s_tool_bar'%$id
$win = Qt.QToolBar(self)
#if not $label()
	#set $label = '"%s"'%$id
#end if
$(win).addWidget(Qt.QLabel($label+" ", None))
self._$(id)_line_edit = Qt.QLineEdit(str(self.$id))
self._$(id)_tool_bar.addWidget(self._$(id)_line_edit)
self._$(id)_line_edit.returnPressed.connect(
	lambda: self.set_$(id)(eng_notation.str_to_num(self._$(id)_line_edit.text().toAscii(
$(gui_hint()($win))
	self.set_$(id)($value)
	self._$(id)_line_edit.setText(eng_notation.num_to_str($id))
	
		Label
		label
		
		string
		#if $label() then 'none' else 'part'#
	
	
		Type
		type
		int
		enum
		part
		Floatrealconv:float
		Integerintconv:int
		Stringstringconv:str
		Booleanboolconv:bool
		Anyrawconv:eval
	
	
		Default Value
		value
		0
		$type
	
	
		GUI Hint
		gui_hint
		
		gui_hint
		part
	
	
This block creates a variable with a text entry box. \
Leave the label blank to use the variable id as the label.

The GUI hint can be used to position the widget within the application. \
The hint is of the form [tab_id@tab_index]: [row, col, row_span, col_span]. \
Both the tab specification and the grid position are optional.
	

___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] questions related to msgq_insert

2011-03-02 Thread Yan Nie
Dear all,

I'm using the message_source to generate the source, connecting it with a 
multiply_const block to configure the amplitude for the signal. 

The message_source is created by the following:
data = gr.message_source(sizeof_char, 2)
msgq = data.msgq()

When the msg is inserted as a tail of the msgq while the flow graph is running, 
the msg is inserted using insert_tail(msg). If my understanding serves me 
right, if only insert the msg once, it suppose to be send once. In my case, 
however, the msg is sent 10 times. (the set_amp is defined in the tb block to 
change the amplitude of the signal while tb is running) Could anyone help me to 
see what causes the problem?
The code related msgq_insert in main thread is as followed:
try:
  while 1:
           i = 1 
           tb.set_amplitude(5000)
           msg_13bit = gr.message_from_string(payload_13bit)
           tb._ls.msgq.insert_tail(msg_13bit)
           tb.set_amplitude(0)
           while(i < 50)
                   msg_stop = gr.message_from_string(payload_stop)
                   tb._ls.msgq.insert_tail(msg_stop)
                   i += 1

Really appreciate any of your help!
Thanks,
Yan
___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] new feature work: qtgui support in grc

2011-03-02 Thread Josh Blum


On 03/02/2011 04:11 PM, Alexandru Csete wrote:
> Hi Josh,
> 
> I had a few moments to try it out. It worked very well and I think it
> will be useful.
> 
> I got a little confused when I cloned the repository because it said
> there was no HEAD (or something like that) and the directory was
> empty, but I could still checkout to the wip/qtgui/grc branch. I hope
> I got the right thing.
> 

Ah, I dont have a master branch. Most people just git remote add my repo
to an existing gnuradio repo.

> You mention engineering notation for the widget. I believe for the
> text entry it is quite straightforward (xml attached - I just copied
> the code from the gr-qtgui example).
> 

Excellent, I will try to get this in the block as an option for
float/real numbers.

My goal is to have engineering notation for the text box in the qwt
slider. I think that involves making a custom qwt text/engine object. It
seems like something qwt should support or would not be hard to
implement. Not sure. http://pyqwt.sourceforge.net/doc5/reference.html

Thanks!
-Josh

> I will do more tests during the coming days.
> 
> Alex
> 
> 
> On Wed, Mar 2, 2011 at 2:52 AM, Josh Blum  wrote:
>> Hey list,
>>
>> I have been working on supporting PyQt widgets and the qtgui sinks in
>> the Gnuradio Companion. Get the code on my wip/qtgui/grc branch on
>> jblum.git http://gnuradio.org/cgit/jblum.git/log/?h=wip/qtgui/grc
>>
>> Available widgets:
>>  * qtgui plotter (dft, scope, etc)
>>  * tabbed panel
>>  * slider
>>  * combo box
>>  * radio buttons
>>  * text entry
>>  * label
>>
>> 1) The slider adds a new requirement of PyQwt (python Qwt bindings). Qwt
>> should already be installed for the qtgui sinks themselves.
>>
>> 2) The qtgui and wxgui widgets are distinctly separated. Previously, the
>> "variable slider" was a wx slider form. Now, there is a WX GUI Slider
>> and a QT GUI Slider. And the generate options now have a QT GUI option.
>> You cannot mix and match widgets from different graphics libraries.
>>
>> 3) No attempt was made to make the existence of different graphics
>> toolkits transparent to the user. That would have been a huge pain on my
>> part and I couldn't try new things. If this Qt thing catches on, I am
>> considering a migration script from wx->qt.
>>
>> 4) The Qt widgets in grc do not have a python wrapper/forms library like
>> they do in gnuradio. All the generated code uses the PyQt API directly.
>> This is in-part possible because Qwt supplies its own set of useful
>> wrappers around Qt widgets. Examples: http://qwt.sourceforge.net/sliders.png
>>
>> 5) Each widget block in grc has a gui hint parameter. This parameter is
>> a combination of the grid parameter and notebook parameter seen in the
>> wx widget blocks. It also allowed the implementation code to be a lot
>> more generic.
>>
>> Whats missing?
>> I feel that the widgets still need a bit of polishing. Engineering
>> notation would be nice. I'd like to see features in the wx scope sink
>> brought to the qtgui scope such as trigger modes and multiple channels.
>> I think the qt equivalent of the numbersink would be nice too (and that
>> could use some of those real fancy qwt widets):
>> http://read.pudn.com/downloads186/sourcecode/embed/872381/qwt/doc/images/dials2.png
>>
>> Why qtgui stuff?
>> The WX stuff in gnuradio is fairly polished in comparison; and when it
>> works, it works. But we have seen many issues with wx outside of the
>> linux+x86 world, not to mention opengl issues on the x86. I hope that
>> the qt stuff is a viable, cross platform option for live gnuradio
>> plotting and graphical applications.
>>
>> Please try it out. Feedback is welcome!
>> -Josh
>>
>> ___
>> Discuss-gnuradio mailing list
>> Discuss-gnuradio@gnu.org
>> http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>>
>>
>>
>> ___
>> Discuss-gnuradio mailing list
>> Discuss-gnuradio@gnu.org
>> http://lists.gnu.org/mailman/listinfo/discuss-gnuradio

___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] Problem with output of inverse FFT

2011-03-02 Thread Hans-Christian

Hi @all,

on my long way to send multiple  802.11g frames i found another problem…

During the process the data is converted from frequency domain to time
domain by inverse fft.  
The fft length is 64, and the input is the OFDM symbol with carrier tones
(vector of 64 * gr_complex) 
The frame consists of 3 ofdm symbols and i want to convert two identical
frames.
So there are 6 elements with a size of  64* gr_complex.  (6*64 *8Byte = 3072
Byte)

When I compare the result of the first frame (Bytes 0 – 0x5FF) with the
result of the second frame (0x600 – 0xBFF) in a hex editor the frames are
NOT the same. 

They differ from each other, starting at Byte 0x800 to 0x200 in the fist
frame. (0x800 = 2048dec!?)

I’m able to reproduce the problem in GRC, using a file source
–>throttle->inverse fft(size 64) -> file sink  flowgraph., my input file is
attached.

Is there a problem with the precession of the ifft? (gnuradio 3.2.2, ubuntu
10.04)

Has anybody an idea how to fix this?

http://old.nabble.com/file/p31056403/input.dat input.dat  
http://old.nabble.com/file/p31056403/output.dat output.dat 

-Hans
-- 
View this message in context: 
http://old.nabble.com/Problem-with-output-of-inverse-FFT-tp31056403p31056403.html
Sent from the GnuRadio mailing list archive at Nabble.com.


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] libgnuradio-core-3.3.0.so

2011-03-02 Thread 苹果
Hello everyone,
I have setuped the gnuradio3.3.0. Then I tryed to test whether it can work or 
not. I tryed to run "./dial_tone". However, I got an Error: "ImportError: 
libgnuradio-core-3.3.0.so.0: cannot open shared object file: No such file or 
directory". And could you help me to solve this problem?


Alex___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio