設定温度に達したらタイマーをスタート、カウントアップさせてディスプレイに表示させる。
タイマーが設定時間を超えたらスタートファイルを削除する。
スタートファイルが削除されるので、ヒーターデーモンはヒーターの過熱を停止する。
<timerd.py>
#!/usr/bin/python
#coding:utf-8import file_mng as file
import datetime
import timetim_start = False
start_time = None
set_temp = 0.0
now_temp = 0.0
#桁「00」表示に揃える
def keta( num ):
res = '0' + num
return res[-2:]#秒を「00:00:00」時間表示に変換
def get_view_time( sec ):
sec = int( sec )
hour = keta( str( sec / 3600 ) )
min = keta( str( ( sec % 3600 ) / 60 ) )
sec = keta( str( sec % 60 ) )
return hour + ':' + min + ':' + sec
def main():
global tim_start, start_time, set_temp, now_temp#スタートファイルがある場合
if file.is_start():if tim_start:
if start_time == None:
str_time = file.load_start_time()
start_time = datetime.datetime.strptime(str_time, "%Y/%m/%d %H:%M:%S")#現時刻とスタート時の時刻の差分を取得
now = datetime.datetime.now()
delta = now - start_time
sec = delta.total_seconds()
file.save_time( get_view_time( sec ) )
set_time = float( file.get_time_set() )#設定時間をタイマーが超えたらスタートファイルを削除して終了
if set_time <= sec/60 :
file.save_row_0('Complete')
file.stop()else:
r_now_temp = file.load_temp()
r_set_temp = file.get_temp_set()
try:
r_now_temp = float( r_now_temp )
r_set_temp = float( r_set_temp )
now_temp = r_now_temp
set_temp = r_set_temp
except:
pass#設定温度に達したらスターとファイルを現日時に置き換えてタイマースタート
if set_temp <= now_temp:
tim_start = True
now = datetime.datetime.now()
now_str = now.strftime("%Y/%m/%d %H:%M:%S")
file.start( now_str )
file.save_row_0(now_str)
#スタートファイルが無い場合
else:
tim_start = False
start_time = None
if __name__=='__main__':
while True:
main()
time.sleep(0.5)
<全プログラム内部構造一覧>