我已经将Arduino连接到RPi,Arduino不断地一行一行地发送关于实际温度的信息(此时,仅从一个传感器发送,稍后我将添加更多传感器)。现在只接收一个信息是没有问题的,但稍后我将从Arduino发送更多数据,如下面的示例所示:
1213141516
其中:12是第一个传感器的温度,13是第二个传感器的温度,等等
我的线程代码:
#Worker
class SerialThreadClass(QThread):
signal = pyqtSignal(str)
def __init__(self, parent=None):
super(SerialThreadClass, self).__init__(parent)
self.serialport = serial.Serial()
self.serialport.baudrate = 9600
self.serialport.port='/dev/cu.usbmodem14101'
self.serialport.open()
def run(self):
while True:
rdln = self.serialport.readline().decode('utf-8').rstrip()
self.signal.emit(str(rdln)) # pipe
print(rdln)
主窗口中的我的代码:
#MainWindow
self.mySerial = SerialThreadClass()
self.mySerial.start()
self.mySerial.signal.connect(self.ui.average_temp.display)
我不知道如何在多个qlcd小部件之间分割这个字符串?! 对不起我的英语;)
编辑: 我发现了一个想法,也许这不是正确的方法,但它起作用了:
self.signal.emit(str(rdln[0:2]))
但问题并没有100%解决,因为我可以读取“信号块”,但如何根据这部分信号进行平均
这与QLCD无关,而是与字符串处理有关
如果确定数据总是成对的,则可以按如下方式拆分字符串:
但是,既然您说过需要平均值,那么这些字符串必须转换为数字,所以您最好这样做:
相关问题 更多 >
编程相关推荐