version 3.17.1
add PINonTriviallyCopyable struct add PISerial check for error on Windows on every read()
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user