如何暂停读取串行数据以便我可以调用函数?

问题描述

我制作了一个程序,用于从通过串行 (USB) 连接到我的 Raspberry Pi 的微控制器接收温度传感器数据,我使用 import serial 连接它们。我已经可以打印数据了,但如果数据超过 35 摄氏度,我想制作一个警报系统,然后播放“温度超过 35”的音频,但如果它不超过 35,则继续打印数据。这段代码的问题是,如果我得到 35.1,那么下一个数据是 35.4,音频继续播放但没有完成。所以输出音频将是“tempe-温度超过35”。我希望它是如果数据是 35.1 那么音频将播放直到它完成,然后如果下一个数据再次超过 35 那么音频将再次播放,而不会被切断。我是 python 和 raspberry pi 的初学者,所以任何帮助将不胜感激!

这是读取串行数据并打印到标签的代码

    def readserial(self):
        response=ser.readline().decode('utf-8').rstrip()
        response=float(response)
        if response > 35.00:
            self.label2.setText(str(response))
            self.alarm()
        elif response <= 35.00:
            self.label2.setText(str(response))
            self.timer=QTimer()
            self.timer.timeout.connect(self.readserial)
            self.timer.start(500)

    def alarm(self):
        pygame.mixer.music.load("over.mp3")
        pygame.mixer.music.play()

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)