public I2CDeviceBase(int addr, ILogger logger, ITimer timer) : base(logger)
        {
            _timer = FluentGuard <ITimer> .On(timer).WhenNull().ThrowOnErrors();

            _addr          = addr;
            _deviceHandler = I2C.WiringPiI2CSetup(_addr);

            if (_deviceHandler < 1)
            {
                throw new I2CInitializationException(_addr);
            }

            LogDeviceStartup();
        }