2
0
mirror of synced 2025-02-22 06:28:04 +00:00

exp/sensor: set sensor interval on ios

Change-Id: I5559f721b2e2c7506db89f804569c0b0f78abea8
Reviewed-on: https://go-review.googlesource.com/14251
Reviewed-by: Nigel Tao <nigeltao@golang.org>
This commit is contained in:
Burcu Dogan 2015-09-02 22:39:10 -07:00
parent 679c68b58d
commit 7e79d05d9e
3 changed files with 7 additions and 4 deletions

View File

@ -15,12 +15,11 @@ package sensor
void GoIOS_createManager();
void GoIOS_startAccelerometer();
void GoIOS_startAccelerometer(float interval);
void GoIOS_stopAccelerometer();
void GoIOS_readAccelerometer(int64_t* timestamp, float* vector);
void GoIOS_destroyManager();
*/
import "C"
import (
@ -55,7 +54,8 @@ func (m *manager) enable(s Sender, t Type, delay time.Duration) error {
return fmt.Errorf("sensor: cannot enable; %v sensor is already enabled", t)
}
// TODO(jbd): Check if accelerometer is available.
C.GoIOS_startAccelerometer()
interval := float64(delay) / float64(time.Second)
C.GoIOS_startAccelerometer(C.float(interval))
channels.acceleroDone = make(chan struct{})
go m.runAccelerometer(s, delay, channels.acceleroDone)
case Gyroscope:

View File

@ -13,7 +13,8 @@ void GoIOS_createManager() {
manager = [[CMMotionManager alloc] init];
}
void GoIOS_startAccelerometer() {
void GoIOS_startAccelerometer(float interval) {
manager.accelerometerUpdateInterval = interval;
[manager startAccelerometerUpdates];
}

View File

@ -76,6 +76,7 @@ var m = newManager()
// Enable enables the specified sensor type with the given delay rate.
// Sensor events will be sent to s, a typical example of Sender
// implementations is app.App.
// Enable is not safe for concurrent use.
func Enable(s Sender, t Type, delay time.Duration) error {
if t < 0 || int(t) >= len(sensorNames) {
return errors.New("sensor: unknown sensor type")
@ -84,6 +85,7 @@ func Enable(s Sender, t Type, delay time.Duration) error {
}
// Disable disables to feed the manager with the specified sensor.
// Disable is not safe for concurrent use.
func Disable(t Type) error {
if t < 0 || int(t) >= len(sensorNames) {
return errors.New("sensor: unknown sensor type")