/// <summary> /// Creates an instance at the specified I2C <paramref name="address"/> with custom settings. /// </summary> /// <param name="address"> /// I2C slave address of the chip. /// This is a physical property, not a software option. /// </param> /// <param name="fast"> /// Set true for I2C <see cref="I2cBusSpeed.FastMode"/> or false for <see cref="I2cBusSpeed.StandardMode"/>. /// </param> /// <param name="exclusive"> /// Set true for I2C <see cref="I2cSharingMode.Exclusive"/> or false for <see cref="I2cSharingMode.Shared"/>. /// </param> /// <param name="rate">Sampling rate.</param> public Ms5611Device(int address, bool fast, bool exclusive, Ms5611Osr rate) : base(address, fast, exclusive) { // Initialize members Prom = new Ms5611PromData(); Osr = rate; // Read current calibration data (potentially not stable until next reset) // We don't reset automatically so that it is possible for any ongoing tasks to complete ReadProm(); }