Hi Kutte,kutte hat geschrieben:über Telnet läßt sich einiges machen. Guck mal in den entsprechenden Code.
Kutte
Hi Myjack,myjack hat geschrieben:Ohne Probleme möglich. Musst ja nur die POST-Variablen entsprechend auswerten.
Code: Alles auswählen
"<form method=POST action=\"index.htm\">"
"<input name=VAR00 value=%IP@0 maxlength=3>."
"<input name=VAR01 value=%IP@1 maxlength=3>."
"<input name=VAR02 value=%IP@2 maxlength=3>."
"<input name=VAR03 value=%IP@3 maxlength=3>"
"<input type=submit name=SUB value=\"IP speichern\">"
"</form>"
Code: Alles auswählen
#include <stdlib.h>
#include <avr/eeprom.h>
Code: Alles auswählen
unsigned char post_in2[4] = {'V','A','R'};
Code: Alles auswählen
// Einzelne Variablen finden und abarbeiten
if (eth_buffer[a] != *http_entry[index].post_ptr2++)
{
http_entry[index].post_ptr2 = post_in2;
}
if(*http_entry[index].post_ptr2 == 0)
{
// Prüfen, ob '=' nach post_in2 ('VAR') gefunden wurde
if (eth_buffer[a+3] == '=')
{
unsigned char counter = 0;
unsigned int post_str_size = 0;
// Länge der POST-Variable ermitteln
for (post_str_size=1; eth_buffer[a+post_str_size] != ('&'); post_str_size++) {
if (a+post_str_size>=TCP_DATA_END_VAR) break; //Abbrechen, falls Paket zu Ende
}
// Speicherbereich reservieren
char *post_str = malloc(post_str_size+1), *ppost_str = post_str;
// POST-Variable einlesen
for (unsigned char g=1; g<post_str_size; g++)
{
*ppost_str++ = eth_buffer[a+g];
}
// String-Ende setzen
*ppost_str = '\0';
// Zähler initialisieren (Welche VAR-Variable?)
counter = atoi((char*)ð_buffer[a-2]);
// 00-03 IP-Adresse
if (counter >=0 && counter <=3)
eeprom_write_byte((unsigned char*)(IP_EEPROM_STORE+counter),strtol(post_str,NULL,10));
// Speicherbereich wieder freigeben
free(post_str);
}
http_entry[index].post_ptr2 = post_in2;
//Schaltanweisung wurde gefunden
}
Code: Alles auswählen
unsigned char *post_ptr2;
Code: Alles auswählen
#include "stack.h"
Code: Alles auswählen
else if (strncasecmp_P(src,PSTR("IP@"),3)==0) {
FUNCS_DEBUG(" - IP-Adresse");
uint8_t c = (*(src+3)-48);
itoa(myip[c],dest,10);
src += 4;
}
myjack hat geschrieben:Soo... Habe mal ein Beispiel anhand der IP-Adresse gemacht.
Der Code ist - wenn ich hier nichts vergessen habe - fehlerfrei compilierbar, allerdings nicht auf 'nem Atmega getestet, da ich gerade keinen zur Hand habe. An und für sich sollte das aber funktionieren.