code: func (p *SerialPort) Read(b []byte) (n int, err error) {
  	if len(p.responseData) == 0 {
  		return
  	}
  
  	p.responseMutex.Lock()
  	n = len(b)
  	if len(p.responseData) < n {
  		n = len(p.responseData)
  	}
  	copy(b, p.responseData[:n])
  
  	if len(p.responseData) > n {
  		p.responseData = p.responseData[n:]
  	} else {
  		p.responseData = nil
  	}
  	p.responseMutex.Unlock()
  
  	return
  }
docs: // Read reads bytes from BLE serial port connection