YaKotikTvoy
@YaKotikTvoy
Стьюдик

Как в Arduino IDE раскодировать пришедшие данные, отправленные TCP протоколом?

У меня есть ESP8266, на него залит сервер.
#include <ESP8266WiFi.h>
#include <WiFiUdp.h>
char incomingPacket[256];
WiFiServer wifiServer(80);
String i;
uint8_t pin = D0;
void setup()
{
  Serial.begin(115200);
  WiFi.begin("Busik", "gytAw789h");
  while(WiFi.status() != WL_CONNECTED)
  {
    delay(1000);
    Serial.print(".");  
  }
  pinMode(pin,OUTPUT);
  Serial.printf("Подключились к WiFi точке, слушаем точку: %s, порт %d", WiFi.localIP().toString().c_str(), 80);
  Serial.println();
  wifiServer.begin();
}
void loop()
{
  WiFiClient client = wifiServer.available();
  while(client)
  {
    
    i = "";
    while(client.available() > 0)
    {
      i += client.read();
    }
    Serial.println(i);
    if(i == "208146")
    {
      digitalWrite(pin, HIGH);  
    }
    else if(i == "208158")
    {
      digitalWrite(pin, LOW);  
    }
    delay(100);
  }
  
}

Есть приложение на C#, и там переключатель врубает и отрубает светодиод.
Я когда отправляю строку на ESP8266, то мне её приходится там сравнивать с её кодировкой, что бы можно было войти в условие и отрубить или врубить светодиод.
Как можно раскодировать пришедшие значения?
Можно ли как-то из C# приложения отправлять bool и другие типы, чтобы делать всю эту логику не на основе закодированных строк?
Вот часть C# приложения
private void OnToggled(object sender, ToggledEventArgs e)
        { 
            TcpClient client = new TcpClient();
            client.Connect(IP, PORT);
            NetworkStream stream = client.GetStream();
            if (SvetodiodSwtch.IsToggled)
            {
                string i = "В";
                byte[] data = Encoding.UTF8.GetBytes(i);
                stream.Write(data, 0, data.Length);
            }
            else
            {
                string i = "О";
                byte[] data = Encoding.UTF8.GetBytes(i);
                stream.Write(data, 0, data.Length);
            }
            client.Close();
            stream.Close();
        }
  • Вопрос задан
  • 84 просмотра
Пригласить эксперта
Ответы на вопрос 2
tentrun
@tentrun
Clown c# inside
Насколько я понимаю, тебе нужно из ASCII раскодировать.
Ответ написан
Комментировать
SilenceOfWinter
@SilenceOfWinter
та еще зажигалка...
так и передавал бы значения констант LOW/HIGH вместо этих танцев с бубном
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы