12-27-2017 14:48
12-27-2017 14:48
Hello everyone,
I followed the documentation, but I can't get access to all the sensors. Can anyone confirm that?
Here's my code:
import { Accelerometer } from "accelerometer"; import { Barometer } from "barometer"; import { HeartRateSensor } from "heart-rate"; import { Gyroscope } from "gyroscope"; import { OrientationSensor } from "orientation";
console.log("App Started"); let accel = new Accelerometer(); let bar = new Barometer(); let hrm = new HeartRateSensor(); let gyro = new Gyroscope(); let orientation = new OrientationSensor({ frequency: 60 }); accel.start(); bar.start(); hrm.start(); gyro.start(); orientation.start(); function refreshData() { console.log("accel:", accel.timestamp, "bar:", bar.pressure, "hrm:", hrm.heartRate, "gyro:", gyro.timestamp, "orientation", orientation.timestamp ); } refreshData(); setInterval(refreshData, 2000);
Answered! Go to the Best Answer.
12-28-2017 14:03
12-28-2017 14:03
I wrote this some time ago, so I had to change 'appbit' to 'me' in the import { appbit } from "appbit" to get it to work for me, but otherwise the orientation and gyro log for me.
My only other suggestion would be to restart your watch and see if that gets those sensors to start working.
12-27-2017 19:00
12-27-2017 19:00
Have you configured the relevant permissions in the project configuration (package.json) file?
12-28-2017 00:46
12-28-2017 00:46
Hi allyann,
yes I selected all permissios. But I only get values for the heartbeat and the barometric pressure.
The other sensors return NULL.
12-28-2017 01:19
12-28-2017 01:19
The following code works, Just beware that if you increase the sampling rate (frequency), the logging can cause studio to hang.
import document from "document";
import { Gyroscope } from "gyroscope";
import { OrientationSensor } from "orientation";
import { HeartRateSensor } from "heart-rate";
import { appbit } from "appbit";
console.log("App Started");
// Create a new instance of the Gyroscope object
let gyro = new Gyroscope({ frequency: 1 });
let orientation = new OrientationSensor({ frequency: 1 });
let hrm = new HeartRateSensor({ frequency: 1 });
var gyroXElement = document.getElementById("gyro-x");
var gyroYElement = document.getElementById("gyro-y");
var gyroZElement = document.getElementById("gyro-z");
hrm.onreading = function() {
console.log(hrm.timestamp + ": " + hrm.heartRate);
}
gyro.onreading = function() {
var x = gyro.x.toFixed(3);
var y = gyro.y.toFixed(3);
var z = gyro.z.toFixed(3);
gyroXElement.text = x;
gyroYElement.text = y;
gyroZElement.text = z;
let gyroData = {
gyro: {
ts: gyro.timestamp,
x: x ? x : 0,
y: y ? y : 0,
z: z ? z : 0
},
};
console.log(JSON.stringify(gyroData));
}
orientation.onreading = function() {
let data = {
orientation: {
ts: orientation.timestamp,
q0: orientation.quaternion[0],
q1: orientation.quaternion[1],
q2: orientation.quaternion[2],
q4: orientation.quaternion[3],
},
};
console.log(JSON.stringify(data));
}
me.onunload = function() {
gyro.stop();
orientation.stop();
hrm.stop();
}
// Begin monitoring the sensor
orientation.start();
gyro.start();
hrm.start();
12-28-2017 13:09
12-28-2017 13:09
Unfortunately, your code doesn't work either.
Only HRM is printed. Orientation and Gyroscope doesn`t appear.
Here is the console log
[22:03:06]App Started app/index.js:20,1[22:03:06]361512852: 56 app/index.js:20,1[22:03:06]361512908: 56 app/index.js:20,1[22:03:07]361513926: 56
... [HOST][22:03:15]App Closed
12-28-2017 14:03
12-28-2017 14:03
I wrote this some time ago, so I had to change 'appbit' to 'me' in the import { appbit } from "appbit" to get it to work for me, but otherwise the orientation and gyro log for me.
My only other suggestion would be to restart your watch and see if that gets those sensors to start working.
12-30-2017 05:44
12-30-2017 05:44
After some resets my Ionic suddenly started to get values for some reason.
Thanks for your input.
12-30-2017 15:53
12-30-2017 15:53
you are welcome 🙂