public int ReadPin(string name) { GPIOPinDriver drv = GetDriver(name); if (drv == null) { Console.WriteLine("Driver not found"); return(0); } if (drv.State == GPIOPinDriver.GPIOState.High) { return(1); } return(0); }
public GPIORepository() { _boiler = new Boiler(); elementPin = new GPIOPinDriver(GPIOPinDriver.Pin.GPIO14); // Set it as an output pin. elementPin.Direction = GPIOPinDriver.GPIODirection.Out; // Give it power. elementPin.State = GPIOPinDriver.GPIOState.Low; pumpPin = new GPIOPinDriver(GPIOPinDriver.Pin.GPIO15); // Set it as an output pin. pumpPin.Direction = GPIOPinDriver.GPIODirection.Out; // Give it power. pumpPin.State = GPIOPinDriver.GPIOState.Low; }
/* * public void DoTest() * { * * GPIOPinDriver drv = new GPIOPinDriver(GPIOPinDriver.Pin.GPIO17, _bSimulationMode); * drv.Direction = GPIOPinDriver.GPIODirection.Out; * * for (int n = 0; n < 10; n++) * { * drv.State = GPIOPinDriver.GPIOState.High; * Thread.Sleep(100); * drv.State = GPIOPinDriver.GPIOState.Low; * Thread.Sleep(100); * } * * * drv.Unexport(); * * }*/ public void PulsePin(string name, int nDurationMs) { Task <string> obTask = Task.Run(() => { GPIOPinDriver drv = GetDriver(name); if (drv == null) { Console.WriteLine("Driver not found"); return("Not OK"); } Console.WriteLine("Switch on:" + name); drv.State = GPIOPinDriver.GPIOState.High; Thread.Sleep(nDurationMs); drv.State = GPIOPinDriver.GPIOState.Low; Console.WriteLine("Switch off:" + name); return("OK"); }); }