- Fotók, videók mobillal
- Milyen okostelefont vegyek?
- Hivatalos a OnePlus 13 startdátuma
- iPhone topik
- Okosóra és okoskiegészítő topik
- Honor 600 Lite - koffein nélkül
- Samsung Galaxy Watch8 - Classic - Ultra 2025
- Megérkezett a Samsung Galaxy A37 és Galaxy A57
- Mától Huawei okosórákkal is lehet érintésmentesen fizetni
- Xiaomi 15T - reakció nélkül nincs egyensúly
Új hozzászólás Aktív témák
-
Silεncε
őstag
Sziasztok!! Lenne egy program, amivel már napok óta nem bírok zöld ágra vergődni. A feladata az lenne, hogy kliensként szolgáljon egy másik projecthez. A másik oldalon egy Teensy van, ami ESP8826-on keresztül lök adatot nekünk wifin (TCP protokollal). A "kliens" feladata az lenne, hogy fogadja a TCP-n érkező adatot, majd ezt kirajzolja egy PyQtGraph vonalgrafikonra. Van is már egy működő verzió, de szeretnénk neki GUI-t is csinálni. Ugye erre a legkézenfekvőbb ebben az esetben a PyQt és ez működik is nagyjából. Azonban azt sehogyan sem tudom megoldani, hogy az érkező adatokat a grafikon real-time rajzolja ki, ebben kérném a segítségeteket. A kód többszálúsítva van, idáig eljutottam már, ezt QThread segítségével csináltam meg. Tudna nekem segíteni valaki, hogy mit rontok el? Nem konkrét megoldásra lenne szükségem, inkább iránymutatásra (tanulni szeretnék, nem készen megkapni a megoldást). Remélem van valaki, aki tud nekem segíteni, előre is köszönöm!!
import sys
import socket
from pyqtgraph import PlotWidget
from PyQt5 import QtCore, QtWidgets, QtGui
from PyQt5.QtCore import QThread
IP = ""
PORT = 333
DATA = [] #ez az, ahova a tcp bepakolja az adatot, és innen is veszi ki a grafikon is; egyszerre használja a kettő
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(280, 248)
#MainWindow.setWindowIcon(QtGui.QIcon('wifi.png'))
self.connect_button = QtWidgets.QPushButton(MainWindow)
self.connect_button.setGeometry(QtCore.QRect(150, 10, 91, 23))
self.connect_button.setObjectName("connect_button")
self.IPinput = QtWidgets.QLineEdit(MainWindow)
self.IPinput.setGeometry(QtCore.QRect(10, 10, 131, 20))
self.IPinput.setObjectName("IPinput")
self.plotItem = PlotWidget(MainWindow)
self.plotItem.setGeometry(QtCore.QRect(10, 40, 256, 192))
self.plotItem.setObjectName("graphicsView")
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "Client"))
self.connect_button.setText(_translate("MainWindow", "Connect to host"))
class programManager(QtWidgets.QWidget, Ui_MainWindow):
def __init__(self):
super(self.__class__, self).__init__()
self.setupUi(self)
self.connect_button.clicked.connect(self.backgroundWorkerManager)
self.IPinput.textChanged[str].connect(self.onChangedIP)
def backgroundWorkerManager(self):
self.bgw = backgroundWorker()
self.bgw.start()
self.plotDraw = plotDraw()
self.plotDraw.start()
def onChangedIP(self, text):
global IP
IP = text
class plotDraw(QtCore.QThread):
def __init__(self):
pass
def __del__(self):
self.wait()
def run(self):
pass #ide akartam a grafikon frissítését beilleszteni, de nem működött
class backgroundWorker(QtCore.QThread):
def __init__(self):
QtCore.QThread.__init__(self)
def __del__(self):
self.wait()
def run(self):
print(IP)
self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.sock.connect((IP, PORT))
MESSAGE = "HELLO I\'M CONNECTED"
self.sock.send(MESSAGE.encode())
while True:
DATA.append(int(self.sock.recv(2048)))
print(DATA)
self.sock.close()
def main():
app = QtWidgets.QApplication(sys.argv)
gui = programManager()
gui.show()
sys.exit(app.exec())
if __name__ == '__main__':
main()
Új hozzászólás Aktív témák
- Samsung Galaxy A05s OEM LCD kijelző érintővel Fekete kerettel
- Nitro V17 AI ANV17-41 17.3" QHD IPS Ryzen 7 260 RTX 5060 16GB 512GB NVMe magyar vbill gar
- ÚJ Lenovo 40B0 ThinkPad Thunderbolt 4 Workstation Dock (300W) (40B0) 33 hónap gyári GARANCIA
- PC i5-7400 32GB RAM GTX 1650 1TB SSD be quiet! ház
- Samsung Galaxy A36 5G 6/128GB, Újszerű, Kártyafüggetlen, Töltővel, Dobozzal, 1 Év Garanciával!
- LG 39GX90SA - 39" Ívelt Smart OLED / QHD 2K / 240Hz & 0.03ms / 1300 Nits / NVIDIA G-Sync / FreeSync
- Telefon felvásárlás!! Honor 90 Lite/Honor 90/Honor Magic5 Lite/Honor Magic6 Lite/Honor Magic5 Pro
- RAPOO 7100P 1000DPI optikai rádiós 5GHz egér
- AKCIÓ! Felsőkategóriás Gamer PC-Számítógép! R7 9850X3D / RTX 5080 16GB / 32GB DDR5 / 2TB Nvme!
- Gaming PC! Ryzen 5700X / RTX 3070 / B550 / 32GB 2666Mhz / 512GB NVMe / 850w Gold! BeszámítOK
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

