我已经用谷歌搜索了很多,我只能找到与循环中的条件相关的答案。我希望这个循环无限运行(因此当 1==1 时),我现在正在测试它,只是让它在 Thonny 中运行。它运行可变的时间长度,然后停止。它不会退出程序或停止运行,它只是表现得好像在等待某些东西,但我看不到它在等待什么。shell 不报告任何错误或报告它已停止运行,它只是停止打印第四行打印语句中的字符串。
我对 python 和 Linux 很陌生,我不知道如何调试这个问题或在哪里寻找停止点。即使在调试模式下运行它也不会呈现任何有用的信息。请问有人有什么建议吗?
除了我所说的之外,我尝试过的唯一另一件事是我尝试在三台不同的 Raspberry Pi 4 Model B 计算机上全新安装的 Raspberry Pi OS 上运行它。它在所有这些上的行为完全相同。
while 1==1:
time.sleep(1)
cnt = 1
print('One = One loop ' + str(datetime.today()) + ' CNT: ' + str(cnt))
while Decimal(target_temperature()) - Decimal(0.3) >= Decimal(actual_temperature()) and switch_state() == 'currently not running':
print('Before heating loop ' + str(datetime.today()))
try:
if cnt == 1:
if Decimal(target_temperature()) - Decimal(0.3) >= Decimal(actual_temperature()) and switch_state() == 'currently not running':
print('First heating loop ' + str(datetime.today()))
requests.get('http://192.168.1.167/4/on')
log_db('On', str(target_temperature()), str(actual_temperature()))
time.sleep(225)
requests.get('http://192.168.1.167/4/off')
log_db('Off', str(target_temperature()), str(actual_temperature()))
time.sleep(300)
cnt = cnt + 1
if(cnt != 1):
if Decimal(target_temperature()) - Decimal(0.3) >= Decimal(actual_temperature()) and switch_state() == 'currently not running':
print('Second heating loop ' + str(datetime.today()))
requests.get('http://192.168.1.167/4/on')
log_db('On', str(target_temperature()), str(actual_temperature()))
time.sleep(180)
requests.get('http://192.168.1.167/4/off')
log_db('Off', str(target_temperature()), str(actual_temperature()))
time.sleep(300)
except Exception as e:
print(e)