1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-06-20 21:01:25 +03:00

Adding write(str) and write(buf, size) methods to Print class and Ethernet library Client and Server classes. This allows sending a whole string or buffer at once, reducing the number of ethernet packets.

This commit is contained in:
David A. Mellis
2009-04-26 13:10:34 +00:00
parent a0b3e6334d
commit 9dd3491ab3
7 changed files with 47 additions and 7 deletions

View File

@ -2,6 +2,7 @@ extern "C" {
#include "types.h"
#include "w5100.h"
#include "socket.h"
#include "string.h"
}
#include "Ethernet.h"
@ -50,6 +51,14 @@ void Client::write(uint8_t b) {
send(_sock, &b, 1);
}
void Client::write(const char *str) {
send(_sock, (const uint8_t *)str, strlen(str));
}
void Client::write(const uint8_t *buf, size_t size) {
send(_sock, buf, size);
}
int Client::available() {
return getSn_RX_RSR(_sock);
}

View File

@ -15,6 +15,8 @@ public:
uint8_t status();
uint8_t connect();
virtual void write(uint8_t);
virtual void write(const char *str);
virtual void write(const uint8_t *buf, size_t size);
int available();
int read();
void flush();

View File

@ -2,6 +2,7 @@ extern "C" {
#include "types.h"
#include "w5100.h"
#include "socket.h"
#include "string.h"
}
#include "Ethernet.h"
@ -66,6 +67,16 @@ Client Server::available()
}
void Server::write(uint8_t b)
{
write(&b, 1);
}
void Server::write(const char *str)
{
write((const uint8_t *)str, strlen(str));
}
void Server::write(const uint8_t *buffer, size_t size)
{
accept();
@ -74,7 +85,7 @@ void Server::write(uint8_t b)
if (EthernetClass::_server_port[sock] == _port &&
client.status() == SOCK_ESTABLISHED) {
client.write(b);
client.write(buffer, size);
}
}
}
}

View File

@ -18,6 +18,8 @@ public:
Client available();
void begin();
virtual void write(uint8_t);
virtual void write(const char *str);
virtual void write(const uint8_t *buf, size_t size);
};
#endif