From b7fb7de4985736fea54cc0ea3f453aa0272efb89 Mon Sep 17 00:00:00 2001 From: Alex Volkmann Date: Fri, 22 Feb 2019 16:19:04 +0100 Subject: [PATCH] Update Readme file move java file --- README.md | 81 ++-- .../gpio_java.java => gpio_java.java | 409 +++++++++--------- 2 files changed, 259 insertions(+), 231 deletions(-) rename src/pdu_jctrl/gpio_java.java => gpio_java.java (93%) diff --git a/README.md b/README.md index 5fa1f9c..6812d48 100644 --- a/README.md +++ b/README.md @@ -1,27 +1,54 @@ -# Overview - -# Deployment - -use the following command to transfer project to raspberry pi: - -scp -r gpio pi@192.168.1.77:~ - - -# Regler - -Pin GPIO Regler -2 5v VCC -6 GND GND -8 GPIO 14 In1 -10 GPIO 15 In2 -12 GPIO 18 In3 -16 GPIO 23 In4 -18 GPIO 24 In5 -22 GPIO 25 In6 -24 GPIO 8 In7 -26 GPIO 7 In8 - - - - - +# Overview + +# Deployment +use the following command to transfer project to raspberry pi: +scp -r gpio pi@192.168.1.77:~ + +# usage +## switch relais on +``` +javadoc todo +``` +## switch relais off +``` +javadoc todo +``` +## read status of relais +``` +javadoc todo +``` + +## Create Dokumentation +``` +javadoc todo +``` + + +# Requirements +## HW +* Raspberry PI + +## Software +* raspberian url: + +# Verbindung zwischen Raspberry Pi und Relais Box +Pin GPIO Relais/Box +* 2 5v VCC +* 6 GND GND +* 8 GPIO 14 In1 +* 10 GPIO 15 In2 +* 12 GPIO 18 In3 +* 16 GPIO 23 In4 +* 18 GPIO 24 In5 +* 22 GPIO 25 In6 +* 24 GPIO 8 In7 +* 26 GPIO 7 In8 + +# ToDo +* Status Abfrage implementieren +* Javadok Kommentare hinzufügen, Dokumentation generieren und anschauen +* Test Durchführen und logfile erzeugen + + + + diff --git a/src/pdu_jctrl/gpio_java.java b/gpio_java.java similarity index 93% rename from src/pdu_jctrl/gpio_java.java rename to gpio_java.java index f62272d..0dd4220 100644 --- a/src/pdu_jctrl/gpio_java.java +++ b/gpio_java.java @@ -1,204 +1,205 @@ - //package pdu_jctrl; - -import java.io.IOException; -import java.util.Arrays; -import java.util.concurrent.TimeUnit; - -public class gpio_java -{ - public static String rel_map [][] = { - {"rel1","14"}, - {"rel2","15"}, - {"rel3","18"}, - {"rel4","23"}, - {"rel5","24"}, - {"rel6","25"}, - {"rel7","8"}, - {"rel8","7"} - }; - public static String [] action = {"on", "off", "status"}; - - public static void main (String [] args) - { - // Zum checken der Anzahl der Argumente - checkargs(args); - - // todo: initialisiere alle acht ports (outputs) - init_gpio(); - - // setze gpio (gemaes der parameter) - gpio_getport(args[0]); - - - gpio_cmdhandler(args[0], args[1]); - - /* - setgpio(true); - - try { - TimeUnit.SECONDS.sleep(1); - } - catch(InterruptedException e) - { - System.out.println("sleep error InterruptedException ocure"); - } - - setgpio(false); - */ - } - - public static void checkargs(String[] argumens) - { - int laenge = argumens.length; - String [] h = {"-h"}; - int idx; - boolean parameter1 = false; - boolean parameter2 = false; - - - if (laenge == 2) - { - //ToDO: Pruefe erstes und zweites Argument - //Erstes Element(rel) - for (idx = 0; idx<8 ; idx++) - { - if (argumens[0].equals(rel_map[idx][0])) - { - parameter1 = true; - break; - } - } - //Zweites Element (action) - for (idx = 0; idx<3 ; idx++) - { - if (argumens[1].equals(action[idx])) - { - parameter2 = true; - break; - } - } - - } - else if (Arrays.equals (argumens, h) == true) - { - - show_usage(); - - System.exit(0); - } - else - { - System.out.println("Error. If you need help, type the command -h"); - - System.exit(0); - } - //ToDo: Return - - } - - public static void init_gpio() - { - int idx; - String port; - String cmd; - - for(idx = 0; idx<8 ; idx++) - { - port = rel_map[idx][1]; - cmd = "/usr/bin/gpio -g mode " + port + " out"; - launchcmd(cmd); - - } - return; - } - - public static int gpio_getport(String port) - { - int idx; - - for(idx = 0; idx<8 ; idx++) - { - if(port.equals(rel_map[idx][0])) - { - return idx; - } - } - - return -1; - } - - public static int gpio_cmdhandler(String port, String cmd) - { - int idx_port; - - idx_port = gpio_getport(port); - - - if (cmd.equals(action [0])) - { - //Schalte on - cmd = "/usr/bin/gpio -g write " + rel_map[idx_port][1] + " 1"; - launchcmd(cmd); - - } - if (cmd.equals(action [1])) - { - //Schalte off - cmd = "/usr/bin/gpio -g write " + rel_map[idx_port][1] + " 0"; - launchcmd(cmd); - } - /*if (cmd.equals(action [2])) - { - //Stats geben - cmd = "/usr/bin/gpio -g write " + port + status(); - launchcmd(cmd); - }*/ - return -1; - } - - public static void show_usage() - { - System.out.println("You have to enter exactly 2 arguments."); - System.out.println("Example: java gpio_java Argument1 Argument2"); - System.out.println("Argument1: rel1, rel2, rel3, ..., rel8"); - System.out.println("Argument2: on,off or status"); - } - - public static void launchcmd(String cmd) - { - // Wenn Simulation True ist kann sie auf dem PC ausfuehren - // wenn die Simulation false is auf dem Raspberry PI - boolean simulation = false; - - if(simulation==true){ - System.out.println(cmd); - } - else { - try{ - Runtime.getRuntime().exec(cmd); - } - catch(IOException e) - { - System.out.println("process error IOException"); - } - } - } - - - public static void setgpio(boolean status) - { - launchcmd("/usr/bin/gpio -g mode 14 out"); - - if(status == true) - { - launchcmd("/usr/bin/gpio -g write 14 1"); - } - else - { - launchcmd("/usr/bin/gpio -g write 14 0"); - } - } - - -} - +import java.io.IOException; +import java.util.Arrays; +import java.util.concurrent.TimeUnit; + + +// todo: add Dokumentation +public class gpio_java +{ + public static String rel_map [][] = { + {"rel1","14"}, + {"rel2","15"}, + {"rel3","18"}, + {"rel4","23"}, + {"rel5","24"}, + {"rel6","25"}, + {"rel7","8"}, + {"rel8","7"} + }; + public static String [] action = {"on", "off", "status"}; + + public static void main (String [] args) + { + // Zum checken der Anzahl der Argumente + checkargs(args); + + // todo: initialisiere alle acht ports (outputs) + init_gpio(); + + // setze gpio (gemaes der parameter) + gpio_getport(args[0]); + + + gpio_cmdhandler(args[0], args[1]); + + // todo: remove following not used code + /* + setgpio(true); + + try { + TimeUnit.SECONDS.sleep(1); + } + catch(InterruptedException e) + { + System.out.println("sleep error InterruptedException ocure"); + } + + setgpio(false); + */ + } + + public static void checkargs(String[] argumens) + { + int laenge = argumens.length; + String [] h = {"-h"}; + int idx; + boolean parameter1 = false; + boolean parameter2 = false; + + + if (laenge == 2) + { + //ToDO: Pruefe erstes und zweites Argument + //Erstes Element(rel) + for (idx = 0; idx<8 ; idx++) + { + if (argumens[0].equals(rel_map[idx][0])) + { + parameter1 = true; + break; + } + } + //Zweites Element (action) + for (idx = 0; idx<3 ; idx++) + { + if (argumens[1].equals(action[idx])) + { + parameter2 = true; + break; + } + } + + } + else if (Arrays.equals (argumens, h) == true) + { + + show_usage(); + + System.exit(0); + } + else + { + System.out.println("Error. If you need help, type the command -h"); + + System.exit(0); + } + //ToDo: Return + + } + + public static void init_gpio() + { + int idx; + String port; + String cmd; + + for(idx = 0; idx<8 ; idx++) + { + port = rel_map[idx][1]; + cmd = "/usr/bin/gpio -g mode " + port + " out"; + launchcmd(cmd); + + } + return; + } + + public static int gpio_getport(String port) + { + int idx; + + for(idx = 0; idx<8 ; idx++) + { + if(port.equals(rel_map[idx][0])) + { + return idx; + } + } + + return -1; + } + + public static int gpio_cmdhandler(String port, String cmd) + { + int idx_port; + + idx_port = gpio_getport(port); + + + if (cmd.equals(action [0])) + { + //Schalte on + cmd = "/usr/bin/gpio -g write " + rel_map[idx_port][1] + " 1"; + launchcmd(cmd); + + } + if (cmd.equals(action [1])) + { + //Schalte off + cmd = "/usr/bin/gpio -g write " + rel_map[idx_port][1] + " 0"; + launchcmd(cmd); + } + /*if (cmd.equals(action [2])) + { + //Stats geben + cmd = "/usr/bin/gpio -g write " + port + status(); + launchcmd(cmd); + }*/ + return -1; + } + + public static void show_usage() + { + System.out.println("You have to enter exactly 2 arguments."); + System.out.println("Example: java gpio_java Argument1 Argument2"); + System.out.println("Argument1: rel1, rel2, rel3, ..., rel8"); + System.out.println("Argument2: on,off or status"); + } + + public static void launchcmd(String cmd) + { + // Wenn Simulation True ist kann sie auf dem PC ausfuehren + // wenn die Simulation false is auf dem Raspberry PI + boolean simulation = false; + + if(simulation==true){ + System.out.println(cmd); + } + else { + try{ + Runtime.getRuntime().exec(cmd); + } + catch(IOException e) + { + System.out.println("process error IOException"); + } + } + } + + + public static void setgpio(boolean status) + { + launchcmd("/usr/bin/gpio -g mode 14 out"); + + if(status == true) + { + launchcmd("/usr/bin/gpio -g write 14 1"); + } + else + { + launchcmd("/usr/bin/gpio -g write 14 0"); + } + } + + +} +