Разбить сообщение полученное по tcp по частям

hlebuschek
Offline
Зарегистрирован: 11.02.2020

Всем привет, вожусь с esp32 которая от сервера получает сообщения формата 

1.х

2.х

3.х

4.х

5.х

6.х

7.х

8.х

Где х это некое число. Не могу решить с задачу с отбором нужным мне сообщений, то есть мне нужно записать переменную х только если сообщение начинается с 5 или 6, в переменные readString5 и readString6 соответсвено. Как я понимаю надо разбить сообщение по частям до точки, и потом посмотреть на первую часть сообщения.

#include <WiFi.h>

const char* ssid = "wifi";
const char* password = "12345678";
const int port = 8686;

const IPAddress serverIP(192,168,0,43);
uint16_t serverPort = 8686;

WiFiClient client;

void setup()
{
Serial.begin(115200);
Serial.println();

WiFi.mode(WIFI_STA);
WiFi.setSleep(false);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println("Connected");
Serial.print("IP Address:");
Serial.println(WiFi.localIP());
}

void loop()
{
Serial.println("Попробуйте получить доступ к серверу");
if (client.connect(serverIP, serverPort))
{
Serial.println("Доступ успешен");
//Serial.write(client.read());

//client.print("Hello world!");
while (client.connected() || client.available())
{
if (client.available())
{
//String line = client.readStringUntil('\n');
//Serial.println("Читать данные:");

Serial.write(client.read());
//Serial.println(line);
//client.write(line.c_str());
}
}
Serial.println("Закрыть текущее соединение");
//client.stop();
}
else
{
Serial.println("Не удалось получить доступ");
//client.stop();
}
delay(5000);
}

 

rkit
Offline
Зарегистрирован: 23.11.2016

sscanf

hlebuschek
Offline
Зарегистрирован: 11.02.2020

Можно по подробней?))

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015