Browse Source

AP_HAL_VRBrain: Clear UART buffers when opening a port

mission-4.1.18
Michael du Breuil 7 years ago committed by Francisco Ferreira
parent
commit
3af6b78d67
  1. 20
      libraries/AP_HAL_VRBRAIN/UARTDriver.cpp

20
libraries/AP_HAL_VRBRAIN/UARTDriver.cpp

@ -70,14 +70,17 @@ void VRBRAINUARTDriver::begin(uint32_t b, uint16_t rxS, uint16_t txS) @@ -70,14 +70,17 @@ void VRBRAINUARTDriver::begin(uint32_t b, uint16_t rxS, uint16_t txS)
thrashing of the heap once we are up. The ttyACM0 driver may not
connect for some time after boot
*/
while (_in_timer) {
hal.scheduler->delay(1);
}
if (rxS != _readbuf.get_size()) {
_initialised = false;
while (_in_timer) {
hal.scheduler->delay(1);
}
_readbuf.set_size(rxS);
}
if (hal.console != this) { // don't clear USB buffers (allows early startup messages to escape)
_readbuf.clear();
}
if (b != 0) {
_baudrate = b;
@ -86,13 +89,16 @@ void VRBRAINUARTDriver::begin(uint32_t b, uint16_t rxS, uint16_t txS) @@ -86,13 +89,16 @@ void VRBRAINUARTDriver::begin(uint32_t b, uint16_t rxS, uint16_t txS)
/*
allocate the write buffer
*/
while (_in_timer) {
hal.scheduler->delay(1);
}
if (txS != _writebuf.get_size()) {
_initialised = false;
while (_in_timer) {
hal.scheduler->delay(1);
}
_writebuf.set_size(txS);
}
if (hal.console != this) { // don't clear USB buffers (allows early startup messages to escape)
_writebuf.clear();
}
if (_fd == -1) {
_fd = open(_devpath, O_RDWR);

Loading…
Cancel
Save