private bool disposedValue = false; // To detect redundant calls void Dispose(bool disposing) { if (!disposedValue) { if (disposing) { // TODO: dispose managed state (managed objects). this.conn.Close(); this.conn.Dispose(); this.conn = null; pushButton.ValueChanged -= PushButton_ValueChanged; pushButton.Dispose(); pushButton = null; _servoPin.Dispose(); _servoPin = null; foreach (FinishGate fg in FinishGates) { fg.Dispose(); } } // TODO: free unmanaged resources (unmanaged objects) and override a finalizer below. // TODO: set large fields to null. disposedValue = true; } }
public void Dispose() { Rpin.Stop(); Gpin.Stop(); Bpin.Stop(); Rpin.Dispose(); Gpin.Dispose(); Bpin.Dispose(); }
private void Timer_Tick(ThreadPoolTimer timer) { if (iteration > 4) { timer.Cancel(); motorPin.Stop(); motorPin.Dispose(); return; } iteration++; System.Diagnostics.Debug.WriteLine(iteration); if (iteration == 1 || iteration == 3) { currentPulseLength = ClockwisePulseLength; secondPulseLength = CounterClockwisePulseLength; } if (iteration == 2 || iteration == 4) { currentPulseLength = CounterClockwisePulseLength; secondPulseLength = ClockwisePulseLength; } double desiredPercentage = currentPulseLength / (1000.0 / pwmController.ActualFrequency); motorPin.SetActiveDutyCyclePercentage(desiredPercentage); }
/// <summary> /// Will dispose all related attributes. /// </summary> public void Dispose() { // Cancel timers captiveButtonsValueReadTimer.Cancel(); temperatureValueReadTimer.Cancel(); pressureValueReadTimer.Cancel(); // Dispose child controller apa102.Dispose(); bmp280.Dispose(); ht16k33.Dispose(); // Dispose pins redPin.Dispose(); greenPin.Dispose(); bluePin.Dispose(); buttonAPin.Dispose(); buttonBPin.Dispose(); buttonCPin.Dispose(); buzzerPin.Dispose(); // Dispose controllers pwmController = null; i2cController = null; gpioController = null; }
/// <inheritdoc/> public void Dispose() { if (bluePin != null) { if (bluePin.IsStarted) { bluePin.Stop(); } bluePin.Dispose(); bluePin = null; } if (greenPin != null) { if (greenPin.IsStarted) { greenPin.Stop(); } greenPin.Dispose(); greenPin = null; } if (redPin != null) { if (redPin.IsStarted) { redPin.Stop(); } redPin.Dispose(); redPin = null; } }
/// <summary> /// Disposes the underlying objects. This method will be called automatically and should not be called by user /// code, but inheritors should call the base method. /// </summary> protected override void DisposeResource() { if (_pin != null) { _pin.Dispose(); _pin = null; } }
/// <summary> /// Free up our resources. /// </summary> public void Dispose() { pin.Dispose(); pin = null; t.Dispose(); t = null; }
private void DisposePin(PwmPin pin) { if (pin != null) { StopPin(pin); pin.Dispose(); pin = null; } }
virtual protected void Dispose(bool disposing) { if (disposing) { _pin.Stop(); _pin.Dispose(); _pin = null; } }
static void Main() { var _config = new configs.config(configs.Configuration.GetConfiguration()); Console.WriteLine("Starting... RaspiFanController StartingSettings is..."); Console.WriteLine($"PwmPin :{_config.PWMPin} GpioLogicPin: {_config.LogicPin}"); Console.WriteLine("\n**FanSpeedSettings"); Console.WriteLine($"*Frequency: {_config.PwmFrequency}Hz FanMaxSpeed: {_config.MaxSpeed}% FanMinSpeed: {_config.MinSpeed}%"); Console.WriteLine($"*FanMaxTemp:{_config.MaxSpeedTemp}C FanMinTemp: {_config.MinSpeedTemp}C"); using (var logicPin = new DigitalPin(_config.LogicPin, GpioPinDirection.Out)) using (var pwmPin = new PwmPin(_config.PWMPin, _config.PwmFrequency, 1)) { Console.CancelKeyPress += (s, e) => { Console.WriteLine("終了中..."); logicPin.Dispose(); pwmPin.Dispose(); }; logicPin.State = true; Thread.Sleep(3000); while (true) { float perSpeed = 1; if (!float.TryParse(File.ReadAllText("/sys/class/thermal/thermal_zone0/temp"), out float temp)) { return; } temp /= 1000; if (_config.MaxSpeedTemp != _config.MinSpeedTemp) { float perTemp = (temp - _config.MinSpeedTemp) / (_config.MaxSpeedTemp - _config.MinSpeedTemp); perSpeed = (_config.MinSpeed + ((_config.MaxSpeed - _config.MinSpeed) * perTemp)) / 100; if (perTemp >= 1) { perSpeed = _config.MaxSpeed; } if (perTemp <= 0) { perSpeed = _config.MaxSpeed > _config.MinSpeed ? _config.MaxSpeed : _config.MinSpeed; } } perSpeed = Math.Min(Math.Max(perSpeed, 0), 1); Console.WriteLine($"[{DateTime.Now:yyyy/mm/dd HH:MM:ss}] Temp: {temp}C, Spd: {perSpeed * 100}%"); pwmPin.Duty = perSpeed; Thread.Sleep(_config.GetStatePeriod * 1000); } } }
/// <summary> /// Cleanup /// </summary> public void Dispose() { redPin.Stop(); redPin.Dispose(); greenPin.Stop(); greenPin.Dispose(); bluePin.Stop(); bluePin.Dispose(); }
/// <summary> /// Disposes of the object releasing control the pins. /// </summary> /// <param name="disposing">Whether or not this method is called from Dispose().</param> private void Dispose(bool disposing) { if (Disposed) { return; } if (disposing) { PwmPin.Dispose(); _directionPin1.Dispose(); _directionPin2.Dispose(); } Disposed = true; }
private async void Button_Click(object sender, RoutedEventArgs e) { await load(); try { var id = int.Parse(gpio.Text); switch (pwmselect.SelectedIndex) { case 1: case 0: { gpioPin?.Dispose(); gpioPin = null; pwmPin?.Dispose(); pwmPin = null; try { pwmPin = pwmController.OpenPin(id); } catch (Exception err) { _ = new MessageDialog("打开指定硬件PWM GPIO接口失败" + err.ToString()).ShowAsync(); } } break; default: { if (gpioController.TryOpenPin(id, GpioSharingMode.Exclusive, out var pin, out var gpioOpenStatus)) { pwmPin?.Dispose(); pwmPin = null; gpioPin?.Dispose(); gpioPin = null; gpioPin = pin; } else { _ = new MessageDialog("打开指定GPIO接口失败").ShowAsync(); } }
private void MainPage_Unloaded(object sender, RoutedEventArgs e) { pwmPin.Stop(); pwmPin.Dispose(); timer.Stop(); }
static async Task MainAsync() { string input = ""; bool exit = input.Equals("exit"); UpBridge.Up upb = new UpBridge.Up(); Console.WriteLine("UWP console PWM test:"); PwmController controller = await PwmController.GetDefaultAsync(); pin1.pin = 0; //print Board INFO Console.WriteLine(upb.BoardGetManufacture() + "\n" + "Board Name: " + upb.BoardGetName() + "\n" + "BIOS Ver: " + upb.BoardGetBIOSVersion() + "\n" + "Firmware Ver:" + upb.BoardGetFirmwareVersion().ToString("X") + "\n"); PwmPin pin = controller.OpenPin(0); Console.WriteLine(Usage); while (exit == false) { Console.Write(pin1.pin.ToString() + ">"); input = Console.ReadLine(); string[] inputnum = input.Split(' '); switch (inputnum[0].ToLower()) { case "list": pwmlist(); break; case "set": if (inputnum.Length == 2) { int pin_convert; if (int.TryParse(inputnum[1], out pin_convert)) { if (pin_convert == pin1.pin) { Console.WriteLine("This Pin is currently setting"); } else { pin1.pin = pin_convert; try { controller = await PwmController.GetDefaultAsync(); pin = controller.OpenPin(pin1.pin); } catch (Exception e) { Console.WriteLine(e.Message); } Console.WriteLine("You select pin " + pin1.pin + " to set"); } } else { Console.WriteLine("Please input : set {int}"); } } else { Console.WriteLine("Please input : set {int}"); } break; case "get": if (inputnum.Length == 1) { Console.WriteLine("Pin " + pin1.pin + "\n"); Console.WriteLine("Max Frequency : " + controller.MaxFrequency + "\n"); Console.WriteLine("Min Frequency : " + controller.MinFrequency + "\n"); Console.WriteLine("Actual Frequency : " + controller.ActualFrequency + "\n"); Console.WriteLine("Duty Cycle : " + pin.GetActiveDutyCyclePercentage() + "\n"); Console.WriteLine("Pin Status : " + pin.IsStarted + "\n"); } else { Console.WriteLine("Please input : get"); } break; case "frequency": if (inputnum.Length == 2) { try { if (double.TryParse(inputnum[1], out pin1.pin_ActualFrequency)) { Console.WriteLine("Frequency set : " + pin1.pin_ActualFrequency); controller.SetDesiredFrequency(pin1.pin_ActualFrequency); pin.Start(); } else { Console.WriteLine("Please input : frequency {double}"); } } catch (Exception e) { Console.WriteLine(e.Message); } } else { Console.WriteLine("Please input : frequency {double}"); } break; case "duty": if (inputnum.Length == 2) { try { if (double.TryParse(inputnum[1], out pin1.pin_DutyCycle)) { Console.WriteLine("duty set : " + pin1.pin_DutyCycle); pin.SetActiveDutyCyclePercentage(pin1.pin_DutyCycle); pin.Start(); } else { Console.WriteLine("Please input : duty {double}"); } } catch (Exception e) { Console.WriteLine(e.Message); } } else { Console.WriteLine("Please input : duty {double}"); } break; case "exit": exit = inputnum[0].Equals("exit"); pin.Dispose(); break; case "help": default: Console.WriteLine(Usage); break; } } }
public void Dispose() { m_PwmPin.Dispose(); }
public void Dispose() { Singal.Stop(); Singal.Dispose(); }