From 39c42b1d8352c7d96f0819fdd0e02b3964d75a7d Mon Sep 17 00:00:00 2001
From: guowenxue <guowenxue@gmail.com>
Date: Wed, 03 Nov 2021 22:45:22 +0800
Subject: [PATCH] update relay.c

---
 /dev/null         |   29 --------------
 modules/c/relay.c |   34 ++++++++---------
 2 files changed, 16 insertions(+), 47 deletions(-)

diff --git a/modules/c/relay.c b/modules/c/relay.c
index 3e360b7..f010c0f 100644
--- a/modules/c/relay.c
+++ b/modules/c/relay.c
@@ -14,11 +14,17 @@
 #include <stdio.h>
 #include <unistd.h>
 #include <libgen.h>
-
 #include <string.h>
 
-#include <wiringPi.h>
-#include "relay.h"
+#include <gpiod.h>
+
+#define ON              1
+#define OFF             0
+
+/* Relay    #Pin(29)    BCM(5) */
+#define relay_pin       5
+
+int turn_relay(int cmd);
 
 int main (int argc, char **argv)
 {
@@ -27,9 +33,6 @@
         printf("Usage: %s [on/off]\n", basename(argv[0]));
         return -1;
     }
-
-    wiringPiSetup();
-    relay_init();
 
     if( !strstr(argv[1], "on") || !strstr(argv[1], "on") )
     {
@@ -43,21 +46,16 @@
     return 0;
 }
 
-void relay_init(void)
+static void gpiod_ctxless_cb(void *data)
 {
-    pinMode(RELAY_PIN, OUTPUT);
+        sleep(3);
 }
 
-
-void turn_relay(int cmd)
+int turn_relay(int cmd)
 {
-    if( OFF == cmd )
-    {
-        digitalWrite ( RELAY_PIN, HIGH );
-    }
-    else
-    {
-        digitalWrite ( RELAY_PIN, LOW );
-    }
+        if( OFF == cmd )
+                gpiod_ctxless_set_value("gpiochip0", relay_pin, 0, false, "relay", gpiod_ctxless_cb, NULL);
+        else
+                gpiod_ctxless_set_value("gpiochip0", relay_pin, 1, false, "relay", gpiod_ctxless_cb, NULL);
 }
 
diff --git a/modules/c/relay.h b/modules/c/relay.h
deleted file mode 100644
index c2d238c..0000000
--- a/modules/c/relay.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/********************************************************************************
- *      Copyright:  (C) 2019 LingYun IoT System Studio
- *                  All rights reserved.
- *
- *       Filename:  relay.h
- *    Description:  This head file 
- *
- *        Version:  1.0.0(30/01/19)
- *         Author:  Guo Wenxue <guowenxue@gmail.com>
- *      ChangeLog:  1, Release initial version on "30/01/19 08:49:31"
- *                 
- ********************************************************************************/
-
-#ifndef  _RELAY_H_
-#define  _RELAY_H_
-
-#ifndef ON
-#define ON                  1
-#define OFF                 0
-#endif
-
-/* Moniter RPi I/O Pin connected to PIN#40, and wPi pin number is 29 */
-#define RELAY_PIN           29
-
-void relay_init(void);
-void turn_relay(int cmd);
-
-#endif   /* ----- #ifndef _RELAY_H_  ----- */
-

--
Gitblit v1.9.1