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:
parent
679c68b58d
commit
7e79d05d9e
@ -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:
|
||||
|
@ -13,7 +13,8 @@ void GoIOS_createManager() {
|
||||
manager = [[CMMotionManager alloc] init];
|
||||
}
|
||||
|
||||
void GoIOS_startAccelerometer() {
|
||||
void GoIOS_startAccelerometer(float interval) {
|
||||
manager.accelerometerUpdateInterval = interval;
|
||||
[manager startAccelerometerUpdates];
|
||||
}
|
||||
|
||||
|
@ -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")
|
||||
|
Loading…
x
Reference in New Issue
Block a user