public LinuxPinController(IAsyncFileUtil fileUtils, IIoPinControllerLogger logger, ITaskSchedulerUtility taskSchedulerUtility) : base((pinNumber) => new LinuxInputPin(pinNumber, fileUtils, logger), (pinNumber) => new LinuxOutputPin(pinNumber, fileUtils, logger), taskSchedulerUtility) { }
protected PinController(Func <int, TInputPin> cerateInputPinFunction, Func <int, TOutputPin> createOutputPinFunction, ITaskSchedulerUtility taskSchedulerUtility) { _createInputPinFunction = cerateInputPinFunction; _createOutputPinFunction = createOutputPinFunction; ConfiguredInputPins = ImmutableDictionary.Create <int, TInputPin>(); ConfiguredOutputPins = ImmutableDictionary.Create <int, TOutputPin>(); _taskScheduler = taskSchedulerUtility.GetScheduler(); _continuouslyCheckingInputPinsTask = new Task <Task>(ContinuouslyCheckingInputPins, TaskCreationOptions.LongRunning); }