GuoWenxue
2022-04-19 ea435789dc2fab30ec16fa765a0b6577fe08166a
iotd/hal/gpio.h
@@ -16,18 +16,15 @@
#include <gpiod.h>
#define OFF   0
#define ON    1
#define GPIO_MAXOUT         8
#define GPIO_MAXIN          4
typedef struct gpio_info_s
{
    char                 name[32];      /*  GPIO connected module name */
    int                  pins;          /*  GPIO BCM pin number */
    int                  pin;           /*  GPIO BCM pin number */
    int                  active_level;  /*  active power level */
    struct gpiod_line   *lines;         /*  gpiod lines */
    struct gpiod_line   *line;          /*  gpiod line */
} gpio_info_t;
@@ -39,19 +36,22 @@
    gpio_info_t          input[GPIO_MAXIN];   /* GPIO input pins */
    int                  incnt;               /* GPIO input numbers */
    int                  infrared_enable;     /* infrared enable or not */
} gpio_t; 
extern int gpio_init(gpio_t *gpio);
extern void gpio_term(void);
/* turn which light on/off */
extern void turn_light(int which, int cmd);
extern void gpio_out(char *name, char *cmd);
/* turn which led on/off */
extern void turn_led(int which, int cmd);
/*thread work body to turn light $name on for some seconds */
void *light_on_worker(void *arg);
/* Return value: 0(LOW): Nobody detected, !0: Which infrared detect incoming */
#define FLAG_INFRARED_INDOOR          (1<<0)
#define FLAG_INFRARED_HALLWAY         (1<<1)
extern int infrared_detect(void);
#endif   /* ----- #ifndef _GPIO_H_  ----- */