@@ -215,6 +215,7 @@ def __init__(
215215 filt : int = FILTER_7 ,
216216 oversampling : int = OSR_3 ,
217217 temperature_compensation : bool = False ,
218+ temperature_oversampling : int = OSR_0 ,
218219 offset : int = 0 ,
219220 debug : bool = False ,
220221 ) -> None :
@@ -226,6 +227,7 @@ def __init__(
226227 self ._osr = oversampling
227228 self ._gain_current = gain
228229 self ._temperature_compensation = temperature_compensation
230+ self ._osr2 = temperature_oversampling
229231 # Typical value according the application note
230232 self ._tref = 0xB668
231233 self ._off_x = self ._off_y = self ._off_z = offset
@@ -387,7 +389,7 @@ def filter(self, level: int) -> None:
387389
388390 @property
389391 def oversampling (self ) -> int :
390- """The oversampling level."""
392+ """The magnetic sensor oversampling level."""
391393 return self ._osr
392394
393395 @oversampling .setter
@@ -414,6 +416,21 @@ def temperature_compensation(self, temperature_compensation: bool) -> None:
414416 self .write_reg (_CMD_REG_CONF2 , reg )
415417 self ._temperature_compensation = temperature_compensation
416418
419+ @property
420+ def temperature_oversampling (self ) -> int :
421+ """The temperature sensor oversampling level."""
422+ return self ._osr2
423+
424+ @temperature_oversampling .setter
425+ def temperature_oversampling (self , level : int ) -> None :
426+ if level not in range (4 ):
427+ raise ValueError ("Incorrect oversampling level." )
428+ reg = self .read_reg (_CMD_REG_CONF3 )
429+ reg &= 0xE7FF
430+ reg |= (level & 0x3 ) << 12
431+ self .write_reg (_CMD_REG_CONF3 , reg )
432+ self ._osr2 = level
433+
417434 @property
418435 def offset_x (self ) -> int :
419436 """The X axis offset."""
0 commit comments