boolean BLE::writeBufferToPipe(uint8_t *buffer, uint8_t byteCount, uint8_t pipe) {

  boolean success = false;

  if (lib_aci_is_pipe_available(&aci_state, pipe) && (aci_state.data_credit_available >= 1)) {

#ifdef ACI_DEBUG
    Serial.print(byteCount);
    Serial.println(F(" bytes sent to pipe"));
#endif

    success = lib_aci_send_data(pipe, buffer, byteCount);

    if (success) {

      aci_state.data_credit_available--;

      waitForDataCredit();

    } else Serial.println(F("lib_aci_send_data() failed"));

  } else
  {
      /* notification pipe not available when no client ask for notification */
      //Serial.println(F("Pipe not available or no remaining data credits: "));

  }

  return success;
}
boolean BLE::writeBufferToPipe(uint8_t *buffer, uint8_t byteCount, uint8_t pipe) {
  
  boolean success = false;
  
  if (lib_aci_is_pipe_available(&aci_state, pipe) && (aci_state.data_credit_available >= 1)) {
    
//    Serial.print(byteCount);
//    Serial.println(F(" bytes sent to pipe"));
    
    success = lib_aci_send_data(pipe, buffer, byteCount);
    
    if (success) {
      
      aci_state.data_credit_available--;
      
      waitForDataCredit();
    
    } else Serial.println(F("lib_aci_send_data() failed"));
  
  } //else Serial.println(F("Pipe not available or no remaining data credits"));
  	
  return success;
}