Skip to content

Commit a4963fe

Browse files
author
Jeremy Ruhland (hatchery)
committed
adding feature to send data from flash memory
1 parent 5d0e178 commit a4963fe

File tree

2 files changed

+63
-0
lines changed

2 files changed

+63
-0
lines changed

ESP8266.cpp

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -388,6 +388,16 @@ bool ESP8266::send(const uint8_t *buffer, uint32_t len)
388388
return sATCIPSENDSingle(buffer, len);
389389
}
390390

391+
bool ESP8266::sendFromFlash(uint8_t mux_id, const uint8_t *buffer, uint32_t len)
392+
{
393+
return sATCIPSENDMultipleFromFlash(mux_id, buffer, len);
394+
}
395+
396+
bool ESP8266::sendFromFlash(const uint8_t *buffer, uint32_t len)
397+
{
398+
return sATCIPSENDSingleFromFlash(buffer, len);
399+
}
400+
391401
bool ESP8266::send(uint8_t mux_id, const uint8_t *buffer, uint32_t len)
392402
{
393403
return sATCIPSENDMultiple(mux_id, buffer, len);
@@ -1191,6 +1201,36 @@ bool ESP8266::sATCIPSENDMultiple(uint8_t mux_id, const uint8_t *buffer, uint32_t
11911201
}
11921202
return false;
11931203
}
1204+
bool ESP8266::sATCIPSENDSingleFromFlash(const uint8_t *buffer, uint32_t len)
1205+
{
1206+
rx_empty();
1207+
m_puart->print("AT+CIPSEND=");
1208+
m_puart->println(len);
1209+
if (recvFind(">", 5000)) {
1210+
rx_empty();
1211+
for (uint32_t i = 0; i < len; i++) {
1212+
m_puart->write(pgm_read_byte(buffer[i]));
1213+
}
1214+
return recvFind("SEND OK", 10000);
1215+
}
1216+
return false;
1217+
}
1218+
bool ESP8266::sATCIPSENDMultipleFromFlash(uint8_t mux_id, const uint8_t *buffer, uint32_t len)
1219+
{
1220+
rx_empty();
1221+
m_puart->print("AT+CIPSEND=");
1222+
m_puart->print(mux_id);
1223+
m_puart->print(",");
1224+
m_puart->println(len);
1225+
if (recvFind(">", 5000)) {
1226+
rx_empty();
1227+
for (uint32_t i = 0; i < len; i++) {
1228+
m_puart->write(pgm_read_byte(buffer[i]));
1229+
}
1230+
return recvFind("SEND OK", 10000);
1231+
}
1232+
return false;
1233+
}
11941234
bool ESP8266::sATCIPCLOSEMulitple(uint8_t mux_id)
11951235
{
11961236
String data;

ESP8266.h

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -556,6 +556,27 @@ class ESP8266 {
556556
*/
557557
bool send(uint8_t mux_id, const uint8_t *buffer, uint32_t len);
558558

559+
/**
560+
* Send data based on TCP or UDP builded already in single mode.
561+
*
562+
* @param buffer - the buffer of data to send from flash memeory.
563+
* @param len - the length of data to send.
564+
* @retval true - success.
565+
* @retval false - failure.
566+
*/
567+
bool sendFromFlash(const uint8_t *buffer, uint32_t len);
568+
569+
/**
570+
* Send data based on one of TCP or UDP builded already in multiple mode.
571+
*
572+
* @param mux_id - the identifier of this TCP(available value: 0 - 4).
573+
* @param buffer - the buffer of data to send from flash memeory.
574+
* @param len - the length of data to send.
575+
* @retval true - success.
576+
* @retval false - failure.
577+
*/
578+
bool sendFromFlash(uint8_t mux_id, const uint8_t *buffer, uint32_t len);
579+
559580
/**
560581
* Receive data from TCP or UDP builded already in single mode.
561582
*
@@ -672,6 +693,8 @@ class ESP8266 {
672693
bool sATCIPSTARTMultiple(uint8_t mux_id, String type, String addr, uint32_t port);
673694
bool sATCIPSENDSingle(const uint8_t *buffer, uint32_t len);
674695
bool sATCIPSENDMultiple(uint8_t mux_id, const uint8_t *buffer, uint32_t len);
696+
bool sATCIPSENDSingleFromFlash(const uint8_t *buffer, uint32_t len);
697+
bool sATCIPSENDMultipleFromFlash(uint8_t mux_id, const uint8_t *buffer, uint32_t len);
675698
bool sATCIPCLOSEMulitple(uint8_t mux_id);
676699
bool eATCIPCLOSESingle(void);
677700
bool eATCIFSR(String &list);

0 commit comments

Comments
 (0)