Example #1
0
    def handle_msg_fft_average(self, msg_pmt):
        # PMT TYPE CHECK AND UNPACKING
        if pmt.is_symbol(msg_pmt):
            msg_str = pmt.symbol_to_string(msg_pmt)
            if msg_str == "FFT_AVG_FINISH_ACK":
                self.top_block.rise_fft_avg_flag()

        elif pmt.is_f32vector(msg_pmt):
            data = pmt.f32vector_elements(msg_pmt)
            self.fft_data_buffer = data
Example #2
0
    def handle_msg_energy(self, msg_pmt):
        # PMT TYPE CHECK AND UNPACKING
        if pmt.is_symbol(msg_pmt):
            msg_str = pmt.symbol_to_string(msg_pmt)
            if msg_str == "E_FINISH_ACK":
                self.top_block.rise_energy_flag()

        elif pmt.is_f32vector(msg_pmt):
            data = pmt.f32vector_elements(msg_pmt)
            self.top_block.on_receive_pkt_data(data)
 def handle_msg(self, msg_pmt):
     msg = pmt.cdr(msg_pmt)
     if not pmt.is_f32vector(msg):
         print("[ERROR] Received invalid message type. Expected f32vector")
         return
     packet_short = pmt.f32vector_elements(msg)[8:8 + 1020]
     packet_long = pmt.f32vector_elements(msg)[8:8 + 1996]
     self.message_port_pub(
         pmt.intern('short'),
         pmt.cons(pmt.PMT_NIL,
                  pmt.init_f32vector(len(packet_short), packet_short)))
     self.message_port_pub(
         pmt.intern('long'),
         pmt.cons(pmt.PMT_NIL,
                  pmt.init_f32vector(len(packet_long), packet_long)))
Example #4
0
    def handle_msg(self, msg_pmt):
        msg = pmt.cdr(msg_pmt)
        if not pmt.is_f32vector(msg):
            print("[ERROR] Received invalid message type. Expected f32vector")
            return
        pls = np.array(pmt.f32vector_elements(msg)[:64], dtype='float32')
        correlations = np.sum(pls[:, np.newaxis] * scrambled_PLS_bipolar,
                              axis=0)
        code = PLS_codes[np.argmax(correlations)]

        # It seems that there is a typo in the rev 1.04 document
        # PLS-code 0 is listed as corresponding to data length 223
        # PLS-code 1 is listed as corresponding to data length 48
        # However, according to the test IQ data it is the other way
        # around
        data_len = 48 if code == 0 else 223
        payload_len = (data_len + 32) * 2
        payload_out = pmt.f32vector_elements(msg)[64:][:8 * payload_len]
        payload_out = pmt.init_f32vector(len(payload_out), payload_out)
        msg_out = pmt.cons(pmt.car(msg_pmt), payload_out)
        self.message_port_pub(pmt.intern('out'), msg_out)