Zitat von Jambala
Beitrag anzeigen
Code:
[EibPC]
// FTP Transfer zum beliebigen Datenloggen
//
// Der FTP Transfer schreibt Dateien auf einen externen FTP Server, wobei
// die maximale Dateigröße 64 kB ist.
// Dazu können verschiedene Handles angelegt werden, die ihrerseits per
// Warteschlange gepuffert bis zu 64 kB große Dateien auf dem Server anlegen. Die Dateien werden
// per Timeout auch früher (und dann ggf. weniger Bytes) oder per flushftp()
// vom User initiert geschrieben.
// Die Dateien werden von der Firmware automatisch nach Datum und Uhrzeit benannt.
// Als Eingabe können Strings geschrieben werden. Die Datei ist demnach im ASCII Format und
// werden mit der Funktion sendftp() in die Warteschlange geschrieben.
// Dabei wird am Ende der Datenübermittlung von sendftp ein LF-CR (Zeilumbruch für Windows geeignet)
// eingefügt. Ein Aufruf von sendftp kann mehrere Teilstrings übergeben, aber nicht mehr als 1400 Bytes
// ingesamt übernehmen.
// Es können nicht mehr als 4 Handles definiert werden.
// ServerDaten
server=$ftp.enertex.de$
user=$enertex$
password=$jedi$
path=$KNX/Telegramme$
// Timeout in Sekunden
timeout=86400u32
// FTP Queue anlegen
// Wenn Handle ungleich Null, dann ist das fehlerfrei gelungen
Handle=ftpConfig(server,user,password,path,timeout)
// Daten in die Queue schreiben
Data1=$Daten Nr. $
Data2=$ des internen Zählers - $
Nr=0u16
status=3
if stime(0) then {
// beliebige Daten auf die Warteschlange des Handels schreiben
// Zuweisung erfolgt asynchron
// status (Erfolg = 0 / Fehler = 1)
// beliebig viele Argumente
status=sendftp(Handle, Data1,convert(Nr,$$),Data2,convert(settime(),$$));
Nr=Nr+1u16;
} endif
// Daten "manuell" flushen (nur dann wird die Übertragung aktiv
if mtime(0,0) then {
// Zuweisung erfolgt asynchron
// status (Erfolg = 0 / Verarbeitung = 1 / Fehler = 2)
status=flushftp(Handle);
} endif
Code:
[EibPC]
s1=$$c1400
string_1400Byte=$ $
string_56Byte=$§fj$c56
string_65534Byte=$§fj$c65534
// Summe ist 1400 Byte lang
stringSum= string_1400Byte+string_56Byte
if systemstart() then {
stringset(string_56Byte,65,0u16);
stringset(string_65534Byte,65,60000u16);
}endif
st='1/2/3'c14
if after(systemstart(),10u64) then {
// Sollte OK Melden
if stringcast(string_65534Byte,0,60000u16)==65 then write('1/2/3'c14,$OK$c14) endif;
if stringcast(string_65534Byte,0,60000u16)!=65 then write('1/2/3'c14,$Fehler$c14) endif;
if find(string_65534Byte,$x$,0u16)==EOS then write('1/2/3'c14,$Find ok$c14) endif;
} endif
MaxLen=capacity(string_56Byte)
if after(systemstart(),500u64) then {
write('1/2/3'c14,convert(MaxLen,$$c14));
}endif
Code:
[EibPC]
Dummy='1/2/3'c14
//----------------------
// Vor dem Sonnenaufgang
// 01 Std. 10 min 25 Sekunden vor Sonnenaufgang
if presun(01,10,25) then {
write('1/2/3'c14,$Kaffee$c14);
} endif
// 01 Std. 10 min 25 Sekunden vor Sonnenuntergang
if !presun(01,10,25) then {
write('1/2/3'c14,$Bier$c14);
} endif
///-------------------
// UtC
// Mit Hilfe der utcConvert-Funktion soll die Umwandlung dieser Zeitangabe in ein c1400 String-Format YYYY-MM-DD-HH-MM-SS erfolgen können.
// Aktualisierung jede volle Sekunde
//
// Datentyp u64
x=utctime()
DateTime=$$
if htime(0,0,0) then {
DateTime=utcconvert(x);
// String in Zeit
x=utc($2012-09-03-20-00-17$);
} endif
Und dann arbeiten wir noch an den erweiterten Chartmöglichkeiten. Aber da müsst Ihr noch eine (+X) Woche warten, bis die Spek in Form von Code hier gepostet wird.
Mit welchem Release Monat planst Du aktuell?


Wer Rechtschreibfehler findet, darf sie behalten.
Einen Kommentar schreiben: