public bool Handle(Command command) { EapiGpioId pin; if (_onCommandMap.TryGetValue(command.CommandDefinition.Uri, out pin)) { _gpioDriver.SetLevel(pin, GpioLevelEnum.EapiGpioHigh); var gpioLevel = _gpioDriver.GetLevel(); _action(new SgetDatapointValue(gpioLevel.GetLevelOf(pin), command.CommandDefinition.RelatedDatapoint)); return(true); } if (_offCommandMap.TryGetValue(command.CommandDefinition.Uri, out pin)) { _gpioDriver.SetLevel(pin, GpioLevelEnum.EapiGpioLow); var gpioLevel = _gpioDriver.GetLevel(); _action(new SgetDatapointValue(gpioLevel.GetLevelOf(pin), command.CommandDefinition.RelatedDatapoint)); return(true); } return(false); }