STM32: Check that termios attributes are set successfully

checksum-failure-logging
Paul Hollinsky 2019-05-14 15:21:05 -04:00
parent 288ff3565e
commit 0dae7d4354
1 changed files with 8 additions and 2 deletions

View File

@ -200,9 +200,10 @@ bool STM32::open() {
return false; return false;
} }
struct termios tty; struct termios tty = {};
struct termios compare = {};
if(tcgetattr(fd, &tty) < 0) { if(tcgetattr(fd, &tty) != 0) {
close(); close();
return false; return false;
} }
@ -229,6 +230,11 @@ bool STM32::open() {
return false; return false;
} }
if(tcgetattr(fd, &compare) != 0 || memcmp(&tty, &compare, sizeof(struct termios)) != 0) {
close();
return false;
}
// Create threads // Create threads
readThread = std::thread(&STM32::readTask, this); readThread = std::thread(&STM32::readTask, this);
writeThread = std::thread(&STM32::writeTask, this); writeThread = std::thread(&STM32::writeTask, this);