If Bedingungen und Variablen
-
Hallo Zusammen
Ich habe mit C leider nichts am Hut. Aber ich brauche eure Hilfe.
Bin dabei einen Webserver (AVR-Net-IO) die Hp zu ändern.Und zwar habe ich da eine Tabelle mit einer Zeile (drei Zellen) wo sich die Zellfarbe nach den entsprechenden Bedingungen ändern soll.
Das ist der jetzige Code:
" <tr>\r\n" " <td class=\"%PINA3\">Spar</td>\r\n" //%PINA3 " <td class=\"%PINA2\">Normal</td>\r\n" " <td class=\"%PINA1\">Party</td>\r\n" " </tr>\r\n"
was mich nicht Zufrieden stellt.
Was kann ich da machen.Zurveranschaung hier mal der Link http://www.wrg29378.selfhost.me:4711/
Danke schonmal im Vorraus
-
Ich versteh' nicht ganz, was da C sein soll, ich sehe nur HTML???
-
vielleicht stellst du auch eine Frage? Wir können nämlich nicht hellsehen.
-
supertux schrieb:
vielleicht stellst du auch eine Frage? Wir können nämlich nicht hellsehen.
Sorry das war nicht meine Absicht.
Meine Frage:
Wie kann ich es machenWenn A0 = 1 dann Bild1 (bzw Zelle Rot)
Wenn A0 = 1 und A1 = 1 dann Bild2 (bzw Zelle Rot)
Wenn A0 = 1 und A1 = 1 und A2 = 1 dann Bild3 (bzw Zelle Rot)Als Variable hätte ich da %PINA1;%PINA2;%PINA1 die Geschoss als Text enthalten.
Gruß
FKF
-
Und wo ist jetzt das C?
-
So irgendwann werden ich es Begreifen.
" <tr>\r\n"
if ( %Pin3 == Geschloss)
" <td class=\"%PINA3\">Spar</td>\r\n"
else
" <td> </td>\r\n"
end if
if ( %Pin3 == Geschloss || %Pin2 == Geschloss )
" <td class=\"%PINA3\"></td>\r\n"
" <td class=\"%PINA2\">Normal</td>\r\n"
else
" <td> </td>\r\n"
" <td> </td>\r\n"
end if
" <td> </td>\r\n"
" <td> </td>\r\n"
" <td> </td>\r\n"
" </tr>\r\n"Habe jetzt mal etwas, ich hoffe C hinzugefügt.
Aber richtig ist das bestimmt nicht oder?Gruß FKF
-
Ach so, dein HTML-Code wird mit C generiert. Du musst die Strings aber schon irgendeiner Variable zuweisen, die sie speichert und die Variablen nachher zu einem Code zusammenfügen.
-
Hallo,
FKF schrieb:
Aber richtig ist das bestimmt nicht oder?
Gruß FKFRichtig, richtig ist das nicht.
Vielleicht hilft das ein wenig:
#include <stdio.h> #include <stdlib.h> int main () { char *pina[3] = { "PINA1", "PINA2", "PINA3" }; char *env_value[3] = {0}; const char const *pina_const_demo = "Geschoss"; // Kanonenkugel? :D char *default_line = "<td> </td>\r\n"; char *line[3] = { "<td class=\"Geschoss\">Spar</td>\r\n", "<td class=\"Geschoss\">Normal</td>\r\n", "<td class=\"Geschoss\">Party</td>\r\n" }; env_value[0] = getenv ( pina[0] ); if ( env_value[0] == NULL ) // Gibt es die Umgebungsvariable "PINA1" ? { // Nö. printf ( "Die Umgebungsvariable %s ist nicht definiert, " "der hartcodierte Demowert\n" "%s wird benutzt.\n", pina[0], pina_const_demo ); env_value[0] = pina_const_demo; // Demowert setzen. } // ... // Wenn beide Variable nicht gleich sind, if ( strcmp ( env_value[0], pina_const_demo ) != 0 ) // Setze default_line line[0] = default_line; puts ( line[0] ); return 0; }
Falls du die line[3] noch etwas variabler brauchst, um Variableninhalte einzufügen, nimm z.B.
char buf_line_fmt[3][256] = { "<td class=\"%s\">Spar</td>\r\n", "<td class=\"%s\">Normal</td>\r\n", "<td class=\"%s\">Party</td>\r\n" }; char buf_line[3][256] = {0}; sprintf ( buf_line[0], buf_line_fmt[0], "WURST" ); puts ( buf_line[0] ); return 0;
Vllt. doch besser snprintf statt sprintf.
Gruß,
B.B.
-
Hallo Big Brother
Erstmal vielen Dank für deine Antwort
aber so recht Versteh ist es nicht.
Aber vieleicht kannst du mir dabei Helfen// Einsetzen des Pin Status %PI@xy bis %PI@xy // durch grüne oder graue Hintergrundarbe der Tabellenzelle //x = 0 : PINA / x = 1 : PINB / x = 2 : PINC / x = 3 : PIND //hier wird deine Variable geprüft.... if (strncasecmp_P("PIN",http_entry[index].new_page_pointer,3)==0) { unsigned char pin = (pgm_read_byte(http_entry[index].new_page_pointer+4)-48); b = 0; switch(pgm_read_byte(http_entry[index].new_page_pointer+3)) { case 'A': b = (PINA & (1<<pin)); //das hier trifft dann zu ! und PinA0 wird in b geschrieben break; case 'B': b = (PINB & (1<<pin)); break; case 'C': b = (PINC & (1<<pin)); break; case 'D': b = (PIND & (1<<pin)); break; } if(b) // hier wird geprüft, ob b = 1 (Eingang low) { strcpy_P(var_conversion_buffer, PSTR("153, 0, 0")); // setzt die Farbe rot [b]// hier kommt dann dein gewünschter Code rein, der anstatt %PINA0 angezeigt wird // [/b] } else // oder 0 (Eingang high) { strcpy_P(var_conversion_buffer, PSTR("0, 153, 0")); // grün } str_len = strnlen(var_conversion_buffer,CONVERSION_BUFFER_LEN); memmove(ð_buffer[TCP_DATA_START+a],var_conversion_buffer,str_len); a += str_len-1; http_entry[index].new_page_pointer = http_entry[index].new_page_pointer+5;
Hier müßte ich glaube Variable für Webseite einsetzen?
Gruß
FKF