enum ErrorRangeOption {
Rpm_0,
Rpm_50,
Rpm_100,
Rpm_200,
}
#[repr(u8)]
pub enum Registers {
Configuration = 0x20,
FanStatus = 0x24,
FanStallStatus = 0x25,
FanSpinStatus = 0x26,
DriveFailStatus = 0x27,
FanInterruptEnable = 0x29,
PwmPolarityConfig = 0x2A,
PwmOutputConfig = 0x2B,
PwmBaseF45 = 0x2C,
PwmBaseF123 = 0x2D,
Fan1Setting = 0x30,
Pwm1Divide = 0x31,
Fan1Configuration1 = 0x32,
Fan1Configuration2 = 0x33,
Gain1 = 0x35,
Fan1SpinUpConfiguration = 0x36,
Fan1MaxStep = 0x37,
Fan1MinimumDrive = 0x38,
Fan1ValidTachCount = 0x39,
Fan1DriveFailBandLowByte = 0x3A,
Fan1DriveFailBandHighByte = 0x3B,
Tach1TargetLowByte = 0x3C,
Tach1TargetHighByte = 0x3D,
Tach1ReadingHighByte = 0x3E,
Tach1ReadLowByte = 0x3F,
Fan2Setting = 0x40,
Pwm2Divide = 0x41,
Fan2Configuration1 = 0x42,
Fan2Configuration2 = 0x43,
Gain2 = 0x45,
Fan2SpinUpConfiguration = 0x46,
Fan2MaxStep = 0x47,
Fan2MinimumDrive = 0x48,
Fan2ValidTachCount = 0x49,
Fan2DriveFailBandLowByte = 0x4A,
Fan2DriveFailBandHighByte = 0x4B,
Tach2TargetLowByte = 0x4C,
Tach2TargetHighByte = 0x4D,
Tach2ReadingHighByte = 0x4E,
Tach2ReadLowByte = 0x4F,
Fan3Setting = 0x50,
Pwm3Divide = 0x51,
Fan3Configuration1 = 0x52,
Fan3Configuration2 = 0x53,
Gain3 = 0x55,
Fan3SpinUpConfiguration = 0x56,
Fan3MaxStep = 0x57,
Fan3MinimumDrive = 0x58,
Fan3ValidTachCount = 0x59,
Fan3DriveFailBandLowByte = 0x5A,
Fan3DriveFailBandHighByte = 0x5B,
Tach3TargetLowByte = 0x5C,
Tach3TargetHighByte = 0x5D,
Tach3ReadingHighByte = 0x5E,
Tach3ReadLowByte = 0x5F,
}