Coverage for src/rasp_aqua/valve.py: 93%
24 statements
« prev ^ index » next coverage.py v7.6.8, created at 2024-11-24 19:24 +0900
« prev ^ index » next coverage.py v7.6.8, created at 2024-11-24 19:24 +0900
1#!/usr/bin/env python3
2"""
3GPIO を使ってバルブを制御します.
5Usage:
6 valve.py [-c CONFIG]
8Options:
9 -c CONFIG : CONFIG を設定ファイルとして読み込んで実行します.[default: config.yaml]
10"""
12import enum
13import logging
15import my_lib.rpi
18class TARGET(enum.Enum):
19 CO2 = 1
20 AIR = 2
23gpio_air = None
24gpio_co2 = None
27def init(air=17, co2=27):
28 global gpio_air # noqa: PLW0603
29 global gpio_co2 # noqa: PLW0603
31 gpio_air = air
32 gpio_co2 = co2
34 my_lib.rpi.gpio.setwarnings(False)
35 my_lib.rpi.gpio.setmode(my_lib.rpi.gpio.BCM)
37 my_lib.rpi.gpio.setup(gpio_air, my_lib.rpi.gpio.OUT)
38 my_lib.rpi.gpio.setup(gpio_co2, my_lib.rpi.gpio.OUT)
40 control(TARGET.AIR, my_lib.rpi.gpio.level.LOW)
41 control(TARGET.CO2, my_lib.rpi.gpio.level.LOW)
44def control(target, level):
45 global gpio_air
46 global gpio_co2
48 logging.info("valve %s = %s", target.name, level.value)
50 if target == TARGET.CO2:
51 my_lib.rpi.gpio.output(gpio_co2, level.value)
52 elif target == TARGET.AIR: 52 ↛ 55line 52 didn't jump to line 55 because the condition on line 52 was always true
53 my_lib.rpi.gpio.output(gpio_air, level.value)
54 else:
55 logging.warning("Unknown taeget: %s", target)