Browse Source

py2 to py3 and qt4 to qt5

gr-3.8
Clemens Richter 4 years ago
parent
commit
c8b87412f7
  1. 2
      python/chart.py
  2. 32
      python/rds_parser_table_qt.py
  3. 6
      python/rds_table_qt.py
  4. 3
      python/tmc_classes.py
  5. 6
      python/tmc_parser.py
  6. 2
      python/vector_cutter.py

2
python/chart.py

@ -2,7 +2,7 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from gnuradio import gr from gnuradio import gr
from itertools import cycle from itertools import cycle
from PyQt4.Qt import * from PyQt5.Qt import *
DEFAULT_COLORS = [0x3366cc, 0xdc3912, 0xff9900, 0x109618, 0x990099, DEFAULT_COLORS = [0x3366cc, 0xdc3912, 0xff9900, 0x109618, 0x990099,
0x0099c6, 0xdd4477, 0x66aa00, 0xb82e2e, 0x316395, 0x0099c6, 0xdd4477, 0x66aa00, 0xb82e2e, 0x316395,

32
python/rds_parser_table_qt.py

@ -22,26 +22,30 @@
from __future__ import print_function#print without newline print('.', end="") from __future__ import print_function#print without newline print('.', end="")
from gnuradio import gr from gnuradio import gr
import pmt,functools,csv,md5,collections,copy,sqlite3,atexit,time,re,sys import pmt,functools,csv,collections,copy,sqlite3,atexit,time,re,sys,hashlib
#old imports: folium #old imports: folium
from datetime import datetime from datetime import datetime
from datetime import timedelta from datetime import timedelta
import multirds.chart as chart import multirds.chart as chart
from multirds.tmc_classes import language#supported: de, en (both partially) from multirds.tmc_classes import language#supported: de, en (both partially)
from PyQt4 import Qt, QtCore, QtGui from PyQt5 import Qt, QtCore, QtGui, QtWidgets
import pprint,code import pprint,code
pp = pprint.PrettyPrinter() pp = pprint.PrettyPrinter()
import cProfile, pstats, StringIO #for profiling import cProfile, pstats #for profiling
from io import StringIO #py3
pr = cProfile.Profile() pr = cProfile.Profile()
#from threading import Timer#to periodically save DB #from threading import Timer#to periodically save DB
from PyQt4.QtCore import QObject, pyqtSignal from PyQt5.QtCore import QObject, pyqtSignal
from bitstring import BitArray from bitstring import BitArray
class rds_parser_table_qt_Signals(QObject): class rds_parser_table_qt_Signals(QObject):
DataUpdateEvent = QtCore.pyqtSignal(dict) DataUpdateEvent = QtCore.pyqtSignal(dict)
def __init__(self, parent=None): def __init__(self, parent=None):
@ -127,18 +131,18 @@ class rds_parser_table_qt(gr.sync_block):#START
# (time text,PI text,rtp_string text)''') # (time text,PI text,rtp_string text)''')
reader = csv.reader(open(self.workdir+'RDS_ODA-AIDs_names_only.csv'), reader = csv.reader(open(self.workdir+'RDS_ODA-AIDs_names_only.csv'),
delimiter=',', quotechar='"') delimiter=',', quotechar='"')
reader.next()#skip header next(reader)#skip header
for row in reader: for row in reader:
self.ODA_application_names[int(row[0])]=row[1] self.ODA_application_names[int(row[0])]=row[1]
#read RT+ class name list: #read RT+ class name list:
reader = csv.reader(open(self.workdir+'RTplus_classnames.csv'), reader = csv.reader(open(self.workdir+'RTplus_classnames.csv'),
delimiter=',', quotechar='"') delimiter=',', quotechar='"')
reader.next()#skip header next(reader)#skip header
self.rtp_classnames=dict((int(rows[0]),rows[1]) for rows in reader) self.rtp_classnames=dict((int(rows[0]),rows[1]) for rows in reader)
#read TMC-event list #read TMC-event list
reader = csv.reader(open(self.workdir+'event-list_with_forecast_sort.csv'), reader = csv.reader(open(self.workdir+'event-list_with_forecast_sort.csv'),
delimiter=',', quotechar='"') delimiter=',', quotechar='"')
reader.next()#skip header next(reader)#skip header
self.ecl_dict=dict((int(rows[0]),rows[1:]) for rows in reader) self.ecl_dict=dict((int(rows[0]),rows[1:]) for rows in reader)
#Code,Text CEN-English,Text (German),Text (German) kein Quantifier,Text (Quantifier = 1),Text (Quantifier >1),N,Q,T,D,U,C,R ,Comment #Code,Text CEN-English,Text (German),Text (German) kein Quantifier,Text (Quantifier = 1),Text (Quantifier >1),N,Q,T,D,U,C,R ,Comment
#N:nature (blank): information, F:forecast, S:silent #N:nature (blank): information, F:forecast, S:silent
@ -151,7 +155,7 @@ class rds_parser_table_qt(gr.sync_block):#START
#read update classes #read update classes
reader = csv.reader(open(self.workdir+'tmc_update_class_names.csv'), reader = csv.reader(open(self.workdir+'tmc_update_class_names.csv'),
delimiter=',', quotechar='"') delimiter=',', quotechar='"')
reader.next()#skip header, "code(C),english,german" next(reader)#skip header, "code(C),english,german"
if language=="de": if language=="de":
self.tmc_update_class_names=dict((int(rows[0]),rows[2]) self.tmc_update_class_names=dict((int(rows[0]),rows[2])
for rows in reader)#german names for rows in reader)#german names
@ -161,7 +165,7 @@ class rds_parser_table_qt(gr.sync_block):#START
#read supplementary information code list #read supplementary information code list
reader = csv.reader(open(self.workdir+'label6-supplementary-information-codes.csv'), reader = csv.reader(open(self.workdir+'label6-supplementary-information-codes.csv'),
delimiter=',', quotechar='"') delimiter=',', quotechar='"')
reader.next()#skip header, "code,english,german" next(reader)#skip header, "code,english,german"
if language=="de": if language=="de":
self.label6_suppl_info=dict((int(rows[0]),rows[2]) self.label6_suppl_info=dict((int(rows[0]),rows[2])
for rows in reader)#german for rows in reader)#german
@ -171,7 +175,7 @@ class rds_parser_table_qt(gr.sync_block):#START
#read PTY list #read PTY list
f=open(self.workdir+'pty-list.csv') f=open(self.workdir+'pty-list.csv')
reader = csv.reader(f, delimiter=',', quotechar='"') reader = csv.reader(f, delimiter=',', quotechar='"')
reader.next()#skip header next(reader)#skip header
self.pty_dict=dict((int(rows[0]),unicode(rows[1],errors='ignore')) self.pty_dict=dict((int(rows[0]),unicode(rows[1],errors='ignore'))
for rows in reader) for rows in reader)
f.close() f.close()
@ -759,7 +763,7 @@ class rds_parser_table_qt(gr.sync_block):#START
})#this gnuradio instance doesnt seem to be able to convert from numpy.int64 to pmt })#this gnuradio instance doesnt seem to be able to convert from numpy.int64 to pmt
self.message_port_pub(pmt.intern('tmc_raw'), send_pmt) self.message_port_pub(pmt.intern('tmc_raw'), send_pmt)
#~ tmc_hash=md5.new(str([PI,tmc_x,tmc_y,tmc_z])).hexdigest() #~ tmc_hash=hashlib.md5(str([PI,tmc_x,tmc_y,tmc_z])).hexdigest()
tmc_T=tmc_x>>4 #0:TMC-message 1:tuning info/service provider name tmc_T=tmc_x>>4 #0:TMC-message 1:tuning info/service provider name
#~ tmc_F=int((tmc_x>>3)&0x1) #identifies the message as a Single Group (F = 1) or Multi Group (F = 0) #~ tmc_F=int((tmc_x>>3)&0x1) #identifies the message as a Single Group (F = 1) or Multi Group (F = 0)
#~ Y15=int(tmc_y>>15) #~ Y15=int(tmc_y>>15)
@ -1056,14 +1060,14 @@ class rds_parser_table_qt(gr.sync_block):#START
segmentcolor,text[start:end], segmentcolor,text[start:end],
textcolor,text[end:]) textcolor,text[end:])
return formatted_text return formatted_text
class rds_parser_table_qt_Widget(QtGui.QWidget): class rds_parser_table_qt_Widget(QtWidgets.QWidget):
def __init__(self, signals,label,tableobj): def __init__(self, signals,label,tableobj):
#print("gui initializing")self.tableobj.RDS_data["D3A2"] #print("gui initializing")self.tableobj.RDS_data["D3A2"]
self.signals = signals self.signals = signals
self.tableobj=tableobj self.tableobj=tableobj
self.signals.DataUpdateEvent.connect(self.display_data) self.signals.DataUpdateEvent.connect(self.display_data)
""" Creates the QT Range widget """ """ Creates the QT Range widget """
QtGui.QWidget.__init__(self) QtWidgets.QWidget.__init__(self)
layout = Qt.QVBoxLayout() layout = Qt.QVBoxLayout()
#self.label = Qt.QLabel(label) #self.label = Qt.QLabel(label)
#layout.addWidget(self.label)#title of table disabled to save space #layout.addWidget(self.label)#title of table disabled to save space
@ -1157,7 +1161,7 @@ class rds_parser_table_qt_Widget(QtGui.QWidget):
right_button.clicked.connect(functools.partial(self.setAudio2, row=rowPosition,audio_channel=2)) right_button.clicked.connect(functools.partial(self.setAudio2, row=rowPosition,audio_channel=2))
button_layout.addWidget(right_button) button_layout.addWidget(right_button)
cellWidget = QtGui.QWidget() cellWidget = QtWidgets.QWidget()
cellWidget.setLayout(button_layout) cellWidget.setLayout(button_layout)
button_col=3 button_col=3
self.table.setCellWidget(rowPosition,button_col,cellWidget) self.table.setCellWidget(rowPosition,button_col,cellWidget)

6
python/rds_table_qt.py

@ -22,11 +22,11 @@
import numpy import numpy
from gnuradio import gr from gnuradio import gr
import code,pmt,functools import code,pmt,functools
from PyQt4 import Qt, QtCore, QtGui from PyQt5 import Qt, QtCore, QtGui, QtWidgets
import pprint import pprint
pp = pprint.PrettyPrinter() pp = pprint.PrettyPrinter()
from PyQt4.QtCore import QObject, pyqtSignal from PyQt5.QtCore import QObject, pyqtSignal
class rds_table_qt_Signals(QObject): class rds_table_qt_Signals(QObject):
DataUpdateEvent = QtCore.pyqtSignal(dict) DataUpdateEvent = QtCore.pyqtSignal(dict)
@ -89,7 +89,7 @@ class rds_table_qt(gr.sync_block):
#def handle_msg(self, msg): #def handle_msg(self, msg):
# self.signals.DataUpdateEvent.emit({'string':pmt.to_python(msg)}) # self.signals.DataUpdateEvent.emit({'string':pmt.to_python(msg)})
# print(msg) # print(msg)
class rds_table_qt_Widget(QtGui.QWidget): class rds_table_qt_Widget(QtWidgets.QWidget):
def __init__(self, signals,label): def __init__(self, signals,label):
print("gui initializing") print("gui initializing")
self.signals = signals self.signals = signals

3
python/tmc_classes.py

@ -31,7 +31,8 @@
from bitstring import BitArray from bitstring import BitArray
import copy,csv,code import copy,csv,code
import hashlib,os,time import hashlib,os,time
import cPickle as pickle#faster for python2 #import cPickle as pickle#faster for python2
import pickle
from collections import namedtuple from collections import namedtuple

6
python/tmc_parser.py

@ -23,7 +23,7 @@ from __future__ import print_function#print without newline print('.', end="")
import numpy import numpy
from gnuradio import gr from gnuradio import gr
import pmt import pmt
from PyQt4 import Qt, QtCore, QtGui from PyQt5 import Qt, QtCore, QtGui, QtWidgets
import code,time,csv,sqlite3,atexit import code,time,csv,sqlite3,atexit
from bitstring import BitArray from bitstring import BitArray
from multirds.tmc_classes import tmc_dict,tmc_message,language,lcl from multirds.tmc_classes import tmc_dict,tmc_message,language,lcl
@ -290,7 +290,7 @@ def print_dbg(message,end="\n"):
dbg=False dbg=False
if dbg: if dbg:
print(message,end=end) print(message,end=end)
class tmc_parser_Widget(QtGui.QWidget): class tmc_parser_Widget(QtWidgets.QWidget):
def print_tmc_msg(self,tmc_msg): def print_tmc_msg(self,tmc_msg):
self.parser.dataLock.acquire(1) self.parser.dataLock.acquire(1)
@ -361,7 +361,7 @@ class tmc_parser_Widget(QtGui.QWidget):
def update_showInvalid(self): def update_showInvalid(self):
self.showInvalid=self.GUI_showInvalid.isChecked() self.showInvalid=self.GUI_showInvalid.isChecked()
def __init__(self, parser,maxheight): def __init__(self, parser,maxheight):
QtGui.QWidget.__init__(self) QtWidgets.QWidget.__init__(self)
layout = Qt.QVBoxLayout() layout = Qt.QVBoxLayout()
self.logMutex=QtCore.QSemaphore(1) self.logMutex=QtCore.QSemaphore(1)
self.setLayout(layout) self.setLayout(layout)

2
python/vector_cutter.py

@ -21,7 +21,6 @@
import numpy as np import numpy as np
from gnuradio import gr from gnuradio import gr
import code
class vector_cutter(gr.sync_block): class vector_cutter(gr.sync_block):
""" """
@ -87,7 +86,6 @@ class vector_cutter(gr.sync_block):
else: else:
out[i]=out_cut*self.mask out[i]=out_cut*self.mask
#out = in0[512:1536] #out = in0[512:1536]
#code.interact(local=locals())
#out[0] = in0[0][512:1536] #out[0] = in0[0][512:1536]
#out[1] = in0[1][512:1536] #out[1] = in0[1][512:1536]
return len(output_items[0]) return len(output_items[0])

Loading…
Cancel
Save