kopia lustrzana https://github.com/rpp0/gr-lora
Update apps and regression tests
rodzic
80902dacca
commit
5c9393f2d1
|
@ -40,7 +40,7 @@ class LoRaReceiveAll:
|
||||||
self.tb = gr.top_block ()
|
self.tb = gr.top_block ()
|
||||||
|
|
||||||
self.source = receiver
|
self.source = receiver
|
||||||
self.lora_lora_receiver_0 = lora.lora_receiver(self.samp_rate, self.capture_freq, self.offset, self.sf, self.samp_rate, self.threshold)
|
self.lora_lora_receiver_0 = lora.lora_receiver(self.samp_rate, self.capture_freq, ([868.1e6]), self.sf, self.samp_rate, self.threshold)
|
||||||
self.blocks_throttle_0 = blocks.throttle(gr.sizeof_gr_complex*1, self.samp_rate, True)
|
self.blocks_throttle_0 = blocks.throttle(gr.sizeof_gr_complex*1, self.samp_rate, True)
|
||||||
self.freq_xlating_fir_filter_0 = filter.freq_xlating_fir_filter_ccc(1, (firdes.low_pass(1, self.samp_rate, 200000, 50000)), self.center_offset, self.samp_rate)
|
self.freq_xlating_fir_filter_0 = filter.freq_xlating_fir_filter_ccc(1, (firdes.low_pass(1, self.samp_rate, 200000, 50000)), self.center_offset, self.samp_rate)
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
##################################################
|
##################################################
|
||||||
# GNU Radio Python Flow Graph
|
# GNU Radio Python Flow Graph
|
||||||
# Title: Lora Receive File
|
# Title: Lora Receive File
|
||||||
# Generated: Thu Mar 30 15:01:18 2017
|
# Generated: Fri Jul 28 10:52:21 2017
|
||||||
##################################################
|
##################################################
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
@ -69,7 +69,7 @@ class lora_receive_file(grc_wxgui.top_block_gui):
|
||||||
peak_hold=False,
|
peak_hold=False,
|
||||||
)
|
)
|
||||||
self.Add(self.wxgui_fftsink2_1.win)
|
self.Add(self.wxgui_fftsink2_1.win)
|
||||||
self.lora_lora_receiver_0 = lora.lora_receiver(samp_rate, capture_freq, offset, 7, 1000000, 0.01)
|
self.lora_lora_receiver_0 = lora.lora_receiver(samp_rate, 868e6, ([868.1e6]), 7, 1000000, 0.01)
|
||||||
_finetune_sizer = wx.BoxSizer(wx.VERTICAL)
|
_finetune_sizer = wx.BoxSizer(wx.VERTICAL)
|
||||||
self._finetune_text_box = forms.text_box(
|
self._finetune_text_box = forms.text_box(
|
||||||
parent=self.GetWin(),
|
parent=self.GetWin(),
|
||||||
|
@ -132,8 +132,8 @@ class lora_receive_file(grc_wxgui.top_block_gui):
|
||||||
|
|
||||||
def set_capture_freq(self, capture_freq):
|
def set_capture_freq(self, capture_freq):
|
||||||
self.capture_freq = capture_freq
|
self.capture_freq = capture_freq
|
||||||
self.set_offset(-(self.capture_freq - self.target_freq))
|
|
||||||
self.wxgui_fftsink2_1.set_baseband_freq(self.capture_freq)
|
self.wxgui_fftsink2_1.set_baseband_freq(self.capture_freq)
|
||||||
|
self.set_offset(-(self.capture_freq - self.target_freq))
|
||||||
|
|
||||||
def get_bw(self):
|
def get_bw(self):
|
||||||
return self.bw
|
return self.bw
|
||||||
|
@ -155,7 +155,6 @@ class lora_receive_file(grc_wxgui.top_block_gui):
|
||||||
|
|
||||||
def set_offset(self, offset):
|
def set_offset(self, offset):
|
||||||
self.offset = offset
|
self.offset = offset
|
||||||
self.lora_lora_receiver_0.set_offset(self.offset)
|
|
||||||
|
|
||||||
def get_firdes_tap(self):
|
def get_firdes_tap(self):
|
||||||
return self.firdes_tap
|
return self.firdes_tap
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
##################################################
|
##################################################
|
||||||
# GNU Radio Python Flow Graph
|
# GNU Radio Python Flow Graph
|
||||||
# Title: Lora Receive Realtime
|
# Title: Lora Receive Realtime
|
||||||
# Generated: Thu Mar 30 15:01:26 2017
|
# Generated: Fri Jul 28 10:53:04 2017
|
||||||
##################################################
|
##################################################
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
@ -81,7 +81,7 @@ class lora_receive_realtime(grc_wxgui.top_block_gui):
|
||||||
self.uhd_usrp_source_0.set_center_freq(capture_freq, 0)
|
self.uhd_usrp_source_0.set_center_freq(capture_freq, 0)
|
||||||
self.uhd_usrp_source_0.set_gain(15, 0)
|
self.uhd_usrp_source_0.set_gain(15, 0)
|
||||||
self.uhd_usrp_source_0.set_antenna('RX2', 0)
|
self.uhd_usrp_source_0.set_antenna('RX2', 0)
|
||||||
self.lora_lora_receiver_0 = lora.lora_receiver(samp_rate, capture_freq, offset, 7, 1000000, 0.01)
|
self.lora_lora_receiver_0 = lora.lora_receiver(samp_rate, 868e6, ([868.1e6]), 7, 1000000, 0.01)
|
||||||
_finetune_sizer = wx.BoxSizer(wx.VERTICAL)
|
_finetune_sizer = wx.BoxSizer(wx.VERTICAL)
|
||||||
self._finetune_text_box = forms.text_box(
|
self._finetune_text_box = forms.text_box(
|
||||||
parent=self.GetWin(),
|
parent=self.GetWin(),
|
||||||
|
@ -141,9 +141,9 @@ class lora_receive_realtime(grc_wxgui.top_block_gui):
|
||||||
|
|
||||||
def set_capture_freq(self, capture_freq):
|
def set_capture_freq(self, capture_freq):
|
||||||
self.capture_freq = capture_freq
|
self.capture_freq = capture_freq
|
||||||
self.set_offset(-(self.capture_freq - self.target_freq))
|
|
||||||
self.wxgui_fftsink2_1.set_baseband_freq(self.capture_freq)
|
self.wxgui_fftsink2_1.set_baseband_freq(self.capture_freq)
|
||||||
self.uhd_usrp_source_0.set_center_freq(self.capture_freq, 0)
|
self.uhd_usrp_source_0.set_center_freq(self.capture_freq, 0)
|
||||||
|
self.set_offset(-(self.capture_freq - self.target_freq))
|
||||||
|
|
||||||
def get_bw(self):
|
def get_bw(self):
|
||||||
return self.bw
|
return self.bw
|
||||||
|
@ -165,7 +165,6 @@ class lora_receive_realtime(grc_wxgui.top_block_gui):
|
||||||
|
|
||||||
def set_offset(self, offset):
|
def set_offset(self, offset):
|
||||||
self.offset = offset
|
self.offset = offset
|
||||||
self.lora_lora_receiver_0.set_offset(self.offset)
|
|
||||||
|
|
||||||
def get_firdes_tap(self):
|
def get_firdes_tap(self):
|
||||||
return self.firdes_tap
|
return self.firdes_tap
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
import lora, socket, pmt, time
|
import lora, socket, pmt, time
|
||||||
import collections, datetime
|
import collections, datetime
|
||||||
import os.path
|
import os.path
|
||||||
|
import os
|
||||||
import xmltodict
|
import xmltodict
|
||||||
|
|
||||||
from gnuradio import gr, gr_unittest, blocks, filter
|
from gnuradio import gr, gr_unittest, blocks, filter
|
||||||
|
@ -24,7 +25,8 @@ class qa_BasicTest_XML (gr_unittest.TestCase):
|
||||||
data = self.server.recv(4096)
|
data = self.server.recv(4096)
|
||||||
if data:
|
if data:
|
||||||
total_data.append(data)
|
total_data.append(data)
|
||||||
except:
|
except Exception as e:
|
||||||
|
print(e)
|
||||||
pass
|
pass
|
||||||
|
|
||||||
return total_data
|
return total_data
|
||||||
|
@ -63,7 +65,7 @@ class qa_BasicTest_XML (gr_unittest.TestCase):
|
||||||
.format(results.passing, results.total, results.rate))
|
.format(results.passing, results.total, results.rate))
|
||||||
|
|
||||||
#
|
#
|
||||||
# Set up flowgraph before Unit Test. (Gets threrefore called before EVERY test)
|
# Set up flowgraph before Unit Test. (Gets therefore called before EVERY test)
|
||||||
#
|
#
|
||||||
# 1. Set variables for various blocks (spreading factor from test_series settings)
|
# 1. Set variables for various blocks (spreading factor from test_series settings)
|
||||||
# 2. Make UDP socket server to listen for outputted messages
|
# 2. Make UDP socket server to listen for outputted messages
|
||||||
|
@ -77,10 +79,9 @@ class qa_BasicTest_XML (gr_unittest.TestCase):
|
||||||
self.sf = 7
|
self.sf = 7
|
||||||
self.samp_rate = 1e6
|
self.samp_rate = 1e6
|
||||||
self.capture_freq = 868.0e6
|
self.capture_freq = 868.0e6
|
||||||
|
self.threshold = 0.002
|
||||||
#self.bw = 125e3
|
#self.bw = 125e3
|
||||||
#self.symbols_per_sec = self.bw / (2**self.sf)
|
#self.symbols_per_sec = self.bw / (2**self.sf)
|
||||||
self.offset = -(self.capture_freq - self.target_freq)
|
|
||||||
#self.bitrate = self.sf * (1 / (2**self.sf / self.bw ))
|
|
||||||
self.hasHDR = True
|
self.hasHDR = True
|
||||||
|
|
||||||
# For FFT, determine Center Frequency Offset first, then set here.
|
# For FFT, determine Center Frequency Offset first, then set here.
|
||||||
|
@ -119,7 +120,7 @@ class qa_BasicTest_XML (gr_unittest.TestCase):
|
||||||
raise Exception("[BasicTest_XML] '" + self.xmlFile + "' does not exist!")
|
raise Exception("[BasicTest_XML] '" + self.xmlFile + "' does not exist!")
|
||||||
|
|
||||||
#
|
#
|
||||||
# Clean-up flowgraph after Unit Test. (Gets threrefore called after EVERY test)
|
# Clean-up flowgraph after Unit Test. (Gets therefore called after EVERY test)
|
||||||
#
|
#
|
||||||
# Because tests are completed, report results.
|
# Because tests are completed, report results.
|
||||||
#
|
#
|
||||||
|
@ -217,7 +218,7 @@ class qa_BasicTest_XML (gr_unittest.TestCase):
|
||||||
self.tb = gr.top_block ()
|
self.tb = gr.top_block ()
|
||||||
|
|
||||||
self.file_source = blocks.file_source(gr.sizeof_gr_complex*1, self.inputFile, False) # Repeat input: True/False
|
self.file_source = blocks.file_source(gr.sizeof_gr_complex*1, self.inputFile, False) # Repeat input: True/False
|
||||||
self.lora_lora_receiver_0 = lora.lora_receiver(self.samp_rate, self.capture_freq, self.offset, self.sf, self.samp_rate)
|
self.lora_lora_receiver_0 = lora.lora_receiver(self.samp_rate, self.capture_freq, [868100000], self.sf, self.samp_rate, self.threshold)
|
||||||
self.blocks_throttle_0 = blocks.throttle(gr.sizeof_gr_complex*1, self.samp_rate, True)
|
self.blocks_throttle_0 = blocks.throttle(gr.sizeof_gr_complex*1, self.samp_rate, True)
|
||||||
self.blocks_message_socket_sink_0 = lora.message_socket_sink()
|
self.blocks_message_socket_sink_0 = lora.message_socket_sink()
|
||||||
self.freq_xlating_fir_filter_0 = filter.freq_xlating_fir_filter_ccc(1, (firdes.low_pass(1, self.samp_rate, 500000, 100000, firdes.WIN_HAMMING, 6.67)), self.center_offset, self.samp_rate)
|
self.freq_xlating_fir_filter_0 = filter.freq_xlating_fir_filter_ccc(1, (firdes.low_pass(1, self.samp_rate, 500000, 100000, firdes.WIN_HAMMING, 6.67)), self.center_offset, self.samp_rate)
|
||||||
|
@ -227,7 +228,7 @@ class qa_BasicTest_XML (gr_unittest.TestCase):
|
||||||
self.tb.connect( (self.freq_xlating_fir_filter_0, 0), (self.lora_lora_receiver_0, 0))
|
self.tb.connect( (self.freq_xlating_fir_filter_0, 0), (self.lora_lora_receiver_0, 0))
|
||||||
self.tb.msg_connect( (self.lora_lora_receiver_0, 'frames'), (self.blocks_message_socket_sink_0, 'in'))
|
self.tb.msg_connect( (self.lora_lora_receiver_0, 'frames'), (self.blocks_message_socket_sink_0, 'in'))
|
||||||
|
|
||||||
self.tb.run ()
|
self.tb.run()
|
||||||
|
|
||||||
total_data = self.gatherFromSocket(test_series[len(test_series) - 1].times)
|
total_data = self.gatherFromSocket(test_series[len(test_series) - 1].times)
|
||||||
self.compareDataSets(total_data,
|
self.compareDataSets(total_data,
|
||||||
|
|
Ładowanie…
Reference in New Issue