mirror of
https://github.com/esp8266/Arduino.git
synced 2025-06-16 11:21:18 +03:00
add WiFiClient::write_P to be used with PROGMEM
This commit is contained in:
@ -28,6 +28,8 @@
|
||||
#include <memory>
|
||||
#include "include/slist.h"
|
||||
|
||||
#define WIFICLIENT_MAX_PACKET_SIZE 1460
|
||||
|
||||
class ClientContext;
|
||||
class WiFiServer;
|
||||
|
||||
@ -46,6 +48,7 @@ public:
|
||||
virtual int connect(const char *host, uint16_t port);
|
||||
virtual size_t write(uint8_t);
|
||||
virtual size_t write(const uint8_t *buf, size_t size);
|
||||
size_t write_P(PGM_P buf, size_t size);
|
||||
template <typename T>
|
||||
size_t write(T& source, size_t unitSize);
|
||||
|
||||
@ -65,16 +68,16 @@ public:
|
||||
static void setLocalPortStart(uint16_t port) { _localPort = port; }
|
||||
|
||||
template<typename T> size_t write(T &src){
|
||||
uint8_t obuf[1460];
|
||||
uint8_t obuf[WIFICLIENT_MAX_PACKET_SIZE];
|
||||
size_t doneLen = 0;
|
||||
size_t sentLen;
|
||||
int i;
|
||||
|
||||
while (src.available() > 1460){
|
||||
src.read(obuf, 1460);
|
||||
sentLen = write(obuf, 1460);
|
||||
while (src.available() > WIFICLIENT_MAX_PACKET_SIZE){
|
||||
src.read(obuf, WIFICLIENT_MAX_PACKET_SIZE);
|
||||
sentLen = write(obuf, WIFICLIENT_MAX_PACKET_SIZE);
|
||||
doneLen = doneLen + sentLen;
|
||||
if(sentLen != 1460){
|
||||
if(sentLen != WIFICLIENT_MAX_PACKET_SIZE){
|
||||
return doneLen;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user