70 lines
2.1 KiB
Python
70 lines
2.1 KiB
Python
|
import time
|
||
|
from multiprocessing.connection import Pipe
|
||
|
|
||
|
import numpy as np
|
||
|
import unittest
|
||
|
|
||
|
from urh.dev.native.BladeRF import BladeRF
|
||
|
from urh.util import util
|
||
|
|
||
|
util.set_shared_library_path()
|
||
|
|
||
|
from urh.dev.native.lib import bladerf
|
||
|
|
||
|
class TestBladeRF(unittest.TestCase):
|
||
|
def test_version(self):
|
||
|
bladerf.get_api_version()
|
||
|
|
||
|
def test_cython_wrapper(self):
|
||
|
serials = bladerf.get_device_list()
|
||
|
print("Connected serials", serials)
|
||
|
|
||
|
bladerf.open()
|
||
|
|
||
|
bladerf.set_tx(True)
|
||
|
bladerf.set_channel(0)
|
||
|
print("set gain", bladerf.set_gain(20))
|
||
|
print("set gain", bladerf.set_gain(21))
|
||
|
|
||
|
bladerf.set_tx(False)
|
||
|
bladerf.set_channel(1)
|
||
|
print("Sample Rate", bladerf.get_sample_rate())
|
||
|
print("Set sample rate to 2e6", bladerf.set_sample_rate(int(2e6)))
|
||
|
print("sample rate", bladerf.get_sample_rate())
|
||
|
print("Set sample rate to 40e6", bladerf.set_sample_rate(int(40e6)))
|
||
|
print("sample rate", bladerf.get_sample_rate())
|
||
|
print("Set sample rate to 200e6", bladerf.set_sample_rate(int(200e6)))
|
||
|
print("sample rate", bladerf.get_sample_rate())
|
||
|
|
||
|
bladerf.set_tx(True)
|
||
|
bladerf.set_channel(1)
|
||
|
print("Bandwidth", bladerf.get_bandwidth())
|
||
|
print("Set Bandwidth to 2e6", bladerf.set_bandwidth(int(2e6)))
|
||
|
print("Bandwidth", bladerf.get_bandwidth())
|
||
|
|
||
|
bladerf.set_tx(False)
|
||
|
bladerf.set_channel(0)
|
||
|
print("Frequency", bladerf.get_center_freq())
|
||
|
print("Set Frequency to 433.92e6", bladerf.set_center_freq(int(433.92e6)))
|
||
|
print("Frequency", bladerf.get_center_freq())
|
||
|
|
||
|
bladerf.prepare_sync()
|
||
|
|
||
|
parent_conn, child_conn = Pipe()
|
||
|
|
||
|
for i in range(3):
|
||
|
bladerf.receive_sync(child_conn, 4096)
|
||
|
data = parent_conn.recv_bytes()
|
||
|
print(data)
|
||
|
|
||
|
bladerf.close()
|
||
|
|
||
|
bladerf.open()
|
||
|
bladerf.set_tx(True)
|
||
|
bladerf.set_channel(0)
|
||
|
bladerf.prepare_sync()
|
||
|
|
||
|
for i in range(10):
|
||
|
print("Send", bladerf.send_sync(np.fromstring(data, dtype=np.int16)))
|
||
|
bladerf.close()
|