def _get_data(self):
    data = {}
    with self._open_hardware() as i2c_bus:
      # Datasheet recommend do Soft Reset before measurement:
      self.__soft_reset(i2c_bus)
      if 'temperature' in self.TYPES:
        bytedata = self.__get_data(i2c_bus, self.TEMPERATURE_TRIGGER_NO_HOLD,self.TEMPERATURE_WAIT_TIME)
        data['temperature'] = ((bytedata[0]*256.0+bytedata[1])*175.72/65536.0)-46.85
      if 'humidity' in self.TYPES:
        bytedata = self.__get_data(i2c_bus, self.HUMIDITY_TRIGGER_NO_HOLD,self.HUMIDITY_WAIT_TIME)
        data['humidity'] = ((bytedata[0]*256.0+bytedata[1])*125.0/65536.0)-6.0

    return data