PIEthernet send to custom address fix

This commit is contained in:
2021-04-13 18:29:21 +03:00
parent 7a2a9ee7d0
commit 95002973e8
2 changed files with 62 additions and 11 deletions

View File

@@ -621,6 +621,57 @@ bool PIEthernet::listen(bool threaded) {
}
bool PIEthernet::listen(const PIEthernet::Address & addr, bool threaded) {
setReadAddress(addr);
return listen(threaded);
}
bool PIEthernet::send(const void * data, int size, bool threaded) {
if (threaded) {
writeThreaded(data, size);
return true;
}
return (write(data, size) == size);
}
bool PIEthernet::send(const PIEthernet::Address & addr, const void * data, int size, bool threaded) {
addr_s = addr;
if (threaded) {
writeThreaded(data, size);
return true;
}
Address pa = addr_s;
addr_s = addr;
int wr = write(data, size);
addr_s = pa;
return (wr == size);
}
bool PIEthernet::send(const PIByteArray & data, bool threaded) {
if (threaded) {
writeThreaded(data);
return true;
}
return (write(data) == data.size_s());
}
bool PIEthernet::send(const PIEthernet::Address & addr, const PIByteArray & data, bool threaded) {
if (threaded) {
writeThreaded(data);
return true;
}
Address pa = addr_s;
addr_s = addr;
int wr = write(data);
addr_s = pa;
return (wr == data.size_s());
}
int PIEthernet::readDevice(void * read_to, int max_size) {
//piCout << "read" << sock;
if (sock == -1) init();