Hier mein Skript, um die Aussentemperatur auf dem Statusdisplay anzuzeigen. Hoffe aber, dass uns eq3 noch einfachere Möglichkeiten verrät!!
var source = dom.GetObject("BidCos-RF.KEQ0053708:1.TEMPERATURE"); !Temperatur vom Aussensensor;
string temp=""; !Temperatur als String;
string zeile=""; !Zeile;
string senden=""; !Sendestring zum Display;
var ascii=""; !ASCIIcode;
integer i=0; !Zählvariable;
temp=source.State().ToString();
while(zeile.Find(".")<0){ !Hier wird die Temperatur in ihre einzelne Zeichen zerlegt, bis Komma;
zeile=temp.Substr(i,1);
if(zeile.Find("-")==0){ !negative Tempeartur?, dann Minuszeichen (ASCIIcode:0x2D Hex);
senden="0x2D,";
}
else{
ascii=zeile.ToInteger()+30; !Ziffern in ASCII Code Umwandeln, Hex codiert;
senden=senden # "0x" # ascii # ","; !Zum Sendestring hinzufügen;
}
i=i+1;
zeile=temp.Substr(i,1);
}
senden=senden # "0x2E"; !Sendestring "." zufügen;
zeile=temp.Substr(i+1,1); !Noch eine Nachkommastelle;
ascii=zeile.ToInteger()+30;
senden=senden # ",0x" # ascii # ",";
senden=senden #"0x20,0x43"; !"Leerzeichen und "C" zum Sendestring zufügen;
zeile=senden;
senden="0x02,0x12,0x41,0x75,0x73,0x73,0x65,0x6E,0x11,0x85,0x0A,0x12,"#zeile #",0x11,0x85,0x0A,0x03";
dom.GetObject("BidCos-RF.LEQ1323607:2.SUBMIT").State(senden); !Sendestring an Display übertragen;
!Der Sendestring besteht aus HEX Zeichen;
!Startzeichen: 0x02 (STX);
!Textanfang Zeile1: 0x12;
!0x41,0x75,0x73x0x73,0x65,0x6E entspricht "Aussen";
!Textende Zeile1: 0x11;
!0x85: Zeile in blau schreiben 0x80...0x85 entspricht den Farben;
!0x0A: kein Icon 0x80...0x8B entspricht den Icons;
!Textanfang Zeile2: 0x12;
!zeile: Temperatur in Hexzeichen codiert;
!Textende Zeile2: 0x11;
!0x85: Zeile in blau schreiben 0x80...0x85 entspricht den Farben;
!0x0A: kein Icon 0x80...0x8B entspricht den Icons;
!Endzeichen: 0x03 (ETX);
Viel Spaß damit!