Improvements to test suites and tutorials

- Allow to specify frequency offset in test suite
- Added tests for RTL-SDR and HackRF
- Updated RTL-SDR tutorial
pull/61/head
Pieter Robyns 2017-09-08 13:22:11 +02:00
rodzic 4575524e56
commit ef46ff7c0e
15 zmienionych plików z 1252 dodań i 5 usunięć

Wyświetl plik

@ -24,6 +24,7 @@ class TestSuite():
self.config_set = config_set
self.test_set = test_set
self.capture_freq = args.frequency
self.frequency_offset = args.frequency_offset
self.sample_rate = args.sample_rate
self.hw = args.hw
self.name += "_" + self.hw
@ -69,6 +70,7 @@ class TestSuite():
"core:frequency": self.capture_freq,
"core:datetime": str(datetime.utcnow()),
"lora:frequency": config.freq,
"lora:frequency_offset": self.frequency_offset,
"lora:sf": config.sf,
"lora:cr": config.cr,
"lora:bw": config.bw,
@ -144,6 +146,7 @@ if __name__ == '__main__':
parser.add_argument('-O', '--data-out', type=str, default='./test-suites/', help='Output directory for the test suites.')
parser.add_argument('-s', '--sample-rate', type=int, default=1000000, help='Sample rate of the SDR.')
parser.add_argument('-f', '--frequency', type=int, default=868e6, help='Center frequency.')
parser.add_argument('-F', '--frequency-offset', type=int, default=0, help='Frequency offset.')
args = parser.parse_args()
# ------------------------------------------------------------------------

Wyświetl plik

@ -0,0 +1,44 @@
# Test suite: 'decode_long_hackrf'
*Results on 2017-09-08 08:55:44.588268*
### 868.1 MHz, SF 7, CR 4/8, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`00010203040506..f8f9fafbfcfdfe` | 1 | 1 | 100.00%
### 868.1 MHz, SF 8, CR 4/8, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`00010203040506..f8f9fafbfcfdfe` | 1 | 1 | 100.00%
### 868.1 MHz, SF 9, CR 4/8, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`00010203040506..f8f9fafbfcfdfe` | 1 | 1 | 100.00%
### 868.1 MHz, SF 10, CR 4/8, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`00010203040506..f8f9fafbfcfdfe` | 1 | 1 | 100.00%
### 868.1 MHz, SF 11, CR 4/8, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`00010203040506..f8f9fafbfcfdfe` | 1 | 1 | 100.00%
### 868.1 MHz, SF 12, CR 4/8, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`00010203040506..f8f9fafbfcfdfe` | 1 | 1 | 100.00%
### Summary for suite 'decode_long_hackrf'
Total payloads passed: 6 out of 6 (100.00%)

Wyświetl plik

@ -0,0 +1,44 @@
# Test suite: 'decode_long_rtl-sdr'
*Results on 2017-09-08 08:54:28.651745*
### 868.1 MHz, SF 7, CR 4/8, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`00010203040506..f8f9fafbfcfdfe` | 1 | 1 | 100.00%
### 868.1 MHz, SF 8, CR 4/8, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`00010203040506..f8f9fafbfcfdfe` | 1 | 1 | 100.00%
### 868.1 MHz, SF 9, CR 4/8, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`00010203040506..f8f9fafbfcfdfe` | 1 | 1 | 100.00%
### 868.1 MHz, SF 10, CR 4/8, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`00010203040506..f8f9fafbfcfdfe` | 1 | 1 | 100.00%
### 868.1 MHz, SF 11, CR 4/8, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`00010203040506..f8f9fafbfcfdfe` | 1 | 1 | 100.00%
### 868.1 MHz, SF 12, CR 4/8, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`00010203040506..f8f9fafbfcfdfe` | 0 | 1 | 0.00%
### Summary for suite 'decode_long_rtl-sdr'
Total payloads passed: 5 out of 6 (83.33%)

Wyświetl plik

@ -1,6 +1,6 @@
# Test suite: 'decode_long_usrp'
*Results on 2017-09-07 08:49:53.761712*
*Results on 2017-09-08 08:55:05.243706*
### 868.1 MHz, SF 7, CR 4/8, BW 125 kHz, prlen 8, crc on, implicit off

Wyświetl plik

@ -0,0 +1,200 @@
# Test suite: 'short_hackrf'
*Results on 2017-09-08 10:55:53.535978*
### 868.1 MHz, SF 7, CR 4/8, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`deadbeef ` | 5 | 5 | 100.00%
`88 ` | 1 | 1 | 100.00%
`ffff ` | 10 | 10 | 100.00%
### 868.1 MHz, SF 7, CR 4/7, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`deadbeef ` | 5 | 5 | 100.00%
`88 ` | 1 | 1 | 100.00%
`ffff ` | 10 | 10 | 100.00%
### 868.1 MHz, SF 7, CR 4/6, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`deadbeef ` | 5 | 5 | 100.00%
`88 ` | 1 | 1 | 100.00%
`ffff ` | 10 | 10 | 100.00%
### 868.1 MHz, SF 7, CR 4/5, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`deadbeef ` | 5 | 5 | 100.00%
`88 ` | 1 | 1 | 100.00%
`ffff ` | 10 | 10 | 100.00%
### 868.1 MHz, SF 8, CR 4/8, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`deadbeef ` | 5 | 5 | 100.00%
`88 ` | 1 | 1 | 100.00%
`ffff ` | 10 | 10 | 100.00%
### 868.1 MHz, SF 8, CR 4/7, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`deadbeef ` | 5 | 5 | 100.00%
`88 ` | 1 | 1 | 100.00%
`ffff ` | 10 | 10 | 100.00%
### 868.1 MHz, SF 8, CR 4/6, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`deadbeef ` | 5 | 5 | 100.00%
`88 ` | 1 | 1 | 100.00%
`ffff ` | 10 | 10 | 100.00%
### 868.1 MHz, SF 8, CR 4/5, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`deadbeef ` | 5 | 5 | 100.00%
`88 ` | 1 | 1 | 100.00%
`ffff ` | 10 | 10 | 100.00%
### 868.1 MHz, SF 9, CR 4/8, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`deadbeef ` | 5 | 5 | 100.00%
`88 ` | 1 | 1 | 100.00%
`ffff ` | 10 | 10 | 100.00%
### 868.1 MHz, SF 9, CR 4/7, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`deadbeef ` | 5 | 5 | 100.00%
`88 ` | 1 | 1 | 100.00%
`ffff ` | 10 | 10 | 100.00%
### 868.1 MHz, SF 9, CR 4/6, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`deadbeef ` | 5 | 5 | 100.00%
`88 ` | 1 | 1 | 100.00%
`ffff ` | 10 | 10 | 100.00%
### 868.1 MHz, SF 9, CR 4/5, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`deadbeef ` | 5 | 5 | 100.00%
`88 ` | 1 | 1 | 100.00%
`ffff ` | 10 | 10 | 100.00%
### 868.1 MHz, SF 10, CR 4/8, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`deadbeef ` | 5 | 5 | 100.00%
`88 ` | 1 | 1 | 100.00%
`ffff ` | 10 | 10 | 100.00%
### 868.1 MHz, SF 10, CR 4/7, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`deadbeef ` | 5 | 5 | 100.00%
`88 ` | 1 | 1 | 100.00%
`ffff ` | 10 | 10 | 100.00%
### 868.1 MHz, SF 10, CR 4/6, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`deadbeef ` | 5 | 5 | 100.00%
`88 ` | 1 | 1 | 100.00%
`ffff ` | 10 | 10 | 100.00%
### 868.1 MHz, SF 10, CR 4/5, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`deadbeef ` | 5 | 5 | 100.00%
`88 ` | 1 | 1 | 100.00%
`ffff ` | 10 | 10 | 100.00%
### 868.1 MHz, SF 11, CR 4/8, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`deadbeef ` | 5 | 5 | 100.00%
`88 ` | 1 | 1 | 100.00%
`ffff ` | 10 | 10 | 100.00%
### 868.1 MHz, SF 11, CR 4/7, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`deadbeef ` | 5 | 5 | 100.00%
`88 ` | 1 | 1 | 100.00%
`ffff ` | 10 | 10 | 100.00%
### 868.1 MHz, SF 11, CR 4/6, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`deadbeef ` | 5 | 5 | 100.00%
`88 ` | 1 | 1 | 100.00%
`ffff ` | 10 | 10 | 100.00%
### 868.1 MHz, SF 11, CR 4/5, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`deadbeef ` | 5 | 5 | 100.00%
`88 ` | 1 | 1 | 100.00%
`ffff ` | 10 | 10 | 100.00%
### 868.1 MHz, SF 12, CR 4/8, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`deadbeef ` | 5 | 5 | 100.00%
`88 ` | 1 | 1 | 100.00%
`ffff ` | 10 | 10 | 100.00%
### 868.1 MHz, SF 12, CR 4/7, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`deadbeef ` | 5 | 5 | 100.00%
`88 ` | 1 | 1 | 100.00%
`ffff ` | 10 | 10 | 100.00%
### 868.1 MHz, SF 12, CR 4/6, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`deadbeef ` | 5 | 5 | 100.00%
`88 ` | 1 | 1 | 100.00%
`ffff ` | 10 | 10 | 100.00%
### 868.1 MHz, SF 12, CR 4/5, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`deadbeef ` | 5 | 5 | 100.00%
`88 ` | 1 | 1 | 100.00%
`ffff ` | 10 | 10 | 100.00%
### Summary for suite 'short_hackrf'
Total payloads passed: 384 out of 384 (100.00%)

Wyświetl plik

@ -0,0 +1,200 @@
# Test suite: 'short_rtl-sdr'
*Results on 2017-09-08 08:56:21.904351*
### 868.1 MHz, SF 7, CR 4/8, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`deadbeef ` | 5 | 5 | 100.00%
`88 ` | 1 | 1 | 100.00%
`ffff ` | 10 | 10 | 100.00%
### 868.1 MHz, SF 7, CR 4/7, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`deadbeef ` | 5 | 5 | 100.00%
`88 ` | 1 | 1 | 100.00%
`ffff ` | 10 | 10 | 100.00%
### 868.1 MHz, SF 7, CR 4/6, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`deadbeef ` | 5 | 5 | 100.00%
`88 ` | 1 | 1 | 100.00%
`ffff ` | 10 | 10 | 100.00%
### 868.1 MHz, SF 7, CR 4/5, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`deadbeef ` | 5 | 5 | 100.00%
`88 ` | 1 | 1 | 100.00%
`ffff ` | 10 | 10 | 100.00%
### 868.1 MHz, SF 8, CR 4/8, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`deadbeef ` | 5 | 5 | 100.00%
`88 ` | 1 | 1 | 100.00%
`ffff ` | 10 | 10 | 100.00%
### 868.1 MHz, SF 8, CR 4/7, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`deadbeef ` | 5 | 5 | 100.00%
`88 ` | 1 | 1 | 100.00%
`ffff ` | 10 | 10 | 100.00%
### 868.1 MHz, SF 8, CR 4/6, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`deadbeef ` | 5 | 5 | 100.00%
`88 ` | 1 | 1 | 100.00%
`ffff ` | 10 | 10 | 100.00%
### 868.1 MHz, SF 8, CR 4/5, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`deadbeef ` | 5 | 5 | 100.00%
`88 ` | 1 | 1 | 100.00%
`ffff ` | 10 | 10 | 100.00%
### 868.1 MHz, SF 9, CR 4/8, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`deadbeef ` | 5 | 5 | 100.00%
`88 ` | 1 | 1 | 100.00%
`ffff ` | 10 | 10 | 100.00%
### 868.1 MHz, SF 9, CR 4/7, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`deadbeef ` | 5 | 5 | 100.00%
`88 ` | 1 | 1 | 100.00%
`ffff ` | 10 | 10 | 100.00%
### 868.1 MHz, SF 9, CR 4/6, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`deadbeef ` | 5 | 5 | 100.00%
`88 ` | 1 | 1 | 100.00%
`ffff ` | 10 | 10 | 100.00%
### 868.1 MHz, SF 9, CR 4/5, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`deadbeef ` | 5 | 5 | 100.00%
`88 ` | 1 | 1 | 100.00%
`ffff ` | 10 | 10 | 100.00%
### 868.1 MHz, SF 10, CR 4/8, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`deadbeef ` | 5 | 5 | 100.00%
`88 ` | 1 | 1 | 100.00%
`ffff ` | 10 | 10 | 100.00%
### 868.1 MHz, SF 10, CR 4/7, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`deadbeef ` | 5 | 5 | 100.00%
`88 ` | 1 | 1 | 100.00%
`ffff ` | 10 | 10 | 100.00%
### 868.1 MHz, SF 10, CR 4/6, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`deadbeef ` | 5 | 5 | 100.00%
`88 ` | 1 | 1 | 100.00%
`ffff ` | 10 | 10 | 100.00%
### 868.1 MHz, SF 10, CR 4/5, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`deadbeef ` | 5 | 5 | 100.00%
`88 ` | 1 | 1 | 100.00%
`ffff ` | 10 | 10 | 100.00%
### 868.1 MHz, SF 11, CR 4/8, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`deadbeef ` | 5 | 5 | 100.00%
`88 ` | 1 | 1 | 100.00%
`ffff ` | 10 | 10 | 100.00%
### 868.1 MHz, SF 11, CR 4/7, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`deadbeef ` | 5 | 5 | 100.00%
`88 ` | 1 | 1 | 100.00%
`ffff ` | 10 | 10 | 100.00%
### 868.1 MHz, SF 11, CR 4/6, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`deadbeef ` | 5 | 5 | 100.00%
`88 ` | 1 | 1 | 100.00%
`ffff ` | 10 | 10 | 100.00%
### 868.1 MHz, SF 11, CR 4/5, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`deadbeef ` | 5 | 5 | 100.00%
`88 ` | 1 | 1 | 100.00%
`ffff ` | 10 | 10 | 100.00%
### 868.1 MHz, SF 12, CR 4/8, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`deadbeef ` | 5 | 5 | 100.00%
`88 ` | 1 | 1 | 100.00%
`ffff ` | 10 | 10 | 100.00%
### 868.1 MHz, SF 12, CR 4/7, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`deadbeef ` | 5 | 5 | 100.00%
`88 ` | 1 | 1 | 100.00%
`ffff ` | 10 | 10 | 100.00%
### 868.1 MHz, SF 12, CR 4/6, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`deadbeef ` | 5 | 5 | 100.00%
`88 ` | 1 | 1 | 100.00%
`ffff ` | 10 | 10 | 100.00%
### 868.1 MHz, SF 12, CR 4/5, BW 125 kHz, prlen 8, crc on, implicit off
Transmitted payload | :heavy_check_mark: | :hash: | :heavy_division_sign:
--- | --- | --- | ---
`deadbeef ` | 5 | 5 | 100.00%
`88 ` | 1 | 1 | 100.00%
`ffff ` | 10 | 10 | 100.00%
### Summary for suite 'short_rtl-sdr'
Total payloads passed: 384 out of 384 (100.00%)

Wyświetl plik

@ -1,6 +1,6 @@
# Test suite: 'short_usrp'
*Results on 2017-09-07 08:50:33.103084*
*Results on 2017-09-08 09:00:25.230843*
### 868.1 MHz, SF 7, CR 4/8, BW 125 kHz, prlen 8, crc on, implicit off

Wyświetl plik

@ -0,0 +1,635 @@
<?xml version='1.0' encoding='utf-8'?>
<?grc format='1' created='3.7.11'?>
<flow_graph>
<timestamp>Fri Sep 8 10:59:00 2017</timestamp>
<block>
<key>options</key>
<param>
<key>author</key>
<value></value>
</param>
<param>
<key>window_size</key>
<value></value>
</param>
<param>
<key>category</key>
<value>[GRC Hier Blocks]</value>
</param>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>description</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(8, 12)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>generate_options</key>
<value>wx_gui</value>
</param>
<param>
<key>hier_block_src_path</key>
<value>.:</value>
</param>
<param>
<key>id</key>
<value>grlora_rtlsdr</value>
</param>
<param>
<key>max_nouts</key>
<value>0</value>
</param>
<param>
<key>qt_qss_theme</key>
<value></value>
</param>
<param>
<key>realtime_scheduling</key>
<value></value>
</param>
<param>
<key>run_command</key>
<value>{python} -u {filename}</value>
</param>
<param>
<key>run_options</key>
<value>prompt</value>
</param>
<param>
<key>run</key>
<value>True</value>
</param>
<param>
<key>thread_safe_setters</key>
<value></value>
</param>
<param>
<key>title</key>
<value></value>
</param>
</block>
<block>
<key>variable</key>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(296, 12)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>capture_freq</value>
</param>
<param>
<key>value</key>
<value>868e6</value>
</param>
</block>
<block>
<key>variable</key>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(408, 12)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>offset</value>
</param>
<param>
<key>value</key>
<value>-26e3</value>
</param>
</block>
<block>
<key>variable</key>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(192, 12)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>samp_rate</value>
</param>
<param>
<key>value</key>
<value>1e6</value>
</param>
</block>
<block>
<key>lora_lora_receiver</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
<key>center_freq</key>
<value>capture_freq</value>
</param>
<param>
<key>channel_list</key>
<value>[868.1e6+offset]</value>
</param>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>affinity</key>
<value></value>
</param>
<param>
<key>threshold</key>
<value>0.002</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(296, 308)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>lora_lora_receiver_0</value>
</param>
<param>
<key>maxoutbuf</key>
<value>0</value>
</param>
<param>
<key>minoutbuf</key>
<value>0</value>
</param>
<param>
<key>out_samp_rate</key>
<value>1000000</value>
</param>
<param>
<key>in_samp_rate</key>
<value>1e6</value>
</param>
<param>
<key>sf</key>
<value>7</value>
</param>
</block>
<block>
<key>lora_message_socket_sink</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>affinity</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(520, 344)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>lora_message_socket_sink_0</value>
</param>
</block>
<block>
<key>rtlsdr_source</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
<key>ant0</key>
<value></value>
</param>
<param>
<key>bb_gain0</key>
<value>20</value>
</param>
<param>
<key>bw0</key>
<value>0</value>
</param>
<param>
<key>dc_offset_mode0</key>
<value>0</value>
</param>
<param>
<key>corr0</key>
<value>0</value>
</param>
<param>
<key>freq0</key>
<value>capture_freq</value>
</param>
<param>
<key>gain_mode0</key>
<value>False</value>
</param>
<param>
<key>if_gain0</key>
<value>20</value>
</param>
<param>
<key>iq_balance_mode0</key>
<value>0</value>
</param>
<param>
<key>gain0</key>
<value>10</value>
</param>
<param>
<key>ant1</key>
<value></value>
</param>
<param>
<key>bb_gain1</key>
<value>20</value>
</param>
<param>
<key>bw1</key>
<value>0</value>
</param>
<param>
<key>dc_offset_mode1</key>
<value>0</value>
</param>
<param>
<key>corr1</key>
<value>0</value>
</param>
<param>
<key>freq1</key>
<value>100e6</value>
</param>
<param>
<key>gain_mode1</key>
<value>False</value>
</param>
<param>
<key>if_gain1</key>
<value>20</value>
</param>
<param>
<key>iq_balance_mode1</key>
<value>0</value>
</param>
<param>
<key>gain1</key>
<value>10</value>
</param>
<param>
<key>ant2</key>
<value></value>
</param>
<param>
<key>bb_gain2</key>
<value>20</value>
</param>
<param>
<key>bw2</key>
<value>0</value>
</param>
<param>
<key>dc_offset_mode2</key>
<value>0</value>
</param>
<param>
<key>corr2</key>
<value>0</value>
</param>
<param>
<key>freq2</key>
<value>100e6</value>
</param>
<param>
<key>gain_mode2</key>
<value>False</value>
</param>
<param>
<key>if_gain2</key>
<value>20</value>
</param>
<param>
<key>iq_balance_mode2</key>
<value>0</value>
</param>
<param>
<key>gain2</key>
<value>10</value>
</param>
<param>
<key>ant3</key>
<value></value>
</param>
<param>
<key>bb_gain3</key>
<value>20</value>
</param>
<param>
<key>bw3</key>
<value>0</value>
</param>
<param>
<key>dc_offset_mode3</key>
<value>0</value>
</param>
<param>
<key>corr3</key>
<value>0</value>
</param>
<param>
<key>freq3</key>
<value>100e6</value>
</param>
<param>
<key>gain_mode3</key>
<value>False</value>
</param>
<param>
<key>if_gain3</key>
<value>20</value>
</param>
<param>
<key>iq_balance_mode3</key>
<value>0</value>
</param>
<param>
<key>gain3</key>
<value>10</value>
</param>
<param>
<key>ant4</key>
<value></value>
</param>
<param>
<key>bb_gain4</key>
<value>20</value>
</param>
<param>
<key>bw4</key>
<value>0</value>
</param>
<param>
<key>dc_offset_mode4</key>
<value>0</value>
</param>
<param>
<key>corr4</key>
<value>0</value>
</param>
<param>
<key>freq4</key>
<value>100e6</value>
</param>
<param>
<key>gain_mode4</key>
<value>False</value>
</param>
<param>
<key>if_gain4</key>
<value>20</value>
</param>
<param>
<key>iq_balance_mode4</key>
<value>0</value>
</param>
<param>
<key>gain4</key>
<value>10</value>
</param>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>affinity</key>
<value></value>
</param>
<param>
<key>args</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(8, 108)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>rtlsdr_source_0</value>
</param>
<param>
<key>maxoutbuf</key>
<value>0</value>
</param>
<param>
<key>minoutbuf</key>
<value>0</value>
</param>
<param>
<key>nchan</key>
<value>1</value>
</param>
<param>
<key>type</key>
<value>fc32</value>
</param>
<param>
<key>sample_rate</key>
<value>samp_rate</value>
</param>
</block>
<block>
<key>wxgui_fftsink2</key>
<param>
<key>avg_alpha</key>
<value>0</value>
</param>
<param>
<key>average</key>
<value>False</value>
</param>
<param>
<key>baseband_freq</key>
<value>capture_freq</value>
</param>
<param>
<key>alias</key>
<value></value>
</param>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>affinity</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>fft_size</key>
<value>1024</value>
</param>
<param>
<key>freqvar</key>
<value>None</value>
</param>
<param>
<key>_coordinate</key>
<value>(296, 100)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>grid_pos</key>
<value></value>
</param>
<param>
<key>id</key>
<value>wxgui_fftsink2_0</value>
</param>
<param>
<key>notebook</key>
<value></value>
</param>
<param>
<key>peak_hold</key>
<value>False</value>
</param>
<param>
<key>ref_level</key>
<value>0</value>
</param>
<param>
<key>ref_scale</key>
<value>2.0</value>
</param>
<param>
<key>fft_rate</key>
<value>15</value>
</param>
<param>
<key>samp_rate</key>
<value>samp_rate</value>
</param>
<param>
<key>title</key>
<value>FFT Plot</value>
</param>
<param>
<key>type</key>
<value>complex</value>
</param>
<param>
<key>win_size</key>
<value></value>
</param>
<param>
<key>win</key>
<value>None</value>
</param>
<param>
<key>y_divs</key>
<value>10</value>
</param>
<param>
<key>y_per_div</key>
<value>10</value>
</param>
</block>
<connection>
<source_block_id>lora_lora_receiver_0</source_block_id>
<sink_block_id>lora_message_socket_sink_0</sink_block_id>
<source_key>frames</source_key>
<sink_key>in</sink_key>
</connection>
<connection>
<source_block_id>rtlsdr_source_0</source_block_id>
<sink_block_id>lora_lora_receiver_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
<source_block_id>rtlsdr_source_0</source_block_id>
<sink_block_id>wxgui_fftsink2_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
</flow_graph>

Wyświetl plik

@ -0,0 +1,118 @@
#!/usr/bin/env python2
# -*- coding: utf-8 -*-
##################################################
# GNU Radio Python Flow Graph
# Title: Grlora Rtlsdr
# Generated: Fri Sep 8 13:14:07 2017
##################################################
if __name__ == '__main__':
import ctypes
import sys
if sys.platform.startswith('linux'):
try:
x11 = ctypes.cdll.LoadLibrary('libX11.so')
x11.XInitThreads()
except:
print "Warning: failed to XInitThreads()"
from gnuradio import eng_notation
from gnuradio import gr
from gnuradio import wxgui
from gnuradio.eng_option import eng_option
from gnuradio.fft import window
from gnuradio.filter import firdes
from gnuradio.wxgui import fftsink2
from grc_gnuradio import wxgui as grc_wxgui
from optparse import OptionParser
import lora
import osmosdr
import wx
class grlora_rtlsdr(grc_wxgui.top_block_gui):
def __init__(self):
grc_wxgui.top_block_gui.__init__(self, title="Grlora Rtlsdr")
##################################################
# Variables
##################################################
self.samp_rate = samp_rate = 1e6
self.offset = offset = -26e3
self.capture_freq = capture_freq = 868e6
##################################################
# Blocks
##################################################
self.wxgui_fftsink2_0 = fftsink2.fft_sink_c(
self.GetWin(),
baseband_freq=capture_freq,
y_per_div=10,
y_divs=10,
ref_level=0,
ref_scale=2.0,
sample_rate=samp_rate,
fft_size=1024,
fft_rate=15,
average=False,
avg_alpha=None,
title='FFT Plot',
peak_hold=False,
)
self.Add(self.wxgui_fftsink2_0.win)
self.rtlsdr_source_0 = osmosdr.source( args="numchan=" + str(1) + " " + '' )
self.rtlsdr_source_0.set_sample_rate(samp_rate)
self.rtlsdr_source_0.set_center_freq(capture_freq, 0)
self.rtlsdr_source_0.set_freq_corr(0, 0)
self.rtlsdr_source_0.set_dc_offset_mode(0, 0)
self.rtlsdr_source_0.set_iq_balance_mode(0, 0)
self.rtlsdr_source_0.set_gain_mode(False, 0)
self.rtlsdr_source_0.set_gain(10, 0)
self.rtlsdr_source_0.set_if_gain(20, 0)
self.rtlsdr_source_0.set_bb_gain(20, 0)
self.rtlsdr_source_0.set_antenna('', 0)
self.rtlsdr_source_0.set_bandwidth(0, 0)
self.lora_message_socket_sink_0 = lora.message_socket_sink()
self.lora_lora_receiver_0 = lora.lora_receiver(1e6, capture_freq, ([868.1e6+offset]), 7, 1000000, 0.002)
##################################################
# Connections
##################################################
self.msg_connect((self.lora_lora_receiver_0, 'frames'), (self.lora_message_socket_sink_0, 'in'))
self.connect((self.rtlsdr_source_0, 0), (self.lora_lora_receiver_0, 0))
self.connect((self.rtlsdr_source_0, 0), (self.wxgui_fftsink2_0, 0))
def get_samp_rate(self):
return self.samp_rate
def set_samp_rate(self, samp_rate):
self.samp_rate = samp_rate
self.wxgui_fftsink2_0.set_sample_rate(self.samp_rate)
self.rtlsdr_source_0.set_sample_rate(self.samp_rate)
def get_offset(self):
return self.offset
def set_offset(self, offset):
self.offset = offset
def get_capture_freq(self):
return self.capture_freq
def set_capture_freq(self, capture_freq):
self.capture_freq = capture_freq
self.wxgui_fftsink2_0.set_baseband_freq(self.capture_freq)
self.rtlsdr_source_0.set_center_freq(self.capture_freq, 0)
def main(top_block_cls=grlora_rtlsdr, options=None):
tb = top_block_cls()
tb.Start(True)
tb.Wait()
if __name__ == '__main__':
main()

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 50 KiB

Plik binarny nie jest wyświetlany.

Przed

Szerokość:  |  Wysokość:  |  Rozmiar: 28 KiB

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 28 KiB

Plik binarny nie jest wyświetlany.

Przed

Szerokość:  |  Wysokość:  |  Rozmiar: 34 KiB

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 35 KiB

Plik binarny nie jest wyświetlany.

Przed

Szerokość:  |  Wysokość:  |  Rozmiar: 11 KiB

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 17 KiB

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 62 KiB

Wyświetl plik

@ -120,7 +120,7 @@ class TestSummary():
self._num_total_correct_payloads += 1
else:
if self.pause:
dummy = input("Expected %s but got %s for %s. Press enter to continue..." % (expected, decoded, lora_config.string_repr()))
_ = raw_input("Expected %s but got %s for %s. Press enter to continue..." % (expected, decoded, lora_config.string_repr()))
# Append to text report
evaluation_text += "\tTest {:>3n}: {:<30s} * {:<3n} :: passed {:>3n} out of {:<3n} ({:.2%})\n".format(
@ -152,7 +152,6 @@ class qa_testsuite():
Determine installed test suites and setup socket server for receiving payloads decoded by gr-lora.
"""
# Variables
self.center_offset = 0
self.host = "127.0.0.1"
self.port = 40868
@ -226,6 +225,10 @@ class qa_testsuite():
# Get LoRa configuration
capture_freq = capture_meta["core:frequency"]
if "lora:frequency_offset" in capture_meta:
frequency_offset = capture_meta["lora:frequency_offset"]
else:
frequency_offset = 0
transmit_freq = capture_meta["lora:frequency"]
sf = capture_meta["lora:sf"]
cr = capture_meta["lora:cr"]
@ -246,7 +249,7 @@ class qa_testsuite():
lora_receiver = lora.lora_receiver(sample_rate, capture_freq, [868100000], sf, 1000000, 0.002)
throttle = blocks.throttle(gr.sizeof_gr_complex, sample_rate, True)
message_socket_sink = lora.message_socket_sink()
freq_xlating_fir_filter = filter.freq_xlating_fir_filter_ccc(1, (firdes.low_pass(1, sample_rate, 200000, 100000, firdes.WIN_HAMMING, 6.67)), self.center_offset, sample_rate)
freq_xlating_fir_filter = filter.freq_xlating_fir_filter_ccc(1, (firdes.low_pass(1, sample_rate, 200000, 100000, firdes.WIN_HAMMING, 6.67)), frequency_offset, sample_rate)
# Make connections
tb.connect((file_source, 0), (throttle, 0))