public void StartUpdating(int sampleCount = 3, int sampleIntervalDuration = 40, int standbyDuration = 100) { HorizontalInputPort.StartSampling(sampleCount, sampleIntervalDuration, standbyDuration); VerticalInputPort.StartSampling(sampleCount, sampleIntervalDuration, standbyDuration); }
//call to set the joystick center position public void SetCenterPosition() { var hCenter = HorizontalInputPort.ReadValue(); var vCenter = VerticalInputPort.ReadValue(); Calibration = new JoystickCalibration( hCenter, Calibration.HorizontalMin, Calibration.HorizontalMax, vCenter, Calibration.VerticalMin, Calibration.VerticalMax, Calibration.DeadZone); }
//call to set the joystick center position public async Task SetCenterPosition() { var hCenter = await HorizontalInputPort.Read(1); var vCenter = await VerticalInputPort.Read(1); Calibration = new JoystickCalibration( hCenter, Calibration.HorizontalMin, Calibration.HorizontalMax, vCenter, Calibration.VerticalMin, Calibration.VerticalMax, Calibration.DeadZone); }
void InitSubscriptions() { HorizontalInputPort.Subscribe ( new FilterableObserver <FloatChangeResult, float>( h => { HorizontalValue = h.New; if ((Math.Abs(h.Old - Calibration.HorizontalCenter) < Calibration.DeadZone) && (Math.Abs(h.New - Calibration.HorizontalCenter) < Calibration.DeadZone)) { return; } var oldH = GetNormalizedPosition(h.Old, true); var newH = GetNormalizedPosition(h.New, true); var v = GetNormalizedPosition(VerticalValue, false); RaiseEventsAndNotify ( new JoystickPositionChangeResult( new JoystickPosition(newH, v), new JoystickPosition(oldH, v) ) ); } ) ); VerticalInputPort.Subscribe ( new FilterableObserver <FloatChangeResult, float>( v => { VerticalValue = v.New; if ((Math.Abs(v.Old - Calibration.VerticalCenter) < Calibration.DeadZone) && (Math.Abs(v.New - Calibration.VerticalCenter) < Calibration.DeadZone)) { return; } var oldV = GetNormalizedPosition(v.Old, false); var newV = GetNormalizedPosition(v.New, false); var h = GetNormalizedPosition(HorizontalValue, true); RaiseEventsAndNotify ( new JoystickPositionChangeResult( new JoystickPosition(h, newV), new JoystickPosition(h, oldV) ) ); } ) ); }
public async Task SetRange(int duration) { var timeoutTask = Task.Delay(duration); float h, v; while (timeoutTask.IsCompleted == false) { h = await HorizontalInputPort.Read(); v = await VerticalInputPort.Read(); } }
public void SetRange(int duration) { var timeoutTask = DateTime.Now.AddMilliseconds(duration); float h, v; var tick = DateTime.Now; while (tick < timeoutTask) { h = HorizontalInputPort.ReadValue(); v = VerticalInputPort.ReadValue(); Thread.Sleep(20); tick = DateTime.Now; } }
void StartSamplingVertical() { int sampleCount = samplingSettingVertical.sampleCount; int sampleIntervalDuration = samplingSettingVertical.sampleIntervalDuration; int standbyDuration = samplingSettingVertical.standbyDuration; var counter = 0; var total = 0f; var average = 0f; for (int i = 0; i < sampleCount; i++) { // read the voltage var temp = VerticalInputPort.ReadValue(); /* * if ((Math.Abs(h.Old - Calibration.VerticalCenter) < Calibration.DeadZone) && * (Math.Abs(h.New - Calibration.VerticalCenter) < Calibration.DeadZone)) * { * return; * } */ total += temp; counter++; average = total / counter; if (!IsSamplingVertical) { break; } Thread.Sleep(sampleIntervalDuration); } IsSamplingVertical = false; VerticalValue = average; var newV = GetNormalizedPosition(VerticalValue, true); var h = GetNormalizedPosition(HorizontalValue, false); RaiseEventsAndNotify ( new JoystickPosition(h, newV) ); }
public void StopUpdating() { HorizontalInputPort.StopSampling(); VerticalInputPort.StopSampling(); }
public Task <float> GetVerticalValue() { return(VerticalInputPort.Read()); }
public float GetVerticalValue() { return(VerticalInputPort.ReadValue()); }