private void InitInterruptEvents()
{
var gpioAttr = GetType().GetCustomAttributes(true).First(x => x is GPIOAttribute) as GPIOAttribute;
var numberOfGPIOInputs = gpioAttr.NumberOfInputs;
interruptEvents = new ManualResetEvent[numberOfGPIOInputs];
for(var i = 0; i < interruptEvents.Length; i++)
{
interruptEvents[i] = new ManualResetEvent(interruptState != null && interruptState[i]);
}
}