Webserver ajax_inputs en GET /
5 berichten
• Pagina 1 van 1
Webserver ajax_inputs en GET /
ik werk met mijn web server via ajax inputs om zo mijn apparaten aan te sturen.
nu wil ik op de webserver OOK images kunnen laden.
als ik mijn sketch uit rust met :
werkt alles om aan te sturen maar geen image load.
als ik de sketch uit voer met :
werkt de image wel maar het schakelen niet meer.
is er een combi van dit te maken??
staat de sketch ook niet toe. (heeft te maken met de RCSWITCH libary)
nog even de complete void loop :
nu wil ik op de webserver OOK images kunnen laden.
als ik mijn sketch uit rust met :
- Code: Alles selecteren
if (StrContains(HTTP_req, "ajax_inputs")) {
// send rest of HTTP header
client.println(F("Content-Type: text/xml"));
client.println(F("Connection: keep-alive"));
client.println();
SetLEDs();
// send XML file containing input states
XML_response(client);
}
werkt alles om aan te sturen maar geen image load.
als ik de sketch uit voer met :
- Code: Alles selecteren
if (StrContains(HTTP_req, "GET / ")
|| StrContains(HTTP_req, "GET /index.htm")) {
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connnection: close");
client.println();
webFile = SD.open("index.htm"); // open web page file
}
else if (StrContains(HTTP_req, "GET /pic.jpg")) {
webFile = SD.open("pic.jpg");
if (webFile) {
client.println("HTTP/1.1 200 OK");
client.println();
}
}
werkt de image wel maar het schakelen niet meer.
is er een combi van dit te maken??
- Code: Alles selecteren
if (StrContains(HTTP_req, "ajax_inputs", "GET /")) {
staat de sketch ook niet toe. (heeft te maken met de RCSWITCH libary)
nog even de complete void loop :
- Code: Alles selecteren
void loop()
{
EthernetClient client = server.available(); // try to get client
if (client) { // got client?
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) { // client data available to read
char c = client.read(); // read 1 byte (character) from client
// limit the size of the stored received HTTP request
// buffer first part of HTTP request in HTTP_req array (string)
// leave last element in array as 0 to null terminate string (REQ_BUF_SZ - 1)
if (req_index < (REQ_BUF_SZ - 1)) {
HTTP_req[req_index] = c; // save HTTP request character
req_index++;
}
// last line of client request is blank and ends with \n
// respond to client only after last line received
if (c == '\n' && currentLineIsBlank) {
// send a standard http response header
client.println(F("HTTP/1.1 200 OK"));
// remainder of header follows below, depending on if
// web page or XML page is requested
// Ajax request - send XML file
if (StrContains(HTTP_req, "ajax_inputs")) {
// send rest of HTTP header
client.println(F("Content-Type: text/xml"));
client.println(F("Connection: keep-alive"));
client.println();
SetLEDs();
// send XML file containing input states
XML_response(client);
}
else { // web page request
// send rest of HTTP header
client.println(F("Content-Type: text/html"));
client.println(F("Connection: keep-alive"));
client.println();
// send web page
webFile = SD.open("index.htm"); // open web page file
if (webFile) {
while(webFile.available()) {
client.write(webFile.read()); // send web page to client
}
webFile.close();
}
}
// display received HTTP request on serial port
Serial.print(HTTP_req);
// reset buffer index and all buffer elements to 0
req_index = 0;
StrClear(HTTP_req, REQ_BUF_SZ);
break;
}
// every line of text received from the client ends with \r\n
if (c == '\n') {
// last character on line of received text
// starting new line with next character read
currentLineIsBlank = true;
}
else if (c != '\r') {
// a text character was received from client
currentLineIsBlank = false;
}
} // end if (client.available())
} // end while (client.connected())
delay(1); // give the web browser time to receive the data
client.stop(); // close the connection
} // end if (client)
}
Advertisement
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Webserver ajax_inputs en GET /
-zuur- schreef:
- Code: Alles selecteren
if (StrContains(HTTP_req, "ajax_inputs", "GET /")) {
staat de sketch ook niet toe. (heeft te maken met de RCSWITCH libary)
Lijkt me logisch. StrContains() kan alleen kijken of HTTP_req EEN string bevat niet 2. Dan moet je hem splitsen en en beide vragen ORen. RCSwitch lijkt me stug eigenlijk.
Re: Webserver ajax_inputs en GET /
ok daar zit wel een logica in maar ik heb het ook al met OR gedaan ||
maar hierbij doet hij ook niks....
kan je me een handje op weg helpen??
maar hierbij doet hij ook niks....
kan je me een handje op weg helpen??
Re: Webserver ajax_inputs en GET /
- Code: Alles selecteren
if (StrContains(HTTP_req, "GET / ")
|| StrContains(HTTP_req, "GET /index.htm")) {
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connnection: close");
client.println();
webFile = SD.open("index.htm"); // open web page file
}
if (StrContains(HTTP_req, "GET /pic.jpg")) {
webFile = SD.open("pic.jpg");
if (webFile) {
client.println("HTTP/1.1 200 OK");
client.println();
}
}
ik heb else weggehaald probeer dat eens
paul deelen
shooter@home.nl
shooter@home.nl
Re: Webserver ajax_inputs en GET /
helaas krijg ik het nog steeds niet voor elkaar.
ik heb met if 's geprobeerd met else if
na de if (webfile) plaatsen er voor maar niks werkt...
als ik met meer else if 's werk kan ik wel meerdere plaatjes laden dus de else if 's achter elkaar werken wel.
alleen krijg ik de ajax inputs niet in de sketch er bij.
ik heb met if 's geprobeerd met else if
na de if (webfile) plaatsen er voor maar niks werkt...
als ik met meer else if 's werk kan ik wel meerdere plaatjes laden dus de else if 's achter elkaar werken wel.
alleen krijg ik de ajax inputs niet in de sketch er bij.
- Code: Alles selecteren
if (StrContains(HTTP_req, "GET / ")
|| StrContains(HTTP_req, "GET /index.htm")) {
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connnection: close");
client.println();
webFile = SD.open("index.htm"); // open web page file
}
else if (StrContains(HTTP_req, "GET /lamp1.jpg")) {
webFile = SD.open("lamp1.jpg");
if (webFile) {
client.println("HTTP/1.1 200 OK");
client.println();
}
}
else if (StrContains(HTTP_req, "GET /TV.jpg")) {
webFile = SD.open("TV.jpg");
if (webFile) {
client.println("HTTP/1.1 200 OK");
client.println();
}
}
if (webFile) {
while(webFile.available()) {
client.write(webFile.read()); // send web page to client
}
webFile.close();
}
// met dit stuk hier onder er bij werkt het niet meer.
if (StrContains(HTTP_req, "ajax_inputs")) {
// send rest of HTTP header
client.println(F("Content-Type: text/xml"));
client.println(F("Connection: keep-alive"));
client.println();
SetLEDs();
// send XML file containing input states
XML_response(client);
}
5 berichten
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 30 gasten