Dear Guys
Thank you for helping me out with my previous question about the
general_work() function, I have done what I want with your help. Now I
have
another problem, here is a fraction of the code:
self._rcvd_pktq_B = gr.msg_queue()
self._rcvd_pktq_A = gr.msg_queue() # holds packets from
the
PHY
self.separator = gr.separator_ccc ()
self.gmsk_demod_A = gmsk2.gmsk2_demod(fg, *args, **kwargs)
self.gmsk_demod_B = gmsk2.gmsk2_demod(fg, *args, **kwargs)
self.correlator_A = gr.correlate_access_code_bb(access_code,
threshold)
self.correlator_B = gr.correlate_access_code_bb(access_code,
threshold)
self.framer_sink_A = gr.framer_sink_1(self._rcvd_pktq_A)
self.framer_sink_B = gr.framer_sink_1(self._rcvd_pktq_B)
fg.connect((self.fm_separator, 0), self.gmsk_demod_A,
self.correlator_A, self.framer_sink_A)
fg.connect((self.fm_separator, 1), self.gmsk_demod_B,
self.correlator_B, self.framer_sink_B)
gr.hier_block.__init__(self, fg, self.fm_separator, None)
self._watcher_A = _queue_watcher_thread(self._rcvd_pktq_A,
callbackA)
self._watcher_B = _queue_watcher_thread2(self._rcvd_pktq_B,
callbackB)
Here the incoming signal is the sum of two baseband, complex GMSK
signals.
The block “self.separator” implements an algorithm to separate the two
complex signals, recovering the original signals. Then two GMSK decoding
streams are connected to the block, pretty much following what has been
provided.
However, my obeservation was that the two streams produce exactly the
same
packets (which are supposed to be produced only by A, not B, the output
of B
should be different). So could anyone help me check whether I am doing
things correctly here?
Thank you very much
Dawei