From 7c39b2a57331d6b6bca45445f9260d5d1a12e619 Mon Sep 17 00:00:00 2001 From: Julien Lengrand-Lambert Date: Tue, 17 Dec 2019 08:28:26 +0100 Subject: [PATCH] App running on Pi --- .idea/deployment.xml | 3 +- .idea/uiDesigner.xml | 124 ++++++++++++++++++ cellar-app/pom.xml | 5 - ...pplication.java => CellarApplication.java} | 7 +- .../main/java/nl/lengrand/CellarProvider.java | 9 +- .../main/java/nl/lengrand/CellarResource.java | 7 +- .../main/java/nl/lengrand/SensorValue.java | 37 ++++++ .../main/java/nl/lengrand/SensorValues.java | 4 - cellar-driver/pom.xml | 4 +- cellar-driver/src/main/c/Dht11Driver.c | 6 +- cellar-driver/src/main/c/Makefile | 2 +- cellar-driver/src/main/c/README.md | 7 +- .../{ => nl/lengrand/cellar}/Dht11Driver.java | 2 + .../{ => nl/lengrand/cellar}/TestLib.java | 4 + pom.xml | 2 +- 15 files changed, 193 insertions(+), 30 deletions(-) create mode 100644 .idea/uiDesigner.xml rename cellar-app/src/main/java/nl/lengrand/{GreetApplication.java => CellarApplication.java} (84%) create mode 100644 cellar-app/src/main/java/nl/lengrand/SensorValue.java delete mode 100644 cellar-app/src/main/java/nl/lengrand/SensorValues.java rename cellar-driver/src/main/java/{ => nl/lengrand/cellar}/Dht11Driver.java (85%) rename cellar-driver/src/main/java/{ => nl/lengrand/cellar}/TestLib.java (90%) diff --git a/.idea/deployment.xml b/.idea/deployment.xml index 3d70580..789a642 100644 --- a/.idea/deployment.xml +++ b/.idea/deployment.xml @@ -1,6 +1,6 @@ - + @@ -11,5 +11,6 @@ + \ No newline at end of file diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000..e96534f --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/cellar-app/pom.xml b/cellar-app/pom.xml index 10db715..33515fe 100644 --- a/cellar-app/pom.xml +++ b/cellar-app/pom.xml @@ -36,11 +36,6 @@ - - nl.lengrand - cellar-driver - 1.0-SNAPSHOT - io.helidon.microprofile.bundles helidon-microprofile diff --git a/cellar-app/src/main/java/nl/lengrand/GreetApplication.java b/cellar-app/src/main/java/nl/lengrand/CellarApplication.java similarity index 84% rename from cellar-app/src/main/java/nl/lengrand/GreetApplication.java rename to cellar-app/src/main/java/nl/lengrand/CellarApplication.java index b5d5400..f21aefd 100644 --- a/cellar-app/src/main/java/nl/lengrand/GreetApplication.java +++ b/cellar-app/src/main/java/nl/lengrand/CellarApplication.java @@ -24,15 +24,12 @@ import javax.ws.rs.core.Application; import io.helidon.common.CollectionsHelper; -/** - * Simple Application that produces a greeting message. - */ @ApplicationScoped @ApplicationPath("/") -public class GreetApplication extends Application { +public class CellarApplication extends Application { @Override public Set> getClasses() { - return CollectionsHelper.setOf(GreetResource.class); + return CollectionsHelper.setOf(GreetResource.class, CellarResource.class); } } diff --git a/cellar-app/src/main/java/nl/lengrand/CellarProvider.java b/cellar-app/src/main/java/nl/lengrand/CellarProvider.java index 9d7b7f0..d9c3b6b 100644 --- a/cellar-app/src/main/java/nl/lengrand/CellarProvider.java +++ b/cellar-app/src/main/java/nl/lengrand/CellarProvider.java @@ -1,11 +1,16 @@ package nl.lengrand; +import nl.lengrand.cellar.Dht11Driver; + import javax.enterprise.context.ApplicationScoped; @ApplicationScoped public class CellarProvider { - public SensorValues getSensorValues(){ - return null; + private Dht11Driver driver = new Dht11Driver(); + + public SensorValue getSensorValues(){ + float[] values = driver.getTemperatureAndHumidity(); + return new SensorValue(values); } } diff --git a/cellar-app/src/main/java/nl/lengrand/CellarResource.java b/cellar-app/src/main/java/nl/lengrand/CellarResource.java index 2ea43bb..a8b36b0 100644 --- a/cellar-app/src/main/java/nl/lengrand/CellarResource.java +++ b/cellar-app/src/main/java/nl/lengrand/CellarResource.java @@ -30,10 +30,11 @@ public class CellarResource { return createResponse(cellarProvider.getSensorValues()); } - private JsonObject createResponse(SensorValues values) { + private JsonObject createResponse(SensorValue value) { return JSON.createObjectBuilder() - .add("test", "test") + .add("temperature", value.getTemperature()) + .add("humidity", value.getHumidity()) + .add("reading", value.getReading().toString()) .build(); } - } diff --git a/cellar-app/src/main/java/nl/lengrand/SensorValue.java b/cellar-app/src/main/java/nl/lengrand/SensorValue.java new file mode 100644 index 0000000..7bc22fb --- /dev/null +++ b/cellar-app/src/main/java/nl/lengrand/SensorValue.java @@ -0,0 +1,37 @@ +package nl.lengrand; + +public class SensorValue { + + public enum READING{ + OK, ERROR + } + + private READING reading; + private float temperature; + private float humidity; + + public SensorValue(float[] values){ + if(values[0] == 0 && values[1] == 0){ + this.reading = READING.ERROR; + this.temperature = 0; + this.humidity = 0; + } + else{ + this.reading = READING.OK; + this.temperature = values[0]; + this.humidity = values[1]; + } + } + + public READING getReading() { + return reading; + } + + public float getTemperature() { + return temperature; + } + + public float getHumidity() { + return humidity; + } +} diff --git a/cellar-app/src/main/java/nl/lengrand/SensorValues.java b/cellar-app/src/main/java/nl/lengrand/SensorValues.java deleted file mode 100644 index aaccc54..0000000 --- a/cellar-app/src/main/java/nl/lengrand/SensorValues.java +++ /dev/null @@ -1,4 +0,0 @@ -package nl.lengrand; - -public class SensorValues { -} diff --git a/cellar-driver/pom.xml b/cellar-driver/pom.xml index 04df2a7..38e0df4 100644 --- a/cellar-driver/pom.xml +++ b/cellar-driver/pom.xml @@ -19,7 +19,7 @@ -h - target/headers + ${project.basedir}/target/headers @@ -45,7 +45,7 @@ - TestLib + nl.lengrand.cellar.TestLib diff --git a/cellar-driver/src/main/c/Dht11Driver.c b/cellar-driver/src/main/c/Dht11Driver.c index 77d5808..6c12a86 100644 --- a/cellar-driver/src/main/c/Dht11Driver.c +++ b/cellar-driver/src/main/c/Dht11Driver.c @@ -3,15 +3,15 @@ #include #include #include -#include "../java/Dht11Driver.h" +#include "../../../target/headers/nl_lengrand_cellar_Dht11Driver.h" #include "adafruit/Raspberry_Pi_2/pi_2_dht_read.h" -JNIEXPORT void JNICALL Java_Dht11Driver_sayHello(JNIEnv *env, jobject thisObj) { +JNIEXPORT void JNICALL Java_nl_lengrand_cellar_Dht11Driver_sayHello(JNIEnv *env, jobject thisObj) { printf("Hello JNI!\n"); return; } -JNIEXPORT jfloatArray JNICALL Java_Dht11Driver_getTemperatureAndHumidity(JNIEnv *env, jobject thisObj){ +JNIEXPORT jfloatArray JNICALL Java_nl_lengrand_cellar_Dht11Driver_getTemperatureAndHumidity(JNIEnv *env, jobject thisObj){ float humidity = 0, temperature = 0; int sensor = 11; // Make those dynamic one day? int pin = 4; // Make those dynamic one day? diff --git a/cellar-driver/src/main/c/Makefile b/cellar-driver/src/main/c/Makefile index d893d48..5cebfd8 100644 --- a/cellar-driver/src/main/c/Makefile +++ b/cellar-driver/src/main/c/Makefile @@ -1,6 +1,6 @@ JAVA_HOME=/usr/lib/jvm/java-11-openjdk-armhf INCLUDES = -I. -I../java -Iadafruit/Raspberry_Pi_2 -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux -HEADERS = ../../target/headers/Dht11Driver.h adafruit/common_dht_read.h adafruit/Raspberry_Pi_2/pi_2_mmio.h adafruit/Raspberry_Pi_2/pi_2_dht_read.h +HEADERS = ../../../target/headers/nl_lengrand_cellar_Dht11Driver.h adafruit/common_dht_read.h adafruit/Raspberry_Pi_2/pi_2_mmio.h adafruit/Raspberry_Pi_2/pi_2_dht_read.h FILES = adafruit/common_dht_read.c adafruit/Raspberry_Pi_2/pi_2_mmio.c adafruit/Raspberry_Pi_2/pi_2_dht_read.c Dht11Driver.c OUT = libdht11 diff --git a/cellar-driver/src/main/c/README.md b/cellar-driver/src/main/c/README.md index debb35f..8f5bd34 100644 --- a/cellar-driver/src/main/c/README.md +++ b/cellar-driver/src/main/c/README.md @@ -2,8 +2,9 @@ The code contained in the adafruit folder comes from https://github.com/adafruit To run right now : -* Create h file from Java folder : javac -h . Dht11Driver.java +* Create h file from Java folder : javac -h . nl.lengrand.cellar.Dht11Driver.java * Make (check converted to tabs) * cp .so file in java folder -* pi@raspberrypi:~/projects/cellar/cellar-driver/src/main/java $ javac Dht11Driver.java TestLib.java -* pi@raspberrypi:~/projects/cellar/cellar-driver/src/main/java $ java -Djava.library.path=. TestLib \ No newline at end of file +* pi@raspberrypi:~/projects/cellar/cellar-driver/src/main/java $ javac nl.lengrand.cellar.Dht11Driver.java nl.lengrand.cellar.TestLib.java +* pi@raspberrypi:~/projects/cellar/cellar-driver/src/main/java $ java -Djava.library.path=. nl.lengrand.cellar.TestLib +* java -Djava.library.path=../src/main/c -jar cellar-driver-1.0-SNAPSHOT-jar-with-dependencies.jar \ No newline at end of file diff --git a/cellar-driver/src/main/java/Dht11Driver.java b/cellar-driver/src/main/java/nl/lengrand/cellar/Dht11Driver.java similarity index 85% rename from cellar-driver/src/main/java/Dht11Driver.java rename to cellar-driver/src/main/java/nl/lengrand/cellar/Dht11Driver.java index dd4d38f..8257f8f 100644 --- a/cellar-driver/src/main/java/Dht11Driver.java +++ b/cellar-driver/src/main/java/nl/lengrand/cellar/Dht11Driver.java @@ -1,3 +1,5 @@ +package nl.lengrand.cellar; + public class Dht11Driver { static { diff --git a/cellar-driver/src/main/java/TestLib.java b/cellar-driver/src/main/java/nl/lengrand/cellar/TestLib.java similarity index 90% rename from cellar-driver/src/main/java/TestLib.java rename to cellar-driver/src/main/java/nl/lengrand/cellar/TestLib.java index ba3e810..74d854b 100644 --- a/cellar-driver/src/main/java/TestLib.java +++ b/cellar-driver/src/main/java/nl/lengrand/cellar/TestLib.java @@ -1,3 +1,7 @@ +package nl.lengrand.cellar; + +import nl.lengrand.cellar.Dht11Driver; + import java.util.concurrent.ExecutionException; public class TestLib { diff --git a/pom.xml b/pom.xml index 949d1c5..4f9988b 100644 --- a/pom.xml +++ b/pom.xml @@ -15,8 +15,8 @@ - cellar-app cellar-driver + cellar-app