#python #while-loop #conditional-statements #timeout
Вопрос:
У меня есть код, который будет проверять текущую температуру по целевому показателю и продолжать проверять до тех пор, пока эта целевая температура не будет достигнута и порог времени ожидания не будет превышен. Что я хотел бы сделать, так это иметь средство проверки того, что текущая температура остается в пределах допуска в течение определенного промежутка времени, т. Е. В течение минуты или двух, после чего цикл остановится.
То, что у меня есть, — это:
Код
import time
timeout_mins = 7
time_now = time.time()
timeout = time.time() (timeout_mins * 60)
tolerance = 1
# current_temp is a float output in real time by a temperature sensor. target_temperature is a user settable float.
while abs(current_temp - target_temperature) > tolerance and time_now < timeout:
degree_sign = u"N{DEGREE SIGN}"
current_temp = my_sys.Temperature
temp_display = "{:.2f}".format(current_temp)
now = datetime.now()
current_time = now.strftime("%H:%M:%S")
print(f"System temperature = {temp_display}" degree_sign "C" " Time = " current_time)
timeout2 = time.time() 120
current_time = now.strftime("%H:%M:%S")
while abs(current_temp - target_temperature) < tolerance and time_now < timeout2:
print("less than tolerance : " current_time)
time.sleep(check_time)
Это приведет систему к температуре, но как только она достигнет температуры и время ожидания закончится, есть большая вероятность, что температура будет колебаться до тех пор, пока не будет достигнуто равновесие, что я ищу, это проверка равновесия.
Комментарии:
1. Что такое current_temp
2. текущая температура, поплавок, поступающий от датчика температуры. Целевая температура также является плавающей.
3. Похоже, все, что вам нужно сделать, это иметь еще один цикл while, который следит за текущей температурой и следит за тем, чтобы она оставалась в пределах допуска в течение любого периода времени, который вы хотите считать «стабильным».
4. @martineau да, но я не уверен, как это сделать, у меня есть обновленный вопрос с моим вторым циклом while, я должен подождать и посмотреть, работает ли он, так как есть задержка.
5. Что ж, дайте нам знать. Обратите внимание, esp для проведения первоначального альфа-тестирования не может ли период времени быть сокращен, чтобы ускорить процесс?