def read(self): from rtlsdr import RtlSdr self.onListDevDeselected() self.listDev.DeleteAllItems() serial_numbers = RtlSdr.get_device_serial_addresses() for i in serial_numbers: device_index = RtlSdr.get_device_index_by_serial(i) item = self.listDev.InsertItem(0, str(device_index)) self.listDev.SetItem(item, 1, str(i)) try: devicesList = eval(self.conf.get('SDR-VHF', 'deviceslist')) except: devicesList = [] for ii in devicesList: if ii['serial'] == i: self.listDev.SetItem(item, 2, str(ii['ppm'])) device = self.conf.get('SDR-VHF', 'sdraisdeviceindex') ppm = self.conf.get('SDR-VHF', 'sdraisppm') gain = self.conf.get('SDR-VHF', 'sdraisgain') port = self.conf.get('SDR-VHF', 'sdraisport') if ppm: self.ppm.SetValue(ppm) if gain: self.gain.SetValue(gain) if port: self.port.SetValue(port) else: self.port.SetValue('10110') if device: listCount = range(self.listDev.GetItemCount()) for i in listCount: if device == self.listDev.GetItemText(i, 0): self.listDev.Select(i) self.onListDevSelected() break
def _on_update_devices(self): device_serials = RtlSdr.get_device_serial_addresses() logger.debug(f'found sdr serial numbers: {device_serials}') for i, device_serial in enumerate(device_serials): if i in self._devices: continue device = self.add_device(i, device_serial)
def get_info_from_device_index(self, device_index): self.device_index = device_index if self.device_serial is None: self.device_serial = RtlSdr.get_device_serial_addresses( )[device_index] sdr = RtlSdr(device_index) self._get_info_from_device(sdr) sdr.close()
def read(self): from rtlsdr import RtlSdr self.onListDevDeselected() self.listDev.DeleteAllItems() serial_numbers = RtlSdr.get_device_serial_addresses() for i in serial_numbers: device_index = RtlSdr.get_device_index_by_serial(i) item = self.listDev.InsertItem(0, str(device_index)) self.listDev.SetItem(item, 1, str(i)) try: devicesList = eval(self.conf.get('SDR-VHF', 'deviceslist')) except: devicesList = [] for ii in devicesList: if ii['serial'] == i: self.listDev.SetItem(item, 2, str(ii['ppm'])) device = '' ppm = '' gain = '' port = '' try: with open('/etc/default/dump1090-fa', 'r') as f: for line in f: if 'RECEIVER_OPTIONS=' in line: line = line.replace('\n', '') line = line.strip() items = line.split('=') item1 = items[1].replace('"', '') item1 = item1.strip() options = item1.split(' ') #--device-index 1 --gain -10 --ppm 0 device = options[1] gain = options[3] ppm = options[5] with open('/etc/lighttpd/conf-available/89-dump1090-fa.conf', 'r') as f: for line in f: #$SERVER["socket"] == ":8081" { if '$SERVER["socket"]' in line: line = line.replace('\n', '') line = line.strip() items = line.split('==') item1 = items[1].replace('"', '') item1 = item1.replace(':', '') item1 = item1.replace('{', '') port = item1.strip() except Exception as e: print(str(e)) if ppm: self.ppm.SetValue(ppm) if gain: self.gain.SetValue(gain) if port: self.port.SetValue(port) if device: listCount = range(self.listDev.GetItemCount()) for i in listCount: if device == self.listDev.GetItemText(i, 0): self.listDev.Select(i) self.onListDevSelected() break
def read(self): from rtlsdr import RtlSdr self.onListDevDeselected() self.listDev.DeleteAllItems() serial_numbers = RtlSdr.get_device_serial_addresses() for i in serial_numbers: device_index = RtlSdr.get_device_index_by_serial(i) item = self.listDev.InsertItem(0, str(device_index)) self.listDev.SetItem(item, 1, str(i)) try: devicesList = eval(self.conf.get('SDR-VHF', 'deviceslist')) except: devicesList = [] for ii in devicesList: if ii['serial'] == i: self.listDev.SetItem(item, 2, str(ii['ppm']))
def __init__(self, server='127.0.0.1', port='5000', device_index=0, serial_number=None): super().__init__(device_index=device_index, serial_number=serial_number) threading.Thread.__init__(self) if serial_number is not None: self.__serial_number = serial_number self.__device_index = RtlSdr.get_device_index_by_serial( serial_number) else: self.__serial_number = RtlSdr.get_device_serial_addresses( )[device_index] self.__device_index = device_index self.__port = port self.__server = server self.__sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
mpl.use('TkAgg') from tkinter import * from numpy import * import matplotlib matplotlib.use('TkAgg') import matplotlib.pyplot as plt from rtlsdr import RtlSdr import time from SSN_modul.Received_power import received_power from SSN_modul.Received_power import received_power2 from SSN_modul.self_psd import selfpsd # Get a list of detected device serial numbers (str) serial_numbers = RtlSdr.get_device_serial_addresses() #---------------------------------------------------------first sensor # Find the device index for a given serial number device_index0 = RtlSdr.get_device_index_by_serial(serial_numbers[0]) sdr0 = RtlSdr(device_index0) sdr0.sample_rate = 3.2e6 sdr0.center_freq = 1600*1e6 sdr0.gain = 4 #---------------------------------------------------------second sensor device_index1 = RtlSdr.get_device_index_by_serial(serial_numbers[1]) sdr1 = RtlSdr(device_index1) sdr1.sample_rate = 3.2e6 sdr1.center_freq = 1600*1e6 sdr1.gain = 4 N = 1
parser.add_argument('-t', '--thru', type=str, help='Input file of a thru measurement') parser.add_argument('-o', '--open', type=str, help='Input file of an open/short measurement') parser.add_argument('--invert-sdr', action='store_true', help='Swaps the S11 and S21 SDRs') args = parser.parse_args() # Args s11_listen = len(RtlSdr.get_device_serial_addresses()) > 1 #if not s11_listen: # print("-> Running in single device mode (S21 only)") #else: # print("-> Running in dual device mode (S11 and S21)") # SDR stuff freq_lbound = args.frequency_lbound freq_range = args.frequency_span freq_ubound = freq_lbound + freq_range freq_step = args.frequency_step frequencies = np.arange(freq_lbound, freq_ubound, freq_step) # Open serial port s = serial.Serial(args.serial_port, args.baud_rate, timeout=1) time.sleep(2) # Wait to boot
def get_device_serial_addresses(): return RtlSdr.get_device_serial_addresses()
def OnRefreshButton(self, event=0): from rtlsdr import RtlSdr serial_numbers = RtlSdr.get_device_serial_addresses() self.listApps.DeleteAllItems() for i in self.appsDict: item = self.listApps.InsertItem(0, i['name']) if i['name'] == 'AIS': self.listApps.SetItem(item, 1, _('installed')) sdraisdeviceindex = self.conf.get('SDR-VHF', 'sdraisdeviceindex') if sdraisdeviceindex: self.listApps.SetItem(item, 2, sdraisdeviceindex) for ii in serial_numbers: if sdraisdeviceindex == str(RtlSdr.get_device_index_by_serial(ii)): self.listApps.SetItem(item, 3, ii) sdraisppm = self.conf.get('SDR-VHF', 'sdraisppm') if sdraisppm: self.listApps.SetItem(item, 4, sdraisppm) elif i['name'] == 'GQRX': if not os.path.isdir(self.conf.home+'/.config/gqrx'): self.listApps.SetItem(item, 1, _('not installed')) self.listApps.SetItemBackgroundColour(item,(200,200,200)) else: self.listApps.SetItem(item, 1, _('installed')) try: device = '' gqrx_conf = configparser.ConfigParser() gqrx_conf.read(self.conf.home+'/.config/gqrx/default.conf') inputDevice = gqrx_conf.get('input', 'device') inputDevice = inputDevice.replace('"','') inputDevice = inputDevice.split('=') if inputDevice[0] == 'rtl': device = inputDevice[1] if device: self.listApps.SetItem(item, 2, device) for ii in serial_numbers: if device == str(RtlSdr.get_device_index_by_serial(ii)): self.listApps.SetItem(item, 3, ii) gqrxppm = gqrx_conf.get('input', 'corr_freq') if gqrxppm: self.listApps.SetItem(item, 4, str(int(gqrxppm)/1000000)) except Exception as e: print('error getting gqrx settings: '+str(e)) elif i['name'] == 'ADS-B': if not self.platform.isInstalled('piaware'): self.listApps.SetItem(item, 1, _('not installed')) self.listApps.SetItemBackgroundColour(item,(200,200,200)) else: self.listApps.SetItem(item, 1, _('installed')) try: with open('/etc/default/dump1090-fa', 'r') as f: for line in f: if 'RECEIVER_OPTIONS=' in line: line = line.replace('\n', '') line = line.strip() items = line.split('=') item1 = items[1].replace('"', '') item1 = item1.strip() options = item1.split(' ') #--device-index 1 --gain -10 --ppm 0 device = options[1] ppm = options[5] self.listApps.SetItem(item, 2, device) self.listApps.SetItem(item, 4, ppm) for ii in serial_numbers: if device == str(RtlSdr.get_device_index_by_serial(ii)): self.listApps.SetItem(item, 3, ii) except Exception as e: print(str(e)) elif i['name'] == 'DAB': if not self.platform.isInstalled('welle.io'): self.listApps.SetItem(item, 1, _('not installed')) self.listApps.SetItemBackgroundColour(item,(200,200,200)) else: self.listApps.SetItem(item, 1, _('installed')) self.listApps.SetItem(item, 2, _('First available')) elif i['name'] == 'DVB-T': if not self.platform.isInstalled('w-scan'): self.listApps.SetItem(item, 1, _('not installed')) self.listApps.SetItemBackgroundColour(item,(200,200,200)) else: self.listApps.SetItem(item, 1, _('installed')) self.listApps.SetItem(item, 2, _('First available')) self.onListAppsDeselected() if self.started: self.started = False self.statusUpdate() self.started = True indexAis = self.listApps.GetItemText(0, 2) indexAdsb = self.listApps.GetItemText(1, 2) if indexAis == indexAdsb: try: subprocess.check_output(['systemctl', 'is-enabled', 'openplotter-rtl_ais']).decode(sys.stdin.encoding) worksAis = True except: worksAis = False try: subprocess.check_output(['systemctl', 'is-enabled', 'dump1090-fa']).decode(sys.stdin.encoding) worksAdsb = True except: worksAdsb = False if worksAis and worksAdsb: self.listApps.SetItemBackgroundColour(0,(255,0,0)) self.listApps.SetItemBackgroundColour(1,(255,0,0))
def listen(self, sdr): try: loop = asyncio.get_event_loop() loop.run_until_complete(client.streaming(sdr)) except KeyboardInterrupt: raise SystemExit("Stopped Listening for the Remote Signal!") # Added a Proper Entry Point I Guess if __name__ == "__main__": # Start SDR try: device = 0 # Get a list of detected device serial numbers (str) devices = RtlSdr.get_device_serial_addresses() print("Devices: " + str(devices)) if len(devices) is 0: raise Exception("No Detected RTLSDR Devices!!!") # Find the device index for a given serial number device_index = RtlSdr.get_device_index_by_serial( devices[device] ) # You can insert your Serial Address (as a string) directly here sdr = RtlSdr(device_index) #sdr = RtlSdr() # If you don't have more than 1 device, this will work fine. except OSError: print("Could Not Find RTLSDR!!! Is It Locked???") sys.exit(2) except IndexError: print("Choose a Valid Device ID!!!") sys.exit(2) except Exception as error:
def dongles(): if len(RtlSdr.get_device_serial_addresses()) != 1: return pytest.skip("Test requires 1 RTL SDR dongle to be present")