From f7e4ee68d6fac3451d7085cf6c0abddc2f0ec29e Mon Sep 17 00:00:00 2001 From: rdkartono Date: Thu, 14 Nov 2024 10:49:50 +0700 Subject: [PATCH] GPIO control. Bug fix. --- src/main/java/SBC/GPIO.java | 5 ++++- src/main/java/Web/WebServer.java | 2 ++ src/main/java/id/co/gtc/Main.java | 16 ++++++++++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/main/java/SBC/GPIO.java b/src/main/java/SBC/GPIO.java index 62c8b7f..703adf8 100644 --- a/src/main/java/SBC/GPIO.java +++ b/src/main/java/SBC/GPIO.java @@ -79,6 +79,7 @@ public class GPIO { * @param pin GPIO pin number * @return "in" if the pin is input, "out" if the pin is output, "unknown" if the direction is unknown */ + @SuppressWarnings("unused") public static String GetPinDirection(@NotNull RaspberryPi5BPins pin){ Path pinPath = gpioPath.resolve("gpio"+pin.gpionumber).resolve("direction"); if (pinPath.toFile().isFile()){ @@ -124,13 +125,14 @@ public class GPIO { * @param isON true to set the pin value to 1, false to set the pin value to 0 * @return true if the value is successfully set */ + @SuppressWarnings("UnusedReturnValue") public static boolean SetValue(@NotNull RaspberryPi5BPins pin, boolean isON){ Path pinPath = gpioPath.resolve("gpio"+pin.gpionumber).resolve("value"); if (pinPath.toFile().isFile()){ if (Files.isWritable(pinPath)){ try{ Files.write(pinPath, isON?"1".getBytes():"0".getBytes()); - Logger.info("Pin "+pin.pin+" value set to "+(isON?"1":"0")); + //Logger.info("Pin "+pin.pin+" value set to "+(isON?"1":"0")); return true; } catch (Exception e){ Logger.error("Failed to set pin value: "+pin.pin+", Message: "+e.getMessage()); @@ -145,6 +147,7 @@ public class GPIO { * @param pin GPIO pin number * @return "1" if the pin value is 1, "0" if the pin value is 0, "unknown" if the value is unknown */ + @SuppressWarnings("unused") public static String GetValue(@NotNull RaspberryPi5BPins pin){ Path pinPath = gpioPath.resolve("gpio"+pin.gpionumber).resolve("value"); if (pinPath.toFile().isFile()){ diff --git a/src/main/java/Web/WebServer.java b/src/main/java/Web/WebServer.java index f4f9306..0a6b21f 100644 --- a/src/main/java/Web/WebServer.java +++ b/src/main/java/Web/WebServer.java @@ -212,9 +212,11 @@ public class WebServer { socketConfig = new Configuration(); socketConfig.setHostname("0.0.0.0"); socketConfig.setPort(3001); + socketServer = new SocketIOServer(socketConfig); socketServer.addConnectListener(connectListener); socketServer.addDisconnectListener(disconnectListener); + socketServer.addNamespace("/socketio").addEventListener("message", String.class, (client, data, ackSender) -> { //Logger.info("SocketIO message from namespace /socketio from {}: {}", client.getRemoteAddress(), data); WebsocketCommand command = gson.fromJson(data, WebsocketCommand.class); diff --git a/src/main/java/id/co/gtc/Main.java b/src/main/java/id/co/gtc/Main.java index 909b13d..1d2b5b7 100644 --- a/src/main/java/id/co/gtc/Main.java +++ b/src/main/java/id/co/gtc/Main.java @@ -55,6 +55,22 @@ public class Main { if (vapixProtocol!=null) vapixProtocol.Close(); if (timer!=null) timer.cancel(); if (gpioExecutor!=null) gpioExecutor.shutdown(); + if (AmplifierPower!=null) { + Logger.info("GPIO pin {} unexport : {}",AmplifierPower.pin, GPIO.UnexportPin(AmplifierPower)); + } + if (LedWeb!=null) { + Logger.info("GPIO pin {} unexport : {}", LedWeb.pin,GPIO.UnexportPin(LedWeb)); + } + if (LedIpCamera!=null) { + Logger.info("GPIO pin {} unexport : {}", LedIpCamera.pin, GPIO.UnexportPin(LedIpCamera)); + } + if (LedPanTilt!=null) { + Logger.info("GPIO pin {} unexport : {}", LedPanTilt.pin,GPIO.UnexportPin(LedPanTilt)); + } + if (Max485Direction!=null) { + Logger.info("GPIO pin {} unexport : {}", Max485Direction.pin, GPIO.UnexportPin(Max485Direction)); + } + })); init_gpio();