Dear all,

I am trying to implement Zigbee on usrp2 (Daughter board - RFX2400),
using ULCA ZIGBEE PHY from
https://cgran.org/browser/projects/ucla_zigbee_phy/branches/septikus

I have modified the  <
https://cgran.org/browser/projects/ucla_zigbee_phy/branches/septikus/src/examples/cc2420_txtest.py>
a little bit, to test the transmission on USRP2, but i am getting
segmentation fault something like this :

send message 1:
Segmentation fault

However, receiver seems to work fine.
I have attached the python script for reference.

Some more details ,
OS : Ubuntu 10.04 LTS (Desktop)
Gnuradio and all the software were updated two days back.
--enable-single and --enable-shared configure options taken care during
fftw installation.

Could someone please help me out soon with this issue.

Thanks in advance,
Sun
#!/usr/bin/env python

#
# Transmitter of IEEE 802.15.4 RADIO Packets. 
#
# Modified by: Thomas Schmid, Sanna Leidelof
#
  
from gnuradio import gr, eng_notation
from gnuradio import usrp2
from gnuradio import ucla
from gnuradio.ucla_blks import ieee802_15_4_pkt
from gnuradio.eng_option import eng_option
from optparse import OptionParser
import math, struct, time, sys



class transmit_path(gr.top_block): 
    def __init__(self, options): 
        gr.top_block.__init__(self) 


        self.normal_gain = 28000

        self.u = usrp2.sink_32fc(options.interface, options.mac_addr)
        dac_rate = self.u.dac_rate();
	self.set_gain(self.u.gain_max())  # set max Tx gain
        self._data_rate = 2000000
        self._spb = 2
        self._interp = int(128e6 / self._spb / self._data_rate)
        self.fs = 128e6 / self._interp

        self.u.set_interp(self._interp)


        # transmitter
        self.packet_transmitter = ieee802_15_4_pkt.ieee802_15_4_mod_pkts(self, spb=self._spb, msgq_limit=2) 
        self.gain = gr.multiply_const_cc (self.normal_gain)
        
        self.connect(self.packet_transmitter, self.gain, self.u)

        #self.filesink = gr.file_sink(gr.sizeof_gr_complex, 'rx_test.dat')
        #self.connect(self.gain, self.filesink)

    def set_gain(self, gain):
        self.gain = gain
        self.u.set_gain(gain)

        
    def send_pkt(self, payload='', eof=False):
        return self.packet_transmitter.send_pkt(0xe5, struct.pack("HHHH", 0xFFFF, 0xFFFF, 0x10, 0x10), payload, eof)
        
def main ():

        
    parser = OptionParser (option_class=eng_option)

    parser.add_option ("-c", "--cordic-freq", type="eng_float", default=2415000000,
                       help="set Tx cordic frequency to FREQ", metavar="FREQ")
    parser.add_option ("-r", "--data-rate", type="eng_float", default=2000000)
    parser.add_option ("-f", "--filename", type="string",
                       default="rx.dat", help="write data to FILENAME")
    parser.add_option ("-g", "--gain", type="eng_float", default=35,
                       help="set Rx PGA gain in dB [0,70]")
    parser.add_option ("-N", "--no-gui", action="store_true", default=False)
    parser.add_option("-e", "--interface", type="string", default="eth0",
            help="select Ethernet interface, default is eth0")
    parser.add_option("-m", "--mac-addr", type="string", default="",
            help="select USRP by MAC address, default is auto-select")

    
    (options, args) = parser.parse_args ()

    tb = transmit_path(options) 
    tb.start() 
    
    for i in range(10):
        print "send message %d:"%(i+1,)
        tb.send_pkt(struct.pack('9B', 0x1, 0x80, 0x80, 0xff, 0xff, 0x10, 0x0, 0x20, 0x0)) 
        #this is an other example packet we could send.
        #tb.send_pkt(struct.pack('BBBBBBBBBBBBBBBBBBBBBBBBBBB', 0x1, 0x8d, 0x8d, 0xff, 0xff, 0xbd, 0x0, 0x22, 0x12, 0xbd, 0x0, 0x1, 0x0, 0xff, 0xff, 0x8e, 0xff, 0xff, 0x0, 0x3, 0x3, 0xbd, 0x0, 0x1, 0x0, 0x0, 0x0)) 
        time.sleep(1)
                    
    tb.wait()

if __name__ == '__main__':
   
    main ()
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to