public I2CHardwareBridge(I2CSlaveAddress address, II2CBusService i2CBus, ISchedulerService schedulerService) { if (i2CBus == null) { throw new ArgumentNullException(nameof(i2CBus)); } if (schedulerService == null) { throw new ArgumentNullException(nameof(schedulerService)); } _address = address; _i2CBus = i2CBus; DHT22Accessor = new DHT22Accessor(this, schedulerService); }
protected abstract float GetValueInternal(int sensorId, DHT22Accessor dht22Accessor);
protected DHT22SensorBase(int id, DHT22Accessor dht22Accessor) { _id = id; _dht22Accessor = dht22Accessor ?? throw new ArgumentNullException(nameof(dht22Accessor)); dht22Accessor.ValuesUpdated += (s, e) => UpdateValue(); }