/// <inheritdoc /> public async Task OpenGateAsync() { if (_i2c == null) { throw new InvalidOperationException("Unable to open gate while disconnected"); } if (Duration > 1000) { Duration = 1000; } ; _i2c.Write(_turnOnCommand); _currentStatus = DeviceStatus.Transitioning("Opening gate"); await Task.Delay(1000); _i2c.Write(_turnOffCommand); _currentStatus = DeviceStatus.Open("Opening gate"); }