The Hardware used is a X Pico WiFi shield with UNO. Basically this is a Device Server which takes in a data stream from a UART and puts it on a WiFi LAN. Read more here :
I am trying to publish some AI and Time values on to the WiFi LAN and then display the same in a PC on the same LAN but in a different place.
This works fine ( I am able to see the string that I am putting out ) on the EDGE and CHROME browsers running on my laptop on the same LAN . But when I try to open a SAFARI browser on the same LAN nothing shows and the session times out.
I understand that some Web Clients like SAFARI strictly expect a HTTP header before they can show or process the incoming data. I have given the loop code which puts out the string to the XPico shield. Question is how to add a HTTP header to this string ?
void loop()
{
// POST THE REQUIRED TIME AND AI STATUS TO THE DEVICE SERVER
// WHICH WILL IN TURN BROADCAST IT ON THE WIFI LAN..
ReadTime();
Serial.print( year );
Serial.print(':');
Serial.print( month );
Serial.print(':');
Serial.print( dayOfMonth );
Serial.print('|');
Serial.print( hour );
Serial.print(':');
Serial.print( minute );
Serial.print(':');
Serial.print( second );
Serial.print('|');
Val_00 = analogRead(Sens00);
Val_01 = analogRead(Sens01);
Val_02 = analogRead(Sens02);
Val_03 = analogRead(Sens03);
RA_Ch00.addValue(Val_00);
RA_Ch01.addValue(Val_01);
RA_Ch02.addValue(Val_02);
RA_Ch03.addValue(Val_03);
Serial.print(RA_Ch00.getAverage(), 2);
Serial.print('|');
Serial.print(RA_Ch01.getAverage(), 2);
Serial.print('|');
Serial.print(RA_Ch02.getAverage(), 2);
Serial.print('|');
Serial.print(RA_Ch03.getAverage(), 2);
Serial.println('|');
delay (loopDelay);
}// End of main loop.
Would something like below if added be adequate ?
Serial.println("HTTP/1.1 200 OK");
Serial.println("Content-Type: text/html");
Serial.println("Connection: close"); // the connection will be closed after response
Serial.println();
Serial.println("<!DOCTYPE HTML>");
Serial.println("<html>");