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>
Signed-off-by: Noel Eck <noel.eck@intel.com>
This commit is contained in:
Assam Boudjelthia 2018-06-21 12:19:29 +03:00 committed by Noel Eck
parent 01cc3a0734
commit 186bbfab76
7 changed files with 197 additions and 2 deletions

View File

@ -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);
}
}

View File

@ -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)

View 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
View 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
View 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
View 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 */

View File

@ -25,6 +25,15 @@
],
"C": [
"kxtj3.c"
],
"Java": [
"KXTJ3_Example.java"
],
"Python": [
"kxtj3.py"
],
"Node.js": [
"kxtj3.js"
]
},
"Specifications": {
@ -60,4 +69,4 @@
}
}
}
}
}