hi here is my code.
#include <SPI.h>
#include <Ethernet.h>
#include <EEPROM.h>
char i=0x00;
char incomingByte = 0;
/*************************************************************************************************/
/*************************************sereiel comm************************************************/
void seriel_com();
char verdi=0x00;
char data_ind[77];
/*************************************************************************************************/
/************************************hent serie nummer********************************************/
void serie_nummer();
char sporg_serie_nummer[24]={0x02,0xaa,0xaa,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x55,0x02,0xaa,0xaa,0x01,0x00,0x00,0x00,0x00,0x04,0x00,0x01,0x59};
char serienummer_tel=0x00;
//char data_ind=0x00;
char * dst;
char sernr[0xff];
char serienummer=0x00;
boolean init_flag=0;
/*************************************************************************************************/
/*************************************init ok*****************************************************/
void init_ok();
//char chek_tot=0x00;
unsigned long chek_tot=0x00;
char chek_test[2];
/*************************************************************************************************/
/******************************hent al data*******************************************************/
void inv_data();
char sporg_data[12]={0x02,0xAA,0xAA,0x01,0x00,0x00,0x01,0x01,0x10,0x00,0x01,0x67};
char data_fil[0xff];
char * dst1;
/*************************************************************************************************/
/******************************pak fil************************************************************/
void pak_fil();
/*************************************************************************************************/
/******************************send al data*******************************************************/
void send_all_data();
/*************************************************************************************************/
// MAC adresse - skal være unik
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
// Serverens navn
char serverName[] = "xxxx.yyyyy.dd";
EthernetClient client;
int totalCount = 0;
int loopCount = 0;
[color=red]char pageAdd[70];//If I change the variable char pageAdd[70]; to 200 can run 7 times but then it dies too[/color]
void setup() {
Serial.begin(9600);
// disable SD SPI
pinMode(4,OUTPUT);
digitalWrite(4,HIGH);
// Start ethernet
Serial.println("Starting ethernet...");
if(!Ethernet.begin(mac)) Serial.println("failed");
else Serial.println("ok");
digitalWrite(10,HIGH);
Serial.println(Ethernet.localIP());
delay(2000);
Serial.println("Ready");
}
void loop()
{
if(init_flag==0)
{
serie_nummer();
init_ok();
init_flag=1;
}
inv_data();
pak_fil();
send_all_data();
}
/*************************************************************************************/
/**************************seriel comm************************************************/
void seriel_com()
{
i=0x00;
while(i<verdi)
{
if (Serial.available() > 0)
{
incomingByte = Serial.read();
data_ind[i]=incomingByte;
i++;
}
}
}
/*************************************************************************************/
/**************************hent serie nummer******************************************/
void serie_nummer()
{
serienummer_tel=0x00;
while (serienummer_tel<24)
{
Serial.print(sporg_serie_nummer[serienummer_tel]);
serienummer_tel++;
}
verdi=21;
seriel_com();
i=0x00;
while (i<verdi)
{
EEPROM.write(i, data_ind[i]);
i++;
}
strcpy(sernr,"/invput?id=test_1");
dst = sernr + strlen(sernr);
for (i = 10; i < 19; i++) {
if (i > 0) {
//*(dst1++) = ',';
delay (10);
}
dst += sprintf(dst, "%d", serienummer=(EEPROM.read(i)-48));
}
strcat(sernr,"&data=1,2,3,4,5,6");
/* dst = sernr + strlen(sernr);
for (i = 0; i < 4; i++) {
if (i > 0) {
*(dst++) = ',';
delay (10);
}
dst += sprintf(dst, "%d", serienummer=(EEPROM.read(i)-48));
}*/
}
/*************************************************************************************/
/***************************init ok***************************************************/
void init_ok()
{
chek_tot=0x00;
EEPROM.write(2,0x01);
EEPROM.write(4,0x00);
EEPROM.write(7,0x01);
EEPROM.write(8,0x0B);
EEPROM.write(19,0x01);
i=0x00;
while(i<20)
{
chek_tot=EEPROM.read(i)+chek_tot;
i++;
}
chek_test[1]=chek_tot;
chek_test[0]=chek_tot>>8;
EEPROM.write(21,chek_test[1]);
EEPROM.write(20,chek_test[0]);
data_ind[0]=0x02;
Serial.print(data_ind[0]);
i=0x00;
while (i<22)
{
data_ind[i]=EEPROM.read(i);
Serial.print(data_ind[i]);
i++;
}
delay (100);
verdi=12;
seriel_com();
}
/************************************************************************************************/
/**********************************hent data*****************************************************/
void inv_data()
{
i=0x00;
while (i<12)
{
Serial.print(sporg_data[i]);
i++;
}
delay (1000);
verdi=77;
seriel_com();
i=0x00;
while (i<77)
{
data_ind[i]=EEPROM.read(i);
//Serial.print(data_ind[i]);
i++;
}
dst = sernr + strlen(sernr);
for (i = 0; i < 4; i++) {
if (i > 0) {
*(dst++) = ',';
delay (10);
}
dst += sprintf(dst, "%d", serienummer=EEPROM.read(i));
}
delay (100);
pak_fil();
}
/**************************************************************************************/
/***************************void pak_fil();********************************************/
void pak_fil()
{
}
/*************************************************************************************/
/***************************send alle data********************************************/
void send_all_data()
{
sprintf(pageAdd,sernr,totalCount);
if(!getPage(serverName,pageAdd)) Serial.print("Fail ");
else Serial.print("Pass ");
totalCount++;
Serial.println(totalCount,DEC);
}
byte getPage(char* domainBuffer,char* page)
{
int inChar;
char outBuf[128];
Serial.print("connecting...");
if(client.connect(domainBuffer,8000))
{
Serial.println("connected");
sprintf(outBuf,"GET %s HTTP/1.0\r\n\r\n",page);
client.write(outBuf);
}
else
{
Serial.println("failed");
return 0;
}
// connectLoop controls the hardware fail timeout
int connectLoop = 0;
while(client.connected())
{
while(client.available())
{
inChar = client.read();
Serial.write(inChar);
// set connectLoop to zero if a packet arrives
connectLoop = 0;
}
connectLoop++;
// if more than 10000 milliseconds since the last packet
if(connectLoop > 10000)
{
// then close the connection from this end.
Serial.println();
Serial.println("Timeout");
client.stop();
}
// this is a delay for the connectLoop timing
delay(1);
}
Serial.println();
Serial.println("disconnecting.");
// close client end
client.stop();
return 1;
}
it works perfectly, 4 times and then it dies.
If I change the variable char pageAdd[70]; to 200 can run 7 times but then it dies too.
I need it to run endless so every time it receives data it gets sent to the server