mirror of
				https://github.com/eclipse/upm.git
				synced 2025-11-04 17:14:54 +03:00 
			
		
		
		
	kxtj3: Add java/python/javascript examples
* Java/Python/Javascript examples * change usleep to upm_delay_us in C++ example * Add Java example to CMakeLists Signed-off-by: Assam Boudjelthia <assam.boudjelthia@fi.rohmeurope.com>
This commit is contained in:
		@@ -27,6 +27,7 @@
 | 
			
		||||
#include <unistd.h>
 | 
			
		||||
#include <signal.h>
 | 
			
		||||
#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);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										49
									
								
								examples/java/KXTJ3_Example.java
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										49
									
								
								examples/java/KXTJ3_Example.java
									
									
									
									
									
										Executable file
									
								
							@@ -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);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										54
									
								
								examples/javascript/kxtj3.js
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										54
									
								
								examples/javascript/kxtj3.js
									
									
									
									
									
										Executable file
									
								
							@@ -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);
 | 
			
		||||
});
 | 
			
		||||
							
								
								
									
										61
									
								
								examples/python/kxtj3.py
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										61
									
								
								examples/python/kxtj3.py
									
									
									
									
									
										Executable file
									
								
							@@ -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()
 | 
			
		||||
							
								
								
									
										20
									
								
								src/kxtj3/kxtj3.i
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								src/kxtj3/kxtj3.i
									
									
									
									
									
										Normal file
									
								
							@@ -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<float>;
 | 
			
		||||
 | 
			
		||||
%apply float *OUTPUT {float *x, float *y, float *z};
 | 
			
		||||
 | 
			
		||||
%{
 | 
			
		||||
#include "kxtj3.hpp"
 | 
			
		||||
%}
 | 
			
		||||
%include "kxtj3.h"
 | 
			
		||||
%include "kxtj3.hpp"
 | 
			
		||||
/* END Common SWIG syntax */
 | 
			
		||||
@@ -25,6 +25,15 @@
 | 
			
		||||
                ],
 | 
			
		||||
                "C": [
 | 
			
		||||
                    "kxtj3.c"
 | 
			
		||||
                ],
 | 
			
		||||
                "Java": [
 | 
			
		||||
                    "KXTJ3_Example.java"
 | 
			
		||||
                ],
 | 
			
		||||
                "Python": [
 | 
			
		||||
                    "kxtj3.py"
 | 
			
		||||
                ],
 | 
			
		||||
                "Node.js": [
 | 
			
		||||
                    "kxtj3.js"
 | 
			
		||||
                ]
 | 
			
		||||
            },
 | 
			
		||||
            "Specifications": {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user