Mit folgendem Code lässt sich die Dotmatrix als "Minivisu" für den Temperaturverlauf nutzen
[highlight=epc]
// Die GA, welche auf der Dot-Matrix visualisiert werden soll
Value="Büro1IstTemperatur-1/2/14"
// Der Wert, welche die Mittellinie der Anzeige darstellt (Höhe 4 Dots)
Soll = 22.5
SynOhr_Dot=$$c37
SynOhr_Pos=0u16
SynOhr_shift=0u64
// Wert in der Dotmatix: Balkendiagramm um die 21.0 und Stufe alle 0.25°
// Maximal 7 Stufen => 1,75° Anzeige
// Wenn man die Operation "*2-1" am Ende weglässt, so ergibt sich eine einfache
// Linie
SynOhr_Val = shift(8u08,convert((convert(Value,0.0)-Soll)*1.0/0.25,0s08))*2-1
SynOhr_Time = mtime(00,00) or mtime(15,00) or mtime(30,00) or mtime(45,00)
if SynOhr_Time then {
if (Value-Soll)<1.0 then SynOhr_Val=0 endif;
if (SynOhr_Pos>34u16) then {
SynOhr_Dot=split(SynOhr_Dot,1u16,34u16);
stringset(SynOhr_Dot,SynOhr_Val,34u16);
} endif;
if (SynOhr_Pos<35u16) then {
stringset(SynOhr_Dot,SynOhr_Val,SynOhr_Pos);
SynOhr_Pos=SynOhr_Pos+1u16;
} endif ;
} endif
// Ausgabe aufs Dotdisplay
if change(SynOhr_Dot) or stime(0) then {
write("Dot1-9/6/27",convert(split(SynOhr_Dot,0u16,13u16),$$c14)) ;
write("Dot2-9/6/28",convert(split(SynOhr_Dot,14u16,27u16),$$c14) );
write("Dot3-9/6/29",convert(split(SynOhr_Dot,28u16,36u16),$$c14) );
} endif
[/highlight]
Es werden dann fortlaufend Balken auf das Display auf das Dot-Display gezeichnet, wobei die GAs entsprechend zu setzen sind.
[highlight=epc]
// Die GA, welche auf der Dot-Matrix visualisiert werden soll
Value="Büro1IstTemperatur-1/2/14"
// Der Wert, welche die Mittellinie der Anzeige darstellt (Höhe 4 Dots)
Soll = 22.5
SynOhr_Dot=$$c37
SynOhr_Pos=0u16
SynOhr_shift=0u64
// Wert in der Dotmatix: Balkendiagramm um die 21.0 und Stufe alle 0.25°
// Maximal 7 Stufen => 1,75° Anzeige
// Wenn man die Operation "*2-1" am Ende weglässt, so ergibt sich eine einfache
// Linie
SynOhr_Val = shift(8u08,convert((convert(Value,0.0)-Soll)*1.0/0.25,0s08))*2-1
SynOhr_Time = mtime(00,00) or mtime(15,00) or mtime(30,00) or mtime(45,00)
if SynOhr_Time then {
if (Value-Soll)<1.0 then SynOhr_Val=0 endif;
if (SynOhr_Pos>34u16) then {
SynOhr_Dot=split(SynOhr_Dot,1u16,34u16);
stringset(SynOhr_Dot,SynOhr_Val,34u16);
} endif;
if (SynOhr_Pos<35u16) then {
stringset(SynOhr_Dot,SynOhr_Val,SynOhr_Pos);
SynOhr_Pos=SynOhr_Pos+1u16;
} endif ;
} endif
// Ausgabe aufs Dotdisplay
if change(SynOhr_Dot) or stime(0) then {
write("Dot1-9/6/27",convert(split(SynOhr_Dot,0u16,13u16),$$c14)) ;
write("Dot2-9/6/28",convert(split(SynOhr_Dot,14u16,27u16),$$c14) );
write("Dot3-9/6/29",convert(split(SynOhr_Dot,28u16,36u16),$$c14) );
} endif
[/highlight]
Es werden dann fortlaufend Balken auf das Display auf das Dot-Display gezeichnet, wobei die GAs entsprechend zu setzen sind.
Kommentar