From 8913f64d481a3da19d7e03b619605dc67eaf0591 Mon Sep 17 00:00:00 2001
From: guowenxue <guowenxue@gmail.com>
Date: Wed, 21 Apr 2021 22:22:08 +0800
Subject: [PATCH] update infrared test.c

---
 modules/c/infrared.c |   62 +++++++++++++++++-------------
 1 files changed, 35 insertions(+), 27 deletions(-)

diff --git a/modules/c/infrared.c b/modules/c/infrared.c
index 25cd18a..868638d 100644
--- a/modules/c/infrared.c
+++ b/modules/c/infrared.c
@@ -9,7 +9,8 @@
  *
  *             PIN          #PIN        BCM           wPi 
  *           VCC(left) ----  2   ----   5v     ----   5v
- *            I/O(mid) ----  32  ----   12     ----   26
+ *         I/O(indoor) ----  16  ----   23     ----   4
+ *        I/O(hallway) ----  18  ----   24     ----   5
  *          GND(right) ----  34  ----   0v     ----   0v
  *
  *        Version:  1.0.0(30/01/19)
@@ -20,13 +21,17 @@
 
 #include <stdio.h>
 #include <unistd.h>
+#include <errno.h>
+#include <string.h>
 
+//#define CONFIG_USE_WIRINGPI
 
 #ifdef CONFIG_USE_WIRINGPI
 
 #include <wiringPi.h>
 
-#define INFRARED_PIN           26
+#define INFRARED_PIN           4
+//#define INFRARED_PIN           5
 
 int main (int argc, char **argv)
 {
@@ -39,7 +44,6 @@
         sleep(1);
     }
 
-
     return 0;
 }
 
@@ -47,7 +51,8 @@
 
 #include <gpiod.h>
 
-#define INFRARED_PIN           12
+#define INFRARED_PIN           23
+//#define INFRARED_PIN           24
 
 int main (int argc, char **argv)
 {
@@ -59,44 +64,47 @@
     chip = gpiod_chip_open_by_name("gpiochip0");
     if( !chip )
     {
-	printf("gpiod open chip failure, maybe you need running as root\n");
-	return 1;
+        printf("gpiod open chip failure, maybe you need running as root\n");
+        return 1;
     }
 
     line = gpiod_chip_get_line(chip, INFRARED_PIN);
     if( !line )
     {
-	printf("gpiod get line[%d] failure\n", INFRARED_PIN);
-	rv = 2;
-	goto cleanup;
+        printf("gpiod get line[%d] failure\n", INFRARED_PIN);
+        rv = 2;
+        goto cleanup;
     }
 
 
-    if( gpiod_line_request_rising_edge_events(line, "infrared") < 0 )
+    //if( gpiod_line_request_rising_edge_events(line, "infrared") < 0 )
+    if( gpiod_line_request_falling_edge_events(line, "infrared") < 0 )
     {
-	printf("gpiod request rising edge event failure\n");
-	rv = 3;
-	goto cleanup;
+        printf("gpiod request rising edge event failure: %s\n", strerror(errno));
+        rv = 3;
+        goto cleanup;
     }
 
     while(1)
     {
-	/* This function will block, must call it to setup */
+        /* This function will block, must call it to setup */
+        printf("Start gpiod_line_event_wait...\n");
         if( gpiod_line_event_wait(line, NULL) < 0 )
-	{
-	    printf("gpiod line wait event failure!\n");
-	}
-	
-	/* This function will block, must read to clear the event  */
-        if (gpiod_line_event_read(line, &event) < 0)
-	{
-	    printf("gpiod line wait event failure!\n");
-	}
+        {
+            printf("gpiod line wait event failure!\n");
+        }
 
-	if (event.event_type == GPIOD_LINE_EVENT_RISING_EDGE)
-	{
-	    printf("Infrared monitor: Someone is closing!\n");
-	}
+        /* This function will block, must read to clear the event  */
+        printf("Start gpiod_line_event_read...\n");
+        if (gpiod_line_event_read(line, &event) < 0)
+        {
+            printf("gpiod line wait event failure!\n");
+        }
+
+        if (event.event_type == GPIOD_LINE_EVENT_RISING_EDGE)
+        {
+            printf("Infrared monitor: Someone is closing!\n");
+        }
     }
 
 cleanup:

--
Gitblit v1.9.1