From e2bde1fecb6771dbf00ba5697a5f63fa108567ad Mon Sep 17 00:00:00 2001 From: helori_ollivier Date: Mon, 5 Jan 2026 21:53:27 +0100 Subject: [PATCH] added getBattery() + setFeedback() --- .../dualsensgui/DualsensController.java | 58 +++++++++++++++++++ .../dualsensgui/DualsensguiApplication.java | 14 ++++- .../java/bzh/risotto/dualsensgui/Trigger.java | 25 ++++++++ .../DualsensguiApplicationTests.java | 13 ----- 4 files changed, 95 insertions(+), 15 deletions(-) create mode 100644 src/main/java/bzh/risotto/dualsensgui/DualsensController.java create mode 100644 src/main/java/bzh/risotto/dualsensgui/Trigger.java delete mode 100644 src/test/java/bzh/risotto/dualsensgui/DualsensguiApplicationTests.java diff --git a/src/main/java/bzh/risotto/dualsensgui/DualsensController.java b/src/main/java/bzh/risotto/dualsensgui/DualsensController.java new file mode 100644 index 0000000..4d73cbf --- /dev/null +++ b/src/main/java/bzh/risotto/dualsensgui/DualsensController.java @@ -0,0 +1,58 @@ +package bzh.risotto.dualsensgui; + +import java.io.BufferedReader; +import java.io.InputStreamReader; + +public class DualsensController { + + private static DualsensController dualsensController; + + private DualsensController() { + + } + + public int getBattery() { + String res = run("battery"); + + String value = res.split(" ")[0]; + return Integer.parseInt(value); + } + + public void setFeedback(Trigger trigger, int position, int strength) { + run("trigger " + trigger + " feedback " + position + " " + strength); + } + + private String run(String command) { + + StringBuilder res = new StringBuilder(); + + command = "dualsensectl " + command; + String[] commandParts = command.split(" "); + try { + ProcessBuilder processBuilder = new ProcessBuilder(commandParts); + processBuilder.redirectErrorStream(true); + Process process = processBuilder.start(); + + BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); + String line; + while ((line = reader.readLine()) != null) { + res.append(line); + } + process.waitFor(); + } catch (Exception e) { + + e.printStackTrace(); + } + + return res.toString(); + } + + public static DualsensController getController() { + + if (dualsensController == null) { + dualsensController = new DualsensController(); + } + + return dualsensController; + } +} diff --git a/src/main/java/bzh/risotto/dualsensgui/DualsensguiApplication.java b/src/main/java/bzh/risotto/dualsensgui/DualsensguiApplication.java index 29aa15f..5f7ccea 100644 --- a/src/main/java/bzh/risotto/dualsensgui/DualsensguiApplication.java +++ b/src/main/java/bzh/risotto/dualsensgui/DualsensguiApplication.java @@ -1,13 +1,23 @@ -package main.java.bzh.risotto.dualsensgui; +package bzh.risotto.dualsensgui; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import java.io.BufferedReader; +import java.io.InputStreamReader; + @SpringBootApplication public class DualsensguiApplication { public static void main(String[] args) { - SpringApplication.run(DualsensguiApplication.class, args); + + DualsensController controller = DualsensController.getController(); + int battery = controller.getBattery(); + System.out.println(battery); + + controller.setFeedback(Trigger.LEFT, 1, 1); + + //SpringApplication.run(DualsensguiApplication.class, args); } } diff --git a/src/main/java/bzh/risotto/dualsensgui/Trigger.java b/src/main/java/bzh/risotto/dualsensgui/Trigger.java new file mode 100644 index 0000000..b52ab5d --- /dev/null +++ b/src/main/java/bzh/risotto/dualsensgui/Trigger.java @@ -0,0 +1,25 @@ +package bzh.risotto.dualsensgui; + +public enum Trigger { + LEFT { + @Override + public String toString(){ + return "left"; + } + }, + + RIGHT { + @Override + public String toString(){ + return "right"; + } + }, + BOTH { + @Override + public String toString(){ + return "both"; + } + } + + +} diff --git a/src/test/java/bzh/risotto/dualsensgui/DualsensguiApplicationTests.java b/src/test/java/bzh/risotto/dualsensgui/DualsensguiApplicationTests.java deleted file mode 100644 index 100a42e..0000000 --- a/src/test/java/bzh/risotto/dualsensgui/DualsensguiApplicationTests.java +++ /dev/null @@ -1,13 +0,0 @@ -package test.java.bzh.risotto.dualsensgui; - -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -@SpringBootTest -class DualsensguiApplicationTests { - - @Test - void contextLoads() { - } - -}