Wednesday, August 12, 2020

PDU socket block


<type 'unicode'>


[u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'?', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'?', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'?', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'?', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'?', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'?', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'?', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'?', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'?', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'?', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'?', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00', u'\x00']


\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000�?\000\000\000\000\000\000�?\000\000\000\000\000\000�?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000�?\000\000\000\000\000\000�?\000\000\000\000\000\000�?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000�?\000\000\000\000\000\000�?\000\000\000\000\000\000�?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000�?\000\000\000\000\000\000�?\000\000\000\000\000\000\000\000\000\000\000\000

#!/usr/bin/env python2
# -*- coding: utf-8 -*-
##################################################
# GNU Radio Python Flow Graph
# Title: teste experimantal
# Author: Felipe Gama
# Generated: Mon Aug 10 22:50:57 2020
##################################################

if __name__ == '__main__':
import ctypes
import sys
if sys.platform.startswith('linux'):
try:
x11 = ctypes.cdll.LoadLibrary('libX11.so')
x11.XInitThreads()
except:
print "Warning: failed to XInitThreads()"

from PyQt4 import Qt
from gnuradio import blocks
from gnuradio import eng_notation
from gnuradio import gr
from gnuradio.eng_option import eng_option
from gnuradio.filter import firdes
from optparse import OptionParser
import math
import sys
import wavelet


class teste_experimental(gr.top_block, Qt.QWidget):

def __init__(self):
gr.top_block.__init__(self, "teste experimantal")
Qt.QWidget.__init__(self)
self.setWindowTitle("teste experimantal")
try:
self.setWindowIcon(Qt.QIcon.fromTheme('gnuradio-grc'))
except:
pass
self.top_scroll_layout = Qt.QVBoxLayout()
self.setLayout(self.top_scroll_layout)
self.top_scroll = Qt.QScrollArea()
self.top_scroll.setFrameStyle(Qt.QFrame.NoFrame)
self.top_scroll_layout.addWidget(self.top_scroll)
self.top_scroll.setWidgetResizable(True)
self.top_widget = Qt.QWidget()
self.top_scroll.setWidget(self.top_widget)
self.top_layout = Qt.QVBoxLayout(self.top_widget)
self.top_grid_layout = Qt.QGridLayout()
self.top_layout.addLayout(self.top_grid_layout)

self.settings = Qt.QSettings("GNU Radio", "teste_experimental")
self.restoreGeometry(self.settings.value("geometry").toByteArray())

##################################################
# Variables
##################################################
self.text_msg = text_msg = "disparo"
self.tamFonte = tamFonte = 10
self.samp_rate = samp_rate = 1000000

##################################################
# Blocks
##################################################
self.wavelet_deco_wavelet_str_0_0 = wavelet.deco_wavelet_str(32,"",0)
self.wavelet_cod_wavelet_str_0 = wavelet.cod_wavelet_str(32)
self.blocks_socket_pdu_0 = blocks.socket_pdu("TCP_SERVER", "127.0.0.1", "5006", 10000, False)
self.blocks_message_debug_0 = blocks.message_debug()

##################################################
# Connections
##################################################
self.msg_connect((self.blocks_socket_pdu_0, 'pdus'), (self.wavelet_cod_wavelet_str_0, 'in'))
self.msg_connect((self.wavelet_cod_wavelet_str_0, 'out'), (self.wavelet_deco_wavelet_str_0_0, 'in'))
self.msg_connect((self.wavelet_deco_wavelet_str_0_0, 'out'), (self.blocks_message_debug_0, 'print'))
self.msg_connect((self.wavelet_deco_wavelet_str_0_0, 'out'), (self.blocks_socket_pdu_0, 'pdus'))

def closeEvent(self, event):
self.settings = Qt.QSettings("GNU Radio", "teste_experimental")
self.settings.setValue("geometry", self.saveGeometry())
event.accept()


def get_text_msg(self):
return self.text_msg

def set_text_msg(self, text_msg):
self.text_msg = text_msg

def get_tamFonte(self):
return self.tamFonte

def set_tamFonte(self, tamFonte):
self.tamFonte = tamFonte

def get_samp_rate(self):
return self.samp_rate

def set_samp_rate(self, samp_rate):
self.samp_rate = samp_rate


def main(top_block_cls=teste_experimental, options=None):

from distutils.version import StrictVersion
if StrictVersion(Qt.qVersion()) >= StrictVersion("4.5.0"):
style = gr.prefs().get_string('qtgui', 'style', 'raster')
Qt.QApplication.setGraphicsSystem(style)
qapp = Qt.QApplication(sys.argv)

tb = top_block_cls()
tb.start()
tb.show()

def quitting():
tb.stop()
tb.wait()
qapp.connect(qapp, Qt.SIGNAL("aboutToQuit()"), quitting)
qapp.exec_()


if __name__ == '__main__':
main()
import socket , pickle
import time
import math
from random import randint
import numpy as np
import pmt
import base64


def fonte(tamanho):
f=[]
for k in range(int(tamanho)):
f.append(randint(0,1))
return f
def moduladorOQPSK(data):
si = 2*(np.array(data[0:(len(data)):2])-0.5)
sq = 2*(np.array(data[1:(len(data)):2])-0.5)
modulado = np.array(si,dtype=complex)
modulado.imag = np.array(sq)
return np.array(modulado)/math.sqrt(2)

def arrayToString(comp):
s=[]
for c in comp:
if(c.imag<0):
s.append(str(c.real)+str(c.imag)+"j")
else:
s.append(str(c.real)+"+"+str(c.imag)+"j")
str1 = ','.join(str(e) for e in s)
return str1

TCP_IP = '127.0.0.1'
TCP_PORT = 5006
BUFFER_SIZE = 10000
data = moduladorOQPSK(fonte(20))
listToStr = arrayToString(data)

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((TCP_IP, TCP_PORT))

N=1000
teste=b"abcde"
for k in range(N):
time.sleep(1)
s.send(listToStr)
data = s.recv(BUFFER_SIZE)
lines = []
for line in data:
try:
aux= line.decode()
lines.append(aux)
print(type(aux))
except:
print line

print(lines)
try:
print(data)
except:
print('ERRO')

Hi all,

I'm developing my doctoral research on wavelet coding and I'm trying to automate the experimental tests developed from the developed codes, I made a python script from a TCP client that sends it to a TCP server created by the socket block PDU, however at the reception of this client I'm not able to handle the data received because I don't know which format the PDU socket sends and I didn't find it in the documentation. Sending to the PDU socket the output of the block created by me, which is of the complex message type. Attached is the client in python, flowchart code and the client output.

Thanks,

Me. Eng. Felipe Gama

No comments:

Post a Comment