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.

Am 11.05.2015 um 12:57 schrieb Tom Weber:
> Moin,
>
> @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.
>
> P.S. Mich wundert es, dass ich im Netz Beispiele mit HTTPLOG finde:
> 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
>
> Am 11.05.2015 um 09:51 schrieb Michael Brakemeier:
>> Hi,
>>
>> @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 ;-)
>>
>> Am 11.05.2015 um 09:19 schrieb jus...@justinotherguy.org:
>>> Hi Tom,
>>>
>>>> Am 11.05.2015 um 07:16 schrieb Tom Weber <tom.we...@gmx.de>:
>>>>
>>>> wenn ich den request mit httplog aus control6 absetze, sehe ich in
>>>> Wireshark:
>>>> GET /pck?\001 HTTP/1.1\n
>>>> dabei scheint es ziemlich egal zu sein, welchen String ich da
>>>> absetze. So erzeugt ein HTTPLOG("Kuckuck") in Wireshark:
>>>> GET /pck?\001 HTTP/1.1\n
>>>> aus purer Verzweiflung habe ich jetzt ein
>>>> HTTPLOG("Kuckuck","test"); abgesetzt, dann kommt:
>>>> 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 klappt’s 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
>>> Ethersex-devel@list.zerties.org
>>> http://list.zerties.org/cgi-bin/mailman/listinfo/ethersex-devel
>>>
>
>
>
> _______________________________________________
> Ethersex-devel mailing list
> Ethersex-devel@list.zerties.org
> http://list.zerties.org/cgi-bin/mailman/listinfo/ethersex-devel

-- 
Michael Brakemeier
mich...@brakemeier.de

_______________________________________________
Ethersex-devel mailing list
Ethersex-devel@list.zerties.org
http://list.zerties.org/cgi-bin/mailman/listinfo/ethersex-devel

Antwort per Email an