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