+ *
Supported modes | + *|||
---|---|---|---|
Mode name | + *Description | + *unit(s) | + *Getter | + *
Magnetic | + *Measures the strength of the magnetic field over three axes | + *+ * | {getMagneticMode() } | + *
Compass | + *Measures the orientation of the sensor | + *Degrees, corresponding to the compass rose | + *{getCompassMode() } | + *
Angle | + *Measures the orientation of the sensor | + *Degrees, corresponding to the right hand coordinate system | + *{getAngleMode() } | + *
Acceleration | + *The Acceleration mode measures the linear acceleration of the sensor over + * three axes | + *Metres/second^2 | + *{getAccelerationMode() } | + *
Rate | + *The Rate mode measures the angular speed of the sensor over three axes | + *Degrees/second | + *{getRateMode() } | + *
+ *
+ * Sensor configuration
+ * The gyro sensor of the AbsoluteIMU uses a filter to remove noise from
+ * the samples. The filter can be configured using the {setGyroFilter }
+ * method.
+ * The compass sensor of the AbsoluteIMU can be calibrated to compensate for magnetical disturbances on the robot (soft iron
+ * calibration) using the {#startCalibration} and {stopCalibration}
+ * methods.
+ * To calibrate Compass, mount it on your robot where it will be used and + * issue startCalibration method and then rotate AbsoluteIMU slowly along all + * three axes. (The Compass in AbsoluteIMU is a 3 axis compass, and hence + * needs to be turned along all three axes, and if it's mounted on your robot, + * the whole robot needs to rotate). Rotate one axis at a time, turn once in + * clock-wise direction completing at-least 360 degrees, and then turn it in + * anti-clock-wise direction, then go to next axis. Upon finishing turning + * along all axes, issue stopCalibration method. + * + * + *
+ * + * See Mindsensors IMU user guide"> Sensor Product page + * See The + * leJOS sensor framework + * See {@link SampleProvider leJOS conventions for + * SampleProviders} + * + *
+ *
+ *
+ * @author Andy, Juan Antonio Breña Moral
+ *
+ */
+public class AbsoluteIMUTiltTest {
+
+ private static int HALF_SECOND = 500;
+
+ public static void main(String[] args) {
+
+ System.out.println("Absolute IMU Demo");
+
+ final AbsoluteIMU absoluteIMU = new AbsoluteIMU(SensorPort.S1);
+ SampleProvider sp = absoluteIMU.getTiltMode();
+
+ int sampleSize = sp.sampleSize();
+ System.out.println("Sample Size:" + sampleSize);
+ float[] sample = new float[sampleSize];
+
+ // Takes some samples and prints them
+ for (int i = 0; i < 10; i++) {
+ sp.fetchSample(sample, 0);
+
+ System.out.println("N={} Sample={}" + i + " " + sample[0]);
+ System.out.println("N={} Sample={}" + i + " " + sample[1]);
+ System.out.println("N={} Sample={}" + i + " " + sample[2]);
+
+ Delay.msDelay(HALF_SECOND);
+
+ }
+
+
+ }
+
+}
diff --git a/ev3dev-lang-java/src/main/java/ev3dev/sensors/mindsensors/CreatePhotoDemo.java b/ev3dev-lang-java/src/main/java/ev3dev/sensors/mindsensors/CreatePhotoDemo.java
new file mode 100644
index 0000000..ae9ed15
--- /dev/null
+++ b/ev3dev-lang-java/src/main/java/ev3dev/sensors/mindsensors/CreatePhotoDemo.java
@@ -0,0 +1,38 @@
+package examples.sensors.mindsensors;
+
+
+import ev3dev.actuators.Sound;
+import ev3dev.sensors.mindsensors.NXTCamV5;
+import lejos.hardware.port.SensorPort;
+import lejos.utility.Delay;
+
+/**
+ * Created by jabrena on 30/7/17.
+ */
+public class CreatePhotoDemo {
+
+ public static void main(String[] args){
+
+ System.out.println("NXTCamV5 create Photo Demo");
+
+ final NXTCamV5 camera = new NXTCamV5(SensorPort.S1);
+
+ int counter = 0;
+ boolean flag = true;
+ while (flag) {
+
+ Delay.msDelay(5000);
+ System.out.println("Creating photo");
+ camera.createPhoto();
+ Sound.getInstance().beep();
+ Delay.msDelay(500);
+
+ counter++;
+ if(counter > 5){
+ break;
+ }
+ }
+
+ System.exit(0);
+ }
+}
diff --git a/ev3dev-lang-java/src/main/java/ev3dev/sensors/mindsensors/CreatePhotoEV3Demo.java b/ev3dev-lang-java/src/main/java/ev3dev/sensors/mindsensors/CreatePhotoEV3Demo.java
new file mode 100644
index 0000000..5d11d52
--- /dev/null
+++ b/ev3dev-lang-java/src/main/java/ev3dev/sensors/mindsensors/CreatePhotoEV3Demo.java
@@ -0,0 +1,34 @@
+package examples.sensors.mindsensors;
+
+
+import ev3dev.actuators.Sound;
+import ev3dev.sensors.Button;
+import ev3dev.sensors.mindsensors.NXTCamV5;
+import lejos.hardware.port.SensorPort;
+import lejos.utility.Delay;
+
+/**
+ * Created by jabrena on 30/7/17.
+ */
+public class CreatePhotoEV3Demo {
+
+ public static void main(String[] args){
+
+ System.out.println("NXTCamV5 create Photo Demo");
+
+ final NXTCamV5 camera = new NXTCamV5(SensorPort.S1);
+
+ while (Button.ESCAPE.isUp()) {
+
+ Button.waitForAnyPress();
+ Delay.msDelay(5000);
+ System.out.println("Creating photo");
+ camera.createPhoto();
+ Sound.getInstance().beep();
+ Delay.msDelay(500);
+
+ }
+
+ System.exit(0);
+ }
+}
diff --git a/ev3dev-lang-java/src/main/java/ev3dev/sensors/mindsensors/FaceRecognitionDemo.java b/ev3dev-lang-java/src/main/java/ev3dev/sensors/mindsensors/FaceRecognitionDemo.java
new file mode 100644
index 0000000..8244ae5
--- /dev/null
+++ b/ev3dev-lang-java/src/main/java/ev3dev/sensors/mindsensors/FaceRecognitionDemo.java
@@ -0,0 +1,34 @@
+package examples.sensors.mindsensors;
+
+import ev3dev.actuators.Sound;
+import ev3dev.sensors.mindsensors.NXTCamV5;
+import lejos.hardware.port.SensorPort;
+import lejos.utility.Delay;
+
+/**
+ * Created by jabrena on 30/7/17.
+ */
+public class FaceRecognitionDemo {
+
+ public static void main(String[] args){
+
+ System.out.println("NXTCamV5 Face Recognition Demo");
+
+ final NXTCamV5 camera = new NXTCamV5(SensorPort.S1);
+ camera.setTrackingMode(NXTCamV5.FACE_TRACKING);
+
+ for(int x = 0; x <= 100; x++){
+ System.out.println("Iteration: " + x);
+
+ int trackedObject = camera.getNumberOfObjects();
+ System.out.println(trackedObject);
+
+ if(trackedObject > 0) {
+ Sound.getInstance().beep();
+ }
+
+ Delay.msDelay(1000);
+ }
+
+ }
+}
diff --git a/ev3dev-lang-java/src/main/java/ev3dev/sensors/mindsensors/FaceRecognitionDemo2.java b/ev3dev-lang-java/src/main/java/ev3dev/sensors/mindsensors/FaceRecognitionDemo2.java
new file mode 100644
index 0000000..6a6cba0
--- /dev/null
+++ b/ev3dev-lang-java/src/main/java/ev3dev/sensors/mindsensors/FaceRecognitionDemo2.java
@@ -0,0 +1,47 @@
+package examples.sensors.mindsensors;
+
+import ev3dev.actuators.Sound;
+import ev3dev.sensors.mindsensors.NXTCamV5;
+import lejos.hardware.port.SensorPort;
+import lejos.robotics.geometry.Rectangle2D;
+import lejos.utility.Delay;
+
+/**
+ * Created by jabrena on 30/7/17.
+ */
+public class FaceRecognitionDemo2 {
+
+ public static void main(String[] args){
+
+ System.out.println("NXTCamV5 Face Recognition Demo");
+
+ final NXTCamV5 camera = new NXTCamV5(SensorPort.S1);
+ camera.setTrackingMode(NXTCamV5.FACE_TRACKING);
+
+ for(int x = 0; x <= 100; x++){
+ System.out.println("Iteration: " + x);
+
+ int trackedObject = camera.getNumberOfObjects();
+ System.out.println(trackedObject);
+
+ if(trackedObject > 0) {
+ Sound.getInstance().beep();
+ }
+
+ if(trackedObject > 0) {
+ for(int y = 0; y < trackedObject; y++){
+ Rectangle2D rectangle = camera.getRectangle(y);
+ System.out.print("W: " + rectangle.getWidth() + " ");
+ System.out.print("H: " + rectangle.getHeight() + " ");
+ System.out.print("X: " + rectangle.getX() + " ");
+ System.out.print("Y: " + rectangle.getY() + "\n");
+ }
+
+ Sound.getInstance().beep();
+ }
+
+ Delay.msDelay(1000);
+ }
+
+ }
+}
diff --git a/ev3dev-lang-java/src/main/java/ev3dev/sensors/mindsensors/RecordVideoDemo.java b/ev3dev-lang-java/src/main/java/ev3dev/sensors/mindsensors/RecordVideoDemo.java
new file mode 100644
index 0000000..2da04c5
--- /dev/null
+++ b/ev3dev-lang-java/src/main/java/ev3dev/sensors/mindsensors/RecordVideoDemo.java
@@ -0,0 +1,26 @@
+package examples.sensors.mindsensors;
+
+import ev3dev.sensors.mindsensors.NXTCamV5;
+import lejos.hardware.port.SensorPort;
+import lejos.utility.Delay;
+
+/**
+ * Created by jabrena on 30/7/17.
+ */
+public class RecordVideoDemo {
+
+ public static void main(String[] args){
+
+ System.out.println("NXTCamV5 create Video Demo");
+
+ final NXTCamV5 camera = new NXTCamV5(SensorPort.S1);
+
+ System.out.println("Creating video");
+ camera.createVideo();
+
+ Delay.msDelay(20000);
+ System.out.println("End process");
+
+ System.exit(0);
+ }
+}
diff --git a/ev3dev-lang-java/src/main/java/ev3dev/sensors/mindsensors/RectanglesDemo.java b/ev3dev-lang-java/src/main/java/ev3dev/sensors/mindsensors/RectanglesDemo.java
new file mode 100644
index 0000000..faddb98
--- /dev/null
+++ b/ev3dev-lang-java/src/main/java/ev3dev/sensors/mindsensors/RectanglesDemo.java
@@ -0,0 +1,45 @@
+package examples.sensors.mindsensors;
+
+import ev3dev.actuators.Sound;
+import ev3dev.sensors.Button;
+import ev3dev.sensors.mindsensors.NXTCamV5;
+import lejos.hardware.port.SensorPort;
+import lejos.robotics.geometry.Rectangle2D;
+import lejos.utility.Delay;
+
+/**
+ * Created by jabrena on 30/7/17.
+ */
+public class RectanglesDemo {
+
+ public static void main(String[] args){
+
+ System.out.println("NXTCamV5 Track Object Demo");
+
+ final NXTCamV5 camera = new NXTCamV5(SensorPort.S1);
+
+ int counter = 0;
+ while (Button.ENTER.isUp()) {
+ counter++;
+ System.out.println("Iteration: " + counter);
+
+ int trackedObject = camera.getNumberOfObjects();
+ System.out.println(trackedObject);
+
+ if(trackedObject > 0) {
+ for(int x = 0; x < trackedObject; x++){
+ Rectangle2D rectangle = camera.getRectangle(x);
+ System.out.print("W: " + rectangle.getWidth() + " ");
+ System.out.print("H: " + rectangle.getHeight() + " ");
+ System.out.print("X: " + rectangle.getX() + " ");
+ System.out.print("Y: " + rectangle.getY() + "\n");
+ }
+
+ Sound.getInstance().beep();
+ }
+
+ Delay.msDelay(1000);
+ }
+
+ }
+}
diff --git a/ev3dev-lang-java/src/main/java/ev3dev/sensors/mindsensors/TrackObjectsDemo.java b/ev3dev-lang-java/src/main/java/ev3dev/sensors/mindsensors/TrackObjectsDemo.java
new file mode 100644
index 0000000..802156e
--- /dev/null
+++ b/ev3dev-lang-java/src/main/java/ev3dev/sensors/mindsensors/TrackObjectsDemo.java
@@ -0,0 +1,36 @@
+package examples.sensors.mindsensors;
+
+import ev3dev.actuators.Sound;
+import ev3dev.sensors.Button;
+import ev3dev.sensors.mindsensors.NXTCamV5;
+import lejos.hardware.port.SensorPort;
+import lejos.utility.Delay;
+
+/**
+ * Created by jabrena on 30/7/17.
+ */
+public class TrackObjectsDemo {
+
+ public static void main(String[] args){
+
+ System.out.println("NXTCamV5 Track Object Demo");
+
+ final NXTCamV5 camera = new NXTCamV5(SensorPort.S1);
+
+ int counter = 0;
+ while (Button.ENTER.isUp()) {
+ counter++;
+ System.out.println("Iteration: " + counter);
+
+ int trackedObject = camera.getNumberOfObjects();
+ System.out.println(trackedObject);
+
+ if(trackedObject > 0) {
+ Sound.getInstance().beep();
+ }
+
+ Delay.msDelay(1000);
+ }
+
+ }
+}
diff --git a/ev3dev-lang-java/src/main/java/lejos/commons/subsumption/ko/package-info.java b/ev3dev-lang-java/src/main/java/lejos/commons/subsumption/ko/package-info.java
index 22f0f8e..0d6316f 100644
--- a/ev3dev-lang-java/src/main/java/lejos/commons/subsumption/ko/package-info.java
+++ b/ev3dev-lang-java/src/main/java/lejos/commons/subsumption/ko/package-info.java
@@ -1,3 +1,4 @@
+package lejos.commons.subsumption.ko;
/**
Technical note: 2017/06/04
@@ -27,4 +28,4 @@
ev3dev#1| ... 3 more
Failed command ev3dev#1 with status 1: java -server -jar /home/robot/ev3dev-lang-java-all-0.1.0.jar
- */
\ No newline at end of file
+ */
diff --git a/ev3dev-lang-java/src/main/java/lejos/navigation/feature/ko/Package-info.java b/ev3dev-lang-java/src/main/java/lejos/navigation/feature/ko/Package-info.java
deleted file mode 100644
index e69de29..0000000
diff --git a/ev3dev-lang-java/src/main/java/lejos/navigation/feature/ko/package-info.java b/ev3dev-lang-java/src/main/java/lejos/navigation/feature/ko/package-info.java
new file mode 100644
index 0000000..6725be7
--- /dev/null
+++ b/ev3dev-lang-java/src/main/java/lejos/navigation/feature/ko/package-info.java
@@ -0,0 +1 @@
+package lejos.navigation.feature.ko;
diff --git a/ev3dev-lang-java/src/main/java/lejos/navigation/pathfinding/pathfind.java b/ev3dev-lang-java/src/main/java/lejos/navigation/pathfinding/pathfind.java
new file mode 100644
index 0000000..2a9dde3
--- /dev/null
+++ b/ev3dev-lang-java/src/main/java/lejos/navigation/pathfinding/pathfind.java
@@ -0,0 +1,55 @@
+package lejos.navigation.pathfinding;
+
+
+import lejos.robotics.geometry.Line;
+import lejos.robotics.geometry.Rectangle;
+import lejos.robotics.mapping.LineMap;
+import lejos.robotics.pathfinding.ShortestPathFinder;
+import lejos.robotics.navigation.Pose;
+import lejos.robotics.navigation.Waypoint;
+
+public class pathfind {
+ public static Line[] course = {
+ new Line(-40,-40,-40,100),
+ new Line(-40,100,20,100),
+ new Line(20,100,20,80),
+ new Line(20,80,80,80), //the barriers that the robot will avoid
+ new Line(80,80,80,120),
+ new Line(80,120,120,120),
+ new Line(120,120,120,80),
+ new Line(120,80,160,80),
+ new Line(160,80,160,-40),
+ new Line(160,-40,-40,-40),
+ //first box
+ new Line(20,20,20,60),
+ new Line(20,60,40,60),
+ new Line(40,60,40,20),
+ new Line(40,20,20,20),
+ //second box
+ new Line(60,20,60,60),
+ new Line(60,60,80,60),
+ new Line(80,60,80,20),
+ new Line(80,20,60,20),
+ //third box
+ new Line(100,20,100,60),
+ new Line(100,60,120,60),
+ new Line(120,60,120,20),
+ new Line(120,20,100,20),
+ };
+ public static Pose start_node = new Pose(0,0,180); //start position
+ public static Pose final_node = new Pose(100,100,90); //end position
+ public static Waypoint end_node_waypoint = new Waypoint(final_node); //create waypoint from end position
+ public static Rectangle frame = new Rectangle(150,150,200,200); //surrounding frame of map
+ public static LineMap psuedo_map = new LineMap(course,frame); //create line map from array lines and frame
+ public static ShortestPathFinder captain = new ShortestPathFinder(psuedo_map);
+
+ public static void main (String[] args) {
+ pathfind start = new pathfind();
+ try {
+ captain.findRoute(start_node,end_node_waypoint);
+ }
+ catch (Exception error) {
+ System.out.println("Destination in unreachable");
+ }
+ }
+}
\ No newline at end of file
diff --git a/ev3dev-lang-java/src/main/resources/META-INF/MANIFEST.MF b/ev3dev-lang-java/src/main/resources/META-INF/MANIFEST.MF
deleted file mode 100644
index 546bc4c..0000000
--- a/ev3dev-lang-java/src/main/resources/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,6 +0,0 @@
-Manifest-Version: 1.0
-Implementation-Title: EV3Dev-lang-java / examples
-Implementation-Version: 0.6.1
-Implementation-Vendor: Juan Antonio Breña Moral
-Main-Class: ev3dev.misc.BumperCar
-
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..5c2d1cf
Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/helloWorldKotlin/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
similarity index 80%
rename from helloWorldKotlin/gradle/wrapper/gradle-wrapper.properties
rename to gradle/wrapper/gradle-wrapper.properties
index 88dbea4..59b5f89 100644
--- a/helloWorldKotlin/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,5 @@
-#Sun Jun 25 08:53:20 BST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-3.5-bin.zip
diff --git a/helloWorldKotlin/gradlew b/gradlew
similarity index 86%
rename from helloWorldKotlin/gradlew
rename to gradlew
index 4453cce..83f2acf 100755
--- a/helloWorldKotlin/gradlew
+++ b/gradlew
@@ -1,5 +1,21 @@
#!/usr/bin/env sh
+#
+# Copyright 2015 the original author or authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
##############################################################################
##
## Gradle start up script for UN*X
@@ -28,16 +44,16 @@ APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS=""
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
-warn ( ) {
+warn () {
echo "$*"
}
-die ( ) {
+die () {
echo
echo "$*"
echo
@@ -109,8 +125,8 @@ if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin ; then
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
JAVACMD=`cygpath --unix "$JAVACMD"`
@@ -155,7 +171,7 @@ if $cygwin ; then
fi
# Escape application args
-save ( ) {
+save () {
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
echo " "
}
diff --git a/rosjava-helloworld/gradlew.bat b/gradlew.bat
similarity index 75%
rename from rosjava-helloworld/gradlew.bat
rename to gradlew.bat
index e95643d..9618d8d 100644
--- a/rosjava-helloworld/gradlew.bat
+++ b/gradlew.bat
@@ -1,84 +1,100 @@
-@if "%DEBUG%" == "" @echo off
-@rem ##########################################################################
-@rem
-@rem Gradle startup script for Windows
-@rem
-@rem ##########################################################################
-
-@rem Set local scope for the variables with windows NT shell
-if "%OS%"=="Windows_NT" setlocal
-
-set DIRNAME=%~dp0
-if "%DIRNAME%" == "" set DIRNAME=.
-set APP_BASE_NAME=%~n0
-set APP_HOME=%DIRNAME%
-
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS=
-
-@rem Find java.exe
-if defined JAVA_HOME goto findJavaFromJavaHome
-
-set JAVA_EXE=java.exe
-%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto init
-
-echo.
-echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:findJavaFromJavaHome
-set JAVA_HOME=%JAVA_HOME:"=%
-set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-
-if exist "%JAVA_EXE%" goto init
-
-echo.
-echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:init
-@rem Get command-line arguments, handling Windows variants
-
-if not "%OS%" == "Windows_NT" goto win9xME_args
-
-:win9xME_args
-@rem Slurp the command line arguments.
-set CMD_LINE_ARGS=
-set _SKIP=2
-
-:win9xME_args_slurp
-if "x%~1" == "x" goto execute
-
-set CMD_LINE_ARGS=%*
-
-:execute
-@rem Setup the command line
-
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
-
-@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
-
-:end
-@rem End local scope for the variables with windows NT shell
-if "%ERRORLEVEL%"=="0" goto mainEnd
-
-:fail
-rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
-rem the _cmd.exe /c_ return code!
-if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
-exit /b 1
-
-:mainEnd
-if "%OS%"=="Windows_NT" endlocal
-
-:omega
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windows variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/helloWorldKotlin/.gitignore b/helloWorldKotlin/.gitignore
index d35bac4..378eac2 100755
--- a/helloWorldKotlin/.gitignore
+++ b/helloWorldKotlin/.gitignore
@@ -1,4 +1 @@
-.idea
-*.iml
build
-.gradle
diff --git a/helloWorldKotlin/build.gradle b/helloWorldKotlin/build.gradle
index da38805..30bb55e 100755
--- a/helloWorldKotlin/build.gradle
+++ b/helloWorldKotlin/build.gradle
@@ -1,67 +1,23 @@
-
-//FatJar
-//Deploy on Brick
-buildscript {
- repositories {
- mavenCentral()
- }
- dependencies {
- classpath 'com.github.jengelman.gradle.plugins:shadow:2.0.0'
- classpath "org.hidetake:gradle-ssh-plugin:2.0.0"
- }
-}
-
plugins {
- id "org.jetbrains.kotlin.jvm" version "1.1.3"
+ id "org.jetbrains.kotlin.jvm" version "1.3.50"
}
-apply plugin: 'eclipse'
-apply plugin: 'idea'
-
-version = '0.1.0'
-
-repositories {
- mavenCentral()
- maven { url 'https://jitpack.io' }
-}
+version = '0.7.0'
dependencies {
- compile "org.jetbrains.kotlin:kotlin-stdlib"
-
- compile("com.github.ev3dev-lang-java:ev3dev-lang-java:v0.6.1")
- compile("com.github.ev3dev-lang-java:lejos-navigation:v0.1.0")
-
- compile("ch.qos.logback:logback-classic:1.2.3")
+ implementation "org.jetbrains.kotlin:kotlin-stdlib"
- testCompile "junit:junit:4.12"
- testCompile "org.jetbrains.kotlin:kotlin-test-junit"
+ implementation("ch.qos.logback:logback-classic:1.2.3")
+ testImplementation "junit:junit:4.12"
+ testImplementation "org.jetbrains.kotlin:kotlin-test-junit"
}
-//Wrapper
-task wrapper(type: Wrapper) {
- description = 'Generates gradlew[.bat] scripts'
- gradleVersion = '3.5'
-}
-
-//Jar
jar {
- baseName = "${rootProject.name}"
manifest {
- from file("${projectDir}/src/main/resources/META-INF/MANIFEST.MF")
+ attributes("Implementation-Title": "EV3Dev-lang-java / Demos for 0.7.0",
+ "Implementation-Version": project.version,
+ "Implementation-Vendor": "Juan Antonio Breña Moral"
+ )
}
}
-
-//Fat Jar
-apply plugin: 'com.github.johnrengelman.shadow'
-
-task fatJar << {
-
-}
-fatJar.dependsOn shadowJar
-
-apply plugin: 'org.hidetake.ssh'
-
-apply from: 'deploy.gradle'
-
-
diff --git a/helloWorldKotlin/config.gradle b/helloWorldKotlin/config.gradle
index a3084db..9cb4ba1 100644
--- a/helloWorldKotlin/config.gradle
+++ b/helloWorldKotlin/config.gradle
@@ -1,8 +1,5 @@
-
-remotes {
- ev3dev {
- host = '192.168.1.206'
- user = 'robot'
- password = 'maker'
- }
-}
\ No newline at end of file
+// Subproject configuration
+brick.pref {
+ // Main class //
+ mainClass = "org.ev3dev.kotlin.HelloWorldKt"
+}
diff --git a/helloWorldKotlin/deploy.gradle b/helloWorldKotlin/deploy.gradle
deleted file mode 100644
index 96c44a4..0000000
--- a/helloWorldKotlin/deploy.gradle
+++ /dev/null
@@ -1,69 +0,0 @@
-
-task deploy << {
- ssh.run {
- session(remotes.ev3dev) {
- put from: "./build/libs/" + "${rootProject.name}" + "-" + version + "-all.jar", into: "/home/robot/"
- }
- }
-}
-deploy.dependsOn clean, fatJar
-
-task remoteRun << {
- ssh.run {
- session(remotes.ev3dev) {
- println "java -server -jar /home/robot/" + "${rootProject.name}" + "-" + version + "-all.jar "
- execute "java -server -jar /home/robot/" + "${rootProject.name}" + "-" + version + "-all.jar "
- }
- }
-}
-
-task remoteSudoRun << {
- ssh.run {
- session(remotes.ev3dev) {
- println "echo -e \"maker\" | sudo -S java -server -jar /home/robot/" + "${rootProject.name}" + "-" + version + "-all" + ".jar"
- execute "echo -e \"maker\" | sudo -S java -server -jar /home/robot/" + "${rootProject.name}" + "-" + version + "-all" + ".jar"
- }
- }
-}
-
-task remoteProfilingRun << {
- ssh.run {
- session(remotes.ev3dev) {
- println "java -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=7091 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -server -jar /home/robot/" + "${rootProject.name}" + "-" + version + "-all.jar "
- execute "java -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=7091 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -server -jar /home/robot/" + "${rootProject.name}" + "-" + version + "-all.jar "
- }
- }
-}
-
-task remoteProfilingSudoRun << {
- ssh.run {
- session(remotes.ev3dev) {
- println "echo -e \"maker\" | sudo -S java -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=7091 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -server -jar /home/robot/" + "${rootProject.name}" + "-" + version + "-all.jar "
- execute "echo -e \"maker\" | sudo -S java -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=7091 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -server -jar /home/robot/" + "${rootProject.name}" + "-" + version + "-all.jar "
- }
- }
-}
-
-task deployAndRun << {
-
-}
-deployAndRun.dependsOn deploy, remoteRun
-
-
-task deployAndSudoRun << {
-
-}
-deployAndSudoRun.dependsOn deploy, remoteSudoRun
-
-task deployAndProfilingRun << {
-
-}
-deployAndProfilingRun.dependsOn deploy, remoteProfilingRun
-
-task deployAndProfilingSudoRun << {
-
-}
-deployAndProfilingSudoRun.dependsOn deploy, remoteProfilingSudoRun
-
-apply from: 'config.gradle'
-
diff --git a/helloWorldKotlin/gradle/wrapper/gradle-wrapper.jar b/helloWorldKotlin/gradle/wrapper/gradle-wrapper.jar
deleted file mode 100644
index 64e1f78..0000000
Binary files a/helloWorldKotlin/gradle/wrapper/gradle-wrapper.jar and /dev/null differ
diff --git a/helloWorldKotlin/gradlew.bat b/helloWorldKotlin/gradlew.bat
deleted file mode 100644
index e95643d..0000000
--- a/helloWorldKotlin/gradlew.bat
+++ /dev/null
@@ -1,84 +0,0 @@
-@if "%DEBUG%" == "" @echo off
-@rem ##########################################################################
-@rem
-@rem Gradle startup script for Windows
-@rem
-@rem ##########################################################################
-
-@rem Set local scope for the variables with windows NT shell
-if "%OS%"=="Windows_NT" setlocal
-
-set DIRNAME=%~dp0
-if "%DIRNAME%" == "" set DIRNAME=.
-set APP_BASE_NAME=%~n0
-set APP_HOME=%DIRNAME%
-
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS=
-
-@rem Find java.exe
-if defined JAVA_HOME goto findJavaFromJavaHome
-
-set JAVA_EXE=java.exe
-%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto init
-
-echo.
-echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:findJavaFromJavaHome
-set JAVA_HOME=%JAVA_HOME:"=%
-set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-
-if exist "%JAVA_EXE%" goto init
-
-echo.
-echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:init
-@rem Get command-line arguments, handling Windows variants
-
-if not "%OS%" == "Windows_NT" goto win9xME_args
-
-:win9xME_args
-@rem Slurp the command line arguments.
-set CMD_LINE_ARGS=
-set _SKIP=2
-
-:win9xME_args_slurp
-if "x%~1" == "x" goto execute
-
-set CMD_LINE_ARGS=%*
-
-:execute
-@rem Setup the command line
-
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
-
-@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
-
-:end
-@rem End local scope for the variables with windows NT shell
-if "%ERRORLEVEL%"=="0" goto mainEnd
-
-:fail
-rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
-rem the _cmd.exe /c_ return code!
-if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
-exit /b 1
-
-:mainEnd
-if "%OS%"=="Windows_NT" endlocal
-
-:omega
diff --git a/helloWorldKotlin/src/main/resources/META-INF/MANIFEST.MF b/helloWorldKotlin/src/main/resources/META-INF/MANIFEST.MF
deleted file mode 100644
index 0359874..0000000
--- a/helloWorldKotlin/src/main/resources/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,5 +0,0 @@
-Manifest-Version: 1.0
-Implementation-Title: EV3Dev-lang-java / examples
-Implementation-Version: 0.7.0
-Implementation-Vendor: Juan Antonio Breña Moral
-Main-Class: org.ev3dev.kotlin.HelloWorldKt
diff --git a/mbeans/.gitignore b/mbeans/.gitignore
index d9d3569..378eac2 100644
--- a/mbeans/.gitignore
+++ b/mbeans/.gitignore
@@ -1,5 +1 @@
-.gradle
-.idea
build
-*.iml
-
diff --git a/mbeans/README.md b/mbeans/README.md
deleted file mode 100644
index e69de29..0000000
diff --git a/mbeans/build.gradle b/mbeans/build.gradle
index 933e3a0..7464abe 100644
--- a/mbeans/build.gradle
+++ b/mbeans/build.gradle
@@ -1,57 +1,10 @@
-//Gradle file library ev3dev-lang-java // MBeans
+version = '0.1.0'
-version = '0.1.1'
-
-apply plugin: 'java'
-apply plugin: 'eclipse'
-apply plugin: 'idea'
-
-repositories {
- mavenCentral()
- maven { url "https://jitpack.io" }
-}
-
-dependencies {
- compile("ch.qos.logback:logback-classic:1.2.3")
- compile("com.github.ev3dev-lang-java:ev3dev-lang-java:v0.6.1")
- //compile("com.github.ev3dev-lang-java:lejos-navigation:v0.1.0")
-}
-
-//Compile
-compileJava {
- sourceCompatibility = 1.8
- targetCompatibility = 1.8
-}
-
-//Jar
jar {
- baseName = "${rootProject.name}"
manifest {
- from file("${projectDir}/src/main/resources/META-INF/MANIFEST.MF")
+ attributes("Implementation-Title": "EV3Dev-lang-java / Demos for 0.7.0",
+ "Implementation-Version": project.version,
+ "Implementation-Vendor": "Juan Antonio Breña Moral"
+ )
}
}
-
-//Fat Jar
-task fatJar(type: Jar) {
- baseName = "${rootProject.name}" + "-all"
- manifest {
- from file("${projectDir}/src/main/resources/META-INF/MANIFEST.MF")
- }
- from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
- with jar
-}
-
-//Deploy on Brick
-buildscript {
- repositories {
- maven {
- url "https://plugins.gradle.org/m2/"
- }
- }
- dependencies {
- classpath "org.hidetake:gradle-ssh-plugin:2.9.0"
- }
-}
-apply plugin: 'org.hidetake.ssh'
-
-apply from: 'deploy.gradle'
\ No newline at end of file
diff --git a/mbeans/config.gradle b/mbeans/config.gradle
index 79a0c9e..9777740 100644
--- a/mbeans/config.gradle
+++ b/mbeans/config.gradle
@@ -1,8 +1,5 @@
-
-remotes {
- ev3dev {
- host = '192.168.1.85'
- user = 'robot'
- password = 'maker'
- }
+// Subproject configuration
+brick.pref {
+ // Main class //
+ mainClass = "org.ev3dev.Main"
}
diff --git a/mbeans/deploy.gradle b/mbeans/deploy.gradle
deleted file mode 100644
index 9187d4a..0000000
--- a/mbeans/deploy.gradle
+++ /dev/null
@@ -1,51 +0,0 @@
-
-remotes {
- ev3dev {
- host = '192.168.1.85'
- user = 'robot'
- password = 'maker'
- }
-}
-
-task deploy << {
- ssh.run {
- session(remotes.ev3dev) {
- put from: "./build/libs/" + "${rootProject.name}" + "-all-" + version + ".jar", into: "/home/robot/"
- }
- }
-}
-deploy.dependsOn clean, fatJar
-
-task remoteRun << {
- ssh.run {
- session(remotes.ev3dev) {
- println "java -server -jar /home/robot/" + "${rootProject.name}" + "-all-" + version + ".jar "
- execute "java -server -jar /home/robot/" + "${rootProject.name}" + "-all-" + version + ".jar "
- }
- }
-}
-
-task remoteProfilingRun << {
- //doLast {
- ssh.run {
- session(remotes.ev3dev) {
- //println "echo -e \"maker\n\" | sudo -S"
- //execute "echo -e \"maker\n\" | sudo -S"
- println "echo -e \"maker\" | sudo -S java -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=7091 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -server -jar /home/robot/" + "${rootProject.name}" + "-all-" + version + ".jar "
- execute "echo -e \"maker\" | sudo -S java -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=7091 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -server -jar /home/robot/" + "${rootProject.name}" + "-all-" + version + ".jar "
- }
- }
- //}
-}
-
-task deployAndRun << {
-
-}
-deployAndRun.dependsOn deploy, remoteRun
-
-task deployAndProfilingRun << {
-
-}
-deployAndProfilingRun.dependsOn deploy, remoteProfilingRun
-
-apply from: 'config.gradle'
\ No newline at end of file
diff --git a/mbeans/gradle/wrapper/gradle-wrapper.jar b/mbeans/gradle/wrapper/gradle-wrapper.jar
deleted file mode 100644
index b5166da..0000000
Binary files a/mbeans/gradle/wrapper/gradle-wrapper.jar and /dev/null differ
diff --git a/mbeans/gradle/wrapper/gradle-wrapper.properties b/mbeans/gradle/wrapper/gradle-wrapper.properties
deleted file mode 100644
index fca35a4..0000000
--- a/mbeans/gradle/wrapper/gradle-wrapper.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-#Wed Jun 07 21:38:24 BST 2017
-distributionBase=GRADLE_USER_HOME
-distributionPath=wrapper/dists
-zipStoreBase=GRADLE_USER_HOME
-zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-2.4-bin.zip
diff --git a/mbeans/gradlew b/mbeans/gradlew
deleted file mode 100755
index 91a7e26..0000000
--- a/mbeans/gradlew
+++ /dev/null
@@ -1,164 +0,0 @@
-#!/usr/bin/env bash
-
-##############################################################################
-##
-## Gradle start up script for UN*X
-##
-##############################################################################
-
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS=""
-
-APP_NAME="Gradle"
-APP_BASE_NAME=`basename "$0"`
-
-# Use the maximum available, or set MAX_FD != -1 to use that value.
-MAX_FD="maximum"
-
-warn ( ) {
- echo "$*"
-}
-
-die ( ) {
- echo
- echo "$*"
- echo
- exit 1
-}
-
-# OS specific support (must be 'true' or 'false').
-cygwin=false
-msys=false
-darwin=false
-case "`uname`" in
- CYGWIN* )
- cygwin=true
- ;;
- Darwin* )
- darwin=true
- ;;
- MINGW* )
- msys=true
- ;;
-esac
-
-# For Cygwin, ensure paths are in UNIX format before anything is touched.
-if $cygwin ; then
- [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
-fi
-
-# Attempt to set APP_HOME
-# Resolve links: $0 may be a link
-PRG="$0"
-# Need this for relative symlinks.
-while [ -h "$PRG" ] ; do
- ls=`ls -ld "$PRG"`
- link=`expr "$ls" : '.*-> \(.*\)$'`
- if expr "$link" : '/.*' > /dev/null; then
- PRG="$link"
- else
- PRG=`dirname "$PRG"`"/$link"
- fi
-done
-SAVED="`pwd`"
-cd "`dirname \"$PRG\"`/" >&-
-APP_HOME="`pwd -P`"
-cd "$SAVED" >&-
-
-CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
-
-# Determine the Java command to use to start the JVM.
-if [ -n "$JAVA_HOME" ] ; then
- if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
- # IBM's JDK on AIX uses strange locations for the executables
- JAVACMD="$JAVA_HOME/jre/sh/java"
- else
- JAVACMD="$JAVA_HOME/bin/java"
- fi
- if [ ! -x "$JAVACMD" ] ; then
- die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
- fi
-else
- JAVACMD="java"
- which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
-fi
-
-# Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
- MAX_FD_LIMIT=`ulimit -H -n`
- if [ $? -eq 0 ] ; then
- if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
- MAX_FD="$MAX_FD_LIMIT"
- fi
- ulimit -n $MAX_FD
- if [ $? -ne 0 ] ; then
- warn "Could not set maximum file descriptor limit: $MAX_FD"
- fi
- else
- warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
- fi
-fi
-
-# For Darwin, add options to specify how the application appears in the dock
-if $darwin; then
- GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
-fi
-
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin ; then
- APP_HOME=`cygpath --path --mixed "$APP_HOME"`
- CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
-
- # We build the pattern for arguments to be converted via cygpath
- ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
- SEP=""
- for dir in $ROOTDIRSRAW ; do
- ROOTDIRS="$ROOTDIRS$SEP$dir"
- SEP="|"
- done
- OURCYGPATTERN="(^($ROOTDIRS))"
- # Add a user-defined pattern to the cygpath arguments
- if [ "$GRADLE_CYGPATTERN" != "" ] ; then
- OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
- fi
- # Now convert the arguments - kludge to limit ourselves to /bin/sh
- i=0
- for arg in "$@" ; do
- CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
- CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
-
- if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
- eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
- else
- eval `echo args$i`="\"$arg\""
- fi
- i=$((i+1))
- done
- case $i in
- (0) set -- ;;
- (1) set -- "$args0" ;;
- (2) set -- "$args0" "$args1" ;;
- (3) set -- "$args0" "$args1" "$args2" ;;
- (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
- (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
- (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
- (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
- (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
- (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
- esac
-fi
-
-# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
-function splitJvmOpts() {
- JVM_OPTS=("$@")
-}
-eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
-JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
-
-exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/mbeans/gradlew.bat b/mbeans/gradlew.bat
deleted file mode 100644
index aec9973..0000000
--- a/mbeans/gradlew.bat
+++ /dev/null
@@ -1,90 +0,0 @@
-@if "%DEBUG%" == "" @echo off
-@rem ##########################################################################
-@rem
-@rem Gradle startup script for Windows
-@rem
-@rem ##########################################################################
-
-@rem Set local scope for the variables with windows NT shell
-if "%OS%"=="Windows_NT" setlocal
-
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS=
-
-set DIRNAME=%~dp0
-if "%DIRNAME%" == "" set DIRNAME=.
-set APP_BASE_NAME=%~n0
-set APP_HOME=%DIRNAME%
-
-@rem Find java.exe
-if defined JAVA_HOME goto findJavaFromJavaHome
-
-set JAVA_EXE=java.exe
-%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto init
-
-echo.
-echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:findJavaFromJavaHome
-set JAVA_HOME=%JAVA_HOME:"=%
-set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-
-if exist "%JAVA_EXE%" goto init
-
-echo.
-echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:init
-@rem Get command-line arguments, handling Windowz variants
-
-if not "%OS%" == "Windows_NT" goto win9xME_args
-if "%@eval[2+2]" == "4" goto 4NT_args
-
-:win9xME_args
-@rem Slurp the command line arguments.
-set CMD_LINE_ARGS=
-set _SKIP=2
-
-:win9xME_args_slurp
-if "x%~1" == "x" goto execute
-
-set CMD_LINE_ARGS=%*
-goto execute
-
-:4NT_args
-@rem Get arguments from the 4NT Shell from JP Software
-set CMD_LINE_ARGS=%$
-
-:execute
-@rem Setup the command line
-
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
-
-@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
-
-:end
-@rem End local scope for the variables with windows NT shell
-if "%ERRORLEVEL%"=="0" goto mainEnd
-
-:fail
-rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
-rem the _cmd.exe /c_ return code!
-if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
-exit /b 1
-
-:mainEnd
-if "%OS%"=="Windows_NT" endlocal
-
-:omega
diff --git a/mbeans/settings.gradle b/mbeans/settings.gradle
deleted file mode 100644
index 36fc051..0000000
--- a/mbeans/settings.gradle
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * This settings file was auto generated by the Gradle buildInit task
- * by 'jabrena' at '7/06/17 21:38' with Gradle 2.4
- *
- * The settings file is used to specify which projects to include in your build.
- * In a single project build this file can be empty or even removed.
- *
- * Detailed information about configuring a multi-project build in Gradle can be found
- * in the user guide at http://gradle.org/docs/2.4/userguide/multi_project_builds.html
- */
-
-/*
-// To declare projects as part of a multi-project build use the 'include' method
-include 'shared'
-include 'api'
-include 'services:webservice'
-*/
-
-rootProject.name = 'mbeans'
diff --git a/mbeans/src/main/resources/META-INF/MANIFEST.MF b/mbeans/src/main/resources/META-INF/MANIFEST.MF
deleted file mode 100644
index b4e3f1c..0000000
--- a/mbeans/src/main/resources/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,7 +0,0 @@
-Manifest-Version: 1.0
-Implementation-Title: EV3Dev-lang-java // Template project
-Implementation-Version: 0.1.0
-Implementation-Vendor: Juan Antonio Breña Moral
-Main-Class: org.ev3dev.Main
-
-
diff --git a/opencv/build.gradle b/opencv/build.gradle
index 7da89d6..c670486 100644
--- a/opencv/build.gradle
+++ b/opencv/build.gradle
@@ -1,30 +1,25 @@
-/*
- * This build file was auto generated by running the Gradle 'init' task
- * by 'jabrena' at '21/05/17 19:26' with Gradle 2.4
- *
- * This generated file contains a sample Java project to get you started.
- * For more details take a look at the Java Quickstart chapter in the Gradle
- * user guide available at http://gradle.org/docs/2.4/userguide/tutorial_java_projects.html
- */
-
-// Apply the java plugin to add support for Java
-apply plugin: 'java'
-
-// In this section you declare where to find the dependencies of your project
-repositories {
- // Use 'jcenter' for resolving your dependencies.
- // You can declare any Maven/Ivy/file repository here.
- jcenter()
-}
+version = '2.1.0-SNAPSHOT'
// In this section you declare the dependencies for your production and test code
dependencies {
- // The production code uses the SLF4J logging API at compile time
- compile 'org.slf4j:slf4j-api:1.7.12'
+ compileOnly("nu.pattern:opencv:2.4.9-7")
+ //implementation("org.openpnp:opencv:3.2.0-0")
+
+ implementation("org.slf4j:slf4j-api:1.7.25")
+ implementation("ch.qos.logback:logback-classic:1.2.3")
+
+ annotationProcessor("org.projectlombok:lombok:1.18.8")
+ compileOnly("org.projectlombok:lombok:1.18.8")
+ testCompileOnly("org.projectlombok:lombok:1.18.8")
+
+ testImplementation 'junit:junit:4.12'
+}
- // Declare the dependency for your favourite test framework you want to use in your tests.
- // TestNG is also supported by the Gradle Test task. Just change the
- // testCompile dependency to testCompile 'org.testng:testng:6.8.1' and add
- // 'test.useTestNG()' to your build script.
- testCompile 'junit:junit:4.12'
+jar {
+ manifest {
+ attributes("Implementation-Title": "EV3Dev-lang-java / Demos for 0.7.0",
+ "Implementation-Version": project.version,
+ "Implementation-Vendor": "Juan Antonio Breña Moral"
+ )
+ }
}
diff --git a/opencv/config.gradle b/opencv/config.gradle
new file mode 100644
index 0000000..628e9dc
--- /dev/null
+++ b/opencv/config.gradle
@@ -0,0 +1,6 @@
+// Subproject configuration
+brick.pref {
+ // Main class //
+ mainClass = "example.opencv.HelloWorldCV"
+ libOpenCV = true
+}
diff --git a/opencv/gradle/wrapper/gradle-wrapper.jar b/opencv/gradle/wrapper/gradle-wrapper.jar
deleted file mode 100644
index b5166da..0000000
Binary files a/opencv/gradle/wrapper/gradle-wrapper.jar and /dev/null differ
diff --git a/opencv/gradle/wrapper/gradle-wrapper.properties b/opencv/gradle/wrapper/gradle-wrapper.properties
deleted file mode 100644
index 439b081..0000000
--- a/opencv/gradle/wrapper/gradle-wrapper.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-#Sun May 21 19:26:25 CEST 2017
-distributionBase=GRADLE_USER_HOME
-distributionPath=wrapper/dists
-zipStoreBase=GRADLE_USER_HOME
-zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-2.4-bin.zip
diff --git a/opencv/gradlew b/opencv/gradlew
deleted file mode 100755
index 91a7e26..0000000
--- a/opencv/gradlew
+++ /dev/null
@@ -1,164 +0,0 @@
-#!/usr/bin/env bash
-
-##############################################################################
-##
-## Gradle start up script for UN*X
-##
-##############################################################################
-
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS=""
-
-APP_NAME="Gradle"
-APP_BASE_NAME=`basename "$0"`
-
-# Use the maximum available, or set MAX_FD != -1 to use that value.
-MAX_FD="maximum"
-
-warn ( ) {
- echo "$*"
-}
-
-die ( ) {
- echo
- echo "$*"
- echo
- exit 1
-}
-
-# OS specific support (must be 'true' or 'false').
-cygwin=false
-msys=false
-darwin=false
-case "`uname`" in
- CYGWIN* )
- cygwin=true
- ;;
- Darwin* )
- darwin=true
- ;;
- MINGW* )
- msys=true
- ;;
-esac
-
-# For Cygwin, ensure paths are in UNIX format before anything is touched.
-if $cygwin ; then
- [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
-fi
-
-# Attempt to set APP_HOME
-# Resolve links: $0 may be a link
-PRG="$0"
-# Need this for relative symlinks.
-while [ -h "$PRG" ] ; do
- ls=`ls -ld "$PRG"`
- link=`expr "$ls" : '.*-> \(.*\)$'`
- if expr "$link" : '/.*' > /dev/null; then
- PRG="$link"
- else
- PRG=`dirname "$PRG"`"/$link"
- fi
-done
-SAVED="`pwd`"
-cd "`dirname \"$PRG\"`/" >&-
-APP_HOME="`pwd -P`"
-cd "$SAVED" >&-
-
-CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
-
-# Determine the Java command to use to start the JVM.
-if [ -n "$JAVA_HOME" ] ; then
- if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
- # IBM's JDK on AIX uses strange locations for the executables
- JAVACMD="$JAVA_HOME/jre/sh/java"
- else
- JAVACMD="$JAVA_HOME/bin/java"
- fi
- if [ ! -x "$JAVACMD" ] ; then
- die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
- fi
-else
- JAVACMD="java"
- which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
-fi
-
-# Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
- MAX_FD_LIMIT=`ulimit -H -n`
- if [ $? -eq 0 ] ; then
- if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
- MAX_FD="$MAX_FD_LIMIT"
- fi
- ulimit -n $MAX_FD
- if [ $? -ne 0 ] ; then
- warn "Could not set maximum file descriptor limit: $MAX_FD"
- fi
- else
- warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
- fi
-fi
-
-# For Darwin, add options to specify how the application appears in the dock
-if $darwin; then
- GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
-fi
-
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin ; then
- APP_HOME=`cygpath --path --mixed "$APP_HOME"`
- CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
-
- # We build the pattern for arguments to be converted via cygpath
- ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
- SEP=""
- for dir in $ROOTDIRSRAW ; do
- ROOTDIRS="$ROOTDIRS$SEP$dir"
- SEP="|"
- done
- OURCYGPATTERN="(^($ROOTDIRS))"
- # Add a user-defined pattern to the cygpath arguments
- if [ "$GRADLE_CYGPATTERN" != "" ] ; then
- OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
- fi
- # Now convert the arguments - kludge to limit ourselves to /bin/sh
- i=0
- for arg in "$@" ; do
- CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
- CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
-
- if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
- eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
- else
- eval `echo args$i`="\"$arg\""
- fi
- i=$((i+1))
- done
- case $i in
- (0) set -- ;;
- (1) set -- "$args0" ;;
- (2) set -- "$args0" "$args1" ;;
- (3) set -- "$args0" "$args1" "$args2" ;;
- (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
- (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
- (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
- (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
- (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
- (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
- esac
-fi
-
-# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
-function splitJvmOpts() {
- JVM_OPTS=("$@")
-}
-eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
-JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
-
-exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/opencv/gradlew.bat b/opencv/gradlew.bat
deleted file mode 100644
index aec9973..0000000
--- a/opencv/gradlew.bat
+++ /dev/null
@@ -1,90 +0,0 @@
-@if "%DEBUG%" == "" @echo off
-@rem ##########################################################################
-@rem
-@rem Gradle startup script for Windows
-@rem
-@rem ##########################################################################
-
-@rem Set local scope for the variables with windows NT shell
-if "%OS%"=="Windows_NT" setlocal
-
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS=
-
-set DIRNAME=%~dp0
-if "%DIRNAME%" == "" set DIRNAME=.
-set APP_BASE_NAME=%~n0
-set APP_HOME=%DIRNAME%
-
-@rem Find java.exe
-if defined JAVA_HOME goto findJavaFromJavaHome
-
-set JAVA_EXE=java.exe
-%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto init
-
-echo.
-echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:findJavaFromJavaHome
-set JAVA_HOME=%JAVA_HOME:"=%
-set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-
-if exist "%JAVA_EXE%" goto init
-
-echo.
-echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:init
-@rem Get command-line arguments, handling Windowz variants
-
-if not "%OS%" == "Windows_NT" goto win9xME_args
-if "%@eval[2+2]" == "4" goto 4NT_args
-
-:win9xME_args
-@rem Slurp the command line arguments.
-set CMD_LINE_ARGS=
-set _SKIP=2
-
-:win9xME_args_slurp
-if "x%~1" == "x" goto execute
-
-set CMD_LINE_ARGS=%*
-goto execute
-
-:4NT_args
-@rem Get arguments from the 4NT Shell from JP Software
-set CMD_LINE_ARGS=%$
-
-:execute
-@rem Setup the command line
-
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
-
-@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
-
-:end
-@rem End local scope for the variables with windows NT shell
-if "%ERRORLEVEL%"=="0" goto mainEnd
-
-:fail
-rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
-rem the _cmd.exe /c_ return code!
-if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
-exit /b 1
-
-:mainEnd
-if "%OS%"=="Windows_NT" endlocal
-
-:omega
diff --git a/opencv/lombok.config b/opencv/lombok.config
new file mode 100644
index 0000000..f4809e2
--- /dev/null
+++ b/opencv/lombok.config
@@ -0,0 +1,2 @@
+lombok.nonNull.exceptionType = IllegalArgumentException
+lombok.log.fieldName = LOGGER
diff --git a/opencv/settings.gradle b/opencv/settings.gradle
deleted file mode 100644
index ada8aeb..0000000
--- a/opencv/settings.gradle
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * This settings file was auto generated by the Gradle buildInit task
- * by 'jabrena' at '21/05/17 19:26' with Gradle 2.4
- *
- * The settings file is used to specify which projects to include in your build.
- * In a single project build this file can be empty or even removed.
- *
- * Detailed information about configuring a multi-project build in Gradle can be found
- * in the user guide at http://gradle.org/docs/2.4/userguide/multi_project_builds.html
- */
-
-/*
-// To declare projects as part of a multi-project build use the 'include' method
-include 'shared'
-include 'api'
-include 'services:webservice'
-*/
-
-rootProject.name = 'opencv'
diff --git a/opencv/src/main/java/example/opencv/HelloWorldCV.java b/opencv/src/main/java/example/opencv/HelloWorldCV.java
new file mode 100644
index 0000000..01bfe6c
--- /dev/null
+++ b/opencv/src/main/java/example/opencv/HelloWorldCV.java
@@ -0,0 +1,21 @@
+package example.opencv;
+
+import lombok.extern.slf4j.Slf4j;
+import org.opencv.core.Core;
+import org.opencv.core.CvType;
+import org.opencv.core.Mat;
+
+@Slf4j
+public class HelloWorldCV {
+
+ public static void main(String[] args) {
+ LOGGER.info("Welcome to OpenCV {}", Core.VERSION);
+ LOGGER.info(System.getProperty("java.library.path"));
+ LOGGER.info(Core.NATIVE_LIBRARY_NAME);
+ System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
+ //System.loadLibrary("libopencv_java249.so");
+ Mat m = Mat.eye(3, 3, CvType.CV_8UC1);
+ LOGGER.info("m = {}", m.dump());
+ }
+
+}
\ No newline at end of file
diff --git a/opencv/src/main/java/example/opencv/MultipleWebcam.java b/opencv/src/main/java/example/opencv/MultipleWebcam.java
new file mode 100644
index 0000000..8ed31bf
--- /dev/null
+++ b/opencv/src/main/java/example/opencv/MultipleWebcam.java
@@ -0,0 +1,41 @@
+package example.opencv;
+
+import org.opencv.core.Core;
+import org.opencv.core.Mat;
+import org.opencv.highgui.Highgui;
+import org.opencv.highgui.VideoCapture;
+
+/**
+ * Multiple webcams
+ *
+ */
+public class MultipleWebcam {
+
+ public static void main( String[] args ) {
+ System.out.println("Welcome to OpenCV " + Core.VERSION);
+ System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
+
+ for(int i = 0; i < 3; i++) {
+
+ VideoCapture camera = new VideoCapture(i);
+ if (!camera.isOpened()) {
+ System.out.println("Camera Error");
+ }
+
+ Mat frame = new Mat();
+ camera.read(frame);
+ System.out.println("Frame Obtained");
+ System.out.println("Captured Frame Width " + frame.width());
+
+ Highgui.imwrite("camera" + i +".jpg", frame);
+
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException e) {
+ }
+ System.out.println("Iteration:" + i);
+
+ camera.release();
+ }
+ }
+}
diff --git a/opencv/src/main/java/opencv/OpenCVTest.java b/opencv/src/main/java/example/opencv/OpenCVTest.java
similarity index 98%
rename from opencv/src/main/java/opencv/OpenCVTest.java
rename to opencv/src/main/java/example/opencv/OpenCVTest.java
index 1c0a041..0350e7e 100644
--- a/opencv/src/main/java/opencv/OpenCVTest.java
+++ b/opencv/src/main/java/example/opencv/OpenCVTest.java
@@ -1,4 +1,4 @@
-package opencv;
+package example.opencv;
import org.opencv.core.Core;
import org.opencv.core.Mat;
diff --git a/opencv/src/main/java/opencv/Webcam1.java b/opencv/src/main/java/example/opencv/Webcam1.java
similarity index 96%
rename from opencv/src/main/java/opencv/Webcam1.java
rename to opencv/src/main/java/example/opencv/Webcam1.java
index 137e32a..7175080 100644
--- a/opencv/src/main/java/opencv/Webcam1.java
+++ b/opencv/src/main/java/example/opencv/Webcam1.java
@@ -1,4 +1,4 @@
-package opencv;
+package example.opencv;
import org.opencv.core.Core;
import org.opencv.core.Mat;
diff --git a/opencv/src/main/java/opencv/Webcam2.java b/opencv/src/main/java/example/opencv/Webcam2.java
similarity index 97%
rename from opencv/src/main/java/opencv/Webcam2.java
rename to opencv/src/main/java/example/opencv/Webcam2.java
index 63311b6..2781c24 100644
--- a/opencv/src/main/java/opencv/Webcam2.java
+++ b/opencv/src/main/java/example/opencv/Webcam2.java
@@ -1,4 +1,4 @@
-package opencv;
+package example.opencv;
import org.opencv.core.Core;
import org.opencv.core.Mat;
diff --git a/opencv/src/main/java/opencv/HelloWorldCV.java b/opencv/src/main/java/opencv/HelloWorldCV.java
deleted file mode 100644
index a9f32ba..0000000
--- a/opencv/src/main/java/opencv/HelloWorldCV.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package opencv;
-
-import lombok.extern.slf4j.Slf4j;
-import org.opencv.core.Core;
-import org.opencv.core.CvType;
-import org.opencv.core.Mat;
-
-public @Slf4j class HelloWorldCV {
-
- public static void main(String[] args) {
- log.info("Welcome to OpenCV {}", Core.VERSION);
- log.info(System.getProperty("java.library.path"));
- System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
- Mat m = Mat.eye(3, 3, CvType.CV_8UC1);
- log.info("m = {}", m.dump());
- }
-
-}
\ No newline at end of file
diff --git a/opencv/src/main/resources/logback.xml b/opencv/src/main/resources/logback.xml
new file mode 100644
index 0000000..b018511
--- /dev/null
+++ b/opencv/src/main/resources/logback.xml
@@ -0,0 +1,17 @@
+
+