Разбить сообщение полученное по tcp по частям
- Войдите на сайт для отправки комментариев
Втр, 11/02/2020 - 17:42
Всем привет, вожусь с 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); }
sscanf
Можно по подробней?))
Можно - http://www.c-cpp.ru/content/sscanf