@@ -214,11 +214,14 @@ def _read_data(self) -> None:
214214 """Reads the temp/hum/co2 from the sensor and caches it"""
215215 self ._send_command (_SCD4X_READMEASUREMENT , cmd_delay = 0.001 )
216216 self ._read_reply (self ._buffer , 9 )
217+ # CO2 = word[0]
217218 self ._co2 = (self ._buffer [0 ] << 8 ) | self ._buffer [1 ]
218219 temp = (self ._buffer [3 ] << 8 ) | self ._buffer [4 ]
219- self ._temperature = - 45 + 175 * (temp / 2 ** 16 )
220+ # T = -45 + 175 * (word[1] / 2**16 - 1)
221+ self ._temperature = - 45 + 175 * (temp / 65535 )
220222 humi = (self ._buffer [6 ] << 8 ) | self ._buffer [7 ]
221- self ._relative_humidity = 100 * (humi / 2 ** 16 )
223+ # RH = 100 * (word[2] / (2**16 - 1))
224+ self ._relative_humidity = 100 * (humi / 65535 )
222225
223226 @property
224227 def data_ready (self ) -> bool :
@@ -285,7 +288,7 @@ def set_ambient_pressure(self, ambient_pressure: int) -> None:
285288 def temperature_offset (self ) -> float :
286289 """Specifies the offset to be added to the reported measurements to account for a bias in
287290 the measured signal. Value is in degrees Celsius with a resolution of 0.01 degrees and a
288- maximum value of 374 C
291+ maximum value of 374 C.
289292
290293 .. note::
291294 This value will NOT be saved and will be reset on boot unless saved with
@@ -295,15 +298,15 @@ def temperature_offset(self) -> float:
295298 self ._send_command (_SCD4X_GETTEMPOFFSET , cmd_delay = 0.001 )
296299 self ._read_reply (self ._buffer , 3 )
297300 temp = (self ._buffer [0 ] << 8 ) | self ._buffer [1 ]
298- return 175.0 * temp / 2 ** 16
301+ return temp * 175.0 / 65535 # T_offset = word[0] * (175 / ( 2**16 - 1))
299302
300303 @temperature_offset .setter
301304 def temperature_offset (self , offset : Union [int , float ]) -> None :
302305 if offset > 374 :
303306 raise AttributeError (
304307 "Offset value must be less than or equal to 374 degrees Celsius"
305308 )
306- temp = int (offset * 2 ** 16 / 175 )
309+ temp = int (offset * 65535 / 175 ) # word[0] = T_offset * (( 2**16 - 1) / 175)
307310 self ._set_command_value (_SCD4X_SETTEMPOFFSET , temp )
308311
309312 @property
0 commit comments