code: func (s *SHT3xDriver) Sample() (temp float32, rh float32, err error) {
  	ret, err := s.sendCommandDelayGetResponse([]byte{0x24, s.accuracy}, &s.delay, 2)
  	if nil != err {
  		return
  	}
  
  	// From the datasheet:
  	// RH = 100 * Srh / (2^16 - 1)
  	rhSample := uint64(ret[1])
  	rh = float32((uint64(1000000)*rhSample)/uint64(0xffff)) / 10000.0
  
  	tempSample := uint64(ret[0])
  	switch s.Units {
  	case "C":
  		// From the datasheet:
  		// T[C] = -45 + 175 * (St / (2^16 - 1))
  		temp = float32((uint64(1750000)*tempSample)/uint64(0xffff)-uint64(450000)) / 10000.0
  	case "F":
  		// From the datasheet:
  		// T[F] = -49 + 315 * (St / (2^16 - 1))
  		temp = float32((uint64(3150000)*tempSample)/uint64(0xffff)-uint64(490000)) / 10000.0
  	default:
  		err = ErrInvalidTemp
  	}
  
  	return
  }
docs: // Sample returns the temperature in celsius and relative humidity for one sample