diff --git a/examples/c++/kxtj3.cxx b/examples/c++/kxtj3.cxx index af4d1be7..609cae95 100755 --- a/examples/c++/kxtj3.cxx +++ b/examples/c++/kxtj3.cxx @@ -27,6 +27,7 @@ #include #include #include "kxtj3.hpp" +#include "upm_utilities.h" #define SENSOR_ADDR 0x0f #define I2C_BUS 0 @@ -50,7 +51,7 @@ void print_acceleration_data(upm::KXTJ3 &dev) xyz = dev.GetAccelerationVector(); std::cout << std::fixed << std::setprecision(3) << xyz[0] << " | " << xyz[1] << " | " << xyz[2] << std::endl; - usleep(wait_time); + upm_delay_us(wait_time); } } diff --git a/examples/java/CMakeLists.txt b/examples/java/CMakeLists.txt index ed246b5e..4b5eb438 100644 --- a/examples/java/CMakeLists.txt +++ b/examples/java/CMakeLists.txt @@ -144,6 +144,7 @@ add_example(Jhd1313m1_Example jhd1313m1) add_example(Jhd1313m1_lcd_Example jhd1313m1) add_example(Joystick12_Example joystick12) add_example(KX122_Example kx122) +add_example(KXTJ3_Example kxtj3) add_example(Lcm1602_i2c_Example lcm1602) add_example(Lcm1602_parallel_Example lcm1602) add_example(LDT0028_Example ldt0028) diff --git a/examples/java/KXTJ3_Example.java b/examples/java/KXTJ3_Example.java new file mode 100755 index 00000000..578230f9 --- /dev/null +++ b/examples/java/KXTJ3_Example.java @@ -0,0 +1,49 @@ +/* +* The MIT License (MIT) +* +* Author: Assam Boudjelthia +* Copyright (c) 2018 Rohm Semiconductor. +* +* Permission is hereby granted, free of charge, to any person obtaining a copy of +* this software and associated documentation files (the "Software"), to deal in +* the Software without restriction, including without limitation the rights to +* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +* the Software, and to permit persons to whom the Software is furnished to do so, +* subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in all +* copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +public class KXTJ3_Example { + + public static void main(String[] args) throws InterruptedException { + + upm_kxtj3.KXTJ3 kxtj3 = new upm_kxtj3.KXTJ3(); + + kxtj3.SensorInit(upm_kxtj3.KXTJ3_ODR_T.KXTJ3_ODR_25, + upm_kxtj3.KXTJ3_RESOLUTION_T.HIGH_RES, + upm_kxtj3.KXTJ3_G_RANGE_T.KXTJ3_RANGE_16G_14); + + float waitTime = kxtj3.GetAccelerationSamplePeriod() * 1000; + int sampleCounter = 10; + System.out.println("Setting settings:\nODR: 25 Hz\nResolution: " + + "High\nAcceleration range: 16g with 14bits"); + System.out.println("Acceleration"); + upm_kxtj3.floatVector xyz; + while (sampleCounter-- > 0) { + xyz = kxtj3.GetAccelerationVector(); + System.out.println("x = " + xyz.get(0) + " y = " + xyz.get(1) + + " z = " + xyz.get(2)); + + Thread.sleep((long) waitTime); + } + } +} \ No newline at end of file diff --git a/examples/javascript/kxtj3.js b/examples/javascript/kxtj3.js new file mode 100755 index 00000000..2c4954ca --- /dev/null +++ b/examples/javascript/kxtj3.js @@ -0,0 +1,54 @@ +/* +* The MIT License (MIT) +* +* Author: Assam Boudjelthia +* Copyright (c) 2018 Rohm Semiconductor. +* +* Permission is hereby granted, free of charge, to any person obtaining a copy of +* this software and associated documentation files (the "Software"), to deal in +* the Software without restriction, including without limitation the rights to +* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +* the Software, and to permit persons to whom the Software is furnished to do so, +* subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in all +* copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +var kxtj3 = require("jsupm_kxtj3"); + +var kxtj3_sensor = new kxtj3.KXTJ3(0x0, 0x0f); + +kxtj3_sensor.SensorInit( + kxtj3.KXTJ3_ODR_25, + kxtj3.HIGH_RES, + kxtj3.KXTJ3_RANGE_16G_14); + +var waitTime = kxtj3_sensor.GetAccelerationSamplePeriod(); +var counter = 10; +console.log("Setting settings:\nODR: 25 Hz\nResolution: \ + High\nAcceleration range: 16g with 14bits"); +console.log("Accerleration: "); +var interval = setInterval(function() { + data = kxtj3_sensor.GetAccelerationVector(); + console.log( + "x: " + data.get(0) + " y: " + data.get(1) + " z: " + data.get(2) + ); + counter--; + if (counter == 0) { + clearInterval(interval); + } +}, waitTime * 1000); + +process.on("SIGINT", function() { + clearInterval(interval); + console.log("Exiting..."); + process.exit(0); +}); diff --git a/examples/python/kxtj3.py b/examples/python/kxtj3.py new file mode 100755 index 00000000..7d7ab530 --- /dev/null +++ b/examples/python/kxtj3.py @@ -0,0 +1,61 @@ +#!/usr/bin/env python + +# The MIT License (MIT) +# +# Author: Assam Boudjelthia +# Copyright (c) 2018 Rohm Semiconductor. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy of +# this software and associated documentation files (the "Software"), to deal in +# the Software without restriction, including without limitation the rights to +# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +# the Software, and to permit persons to whom the Software is furnished to do so, +# subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +# FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + +import time, sys, signal, atexit +from upm import pyupm_kxtj3 + + +def main(): + kxtj3_sensor = pyupm_kxtj3.KXTJ3(0x0, 0x0f) + + kxtj3_sensor.SensorInit(pyupm_kxtj3.KXTJ3_ODR_25, + pyupm_kxtj3.HIGH_RES, + pyupm_kxtj3.KXTJ3_RANGE_16G_14) + + # Prevent stack printing on CTRL^C + def SIGINTHandler(signum, frame): + raise SystemExit + + def exitHandler(): + print("Exiting") + sys.exit(0) + + atexit.register(exitHandler) + signal.signal(signal.SIGINT, SIGINTHandler) + + sampleCounter = 10 + waitTime = kxtj3_sensor.GetAccelerationSamplePeriod() + print("Setting settings:\nODR: 25 Hz\nResolution: " + "High\nAcceleration range: 16g with 14bits") + print("Acceleration:") + while sampleCounter > 0: + [x, y, z] = kxtj3_sensor.GetAccelerationVector() + + print ("x: %0.02f, y: %0.02f, z: %0.02f" % (x, y, z)) + + time.sleep(waitTime) + sampleCounter -= 1 + + +if __name__ == '__main__': + main() diff --git a/src/kxtj3/kxtj3.i b/src/kxtj3/kxtj3.i new file mode 100644 index 00000000..6f60f499 --- /dev/null +++ b/src/kxtj3/kxtj3.i @@ -0,0 +1,20 @@ +%include "../common_top.i" + +/* BEGIN Java syntax ------------------------------------------------------- */ +#ifdef SWIGJAVA +JAVA_JNI_LOADLIBRARY(javaupm_kxtj3) +#endif +/* END Java syntax */ + +/* BEGIN Common SWIG syntax ------------------------------------------------- */ +%include "std_vector.i" +%template(floatVector) std::vector; + +%apply float *OUTPUT {float *x, float *y, float *z}; + +%{ +#include "kxtj3.hpp" +%} +%include "kxtj3.h" +%include "kxtj3.hpp" +/* END Common SWIG syntax */ diff --git a/src/kxtj3/kxtj3.json b/src/kxtj3/kxtj3.json index 8ea6169c..3010938f 100755 --- a/src/kxtj3/kxtj3.json +++ b/src/kxtj3/kxtj3.json @@ -25,6 +25,15 @@ ], "C": [ "kxtj3.c" + ], + "Java": [ + "KXTJ3_Example.java" + ], + "Python": [ + "kxtj3.py" + ], + "Node.js": [ + "kxtj3.js" ] }, "Specifications": { @@ -60,4 +69,4 @@ } } } -} \ No newline at end of file +}