diff --git a/python/chart.py b/python/chart.py index 0bb97a4..197bdb8 100644 --- a/python/chart.py +++ b/python/chart.py @@ -2,7 +2,7 @@ # -*- coding: utf-8 -*- from gnuradio import gr from itertools import cycle -from PyQt4.Qt import * +from PyQt5.Qt import * DEFAULT_COLORS = [0x3366cc, 0xdc3912, 0xff9900, 0x109618, 0x990099, 0x0099c6, 0xdd4477, 0x66aa00, 0xb82e2e, 0x316395, diff --git a/python/rds_parser_table_qt.py b/python/rds_parser_table_qt.py index 535bf3b..100ca3e 100644 --- a/python/rds_parser_table_qt.py +++ b/python/rds_parser_table_qt.py @@ -22,26 +22,30 @@ from __future__ import print_function#print without newline print('.', end="") 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 from datetime import datetime from datetime import timedelta import multirds.chart as chart + 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 pp = pprint.PrettyPrinter() -import cProfile, pstats, StringIO #for profiling +import cProfile, pstats #for profiling +from io import StringIO #py3 pr = cProfile.Profile() #from threading import Timer#to periodically save DB -from PyQt4.QtCore import QObject, pyqtSignal +from PyQt5.QtCore import QObject, pyqtSignal from bitstring import BitArray + + class rds_parser_table_qt_Signals(QObject): DataUpdateEvent = QtCore.pyqtSignal(dict) 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)''') reader = csv.reader(open(self.workdir+'RDS_ODA-AIDs_names_only.csv'), delimiter=',', quotechar='"') - reader.next()#skip header + next(reader)#skip header for row in reader: self.ODA_application_names[int(row[0])]=row[1] #read RT+ class name list: reader = csv.reader(open(self.workdir+'RTplus_classnames.csv'), delimiter=',', quotechar='"') - reader.next()#skip header + next(reader)#skip header self.rtp_classnames=dict((int(rows[0]),rows[1]) for rows in reader) #read TMC-event list reader = csv.reader(open(self.workdir+'event-list_with_forecast_sort.csv'), delimiter=',', quotechar='"') - reader.next()#skip header + next(reader)#skip header 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 #N:nature (blank): information, F:forecast, S:silent @@ -151,7 +155,7 @@ class rds_parser_table_qt(gr.sync_block):#START #read update classes reader = csv.reader(open(self.workdir+'tmc_update_class_names.csv'), delimiter=',', quotechar='"') - reader.next()#skip header, "code(C),english,german" + next(reader)#skip header, "code(C),english,german" if language=="de": self.tmc_update_class_names=dict((int(rows[0]),rows[2]) for rows in reader)#german names @@ -161,7 +165,7 @@ class rds_parser_table_qt(gr.sync_block):#START #read supplementary information code list reader = csv.reader(open(self.workdir+'label6-supplementary-information-codes.csv'), delimiter=',', quotechar='"') - reader.next()#skip header, "code,english,german" + next(reader)#skip header, "code,english,german" if language=="de": self.label6_suppl_info=dict((int(rows[0]),rows[2]) for rows in reader)#german @@ -171,7 +175,7 @@ class rds_parser_table_qt(gr.sync_block):#START #read PTY list f=open(self.workdir+'pty-list.csv') 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')) for rows in reader) 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 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_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) @@ -1056,14 +1060,14 @@ class rds_parser_table_qt(gr.sync_block):#START segmentcolor,text[start:end], textcolor,text[end:]) 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): #print("gui initializing")self.tableobj.RDS_data["D3A2"] self.signals = signals self.tableobj=tableobj self.signals.DataUpdateEvent.connect(self.display_data) """ Creates the QT Range widget """ - QtGui.QWidget.__init__(self) + QtWidgets.QWidget.__init__(self) layout = Qt.QVBoxLayout() #self.label = Qt.QLabel(label) #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)) button_layout.addWidget(right_button) - cellWidget = QtGui.QWidget() + cellWidget = QtWidgets.QWidget() cellWidget.setLayout(button_layout) button_col=3 self.table.setCellWidget(rowPosition,button_col,cellWidget) diff --git a/python/rds_table_qt.py b/python/rds_table_qt.py index a46c6c6..02d3cf5 100644 --- a/python/rds_table_qt.py +++ b/python/rds_table_qt.py @@ -22,11 +22,11 @@ import numpy from gnuradio import gr import code,pmt,functools -from PyQt4 import Qt, QtCore, QtGui +from PyQt5 import Qt, QtCore, QtGui, QtWidgets import pprint pp = pprint.PrettyPrinter() -from PyQt4.QtCore import QObject, pyqtSignal +from PyQt5.QtCore import QObject, pyqtSignal class rds_table_qt_Signals(QObject): DataUpdateEvent = QtCore.pyqtSignal(dict) @@ -89,7 +89,7 @@ class rds_table_qt(gr.sync_block): #def handle_msg(self, msg): # self.signals.DataUpdateEvent.emit({'string':pmt.to_python(msg)}) # print(msg) -class rds_table_qt_Widget(QtGui.QWidget): +class rds_table_qt_Widget(QtWidgets.QWidget): def __init__(self, signals,label): print("gui initializing") self.signals = signals diff --git a/python/tmc_classes.py b/python/tmc_classes.py index 0853a21..5ae5b73 100644 --- a/python/tmc_classes.py +++ b/python/tmc_classes.py @@ -31,7 +31,8 @@ from bitstring import BitArray import copy,csv,code import hashlib,os,time -import cPickle as pickle#faster for python2 +#import cPickle as pickle#faster for python2 +import pickle from collections import namedtuple diff --git a/python/tmc_parser.py b/python/tmc_parser.py index 8679b2c..c015ac6 100644 --- a/python/tmc_parser.py +++ b/python/tmc_parser.py @@ -23,7 +23,7 @@ from __future__ import print_function#print without newline print('.', end="") import numpy from gnuradio import gr import pmt -from PyQt4 import Qt, QtCore, QtGui +from PyQt5 import Qt, QtCore, QtGui, QtWidgets import code,time,csv,sqlite3,atexit from bitstring import BitArray from multirds.tmc_classes import tmc_dict,tmc_message,language,lcl @@ -290,7 +290,7 @@ def print_dbg(message,end="\n"): dbg=False if dbg: print(message,end=end) -class tmc_parser_Widget(QtGui.QWidget): +class tmc_parser_Widget(QtWidgets.QWidget): def print_tmc_msg(self,tmc_msg): self.parser.dataLock.acquire(1) @@ -361,7 +361,7 @@ class tmc_parser_Widget(QtGui.QWidget): def update_showInvalid(self): self.showInvalid=self.GUI_showInvalid.isChecked() def __init__(self, parser,maxheight): - QtGui.QWidget.__init__(self) + QtWidgets.QWidget.__init__(self) layout = Qt.QVBoxLayout() self.logMutex=QtCore.QSemaphore(1) self.setLayout(layout) diff --git a/python/vector_cutter.py b/python/vector_cutter.py index 0e9144c..9cb84f9 100644 --- a/python/vector_cutter.py +++ b/python/vector_cutter.py @@ -21,7 +21,6 @@ import numpy as np from gnuradio import gr -import code class vector_cutter(gr.sync_block): """ @@ -87,7 +86,6 @@ class vector_cutter(gr.sync_block): else: out[i]=out_cut*self.mask #out = in0[512:1536] - #code.interact(local=locals()) #out[0] = in0[0][512:1536] #out[1] = in0[1][512:1536] return len(output_items[0])