项目的目标是:上位机能够实时监测板卡运行,并且支持参数的设置修改。上位机与板卡通过UDP实现通讯。
再线程def __init__(self, parent=None)之后,def run(self)之前创建套接字:
self.udp_socket = QUdpSocket() # 在同一线程中创建QUdpSocket对象
pycharm编译器会报如下错误
在run函数内创建套接字编译器则不会报错,选代码如下:
class UDPThread(QThread):
read_finish = Signal(bool)
need_reconnect = Signal(bool) # 自定义的超时信号
bind_success = True
is_running = True # 运行标志
def __init__(self, parent=None):
super(UDPThread, self).__init__(parent)
self.need_reconnect = False # 重连标志
self.udp_socket = None # 创建套接字
global Send_Data, pySend_Data
Send_Data = "00" # hex格式的消息数据
pySend_Data = bytes.fromhex(Send_Data) # 创建长度为1的字节数组,并设置值为0x00
def run(self):
self.udp_socket = QUdpSocket() # 在同一线程中创建QUdpSocket对象
# 绑定固定的IP地址和端口
self.bind_success = self.udp_socket.bind(QHostAddress(PC_IP), PC_Port)
# self.udp_socket.readyRead.connect(self.handle_ready_read)
while not self.isInterruptionRequested() and self.is_running:
self.receive_data()
self.msleep(300)
上位机可以正常监测板卡数据。