Пример #1
0
    def __init__(self, options, context):
        gr.top_block.__init__(self)
        pubsub.__init__(self)
        self._options = options
        self._queue = gr.msg_queue()
        self._rate = int(options.rate)

        self._resample = None
        self._setup_source(options)

        if self._rate < 4e6:
            self._resample = pfb.arb_resampler_ccf(4.e6 / self._rate)
            self._rx_rate = 4e6
        else:
            self._rx_rate = self._rate

        self._rx_path = air_modes.rx_path(self._rx_rate, options.threshold,
                                          self._queue, options.pmf,
                                          options.dcblock)

        #now subscribe to set various options via pubsub
        self.subscribe("freq", self.set_freq)
        self.subscribe("gain", self.set_gain)
        self.subscribe("rate", self.set_rate)
        self.subscribe("rate", self._rx_path.set_rate)
        self.subscribe("threshold", self._rx_path.set_threshold)
        self.subscribe("pmf", self._rx_path.set_pmf)

        self.publish("freq", self.get_freq)
        self.publish("gain", self.get_gain)
        self.publish("rate", self.get_rate)
        self.publish("threshold", self._rx_path.get_threshold)
        self.publish("pmf", self._rx_path.get_pmf)

        if self._resample is not None:
            self.connect(self._u, self._resample, self._rx_path)
        else:
            self.connect(self._u, self._rx_path)

        #Publish messages when they come back off the queue
        server_addr = ["inproc://modes-radio-pub"]
        if options.tcp is not None:
            server_addr += ["tcp://*:%i" % options.tcp]

        self._sender = air_modes.zmq_pubsub_iface(context,
                                                  subaddr=None,
                                                  pubaddr=server_addr)
        self._async_sender = gru.msgq_runner(self._queue, self.send)
Пример #2
0
  def __init__(self, options, context):
    gr.top_block.__init__(self)
    pubsub.__init__(self)
    self._options = options
    self._queue = gr.msg_queue()
    self._rate = int(options.rate)

    self._resample = None
    self._setup_source(options)

    if self._rate < 4e6:
        self._resample = pfb.arb_resampler_ccf(4.e6/self._rate)
        self._rx_rate = 4e6
    else:
        self._rx_rate = self._rate

    self._rx_path = air_modes.rx_path(self._rx_rate, options.threshold,
                                      self._queue, options.pmf, options.dcblock)


    #now subscribe to set various options via pubsub
    self.subscribe("freq", self.set_freq)
    self.subscribe("gain", self.set_gain)
    self.subscribe("rate", self.set_rate)
    self.subscribe("rate", self._rx_path.set_rate)
    self.subscribe("threshold", self._rx_path.set_threshold)
    self.subscribe("pmf", self._rx_path.set_pmf)

    self.publish("freq", self.get_freq)
    self.publish("gain", self.get_gain)
    self.publish("rate", self.get_rate)
    self.publish("threshold", self._rx_path.get_threshold)
    self.publish("pmf", self._rx_path.get_pmf)

    if self._resample is not None:
        self.connect(self._u, self._resample, self._rx_path)
    else:
        self.connect(self._u, self._rx_path)

    #Publish messages when they come back off the queue
    server_addr = ["inproc://modes-radio-pub"]
    if options.tcp is not None:
        server_addr += ["tcp://*:%i" % options.tcp]

    self._sender = air_modes.zmq_pubsub_iface(context, subaddr=None, pubaddr=server_addr)
    self._async_sender = gru.msgq_runner(self._queue, self.send)