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

1#!/usr/bin/env python3 

2""" 

3GPIO を使ってバルブを制御します. 

4 

5Usage: 

6 valve.py [-c CONFIG] 

7 

8Options: 

9 -c CONFIG : CONFIG を設定ファイルとして読み込んで実行します.[default: config.yaml] 

10""" 

11 

12import enum 

13import logging 

14 

15import my_lib.rpi 

16 

17 

18class TARGET(enum.Enum): 

19 CO2 = 1 

20 AIR = 2 

21 

22 

23gpio_air = None 

24gpio_co2 = None 

25 

26 

27def init(air=17, co2=27): 

28 global gpio_air # noqa: PLW0603 

29 global gpio_co2 # noqa: PLW0603 

30 

31 gpio_air = air 

32 gpio_co2 = co2 

33 

34 my_lib.rpi.gpio.setwarnings(False) 

35 my_lib.rpi.gpio.setmode(my_lib.rpi.gpio.BCM) 

36 

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) 

39 

40 control(TARGET.AIR, my_lib.rpi.gpio.level.LOW) 

41 control(TARGET.CO2, my_lib.rpi.gpio.level.LOW) 

42 

43 

44def control(target, level): 

45 global gpio_air 

46 global gpio_co2 

47 

48 logging.info("valve %s = %s", target.name, level.value) 

49 

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)