/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
* Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.
*
* This file is available and licensed under the following license:
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* * Neither the name of Sun Microsystems nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package accelerometertest;
import javafx.animation.*;
import javafx.stage.Stage;
import javafx.scene.*;
import javafx.scene.shape.*;
import javafx.scene.paint.*;
import javafx.scene.text.Text;
import javafx.scene.text.Font;
import javax.microedition.sensor.*;
import javax.microedition.io.Connector;
import javax.microedition.sensor.control.*;
var axisX = 0.0;
var axisY = 0.0;
var axisZ = 0.0;
println("getting data");
var sensors = SensorManager.findSensors("acceleration", null);
SensorUtil.dumpInfo();
println("sensors = {sensors}");
var accel = sensors[0];
println("infos = {accel.getChannelInfos()}");
var infosLen = accel.getChannelInfos().length;
var accelInfo = accel.getChannelInfos()[0];
println("info = {accelInfo} - {accelInfo.getName()} type = {accelInfo.getDataType()}");
var accelUrl = accel.getUrl();
println("accel url = {accelUrl}");
var accelConn: SensorConnection =
Connector.open(accelUrl) as SensorConnection;
function getData():Void {
if(accelInfo.getDataType() == ChannelInfo.TYPE_DOUBLE) {
var data: Data[] = accelConn.getData(1);
axisX = data[0].getDoubleValues()[0];
axisY = data[1].getDoubleValues()[0];
axisZ = data[2].getDoubleValues()[0];
println("accel values = x,y,z = {axisX}, {axisY}, {axisZ}");
}
}
var loop = Timeline {
repeatCount: Timeline.INDEFINITE
keyFrames: KeyFrame { time: 100ms action: getData };
}
loop.play();
var scene:Scene = Scene {
fill: Color.DARKRED
content: Group {
content:
Circle {
centerX: bind scene.width/2 * (1 + axisX)
centerY: bind scene.height/2 * (1 + axisY)
fill: Color.RED
radius: 20
}
}
};
Stage {
scene: scene
width: 320
height: 240
}