[Discuss-gnuradio] Command terminated by signal 11

2014-03-25 Thread Sumedha Goyal
Hello

I am running my code in Python using Gnuradio and USRPs. The program is
supposed to work continuously till an interrupt is given. The code works
well for 10-15 iterations and then terminates stating command terminated
by signal 11. What could be the possible reason behind it. I tried to
google this error but the explanation given there was difficult to
understand.
Also how can I get rid of this error?

Regards,
Sumedha
___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] looping with work() function

2014-03-24 Thread Sumedha Goyal
Hi Activecat

The description that you have given matches quite closely to my
requirements. Kindly send me the sample code. I will try it out with my
setup.

We need to set_max_noutput_items() to a small value, so that the block
response fast enough to the ACK signal.
This block should continuously consuming input from USRP (to detect
ACK) while sending output (either data packets, or a series of zero)
to the USRP.
I think these two ports (the input and output connecting to USRP)
should have the same data rate as they are connecting to the same
USRP.

What should be done to make all these settings?

When PC#1 transmit packets, PC#2 may miss the few packets before
detecting the first one.
That's why you want PC#1 to count the number of packets transmitted
before receiving ACK.
But have you ever think that, the ACK sent by PC#2 may also be missed
out by PC#1.
Then how would you handle this ..?

I am trying to start my experiment from the transmitter side first. I'll
handle the missed ACKs later.

Regards,
Sumedha
___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] looping with work() function

2014-03-11 Thread Sumedha Goyal
My top_block class represents the whole flowgraph. The class test_demo is
one of the blocks of this flowgraph for which its own work() function is
defined.
The test_demo checks for a start sign(given by the user) and
participates in data transmission process and upon receiving an ACK for
success should stop further transmission.
At this point, the flowgraph should stop and start again with a new start
sign for next iteration and so on. I am planning to plot the number of
packets transmitted before receiving an ACK against this start sign.
Therefore, I need my flowgraph to execute several times.
I hope this description explains my intention. I am not very familiar with
scheduler. How can I use the scheduler to do this?


On Tue, Mar 11, 2014 at 3:12 PM, Activecat active...@gmail.com wrote:

 On Tue, Mar 11, 2014 at 5:04 PM, Martin Braun martin.br...@ettus.comwrote:

 On 03/11/2014 06:10 AM, Sumedha Goyal wrote:
  Hello
 
  I am executing a flowgraph where I pass different parameters to the
  work() function of my block in every iteration.


 If the parameters could be fed into work() as input elements, than that
 is possible.
 Please  describe the parameters in details.


  1. I would like my flowgraph to execute once with a certain set of
  parameters and on satisfying a certain condition, it should stop
  execution (even if the queue/buffer of the block is not empty).
  2. The control should come back to the main() function and the next
  iteration should start with a new set of parameters and again upon
  satisfying a certain condition the flowgraph should exit.


 In flow-graph there is no main() function, but only the scheduler in the
 background.
 Please give specific examples of what you are trying to accomplish.

 Regards,
 Activecat

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


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


[Discuss-gnuradio] how to limit the size of buffer/queue for a block?

2014-03-11 Thread Sumedha Goyal
Hello

The flowgraph of my top_block has test_demo as one of the blocks. The
work() function associated with it has only one print statement.
When I execute the flowgraph, the statement keeps on printing the statement
 I AM IN WORK on the screen. Why does it happen?
My flowgraph is :
File source---stream to datagram---test_demodatagram to
stream-file sink

test_demo.py is :

import timing
import numpy
import gras
import Queue
import thread
from gnuradio import gr
from gnuradio import digital
from gnuradio import uhd
import grextras


class test_demo(gras.Block):

def __init__(self, threshold):
gras.Block.__init__(self,name=test_demo,
in_sig = [numpy.uint8,numpy.uint8,numpy.uint8],
out_sig = [numpy.uint8,numpy.uint8])
self.input_config(0).reserve_items = 0
self.input_config(1).reserve_items = 0
 self.output_config(1).reserve_items = 4096
self.output_config(0).reserve_items = 4096
self.threshold=threshold
 print inside test_demo

 def work(self,ins,outs):
print I AM IN WORK

If it is due to the size of buffer/queue of the block then how can I limit
it?
I understand that work() keeps on executing till the block receives
something at its input ports. I want work() to return the control to main
flowgraph upon satisfying a user specified condition such as
if (i=5):
self.mark_done()
It should ignore all the pending packets of the buffer/queue.
I want to start my flowgraph fresh after this process.
___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] looping with work() function

2014-03-11 Thread Sumedha Goyal
1. There is a file source that frames data packets for the test_demo. This
is part of a transmitter USRP.
2. I have another USRP as receiver that sends an ACK upon reception of data
packets to the transmitter.
3. Start sign is a threshold value. If the packet information (calculated
by some method) exceeds this threshold, transmission starts and upon
receiving an ACK stops.
4. I change this threshold value for every new iteration and count how many
packets were transmitted before receiving a success ACK.
I can do this manually for every iteration but how to automate it for say
some 1000 iterations?

I hope it explains everything.
On Mar 11, 2014 7:28 PM, Activecat active...@gmail.com wrote:

 Dear Sumedha Goyal,

  The test_demo checks for a start sign(given by the user) and
  participates in data transmission process and upon receiving an ACK for
  success should stop further transmission.

 Q1: What do you mean by participates in data transmission process?
 Does it just send out what it receives, or insert any new data?
 Q2: For upon receiving an ACK:-  from where the ACK will comes from,
 from upstream, downstream, or somewhere else?

  At this point, the flowgraph should stop and start again with a new
 start
  sign for next iteration and so on. I am planning to plot the number of
  packets transmitted before receiving an ACK against this start sign.

 If I understand you requirement correctly, you need a block that
 continuously getting input from somewhere.
 This input contains start sign and later followed by ACK.
 Upon receiving start sign, this block will pass through all it
 receives to its output port.
 Upon receiving ACK, this block will stop the pass through (means no
 output), until it receive another start sign again.
 Meanwhile, you want the block to count the number of inputs between
 the start sign and ACK, and use this number to plot graph.

 Is this what you want?  If yes then I am able to help you.
 Let's clarify your requirements first.

 Regards,
 Activecat

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

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


[Discuss-gnuradio] looping with work() function

2014-03-10 Thread Sumedha Goyal
Hello

I am executing a flowgraph where I pass different parameters to the work()
function of my block in every iteration.

1. I would like my flowgraph to execute once with a certain set of
parameters and on satisfying a certain condition, it should stop execution
(even if the queue/buffer of the block is not empty).
2. The control should come back to the main() function and the next
iteration should start with a new set of parameters and again upon
satisfying a certain condition the flowgraph should exit.

*The work() function is of the block test_demo:*
*new_test_tx.py#*
class test_demo(gras.Block):
 def__init__(self,parameters):
gras.Block.__init__(self,name=test,
in_sig = [numpy.uint8,numpy.uint8,numpy.uint8],
out_sig = [numpy.uint8,numpy.uint8])

def work(self, ins, outs):
--some process here

*The top_block is as following and has code for all the connections(not
shown here):*

class top_block(grc_wxgui.top_block_gui):

def __init__(self,options,llr):
grc_wxgui.top_block_gui.__init__(self, title=Top Block)
_icon_path = /usr/share/icons/hicolor/32x32/apps/gnuradio-grc.png
self.SetIcon(wx.Icon(_icon_path, wx.BITMAP_TYPE_ANY))

  self.=new_test_tx.test_demo(options.parameters)
def main():

parser = OptionParser(option_class=eng_option, conflict_handler=resolve)
parser.add_option(, --args,default=,
  help=set the address of usrp_device [default=''])
(options, args) = parser.parse_args ()
# build the graph
tb=top_block(options,param)
tb.Run(True)
if __name__==__main__:
 main()

I am able to execute the flowgraph once and then the main() function exits.
I would like to perform this action for some 1000 iterations. It is a kind
of for loop that I use during C/Python programming. How can I use it with
GNURadio and Python.


Thanks and Regards,
Sumedha
___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] Using both antennas of USRP as Receivers

2014-03-04 Thread Sumedha Goyal
Is it possible to use both the antennas of USRP as receive antennas? For
example TX/RX should work on frequency f1 as a receive antenna and RX2
should work on frequency f2 as another receive antenna. Also, USRP should
be able to collect data from both the antennas simultaneously. How can I
approach this problem

Thanks and Regards,
Sumedha
___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Fwd: problem with top_block.stop()

2013-12-18 Thread Sumedha Goyal
Hi Tom,

I have removed tb.wait(). Now the sequence is

tb=top_block(options,0.8)
tb.start()
sleep(3)
tb.stop()

I want my program to stop here and take new values which is not happening
right now. It executes till sleep(3) and then hangs somewhere.

You have asked to stop the flowgraph internally, kindly suggest a way to do
that. As I have mentioned earlier too, I have an event in the work()
function which when occurs the flowgraph should be terminated.
I tried using thread.exit in work function but unfortunately it is
terminating the whole program.

Kindly suggest a way to bring the control back to main loop.

Regards,
Sumedha


On Wed, Dec 18, 2013 at 8:43 PM, Tom Rondeau t...@trondeau.com wrote:

 On Wed, Dec 18, 2013 at 1:39 AM, Sumedha Goyal sumedha1...@gmail.com
 wrote:
 
 
  -- Forwarded message --
  From: Sumedha Goyal sumedha1...@gmail.com
  Date: Wed, Dec 18, 2013 at 10:50 AM
  Subject: Re: [Discuss-gnuradio] problem with top_block.stop()
  To: Tom Rondeau t...@trondeau.com
 
 
  Hi
  My flowgraph does not stop naturally. I want to stop and start it again
  using different value for a parameter as shown in my above question.
  There is an event in my program where the flowgraph finishes it's job
 with
  first parameter value (which is 0.8 here), at the occurrence of that
 event I
  want the control of flowgraph to come back to the main(). Then I want to
  restart the flowgraph with a new parameter value (which is 0.4 here).
  Kindly guide me on this.
 
  Also, can I forcibly bring the control back to main() even when the
  flowgraph doesn't have anything to stop its execution?
 
  Thanks and Regards,
  Sumedha


 As I said, tb.wait() is a blocking call. If there is nothing to stop
 your flowgraph, you will continue to block at the tb.wait() line
 forever. If it helps, the top_block is implemented as a multi-threaded
 application where each block is in its own thread. The tb.wait()
 performs a thread join() on all threads in the flowgraph. So the
 flowgraph must exit before wait will exit. You have to stop your
 flowgraph internally somehow to continue.

 Tom



  On Tue, Dec 17, 2013 at 11:24 PM, Tom Rondeau t...@trondeau.com wrote:
 
  On Tue, Dec 17, 2013 at 12:23 PM, Sumedha Goyal sumedha1...@gmail.com
  wrote:
   I am trying to pass two different parameters to my top_block class
   I m not able to do this please help. The control of program gets stuck
   at
   tb.stop() and doesn't go beyond that.
  
   tb=top_block(options,0.8)
   tb.start()
   tb.wait()
   tb.stop()
   sleep(5)
   print I AM BACK
   tb1=top_block(options,0.4)
   tb1.start()
   tb1.wait()
   tb1.stop()
   sleep()
  
   Regards,
   Sumedha
 
  Does your flowgraph in tb naturally stop? The tb.wait() is a blocking
  call and will halt the main loop there until all threads (blocks) in
  tb are done. If your flowgraph doesn't have something that stops
  execution (like a finite file or a blocks.head block), then it will
  continue to process forever and your tb.wait() will continue to block.
 
  Tom
 
 
 
 
  ___
  Discuss-gnuradio mailing list
  Discuss-gnuradio@gnu.org
  https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
 

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


Re: [Discuss-gnuradio] Fwd: problem with top_block.stop()

2013-12-18 Thread Sumedha Goyal
Hi

I used a blank work() function as follows

def work(self,ins,outs):
 print  i m in work 
self.mark_done()

using mark_done(), I got the control back in the main loop.

When I use my specific work() function with  mark_done() after a successful
event, I get following error message:

ASSERT FAIL
/usr/local/software/gnuradio-3.6.4.2/gras/lib/gras_impl/output_buffer_queues.hpp:60
not this-empty(i)
Traceback (most recent call last):
  File /usr/local/lib/python2.7/dist-packages/gras/GRAS_PyBlock.py, line
230, in _Py_work
ret = self.work(input_arrays, output_arrays)
  File /usr/local/software/working_TRANS_19/new_split_tx.py, line 304, in
work

self.send_pkt_phy(self.outgoing_msg,self.arq_expected_sequence_no,self.h,DATA_PKT)
  File /usr/local/software/working_TRANS_19/new_split_tx.py, line 324, in
send_pkt_phy
buff = self.get_output_buffer(PHY_PORT)
  File /usr/local/lib/python2.7/dist-packages/gras/GRAS_Block.py, line
231, in get_output_buffer
def get_output_buffer(self, *args, **kwargs): return
_GRAS_Block.Block_get_output_buffer(self, *args, **kwargs)
RuntimeError: ASSERT FAIL not this-empty(i)


Could you help me in sorting this out?

Regards,
Sumedha



On Wed, Dec 18, 2013 at 10:23 PM, Tom Rondeau t...@trondeau.com wrote:

 On Wed, Dec 18, 2013 at 11:29 AM, Sumedha Goyal sumedha1...@gmail.com
 wrote:
  Hi Tom,
 
  I have removed tb.wait(). Now the sequence is
 
  tb=top_block(options,0.8)
  tb.start()
  sleep(3)
  tb.stop()
 
  I want my program to stop here and take new values which is not happening
  right now. It executes till sleep(3) and then hangs somewhere.

 Sounds like an internal problem with your block.

  You have asked to stop the flowgraph internally, kindly suggest a way to
 do
  that. As I have mentioned earlier too, I have an event in the work()
  function which when occurs the flowgraph should be terminated.
  I tried using thread.exit in work function but unfortunately it is
  terminating the whole program.
 
  Kindly suggest a way to bring the control back to main loop.
 
  Regards,
  Sumedha

 Don't use thread.exit (pretty much ever). This sounds like you have
 something wrong with the threading model in your block. You a source
 block from GNU Radio (analog.sig_source_c or something) just to make
 sure the rest of the flowgraph is behaving properly. That is, that
 tb.stop is actually stopping the flowgraph. Then go back and try and
 debug your block.

 Tom



  On Wed, Dec 18, 2013 at 8:43 PM, Tom Rondeau t...@trondeau.com wrote:
 
  On Wed, Dec 18, 2013 at 1:39 AM, Sumedha Goyal sumedha1...@gmail.com
  wrote:
  
  
   -- Forwarded message --
   From: Sumedha Goyal sumedha1...@gmail.com
   Date: Wed, Dec 18, 2013 at 10:50 AM
   Subject: Re: [Discuss-gnuradio] problem with top_block.stop()
   To: Tom Rondeau t...@trondeau.com
  
  
   Hi
   My flowgraph does not stop naturally. I want to stop and start it
 again
   using different value for a parameter as shown in my above question.
   There is an event in my program where the flowgraph finishes it's job
   with
   first parameter value (which is 0.8 here), at the occurrence of that
   event I
   want the control of flowgraph to come back to the main(). Then I want
 to
   restart the flowgraph with a new parameter value (which is 0.4 here).
   Kindly guide me on this.
  
   Also, can I forcibly bring the control back to main() even when the
   flowgraph doesn't have anything to stop its execution?
  
   Thanks and Regards,
   Sumedha
 
 
  As I said, tb.wait() is a blocking call. If there is nothing to stop
  your flowgraph, you will continue to block at the tb.wait() line
  forever. If it helps, the top_block is implemented as a multi-threaded
  application where each block is in its own thread. The tb.wait()
  performs a thread join() on all threads in the flowgraph. So the
  flowgraph must exit before wait will exit. You have to stop your
  flowgraph internally somehow to continue.
 
  Tom
 
 
 
   On Tue, Dec 17, 2013 at 11:24 PM, Tom Rondeau t...@trondeau.com
 wrote:
  
   On Tue, Dec 17, 2013 at 12:23 PM, Sumedha Goyal 
 sumedha1...@gmail.com
   wrote:
I am trying to pass two different parameters to my top_block class
I m not able to do this please help. The control of program gets
stuck
at
tb.stop() and doesn't go beyond that.
   
tb=top_block(options,0.8)
tb.start()
tb.wait()
tb.stop()
sleep(5)
print I AM BACK
tb1=top_block(options,0.4)
tb1.start()
tb1.wait()
tb1.stop()
sleep()
   
Regards,
Sumedha
  
   Does your flowgraph in tb naturally stop? The tb.wait() is a blocking
   call and will halt the main loop there until all threads (blocks) in
   tb are done. If your flowgraph doesn't have something that stops
   execution (like a finite file or a blocks.head block), then it will
   continue to process forever and your tb.wait() will continue to
 block.
  
   Tom

[Discuss-gnuradio] problem with top_block.stop()

2013-12-17 Thread Sumedha Goyal
I am trying to pass two different parameters to my top_block class
I m not able to do this please help. The control of program gets stuck at
tb.stop() and doesn't go beyond that.

tb=top_block(options,0.8)
tb.start()
tb.wait()
tb.stop()
sleep(5)
print I AM BACK
tb1=top_block(options,0.4)
tb1.start()
tb1.wait()
tb1.stop()
sleep()

Regards,
Sumedha
___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] Fwd: problem with top_block.stop()

2013-12-17 Thread Sumedha Goyal
-- Forwarded message --
From: Sumedha Goyal sumedha1...@gmail.com
Date: Wed, Dec 18, 2013 at 10:50 AM
Subject: Re: [Discuss-gnuradio] problem with top_block.stop()
To: Tom Rondeau t...@trondeau.com


Hi
My flowgraph does not stop naturally. I want to stop and start it again
using different value for a parameter as shown in my above question.
There is an event in my program where the flowgraph finishes it's job with
first parameter value (which is 0.8 here), at the occurrence of that event
I want the control of flowgraph to come back to the main(). Then I want to
restart the flowgraph with a new parameter value (which is 0.4 here).
 Kindly guide me on this.

Also, can I forcibly bring the control back to main() even when the
flowgraph doesn't have anything to stop its execution?

Thanks and Regards,
Sumedha


On Tue, Dec 17, 2013 at 11:24 PM, Tom Rondeau t...@trondeau.com wrote:

 On Tue, Dec 17, 2013 at 12:23 PM, Sumedha Goyal sumedha1...@gmail.com
 wrote:
  I am trying to pass two different parameters to my top_block class
  I m not able to do this please help. The control of program gets stuck at
  tb.stop() and doesn't go beyond that.
 
  tb=top_block(options,0.8)
  tb.start()
  tb.wait()
  tb.stop()
  sleep(5)
  print I AM BACK
  tb1=top_block(options,0.4)
  tb1.start()
  tb1.wait()
  tb1.stop()
  sleep()
 
  Regards,
  Sumedha

 Does your flowgraph in tb naturally stop? The tb.wait() is a blocking
 call and will halt the main loop there until all threads (blocks) in
 tb are done. If your flowgraph doesn't have something that stops
 execution (like a finite file or a blocks.head block), then it will
 continue to process forever and your tb.wait() will continue to block.

 Tom

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


[Discuss-gnuradio] Fwd: problem with top_block.stop()

2013-12-17 Thread Sumedha Goyal
-- Forwarded message --
From: Sumedha Goyal sumedha1...@gmail.com
Date: Wed, Dec 18, 2013 at 12:04 PM
Subject: Re: [Discuss-gnuradio] problem with top_block.stop()
To: Tom Rondeau t...@trondeau.com


Hi
Following is my gdb backtrace output. Could this be of any help?
What should I look for in this backtrace to locate the problem?
Also, how should I specify breakpoints? I tried to give  (gdb) break
tb.start()  but this says Function tb.start() not defined.

(gdb) thread apply all backtrace

Thread 10 (Thread 0x7f004e7fc700 (LWP 17803)):
#0  0x7f00813ea763 in select () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x7f007301149d in ?? () from /usr/local/lib/libuhd.so.003
#2  0x7f00731a1a01 in ?? () from /usr/local/lib/libuhd.so.003
#3  0x7f00731ab0b1 in ?? () from /usr/local/lib/libuhd.so.003
#4  0x7f007322fa93 in ?? () from /usr/local/lib/libuhd.so.003
#5  0x7f007e9edda9 in ?? () from /usr/lib/libboost_thread.so.1.48.0
#6  0x7f0082617e9a in start_thread ()
   from /lib/x86_64-linux-gnu/libpthread.so.0
#7  0x7f00813f13fd in clone () from /lib/x86_64-linux-gnu/libc.so.6
#8  0x in ?? ()

Thread 9 (Thread 0x7f004effd700 (LWP 17802)):
#0  0x7f008261c0fe in pthread_cond_timedwait@@GLIBC_2.3.2 ()
   from /lib/x86_64-linux-gnu/libpthread.so.0
#1  0x7f007e9f0668 in
boost::this_thread::sleep(boost::posix_time::ptime const) () from
/usr/lib/libboost_thread.so.1.48.0
#2  0x7f00731b533e in ?? () from /usr/local/lib/libuhd.so.003
#3  0x7f007322fa93 in ?? () from /usr/local/lib/libuhd.so.003
#4  0x7f007e9edda9 in ?? () from /usr/lib/libboost_thread.so.1.48.0
#5  0x7f0082617e9a in start_thread ()
   from /lib/x86_64-linux-gnu/libpthread.so.0
#6  0x7f00813f13fd in clone () from /lib/x86_64-linux-gnu/libc.so.6
#7  0x in ?? ()

Thread 8 (Thread 0x7f004f7fe700 (LWP 17801)):
#0  0x7f008261bd84 in pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib/x86_64-linux-gnu/libpthread.so.0
#1  0x7f007fa54be7 in
Theron::Detail::ThreadPoolTheron::Detail::MailboxQueueTheron::Detail::BlockingMonitor,
Theron::Detail::WorkerContext,
Theron::Detail::MailboxProcessor::ThreadEntryPoint(void*) ()
   from /usr/local/lib/libgras.so.0.0.0
#2  0x7f007e9edda9 in ?? () from /usr/lib/libboost_thread.so.1.48.0
#3  0x7f0082617e9a in start_thread ()
   from /lib/x86_64-linux-gnu/libpthread.so.0
#4  0x7f00813f13fd in clone () from /lib/x86_64-linux-gnu/libc.so.6
#5  0x in ?? ()

Thread 7 (Thread 0x7f004700 (LWP 17800)):
#0  0x7f008261bd84 in pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib/x86_64-linux-gnu/libpthread.so.0
#1  0x7f007fa54be7 in
Theron::Detail::ThreadPoolTheron::Detail::MailboxQueueTheron::Detail::BlockingMonitor,
Theron::Detail::WorkerContext,
Theron::Detail::MailboxProcessor::ThreadEntryPoint(void*) ()
   from /usr/local/lib/libgras.so.0.0.0
#2  0x7f007e9edda9 in ?? () from /usr/lib/libboost_thread.so.1.48.0
#3  0x7f0082617e9a in start_thread ()
   from /lib/x86_64-linux-gnu/libpthread.so.0
#4  0x7f00813f13fd in clone () from /lib/x86_64-linux-gnu/libc.so.6
#5  0x in ?? ()

Thread 6 (Thread 0x7f0064b62700 (LWP 17799)):
#0  0x7f00813ea763 in select () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00449ed3 in ?? ()
#2  0x00486614 in PyEval_EvalFrameEx ()
#3  0x00486e02 in PyEval_EvalFrameEx ()
#4  0x0048d930 in PyEval_EvalCodeEx ()
#5  0x004243f0 in ?? ()
#6  0x004f7496 in PyObject_Call ()
#7  0x0046762a in ?? ()
#8  0x004f7496 in PyObject_Call ()
#9  0x004f9032 in PyObject_CallMethodObjArgs ()
#10 0x7f0075bb2664 in
SwigDirector_BlockPython::_Py_work(std::vectorvoid*, std::allocatorvoid*
 const, std::vectorunsigned long, std::allocatorunsigned long 
const, std::vectorvoid*, std::allocatorvoid*  const,
std::vectorunsigned long, std::allocatorunsigned long  const) ()
   from /usr/local/lib/python2.7/dist-packages/gras/_GRAS_PyBlock.so
#11 0x7f0075bb5458 in
gras::BlockPython::work(gras::WorkBufferArrayvoid con
st* const, gras::WorkBufferArrayvoid* const) ()
   from /usr/local/lib/python2.7/dist-packages/gras/_GRAS_PyBlock.so
#12 0x7f007faa114c in gras::BlockActor::task_main() ()
   from /usr/local/lib/libgras.so.0.0.0
#13 0x7f007fa93a19 in Theron::Detail::MessageHandlergras::BlockActor,
gras::SelfKickMessage::Handle(Theron::Actor*, Theron::Detail::IMessage
const*) ()
   from /usr/local/lib/libgras.so.0.0.0
#14 0x7f007fa548bf in
Theron::Detail::ThreadPoolTheron::Detail::MailboxQueueTheron::Detail::BlockingMonitor,
Theron::Detail::WorkerContext,
Theron::Detail::MailboxProcessor::ThreadEntryPoint(void*) ()
   from /usr/local/lib/libgras.so.0.0.0
#15 0x7f007e9edda9 in ?? () from /usr/lib/libboost_thread.so.1.48.0
#16 0x7f0082617e9a in start_thread ()
   from /lib/x86_64-linux-gnu/libpthread.so.0
#17 0x7f00813f13fd in clone () from /lib/x86_64-linux-gnu/libc.so.6
#18

Re: [Discuss-gnuradio] How to detect collision when two packets are transmitted simultaneously from two transmitters.

2013-11-11 Thread Sumedha Goyal
Hello Aditya,

1. I tried checking for the average power but that doesn't work. Even with
two transmitters transmitting at the same time the energy detected by the
receiver doesn't change much. It remains in the same order.
2. Is there any other simpler way of detecting collisions other than the
mentioned paper?


Regards,
Sumedha


On Fri, Nov 8, 2013 at 8:32 PM, Aditya Dhananjay adi...@cs.nyu.edu wrote:

 Hi Sumedha,

 1. You could perhaps look at the average power received over that time
 slot. If there is a collision, the receive power would ostensibly be higher.

 2. Traditionally, a collision implied that nothing could be done, and the
 data was lost (unless one transmitter overwhelmed the other transmitter's
 signal, leading to the capture effect). However over the past couple of
 years, there have been techniques developed to recover packets from
 collisions. You could read the Zig-Zag decoding paper by Shyamnath
 Gollakota and Dina Katabi from SIGCOMM 2008.


 http://groups.csail.mit.edu/netmit/wordpress/wp-content/themes/netmit/papers/ZigZag.pdf

 Aditya



 On Fri, Nov 8, 2013 at 8:44 AM, Sumedha Goyal sumedha1...@gmail.comwrote:

 I have a setup of one receiver and two transmitters. I am implementing a
 TDMA structure (using USRPs and GNURADIO) where only one packet is sent in
 each slot. When both transmitters try to transmit in the same slot,
 collision occurs. I would like to know
 1. How can the receiver detect whether a collision has occurred or not?
 2. What happens to the collided packets?


 Regards,
 Sumedha

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



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


[Discuss-gnuradio] How to collect the complex data of a dpsk modulator in a text file

2013-11-11 Thread Sumedha Goyal
I am experimenting with the one of the flowgraph examples
uhd_tx_dpsk.grc. I am able to see the complex number output in WX GUI
NUMBER SINK block but I want to collect this output in a text file. If I
use a FILE SINK block, it shows some symbols but nothing in the form of
x+jy. Kindly suggest some technique to do this.

Regards,
Sumedha
___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] How to detect collision when two packets are transmitted simultaneously from two transmitters.

2013-11-08 Thread Sumedha Goyal
I have a setup of one receiver and two transmitters. I am implementing a
TDMA structure (using USRPs and GNURADIO) where only one packet is sent in
each slot. When both transmitters try to transmit in the same slot,
collision occurs. I would like to know
1. How can the receiver detect whether a collision has occurred or not?
2. What happens to the collided packets?


Regards,
Sumedha
___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio