2016-04-22 3 views
0

У меня есть сервер C++ и клиент Arduino UNO с Ethernet Shield. Моя проблема заключается в том, что сервер обнаруживает любое отключение (сервер C#, приложение для Android), за исключением Arduino. Без причины, я думаю, что сокет Arduino все еще работает, даже после того, как у Arduino нет питания. Это код Arduino:Arduino Ethernet Shield не обнаруживает разъединение

#include <SPI.h> 
#include <Ethernet.h> 

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; 

IPAddress ip(192, 168, 1, 4); 

EthernetClient client; 

void setup() 
{ 
    Serial.begin(9600); 
    while (!Serial) 
    { 
    ; 
    } 

    if (Ethernet.begin(mac) == 0) 
    { 
    Serial.println("Failed to configure Ethernet using DHCP"); 
    Ethernet.begin(mac, ip); 
    } 

    delay(1000); 
    Serial.println("connecting..."); 

    if (client.connect("192.168.1.11", 1626)) 
    { 
    Serial.println("connected"); 
    } 
    else 
    { 
    Serial.println("connection failed"); 
    } 

} 

void loop() 
{ 
    client.write("hello", strlen("hello")+1); 

    if (!client.connected()) 
    { 
     Serial.println("connection failed"); 
    client.stop(); 
    return; 
} 
} 

Как можно Arduino закрыть это гнездо автоматически, когда он не имеет источника питания?

+0

Прошу прощения, но это не очень ясно :( –

+0

Что вам непонятно? @MartinJames –

ответ

0

С помощью Arduino вы не можете. Arduino не может автоматически закрыть розетку, когда нет источника питания. Arduino не похож на ноутбук или Android, поскольку у них есть собственный батарейный блок, и мозг не реагирует соответствующим образом. Кроме того, бедняжка даже не знает, когда сила выдувается.

Однако, это можно сделать. Дайте вашему Arduino один из своих собственных банков власти. Вы можете прочитать этот уровень напряжения powerbank и установить пороговую точку, чтобы заставить Arduino закрыть свои соединения и переспать.

+1

_ «Вы не можете». «Это можно сделать». _ Решите? –

+0

Пожалуйста не используйте форматирование кода в прозе. –

Смежные вопросы