Hi,
wenn du nur einen Parameter für HTTPLOG() nutzt, dann wird nach dem
Umwandeln in C die Funktion httplog_P() mit dem einen übergebenen und
nicht weiter malträtierten Parameter als Argument aufgerufen. Wird mehr
als ein Parameter übergeben, dann wird httplog_P() aber mit dem ersten
Parameter in einem PSTR()-Makro aufgerufen und alle weiteren Parameter
direkt. Ohne PSTR() zeigt der Pointer auf die erste Zeichenkette auf
einem AVR aber irgendwo in das RAM, statt in das Flash, wo die
Zeichenketten für die *_P()-Funktionen erwartet werden.
Teste doch bitte nochmal ein HTTPLOG(PSTR("kuckuck")). Wenn das ohne
Problem funktioniert, dann die Form mit einem Parameter bitte so mit
PSTR() verwenden. Andernfalls bitte ein Issue im Github öffnen. Das ist
entweder ein Bug in der kaum bis gar nicht vorhandenen Doku, oder ein
Bug in dem M4-Code. Schauen wir mal... :-)
VG michaelb.
Post by Tom WeberMoin,
@Michael: Jawoll, mit der Änderung lüppt es. Die erzeugte control6.c
ist im Anhang. Ist das ein Bug, der geforkt wird ? Sonst passe ich
wohl einfach alle meine Boards an, wenn das nicht mit einem git pull
origin in die Quere kommt...
@Justin: Ich nutze das, um regelmäßig oder aufgrund eines Eregnisses
die Messwerte am ADC und die PINzustände an meinen Hausbus zu
übertagen. Da habe ich eine http-Schnittstelle, wo ich im Prinzip
alles im Haus steuern kann. Watch-IO wollte einfach nicht, wenn die
PINS auf Output stehen.
http://wiki.volkszaehler.org/hardware/channels/sensors/1_wire
da steht dann HTTPLOG("<uuid>.json?value=%s", temp_str);
also doch mehr als 1 Parameter, wenn printf-Formatierungen genutzt werden ?
Jedenfalls super, dass es jetzt funzt !
Grüße,
Tom
Post by Michael BrakemeierHi,
@Tom: ändere doch bitte mal in Zeile 16 in control6/lang.d/50_httplog.m4
das `httplog_P($1)' in `httplog($1)' und versuche es nochmal. Und poste
doch bitte mal die aus dem control6 generierte C-Quelle.
VG michaelb
P.S.: das ist m4-Code - die unterschiedlichen Hochkommata müssen genau
so ;-)
Post by j***@justinotherguy.orgHi Tom,
Post by Tom WeberGET /pck?\001 HTTP/1.1\n
dabei scheint es ziemlich egal zu sein, welchen String ich da
GET /pck?\001 HTTP/1.1\n
aus purer Verzweiflung habe ich jetzt ein
GET /pck?Kuckuck HTTP/1.1\n
kann es sein, dass irgendwie eine 2.Option nötig ist?
das klingt seltsam; ich bin nicht sicher, ob ich httplog via
control6 je selbst verwendet habe.
Via watchasync und via ecmd klappts auf alle Fälle - mag sein, dass
das in control6 ne Macke hat.
Was genau hast Du denn vor?
Gruß, J.
_______________________________________________
Ethersex-devel mailing list
http://list.zerties.org/cgi-bin/mailman/listinfo/ethersex-devel
_______________________________________________
Ethersex-devel mailing list
http://list.zerties.org/cgi-bin/mailman/listinfo/ethersex-devel
--
Michael Brakemeier
***@brakemeier.de