Hallo,
ich hab mal wieder ne Frage...
Ich versuche Temperaturen als Text in einem UDP Paket zu verschicken.
In der ersten Version einfach so:
[highlight=epc]
if cycle(00,10) then {
sendudp (5050u16,192.168.178.210,convert(setdate(),$$)+$,$ +convert(RLSpeicherVonHeizung_Temperature,$$),0x0D ,0x0A)
} endif
[/highlight]
Die Pakete werden von netcat in eine Textdatei geschrieben. Mit dem ,0x0D,0x0A versuche ich Return&Linefeed zu machen.
Geht auch, aber davor enteht immer ein Byte mit NULL:
Das sieht im Hexeditor dann so aus:
00000044h: 32 36 2E 37 36 00 0D 0A ; 26.76...
Dadurch ist die Datei keine Textdatei sondern wird als irgendein Binärformat erkannt.
Das nervt bei weiteren Konvertierungen.
Probiert habe ich dann diverse Sachen:
[highlight=epc]
if cycle(00,10) then {
CarriageReturn1 = $\n$
TempSend = $$;
TempSend = TempSend + convert(setdate(),$$)+$,$;
TempSend = TempSend + convert(HLHeizung_Temperature,$$) + $,$ + CarriageReturn1;
sendudp (5050u16,192.168.178.21,TempSend)
} endif
[/highlight]
Diese Variante fand ich übersichtlicher (Es werden viel mehr Temperaturen gesendet als in dem Beispiel, das habe ich nur der Übersicht wegen gekürzt).
Leider wird hier die Variable vor dem Zusammenbau nicht geleert. Sie wird immer größer.
Warum??
Außerdem wird wieder kein Return/Linefeed erzeugt.
Was muss ich tippen für dieses Return&Linefeed, aber ohne das davor ein Nullbyte ensteht???
Danke,
yapon
ich hab mal wieder ne Frage...
Ich versuche Temperaturen als Text in einem UDP Paket zu verschicken.
In der ersten Version einfach so:
[highlight=epc]
if cycle(00,10) then {
sendudp (5050u16,192.168.178.210,convert(setdate(),$$)+$,$ +convert(RLSpeicherVonHeizung_Temperature,$$),0x0D ,0x0A)
} endif
[/highlight]
Die Pakete werden von netcat in eine Textdatei geschrieben. Mit dem ,0x0D,0x0A versuche ich Return&Linefeed zu machen.
Geht auch, aber davor enteht immer ein Byte mit NULL:
Das sieht im Hexeditor dann so aus:
00000044h: 32 36 2E 37 36 00 0D 0A ; 26.76...
Dadurch ist die Datei keine Textdatei sondern wird als irgendein Binärformat erkannt.
Das nervt bei weiteren Konvertierungen.
Probiert habe ich dann diverse Sachen:
[highlight=epc]
if cycle(00,10) then {
CarriageReturn1 = $\n$
TempSend = $$;
TempSend = TempSend + convert(setdate(),$$)+$,$;
TempSend = TempSend + convert(HLHeizung_Temperature,$$) + $,$ + CarriageReturn1;
sendudp (5050u16,192.168.178.21,TempSend)
} endif
[/highlight]
Diese Variante fand ich übersichtlicher (Es werden viel mehr Temperaturen gesendet als in dem Beispiel, das habe ich nur der Übersicht wegen gekürzt).
Leider wird hier die Variable vor dem Zusammenbau nicht geleert. Sie wird immer größer.
Warum??
Außerdem wird wieder kein Return/Linefeed erzeugt.
Was muss ich tippen für dieses Return&Linefeed, aber ohne das davor ein Nullbyte ensteht???
Danke,
yapon
Kommentar