Beispiel #1
0
    def test_get_receive_buffer_size(self):
        settings.OVERWRITE_RECEIVE_BUFFER_SIZE = None
        ns = settings.get_receive_buffer_size(resume_on_full_receive_buffer=True, spectrum_mode=True)
        self.assertEqual(ns, settings.SPECTRUM_BUFFER_SIZE)

        ns = settings.get_receive_buffer_size(resume_on_full_receive_buffer=True, spectrum_mode=False)
        self.assertEqual(ns, settings.SNIFF_BUFFER_SIZE)

        ns1 = settings.get_receive_buffer_size(resume_on_full_receive_buffer=False, spectrum_mode=True)
        ns2 = settings.get_receive_buffer_size(resume_on_full_receive_buffer=False, spectrum_mode=False)
        self.assertEqual(len(str(ns1)), len(str(ns2)))
Beispiel #2
0
 def init_recv_buffer(self):
     if self.receive_buffer is None:
         num_samples = settings.get_receive_buffer_size(
             self.resume_on_full_receive_buffer, self.is_in_spectrum_mode)
         self.receive_buffer = IQArray(None,
                                       dtype=self.DATA_TYPE,
                                       n=int(num_samples))
    def __init__(self,
                 raw_mode=False,
                 resume_on_full_receive_buffer=False,
                 spectrum=False,
                 sending=False):
        """

        :param raw_mode: If true, sending and receiving raw samples if false bits are received/sent
        """
        super().__init__(name="NetworkSDRInterface")
        self.client_ip = self.qsettings.value("client_ip",
                                              defaultValue="127.0.0.1",
                                              type=str)
        self.server_ip = ""

        self.samples_to_send = None  # set in virtual device constructor

        self.client_port = self.qsettings.value("client_port",
                                                defaultValue=2222,
                                                type=int)
        self.server_port = self.qsettings.value("server_port",
                                                defaultValue=4444,
                                                type=int)

        self.is_in_spectrum_mode = spectrum
        self.resume_on_full_receive_buffer = resume_on_full_receive_buffer
        self.__is_sending = False
        self.__sending_interrupt_requested = False

        self.sending_repeats = 1  # only used in raw mode
        self.current_sent_sample = 0
        self.current_sending_repeat = 0

        self.sending_is_continuous = False
        self.continuous_send_ring_buffer = None
        self.num_samples_to_send = None  # Only used for continuous send mode

        self.raw_mode = raw_mode
        if not sending:
            if self.raw_mode:
                num_samples = settings.get_receive_buffer_size(
                    self.resume_on_full_receive_buffer,
                    self.is_in_spectrum_mode)
                try:
                    self.receive_buffer = IQArray(None,
                                                  dtype=self.DATA_TYPE,
                                                  n=num_samples)
                except MemoryError:
                    logger.warning(
                        "Could not allocate buffer with {0:d} samples, trying less..."
                    )
                    i = 0
                    while True:
                        try:
                            i += 2
                            self.receive_buffer = IQArray(None,
                                                          dtype=self.DATA_TYPE,
                                                          n=num_samples // i)
                            logger.debug(
                                "Using buffer with {0:d} samples instead.".
                                format(num_samples // i))
                            break
                        except MemoryError:
                            continue
            else:
                self.received_bits = []
Beispiel #4
0
 def init_recv_buffer(self):
     n_samples = settings.get_receive_buffer_size(
         self.resume_on_full_receive_buffer, self.is_in_spectrum_mode)
     self.data = np.zeros(n_samples, dtype=np.complex64)