Hello,
I am currently trying to implement 2x2 MIMO packet transmission and
having difficulties… I need help and any comment will be really
useful…
My main references are benchmark_tx.py and fm_tx_2_daughterboards.py.
As I cannot directly connect signal sources to gr.interleave() unlike
in fm_tx_2_daughterboards.py (sending data is put into queue of
message_source only when send_pkt(payload) is called), what I have
done is as follows.
-
I created multi_mod_pkts class that is similar to mod_pkts. Here I
created two separate message_source (_pkt_input1 and _pkt_input2). -
I connected those two message_sources into interleaver and then
self, using following codeself._pkt_input1 = gr.message_source(gr.sizeof_char, msgq_limit) self._pkt_input2 = gr.message_source(gr.sizeof_char, msgq_limit) intl = gr.interleave(gr.sizeof_char) self.connect(self._pkt_input1, (intl, 0)) self.connect(self._pkt_input2, (intl, 1)) self.connect(intl, self._modulator, self)
-
Whenever send_pkt(payload1, payload2) is called, those messages are
put into msg queue of message_source. respectively. -
In the main program, I created usrp_sink_c object and set mux using
following codeself._u = usrp.sink_c (which=self._which, nchan=2, fusb_block_size=self._fusb_block_size, fusb_nblocks=self._fusb_nblocks) self._subdev = (self._u.db(0, 0), self._u.db(1, 0)) self._u.set_mux(0xba98) self._subdev[0].set_gain(self._subdev[0].gain_range()[1]) #
set max Tx gain
self._subdev[1].set_gain(self._subdev[1].gain_range()[1]) #
set max Tx gain
self.set_freq(0, freq0)
self.set_freq(1, freq1)
self._subdev[0].set_enable(True) # enable
transmitter
self._subdev[1].set_enable(True) # enable
transmitter
self._dxc = self._which
self.connect(self, self._u)
That’s all. But the receiver does not sense any incoming traffic. What
could be done to make it work?
Thank you in advance!
Sungro