I want save IP Address to EEPROM.
To my user running webserver is possible change IP Address.
My problem is convert string to Byte
My Complete Code :
/* Ethernet shield attached to pins 10, 11, 12, 13 */
#include <SPI.h>
#include <Ethernet.h>
#include <EEPROM.h>
#include <C:\Temp\Eletronica\arduino-0022\libraries\TextFinder\TextFinder.h>
Server server(80);
//Server TelnetServer(23);
const int buttonPin = 2; // the number of the pushbutton pin
int buttonState = 0; // variable for reading the pushbutton status
String readString = String(30); //string for fetching data from address
int address = 0;
boolean gotAMessage = false;
int IP[4] = {192, 168,1, 170};
int gat[4] = {192,168,100,2};
int Sub[4] = {255,255,0,0};
void setup()
{
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { IP[0],IP[1],IP[2], IP[3] };
byte gateway[] = { gat[0],gat[1],gat[2],gat[3]};
byte subnet[] = { Sub[0], Sub[1], Sub[2], Sub[3] };
Ethernet.begin(mac, ip, gateway, subnet);
server.begin();
//TelnetServer.begin();
pinMode(2, INPUT);
pinMode(3, OUTPUT);
// Serial.begin(9600);
}
void loop()
{
int varBateria;
int varRede;
long varTemperatura;
boolean varAlarme = true;
boolean varPagina = false;
// listen for incoming clients
Client client = server.available();
if (client) {
// an http request ends with a blank line
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
if (readString.length() < 100)
{
readString += c; //replaces readString.append(c);
}
if (c == '\n' && currentLineIsBlank) {
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
client.println("<HTML>");
if(readString.indexOf("Reset=1") > 0){
client.println("<font face=verdana size=3><b>O Nobreak sera reiniciado!!</b></Font>");
digitalWrite(3, HIGH);
delay(2000);
digitalWrite(3, LOW);
client.println();
client.stop();
break;
}
if(readString.indexOf("SalvaConf") > 0){
//TextFinder finder(client);
//finder.find("GET /");
//finder.findUntil("IP", "\n\r");
//char type = client.read();
int posA;int posB;int posC;int posD;int posE;
//char IP1;char IP2;char IP3;char IP4;
//char SUB1;
//byte Sub2;byte SUB3;char SUB4;
//char GT1;char GT2;byte GT3;char GT4;
client.println("<font face=verdana size=3><b>As configuracoes foram salvas!!</b></Font>");
posA=readString.indexOf("IP");
posB=readString.indexOf(".", posA+1);
posC=readString.indexOf(".", posB+1);
posD=readString.indexOf(".", posC+1);
posE=readString.indexOf("&", posD+1);
String IP1 = String(readString.substring(posA+3,posB));
String IP2 = String(readString.substring(posB+1,posC));
String IP3 = String(readString.substring(posC+1,posD));
String IP4 = String(readString.substring(posD+1,posE));
int x;
x = atoi(IP1);
client.println(IP1);
// gravaConf(IP1, IP2, IP3, IP4, Sub1, Sub2, Sub3, Sub4, GT1, GT2, GT3, GT4);
// client.println(readString);
client.stop();
break;
}
My answer code:
String IP1 = String(readString.substring(posA+3,posB));
String IP2 = String(readString.substring(posB+1,posC));
String IP3 = String(readString.substring(posC+1,posD));
String IP4 = String(readString.substring(posD+1,posE));
Please how to??