version 3.17.1

add PINonTriviallyCopyable struct
add PISerial check for error on Windows on every read()
This commit is contained in:
2024-04-10 20:49:27 +03:00
parent 1b67000887
commit a745f803b3
3 changed files with 23 additions and 3 deletions

View File

@@ -868,6 +868,13 @@ ssize_t PISerial::readDevice(void * read_to, ssize_t max_size) {
if (!canRead()) return -1;
if (sending) return -1;
// piCoutObj << "read ..." << PRIVATE->hCom << max_size;
DWORD mask = 0;
if (GetCommMask(PRIVATE->hCom, &mask) == FALSE) {
piCoutObj << "read error" << errorString();
stop();
close();
return 0;
}
memset(&(PRIVATE->overlap), 0, sizeof(PRIVATE->overlap));
PRIVATE->overlap.hEvent = PRIVATE->event.getEvent();
PRIVATE->readed = 0;
@@ -885,8 +892,7 @@ ssize_t PISerial::readDevice(void * read_to, ssize_t max_size) {
GetOverlappedResult(PRIVATE->hCom, &(PRIVATE->overlap), &(PRIVATE->readed), FALSE);
} else
return -1;
// piCoutObj << "read done" << PRIVATE->readed;
// piCoutObj << "read" << (PRIVATE->readed) << errorString();
// piCoutObj << "read" << (PRIVATE->readed) << errorString();
return PRIVATE->readed;
#else
if (!canRead()) return -1;