Problema libreria SimpleModbus master

Sigo leyendo ahora ModbusMaster..

 // transmit request
  if (_preTransmission)
  {
    _preTransmission();
  }
  for (i = 0; i < u8ModbusADUSize; i++)
  {
    _serial->write(u8ModbusADU[i]);
  }
  
  u8ModbusADUSize = 0;
  _serial->flush();    // flush transmit buffer
  if (_postTransmission)
  {
    _postTransmission();
  }
  

el "_serial->flush()" no se entiende como el serial.flush(); que espera a que se envien los datos?

si fuera así una trama de 8 bytes (son las comunes que estoy usando en esta aplicación) me costarían @ 9600 baudios= 8*8 / 9600 = 0.00666
0.0666 + espera del inicio mas espera del final 3.5 tiempos = 0.0066+ 0.003+0.003 aprox 10 ms. estaría bien la cuenta así?
eso mas la espera de recibida del esclavo serian aproximadamente 20ms, por 3 variadores (las fallas suelen ser cada tanto..)son 60 ms mas los delay de pretransmision y postransmision diría que redondeo los 90ms.

Los pulsadores se actualizan en cada ciclo de programa, el programa en si trabaja con marcadores de esos pulsadores, el pin 9 es la marca i7, si i7=1 pin 9 high. sospecho que esa tabla no se actualiza bien por las paradas de la comunicación, por que sin comunicación funcionan, y cuando fallan puedo ver que quizas no se envia el dato de parada de algun variador, o el dato de arranque de un variador, por ejemplo (me doy cuenta que un motor no paro cuando deberia o no arranco cuando deberia)

PD: cuestion que razono todavía, si se tarda tan poco en enviar el mensaje como puedo ver el tx y rx parpadear?

muchas gracias