Hi, I've added a few changes to the IEEE 802.15.4 *TX path* in UCLA_ZigBee_PHY and now the code works with the current gr trunk (3.1.3). The code is tested using cc2420_txtest.py on one computer and cc2420_txtest.py on another computer. (Since the *RX path* already has been updated by Leslie Choong, as seen earlier in this thread, everything now works with the current gr release!)
The changes concerns ieee802_15_4.py, ieee802_15_4_pkt.py and cc2420_txtest.py, and are attached below. I appreciate comments! Regards, Sanna Changes: _______________________________________________________________ _______________________________________________________________ --- old_ieee/ieee802_15_4_pkt.py 2009-01-27 18:22:42.000000000 +0100 +++ new_ieee/*ieee802_15_4_pkt.py * 2009-02-23 10:51:53.000000000 +0100 Send packets by calling send_pkt """ - def __init__(self, msgq_limit=2, pad_for_usrp=True, *args, **kwargs): + def __init__(self, pad_for_usrp=True, *args, **kwargs): """ Hierarchical block for the 802_15_4 O-QPSK modulation. @@ -157,15 +157,20 @@ See 802_15_4_mod for remaining parameters """ + try: + self.msgq_limit = kwargs.pop('msgq_limit') + except KeyError: + pass + gr.hier_block2.__init__(self, "ieee802_15_4_mod_pkts", gr.io_signature(0, 0, 0), # Input - gr.io_signature(0, 0, 0)) # Output + gr.io_signature(1, 1, gr.sizeof_gr_complex)) # Output self.pad_for_usrp = pad_for_usrp # accepts messages from the outside world - self.pkt_input = gr.message_source(gr.sizeof_char, msgq_limit) + self.pkt_input = gr.message_source(gr.sizeof_char, self.msgq_limit) self.ieee802_15_4_mod = ieee802_15_4.ieee802_15_4_mod(self, *args, **kwargs) - self.connect(self.pkt_input, self.ieee802_15_4_mod) + self.connect(self.pkt_input, self.ieee802_15_4_mod, self) def send_pkt(self, seqNr, addressInfo, payload='', eof=False): """ _______________________________________________________________ --- old_ieee/ieee802_15_4.py 2009-01-27 18:22:42.000000000 +0100 +++ new_ieee/*ieee802_15_4.py* 2009-02-23 10:51:21.000000000 +0100 from gnuradio import gr, ucla @@ -33,7 +33,7 @@ class ieee802_15_4_mod(gr.hier_block2): - def __init__(self, spb = 2): + def __init__(self, *args, **kwargs): """ Hierarchical block for cc1k FSK modulation. @@ -43,13 +43,17 @@ @param spb: samples per baud >= 2 @type spb: integer """ + try: + self.spb = kwargs.pop('spb') + except KeyError: + pass + gr.hier_block2.__init__(self, "ieee802_15_4_mod", - gr.io_signature(0, 0, 0), # Input - gr.io_signature(0, 0, 0)) # Output + gr.io_signature(1, 1, 1), # Input + gr.io_signature(1, 1, gr.sizeof_gr_complex)) # Output - if not isinstance(spb, int) or spb < 2: - raise TypeError, "sbp must be an integer >= 2" - self.spb = spb + if not isinstance(self.spb, int) or self.spb < 2: + raise TypeError, "spb must be an integer >= 2" self.symbolsToChips = ucla.symbols_to_chips_bi() self.chipsToSymbols = gr.packed_to_unpacked_ii(2, gr.GR_MSB_FIRST) @@ -60,8 +64,8 @@ # Connect - self.connect(self.symbolsToChips, self.chipsToSymbols, - self.symbolsToConstellation, self.pskmod, self.delay) + self.connect(self, self.symbolsToChips, self.chipsToSymbols, + self.symbolsToConstellation, self.pskmod, self.delay, self) class ieee802_15_4_demod(gr.hier_block2): def __init__(self, *args, **kwargs): _______________________________________________________________ --- old_ieee/cc2420_txtest.py 2009-01-27 18:22:42.000000000 +0100 +++ new_ieee/*cc2420_txtest.py * 2009-02-23 10:56:52.000000000 +0100 from gnuradio import gr, eng_notation @@ -27,9 +27,9 @@ return (1, 0) return (0, 0) -class transmit_path(gr.flow_graph): - def __init__(self, options): - gr.flow_graph.__init__(self) +class transmit_path(gr.top_block): + def __init__(self, options): + gr.top_block.__init__(self) self.normal_gain = 8000 self.u = usrp.sink_c() @@ -93,17 +93,17 @@ (options, args) = parser.parse_args () - fg = transmit_path(options) - fg.start() + tb = transmit_path(options) + tb.start() for i in range(10): print "send message %d:"%(i+1,) - fg.send_pkt(struct.pack('9B', 0x1, 0x80, 0x80, 0xff, 0xff, 0x10, 0x0, 0x20, 0x0)) + tb.send_pkt(struct.pack('9B', 0x1, 0x80, 0x80, 0xff, 0xff, 0x10, 0x0, 0x20, 0x0)) #this is an other example packet we could send. - #fg.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)) + #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) - fg.wait() + tb.wait() if __name__ == '__main__': # insert this in your test code... _______________________________________________________________ _______________________________________________________________ 2009/2/18 Sanna Leidelof <s.leide...@gmail.com> > Thank you all! You've been a great help! > > Please let me know if any of you would get the time to port the TX path as > well. Until then, I'll see what I can do... > > //Sanna > > > 2009/2/17 Leslie Choong <septi...@gmail.com> > >> I have the code working with the current trunk and will hopefully be >> updating the CGRAN repository soon. This is all on the RX path, >> although the TX path will not be much harder to port....if I or >> someone else has the time.... >> -Leslie >> >> On Mon, Feb 16, 2009 at 9:17 AM, Thomas Schmid <thomas.sch...@gmail.com> >> wrote: >> > Hi Sanna, >> > >> > Yes, the code has been updated, but it didn't just yet make it into >> > CGRAN. For now, you can get the code from github: >> > >> > http://github.com/septikus/gnuradio-802.15.4-demodulation/tree/master >> > >> > Note that the code was ported by Leslie, who is also on this list. >> > >> > Cheers, >> > >> > Thomas >> > >> > On Mon, Feb 16, 2009 at 5:15 AM, Dimitris Symeonidis <azim...@gmail.com> >> wrote: >> >> Here's a quick guide, provided by Firas to a similar question of mine: >> >> >> http://lists.gnu.org/archive/html/discuss-gnuradio/2008-08/msg00222.html >> >> >> >> you might also want to talk with Leslie Choong: >> >> >> http://lists.gnu.org/archive/html/discuss-gnuradio/2008-10/msg00463.html >> >> >> >> >> >> Dimitris Symeonidis >> >> "If you think you're too small to make a difference, try sleeping with >> >> a mosquito!" - Amnesty International >> >> >> >> >> >> >> >> On Mon, Feb 16, 2009 at 13:55, Sanna Leidelof <s.leide...@gmail.com> >> wrote: >> >>> Hi, >> >>> >> >>> Has anyone updated Thomas Schmid's UCLA_ZigBee_PHY project to work >> with >> >>> top_block and hier_block2 in the current GNU Radio 3.1.3 release? I am >> in >> >>> the beginning of my master's thesis and hoped that I could use >> Schmid's code >> >>> to get started with my implementation of a IEEE 802.15.4 text message >> >>> transceiver. I checked out the code from CGRAN: >> >>> https://www.cgran.org/cgran/projects/ucla_zigbee_phy/trunkucla_zigbee_phy >> >>> , >> >>> but unfortunately this code is based on flow_graph and hier_block from >> the >> >>> old trunk... >> >>> >> >>> If no such code exists, is there any guideline available to transform >> a >> >>> project from using hier_block to hier_block2 and flow_graph to >> top_block? I >> >>> am a newbie at GNU Radio, is this difficult? >> >>> >> >>> Regards, >> >>> Sanna >> >>> >> >>> _______________________________________________ >> >>> 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 >> >> >> > >> > >> > >> > -- >> > "Don't complain; Just work harder" - Randy Pausch >> > >> > Thomas Schmid, Ph.D. Candidate >> > Networked & Embedded Systems Laboratory (NESL) >> > University of California, Los Angeles (UCLA) >> > >> > >> > _______________________________________________ >> > Discuss-gnuradio mailing list >> > Discuss-gnuradio@gnu.org >> > http://lists.gnu.org/mailman/listinfo/discuss-gnuradio >> > >> > >
ieee802_15_4.py
Description: Binary data
ieee802_15_4_pkt.py
Description: Binary data
cc2420_txtest.py
Description: Binary data
_______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org http://lists.gnu.org/mailman/listinfo/discuss-gnuradio