Ошибка Класс Client переименован в EthernetClient
- Войдите на сайт для отправки комментариев
Сб, 17/12/2016 - 00:29
Есть скетч, для пингования IP фдреса через Ethernet шилд W5100
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192, 168, 1, 177 };
byte server[] = { 194, 87, 0, 50 };
int outputPin = 8;
Client client(server, 80);
boolean send_request()
{
if (client.connect()) {
digitalWrite(outputPin, 1);
Serial.println("1");
}else{
digitalWrite(outputPin, 0);
Serial.println("0");
}
}
void setup()
{
Ethernet.begin(mac, ip);
Serial.begin(9600);
pinMode(outputPin, OUTPUT);
}
void loop()
{
send_request();
client.stop();
delay(1000);
}
При компеляции пишет ошибку "Класс Client переименован в EthernetClient."
Помогите!!! Переименовываю Client в EthernetClient тоже пишет ошибку. Что надо сделать чтоб ошибки не было.
Что надо сделать чтоб ошибки не было.
2. Выкладывать также копипасту сообщения об ошибке
3. Не писать "переименовываю ...", а выкладывать также и изменённый код
4. К изменённому коду также выкладывать копипасту сообщения об ошибке.
5. Дать ссылку на ту самую библиотеку Ethernet.h, которая используется. т.к. есть 100500 разных версий.
#include <Ethernet.h> byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; byte ip[] = { 192, 168, 1, 177 }; byte server[] = { 194, 87, 0, 50 }; int outputPin = 8; Client client(server, 80); boolean send_request() { if (client.connect()) { digitalWrite(outputPin, 1); Serial.println("1"); }else{ digitalWrite(outputPin, 0); Serial.println("0"); } } void setup() { Ethernet.begin(mac, ip); Serial.begin(9600); pinMode(outputPin, OUTPUT); } void loop() { send_request(); client.stop(); delay(1000); }Ошибка следующего характера:
Прикладываю измененный скетч:
#include <Ethernet.h> byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; byte ip[] = { 192, 168, 1, 177 }; byte server[] = { 194, 87, 0, 50 }; int outputPin = 8; EthernetClient client(server, 80); boolean send_request() { if (client.connect()) { digitalWrite(outputPin, 1); Serial.println("1"); }else{ digitalWrite(outputPin, 0); Serial.println("0"); } } void setup() { Ethernet.begin(mac, ip); Serial.begin(9600); pinMode(outputPin, OUTPUT); } void loop() { send_request(); client.stop(); delay(1000); }После изменения возникает ошибка:
Используется стандартная библиотека Ethernet с официальной версии с сайта https://www.arduino.cc/en/Main/Software
Ну и что за ересь в 6-й строке? Вообще, возьми скетч из примеров и его начинай колупать. "Хочешь научиться программировать -- возьми дизассемблер и посмотри, как это делают другие." (с) немой.
Ну, так сообщение-то читали. Там же всё сказано:
1.
7: error: no matching function for call to 'EthernetClient::EthernetClient(byte [4], int)'
10: error: no matching function for call to 'EthernetClient::connect()'
Так что где писать чтоб заработало. Я полный 0. Ардуино вчера купил! Helpppp!!!
Тему брал отсюда http://www.freeduino.ru/forum/viewtopic.php?id=67
Есть еще такая тема тамже. Ошибка таже!!!!
#include <Ethernet.h> /*"Админский светофор"*/ byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; byte ip[] = { 192, 168, 88, 25 }; // IP-адрес Ethernet shield`a byte subnet[] = { 255, 255, 255, 0 }; //маска подсети byte server[] = {194, 87, 0, 50}; // IP-адрес жертвы, шучу. Адрес удаленного интернет-сервера (www.ru) byte gateway[] = { 192,168, 88, 1 }; // Шлюз с локальной сети int redfPin = 8; // красный светодиод (ошибка соединения)на 8 пине int redPin = 6; // красный светодиод на 6 пине int yellowPin = 4; // желтый светодиод на 4 пине int greenPin = 2; // зеленый светодиод на 2 пине int low = 50 ; // нижняя планки величины пинга что меньше значения low - это нормально int middle = 200 ; // средняя планка величины пинга что меньше значения low - это средняя наггрузка Client client(server, 80); // порт по которому мы будем соединяться с удаленным сервером boolean send_request() { int sc_start=millis(); // замеряем время до начала подключения if (client.connect()) { int sc_stop=millis(); // после успешного соединения замеряем время окончатния соединения rtime=(rtime+(sc_stop-sc_start))/2; // считаем сколько времени ушло на соединение - среднее значение // Время отклика привысило критический предел - зажигаем красный светодиод if (rtime > middle){ digitalWrite(redfPin, 0); digitalWrite(redPin, 1); digitalWrite(yellowPin, 0); digitalWrite(greenPin, 0); Serial.print("Red status ->"); } // Время отклика в среднем диапазоне - зажигаем желтый светодиод if ((rtime > low) && (rtime < middle)){ digitalWrite(redfPin, 0); digitalWrite(redPin, 0); digitalWrite(yellowPin, 1); digitalWrite(greenPin, 0); Serial.print("Yellow status ->"); } // Время отклика в минимальном диапазоне - зажигаем зеленый светодиод if ((rtime > 1) && (rtime < low)){ digitalWrite(redfPin, 0); digitalWrite(redPin, 0); digitalWrite(yellowPin, 0); digitalWrite(greenPin, 1); Serial.print("Green status ->"); } Serial.print("average response time = "); Serial.println(rtime); // Serial.print("Debug: response time = "); // Serial.println(sc_stop-sc_start); }else{ // Не удалось соединиться - зажигаем красный светодиод (ошибка соединения) digitalWrite(redfPin, 1); digitalWrite(redPin, 0); digitalWrite(yellowPin, 0); digitalWrite(greenPin, 0); Serial.println("Red status -> response time = Timeout"); rtime=rtime+middle; } } void setup() { Ethernet.begin(mac, ip, gateway, subnet); Serial.begin(9600); pinMode(redfPin, OUTPUT); pinMode(redPin, OUTPUT); pinMode(yellowPin, OUTPUT); pinMode(greenPin, OUTPUT); // Проводим тест всех светодиодов при запуске digitalWrite(redfPin, 1); delay(1000); digitalWrite(redPin, 1); delay(1000); digitalWrite(yellowPin, 1); delay(1000); digitalWrite(greenPin, 1); delay(2000); //Сбрасываем состояние светодиодов на выкл. digitalWrite(redfPin, 0); digitalWrite(redPin, 0); digitalWrite(yellowPin, 0); digitalWrite(greenPin, 0); } void loop() { send_request(); client.stop(); delay(10000); }Так что где писать чтоб заработало. Я полный 0. Ардуино вчера купил! Helpppp!!!
Не понял, так я же Вам всё объяснил. Вам что-то осталось непонятным? Спрашивайте! Опять же , там при бибилотеке примеры есть, запускайте их, смотрите, как люди делают.
Или Вы хотите, чтобы я за Вас написал? Тогда Вы раздел форума перепутали. Здесь помогают тем, кто сам делает. А если нужно сделать вместо Вас, то запостите в разделе "Ищу исполнителя". Там сделают.