Добрый день.
Хотел посоветоваться с людьми имеющими опыт программирования под esp.
Правильно ли построен скетч, с точки зрения максимальной производительности?
ESP получает данные по SPI, объединяет 32байтные посылки в пакет размером 2048 и отправляет на сервер.
Хотел посоветоваться с людьми имеющими опыт программирования под esp.
Правильно ли построен скетч, с точки зрения максимальной производительности?
ESP получает данные по SPI, объединяет 32байтные посылки в пакет размером 2048 и отправляет на сервер.
Код:
#include "SPISlave.h"
#include <ESP8266WiFi.h>
const char* ssid = "XXX";
const char* password = "XXX";
const char *server = "XXX";
const int port = XXX;
WiFiClient client;
int BUF_SIZE = 2048;
int count;
String buf;
void setup_wifi() {
delay(10);
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
}
void connect(){
while (!client.connect(server, port)) {
Serial.println("connection failed");
delay(500);
}
Serial.println("Connected to server!");
}
void setup()
{
Serial.begin(115200);
WiFi.mode(WIFI_STA);
count = 0;
buf = "";
SPISlave.onData([](uint8_t * data, size_t len) {
String message = String((char *)data);
buf.concat(message);
count+=32;
});
setup_wifi();
connect();
client.setNoDelay(true);
SPISlave.begin();
}
void loop() {
if(count>2047){
if(client.connected()){
client.print(buf);
}
else
connect();
count = 0;
buf = "";
}
}