YaKotikTvoy
@YaKotikTvoy
Стьюдик

Почему некоторые данные не доходят с ESP?

Почему не получается принять все пакеты с ESP, ESP там у соседа уже 100 и более отправлено, а у меня, только 16 принято.
private void HumidityReception()//метод работает в потоке
        {
            int i = 0;
            while (true)
            {
                Socket socketWithData = socketServer.Accept();

                if (socketWithData.Available > 0)
                {

                    byte[] buffer = new byte[256];

                    string data;

                    /*byte size = (byte)socketWithData.Receive(buffer);

                    data = Encoding.UTF8.GetString(buffer, 0, size);*/

                    do
                    {
                        byte size = (byte)socketWithData.Receive(buffer);

                        data = Encoding.UTF8.GetString(buffer, 0, size);

                        Invoke((Action)(() =>
                        {
                            i++;
                            sizelable.Text = data + $" пакет по счёту: {i}";
                        }));

                    } while (socketWithData.Available > 0);

                    string[] data2 = new string[] { data.Split(' ')[0], data.Split(' ')[1], data.Split(' ')[2], $"{DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss")}" };

                    Invoke((Action)(() =>
                    {

                        HimidityList.Items.Add(new ListViewItem(data2));
                    }));

                    SqlCommand command = new SqlCommand("Insert into Vlazhnost (Humidity, [Greenhouse number], Number, [Wake up time]) values(@Humidity, @Greenhousenumber, @Number, @Wakeuptime)", DBVlazhnost);

                    command.Parameters.AddWithValue("@Humidity", data2[0]);

                    command.Parameters.AddWithValue("@Greenhousenumber", data2[1]);

                    command.Parameters.AddWithValue("@Number", data2[2]);

                    command.Parameters.AddWithValue("@Wakeuptime", data2[3]);

                    command.ExecuteNonQuery();

                    
                }
            }

        }

#include<ESP8266WiFi.h>
 
int data = 0;
char* host = "192.168.75.92";
uint16_t port = 80;
void setup() {
  WiFi.begin("Busik", "gytAw789h");
  while(WiFi.status() != WL_CONNECTED)
  {
    Serial.print(".");
    delay(3000);
  }
  pinMode(A0, INPUT);
}

void loop() {
 WiFiClient client;
 client.connect(host, port);
 delay(3000);
 if(client.connected())
 {
    client.print(String(analogRead(data)) + " 4 74");//1ое это значение влажности, 2ое номер теплицы, 3ье номер датчика
    delay(2000);
    client.stop();
 }
}

62bca958cdaf9792882597.png
  • Вопрос задан
  • 56 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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