néha ki szokott fagyni egyik - másik vagy mindkét szerver... írtam egy újrainicializáló függvényt, hogy ha észreveszem, hogy lefagyott SerialCommand-dal elindítom a függvényt és minden helyreáll (nem kell resetelni).
azt akarom elérni, hogy a rendszer időközönként ellenőrizze, hogy üzemkész-e vagy sem (és ekkor újrainicializál magától).
úgy próbáltam kideríteni, hogy üzemkész-e a rendszer, hogy megrróbál kliensként csatlakozni a routerhez, ha megy akkor oké, ha nem akkor inicializál...
de azt vettem észre, hogy amint az appClient-hez csatlakozok a telefonnal (nincs appClient.stop(), folyamatos a kapcsolat), sem a client nem tud a routerhez csatlakozni, sem az appClient.conneced() nem veszi fel az 1- értéket. (mindkét esetben problémát jelez... ha viszont lefut az inicializálás, akkor a telefonos applikációval megszakad a kapcsolat.
miként tudná a program megállapítani, hogy szükség van-e újrainicializálásra? és miért nem képes kliensként csatlakozni, ha az applikáció bekapcsolódik a 843-as porton?
Kód: Egész kijelölése
void EthernetCheck(){
// check client
Serial.println(F("Checking Ethernet connections."));
Serial.print(F("webClient : "));
if (client.connect("192.168.1.1",80)){
Serial.println(F(" Ok."));
client.stop();}
else{
Serial.println(F(" Problem."));
// EthernetInitialize();
}
// check appClient
Serial.print(F("appClient : "));
Serial.print(appClient.connected());
if(!appClient.connected()){
if (appClient.connect("192.168.1.1",80)){
Serial.println(F(" Ok."));
appClient.stop();}
else{
Serial.println(F(" Problem."));
// EthernetInitialize();
}
}
}
void EthernetInitialize(){
Serial.println(F("Ethernet Initialization"));
EthernetUDP Udp;
EthernetServer server(80);
EthernetServer appServer(843);
Ethernet.begin(mac, ip);
server.begin();
appServer.begin();
Udp.begin(localPort);
}