public static IObservable <Unit> ButtonBReleaseTriggerObservable(this IAxisOrangeSensor sensor) { return(sensor .ReactiveButton() .Pairwise() .Where(x => x.Previous.buttonB == ButtonState.Push && x.Current.buttonB == ButtonState.Release) .Select(_ => Unit.Default)); }
void SubscriteEvents(IAxisOrangeSensor sensor, CompositeDisposable disposables) { sensor .ReactiveSensorData() .ObserveOnMainThread() .Subscribe(x => { SensorDataUpdateEvent.Invoke(sensor.SensorId, new AxisOrangeUnityData(x)); }) .AddTo(disposables); sensor .ReactiveButton() .ObserveOnMainThread() .Subscribe(x => { SensorButtonUpdateEvent.Invoke(sensor.SensorId, x); }) .AddTo(disposables); }
void Awake() { sensor = new AxisOrangeSensor(serialPortNo); }
public static IReadOnlyReactiveProperty <AxisOrangeData> ReactiveSensorData(this IAxisOrangeSensor sensor) { return(Observable .FromEvent <AxisOrangeData>(h => sensor.OnSensorDataUpdate += h, h => sensor.OnSensorDataUpdate -= h) .ToReadOnlyReactiveProperty()); }
public static IReadOnlyReactiveProperty <AxisOrangeUnityData> ReactiveUnityData(this IAxisOrangeSensor sensor) { return(sensor .ReactiveSensorData() .Select(x => new AxisOrangeUnityData(x)) .ToReadOnlyReactiveProperty()); }