code: func (s *SHT3xDriver) sendCommandDelayGetResponse(send []byte, delay *time.Duration, expect int) (read []uint16, err error) {
  	if _, err = s.connection.Write(send); err != nil {
  		return
  	}
  
  	if nil != delay {
  		time.Sleep(*delay)
  	}
  
  	buf := make([]byte, 3*expect)
  	got, err := s.connection.Read(buf)
  	if err != nil {
  		return
  	}
  	if got != (3 * expect) {
  		err = ErrNotEnoughBytes
  		return
  	}
  
  	read = make([]uint16, expect)
  	for i := 0; i < expect; i++ {
  		crc := crc8.Checksum(buf[i*3:i*3+2], s.crcTable)
  		if buf[i*3+2] != crc {
  			err = ErrInvalidCrc
  			return
  		}
  		read[i] = uint16(buf[i*3])<<8 | uint16(buf[i*3+1])
  	}
  
  	return
  }
docs: // sendCommandDelayGetResponse is a helper function to reduce duplicated code