-
-
Save INTERNALINTERFERENCE/063a433f98164ff5419b9905db57b9b0 to your computer and use it in GitHub Desktop.
iot
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System.Device.Gpio; | |
using System.Device.Gpio.Drivers; | |
var _gpioController = new GpioController( | |
numberingScheme: PinNumberingScheme.Logical, | |
driver: new SysFsDriver()); | |
var relayPin = 128 + 18; | |
Console.WriteLine("open pin"); | |
_gpioController.OpenPin(relayPin); | |
Console.WriteLine("set pin mode to input"); | |
_gpioController.SetPinMode | |
( | |
relayPin, | |
PinMode.Input | |
); | |
Console.WriteLine("subscribe"); | |
Subscribe(); | |
ConsoleKeyInfo cki; | |
Console.WriteLine("press c to start"); | |
cki = Console.ReadKey(); | |
Console.WriteLine("start test relay process"); | |
if(cki.Key == ConsoleKey.C) | |
{ | |
Console.WriteLine("set pin mode to output"); | |
_gpioController.SetPinMode( | |
relayPin, | |
PinMode.Output | |
); | |
Console.WriteLine("write value"); | |
_gpioController.Write( | |
relayPin, | |
PinValue.High | |
); | |
Console.WriteLine("set pin mode to input"); | |
_gpioController.SetPinMode( | |
relayPin, | |
PinMode.Input | |
); | |
Console.WriteLine("resubscribe"); | |
Unsubscribe(); | |
Subscribe(); | |
} | |
void Subscribe() | |
{ | |
_gpioController.RegisterCallbackForPinValueChangedEvent( | |
pinNumber: relayPin, | |
eventTypes: PinEventTypes.Rising, | |
callback: (_, args) => | |
{ | |
Console.WriteLine($"{args.PinNumber} is rising"); | |
}); | |
_gpioController.RegisterCallbackForPinValueChangedEvent( | |
pinNumber: relayPin, | |
eventTypes: PinEventTypes.Falling, | |
callback: (_, args) => | |
{ | |
Console.WriteLine($"{args.PinNumber} is falling"); | |
}); | |
} | |
void Unsubscribe() | |
{ | |
_gpioController.UnregisterCallbackForPinValueChangedEvent( | |
pinNumber: relayPin, | |
callback: (_, _) => | |
{ | |
Console.WriteLine("unsubscribed"); | |
}); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment