スタートボタンが押されたら/dev/shm/領域にスタートファイルを生成、ファイルが存在している場合はスタートファイルを削除するデーモン
スタートファイルに日時を保存する。
このスタートファイルが存在することを確認したら、ヒーター制御デーモンが指定温度になるようヒーターを制御します。
スタートファイルは、このデーモンの他にタイマーデーモンからも参照、追記、削除されます。
<start_stop_btnd.py>
#!/usr/bin/python
#coding:utf-8import RPi.GPIO as GPIO
import time
import os
import datetime
import file_mng as fileSwitch = 10
#スイッチが押されたときの処理
def switch(gpio_pin):
time.sleep(0.2)
if GPIO.input(Switch) == 0:
time.sleep(0.2)#既にスタートファイルがあるときは
if file.is_start():#スタートファイルを消す
file.stop()
file.save_row_0('-- STOP --')#スタートファイルが無い場合は
else:
now = datetime.datetime.now()#現在日時をスタートファイルに書き込む
file.start( now.strftime("%Y/%m/%d %H:%M:%S") )
file.save_row_0('-- START --')while GPIO.input(Switch) == 0:
time.sleep( 1 )
#スタートスイッチをプルアップしておいて、プッシュ時(ピン電圧0V時)にswitchメソッドを読むよう設定
def standby():
GPIO.setmode(GPIO.BCM)
GPIO.setup(Switch, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.add_event_detect(Switch, GPIO.FALLING)
GPIO.add_event_callback(Switch, switch)while True:
time.sleep(60)
if __name__=='__main__':
standby()
<全プログラム内部構造一覧>