mirror of
https://github.com/intrepidcs/libicsneo.git
synced 2026-08-05 01:18:36 +02:00
Communication: Add pause feature
Removed redirect read
This commit is contained in:
+1
-1
@@ -136,7 +136,7 @@ void FTD3XX::readTask() {
|
||||
}
|
||||
FT_ReleaseOverlapped(*handle, &overlap);
|
||||
if(received > 0) {
|
||||
readBuffer.write(buffer, received);
|
||||
writeToReadBuffer(buffer, received);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -190,7 +190,7 @@ void CDCACM::readTask() {
|
||||
}
|
||||
std::cout << std::dec << std::endl;
|
||||
#endif
|
||||
readBuffer.write(readbuf, bytesRead);
|
||||
writeToReadBuffer(readbuf, bytesRead);
|
||||
} else {
|
||||
if(modeChanging) {
|
||||
// We were expecting a disconnect for reenumeration
|
||||
|
||||
@@ -242,7 +242,7 @@ void FirmIO::readTask() {
|
||||
|
||||
// Translate the physical address back to our virtual address space
|
||||
uint8_t* addr = reinterpret_cast<uint8_t*>(msg.payload.data.addr - PHY_ADDR_BASE + vbase);
|
||||
while (!readBuffer.write(addr, msg.payload.data.len)) {
|
||||
while (!writeToReadBuffer(addr, msg.payload.data.len)) {
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(1)); // back-off so reading thread can empty the buffer
|
||||
if (closing || isDisconnected()) {
|
||||
break;
|
||||
|
||||
@@ -213,7 +213,7 @@ void FTDI::readTask() {
|
||||
} else
|
||||
report(APIEvent::Type::FailedToRead, APIEvent::Severity::EventWarning);
|
||||
} else
|
||||
readBuffer.write(readbuf, readBytes);
|
||||
writeToReadBuffer(readbuf, readBytes);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -284,7 +284,7 @@ void PCAP::readTask() {
|
||||
PCAP* driver = reinterpret_cast<PCAP*>(obj);
|
||||
if(driver->ethPacketizer.inputUp({data, data + header->caplen})) {
|
||||
const auto bytes = driver->ethPacketizer.outputUp();
|
||||
driver->readBuffer.write(bytes.data(), bytes.size());
|
||||
driver->writeToReadBuffer(bytes.data(), bytes.size());
|
||||
}
|
||||
}, (uint8_t*)this);
|
||||
}
|
||||
|
||||
+1
-1
@@ -533,7 +533,7 @@ void TCP::readTask() {
|
||||
uint8_t readbuf[READ_BUFFER_SIZE];
|
||||
while(!closing) {
|
||||
if(const auto received = ::recv(*socket, (char*)readbuf, READ_BUFFER_SIZE, 0); received > 0) {
|
||||
readBuffer.write(readbuf, received);
|
||||
writeToReadBuffer(readbuf, received);
|
||||
} else {
|
||||
timeout.tv_sec = 0;
|
||||
timeout.tv_usec = 50'000;
|
||||
|
||||
@@ -278,7 +278,7 @@ void PCAP::readTask() {
|
||||
|
||||
if(ethPacketizer.inputUp({data, data + header->caplen})) {
|
||||
const auto bytes = ethPacketizer.outputUp();
|
||||
readBuffer.write(bytes.data(), bytes.size());
|
||||
writeToReadBuffer(bytes.data(), bytes.size());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -390,7 +390,7 @@ void VCP::readTask() {
|
||||
if(ReadFile(detail->handle, readbuf, READ_BUFFER_SIZE, nullptr, &detail->overlappedRead)) {
|
||||
if(GetOverlappedResult(detail->handle, &detail->overlappedRead, &bytesRead, FALSE)) {
|
||||
if(bytesRead)
|
||||
readBuffer.write(readbuf, bytesRead);
|
||||
writeToReadBuffer(readbuf, bytesRead);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
@@ -413,7 +413,7 @@ void VCP::readTask() {
|
||||
auto ret = WaitForSingleObject(detail->overlappedRead.hEvent, 100);
|
||||
if(ret == WAIT_OBJECT_0) {
|
||||
if(GetOverlappedResult(detail->handle, &detail->overlappedRead, &bytesRead, FALSE)) {
|
||||
readBuffer.write(readbuf, bytesRead);
|
||||
writeToReadBuffer(readbuf, bytesRead);
|
||||
state = LAUNCH;
|
||||
} else
|
||||
report(APIEvent::Type::FailedToRead, APIEvent::Severity::Error);
|
||||
|
||||
Reference in New Issue
Block a user