TCP соединение и отправка комманд
- Войдите на сайт для отправки комментариев
Всем привет. Есть проблема, незнаю в какакую сторону копать. Короче. В локальной сети есть устройство которое через TCP порт может принимать команды. Я использую NodeMCU v3 для подключения и управления. С подключением, собственно проблем нет. Все подключается. А вот с управлением проблемы. Отправляю команды стандартным client.print(), устройство на них не реагирует. Подключаюсь к компьютеру для проверки, сообщеня приходят. Нашел информацию по устройству, что его протокол совместим с Telnet, который по умолчанию отправляет CRLF между строками, а устройство требует только LF. На тему Line Feed нашел кучу инфы для линуксовых программ и ничего для ардуины. Со строкой пробовал разные варианты и client.println(), и "\n", неработет... собственно неработающий кусок:
WiFiClient client;
if (!client.connect (host, port)) {
Serial.println("connect ERROR");
delay(3000);
Serial.println("Monitor connected");
delay(1000);
}
client.println("MONITOR A:");
client.println("Brightness: 10");
client.println("Saturation: 0");
client.stop();
Serial.println("Всьо...");
delay(10000);
Пните хотябы в какую сторону копать, ато уже совсем из сил выбился...
Отправляю команды стандартным client.print(), устройство на них не реагирует.
В коде нет ни одного вызова client.print(). А как раз его и нужно использовать, с явными окончаниями строк.
P.S. Ошибку в (!client.connect (host, port)) уже увидел. Всеравно неработает.
client.println() - это один из вариантов остался.
client.print("MONITOR A:"); client.print("\n"); client.print("Brightness: 10"); client.print("\n"); client.print("Saturation: 0"); client.print("\n");Также неработает. Блин, где-то я совсем не там копаю по ходу...
client.print("MONITOR A:\n");
Тут проблем нет, разбирайся в устройстве.
Что-то я не вижу, где вы в вашем коде ответ принимаете. То что команды не срабатывают, не обязательно означает что они не доходят. Надо получать и анализировать ответы сервера
Да. Все верно. Я ответы от сервера ардуиной не принимаю. Я почему-то подумал что это не обязательно, так как при подключении с компьютера после отправки комманды ничего не возвращается. Единственное что при подключении устройство отправляет дамп состояния, а он там немалый такой, строк на 35-40. Вот я и поленился и проигнорировал его...