// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using Iot.Device.Bmxx80;
using Iot.Device.Bmxx80.CalibrationData;
using Iot.Device.Bmxx80.Register;
using NucuCar.Sensors.Environment.Bmxx80.Register;
namespace NucuCar.Sensors.Environment.Bmxx80.CalibrationData
{
///
/// Calibration data for the BME280.
///
internal class Bme280CalibrationData : Bmp280CalibrationData
{
public byte DigH1 { get; set; }
public short DigH2 { get; set; }
public ushort DigH3 { get; set; }
public short DigH4 { get; set; }
public short DigH5 { get; set; }
public sbyte DigH6 { get; set; }
///
/// Read coefficient data from device.
///
/// The to read coefficient data from.
protected internal override void ReadFromDevice(Bmxx80Base bmxx80Base)
{
// Read humidity calibration data.
DigH1 = bmxx80Base.Read8BitsFromRegister((byte)Bme280Register.DIG_H1);
DigH2 = (short)bmxx80Base.Read16BitsFromRegister((byte)Bme280Register.DIG_H2);
DigH3 = bmxx80Base.Read8BitsFromRegister((byte)Bme280Register.DIG_H3);
DigH4 = (short)((bmxx80Base.Read8BitsFromRegister((byte)Bme280Register.DIG_H4) << 4) | (bmxx80Base.Read8BitsFromRegister((byte)Bme280Register.DIG_H4 + 1) & 0xF));
DigH5 = (short)((bmxx80Base.Read8BitsFromRegister((byte)Bme280Register.DIG_H5 + 1) << 4) | (bmxx80Base.Read8BitsFromRegister((byte)Bme280Register.DIG_H5) >> 4));
DigH6 = (sbyte)bmxx80Base.Read8BitsFromRegister((byte)Bme280Register.DIG_H6);
base.ReadFromDevice(bmxx80Base);
}
}
}