Seite 1 von 1

4 TFTs von Mo-So mit verschieden Grafiken nach Zeit

Verfasst: 25.06.2012 15:47
von gnaps
Hallo Forum,

ich stehe hier ein bisschen auf dem Schlauch bzw. weis nicht wie ich folgendes angehen soll.

Ich habe 1PC mit 4 TFT-Monitore die von Montag bis Sonntag mit verschiedenen Grafiken
zu einer bestimmten Zeit versorgt werden sollen.
Ich möchte pro Tag 10 verschiedene Ereignisse pro Monitor steuern können.
Der Tag, die Zeiten und der Name der Grafik werden in einer .prefs- Datei abgelegt.

Also sind das 4-TFT x 7-Tage x 10-Einträge = 280 Einträge.

in der .prefs wären das
= 280 Einträge für den Tag
= 280 Einträge für die Uhrzeit
= 280 Einträge für die Grafikdatei

Eine Abfrage "WaitWindowEvent(10000)" also alle 1 Minute würde vollkommen ausreichen.

Wie frage ich am besten die Zeit-Ereignisse ab?
Würdet Ihr die 3x280 = 840 Daten beim Programmstart in die Variablen packen oder nach Ereignisse aus der .prefs lesen ?

Ich weis echt nicht wie ich da rangehen soll.
Hat jemand die zündende Idee.

Gruß
gnaps

Re: 4 TFTs von Mo-So mit verschieden Grafiken nach Zeit

Verfasst: 25.06.2012 15:51
von ts-soft
Wenn ich das jetzt richtig verstanden habe, würde ich die Daten in ein Array beim start einlesen und einen Window-Timer nutzen.
Ein Timeout in WaitWindowEvent() ist da eher nicht geeignet, bzw. sinnvoll.

Re: 4 TFTs von Mo-So mit verschieden Grafiken nach Zeit

Verfasst: 05.07.2012 06:23
von gnaps
Hallo,

ich muss das Thema nochmal hochholen.

Die Schaltzeiten und Bildnamen lege ich in einer .prefs-Datei ab,
beim Programmstart hole ich alle Ereignisse in ein Array "Zeit.s()" für die Zeiten und ein Array "Bild.s()" für die Bildnahmen.

Soweit so gut.

Wie mache ich jetzt am besten die Zeitabfrage.

Hier noch kurz der Ablauf

Monitor 1
Montag
6.00 Bild "Monitor1Montag1" anzeigen
10.00 Bild "Monitor1Montag2" anzeigen
12.00 Bild "Monitor1Montag3" anzeigen
.....usw. habe hier 10 Möglichkeiten
Monitor 2
Montag
6.00 Bild "Monitor2Montag1" anzeigen
10.00 Bild "Monitor2Montag2" anzeigen
12.00 Bild "Monitor2Montag3" anzeigen
.....usw. habe auch hier 10 Möglichkeiten
Monitor 3
Montag
6.00 Bild "Monitor3Montag1" anzeigen
10.00 Bild "Monitor3Montag2" anzeigen
12.00 Bild "Monitor3Montag3" anzeigen
.....usw. habe auch hier 10 Möglichkeiten
Monitor 4
Montag
6.00 Bild "Monitor4Montag1" anzeigen
10.00 Bild "Monitor4Montag2" anzeigen
12.00 Bild "Monitor4Montag3" anzeigen
.....usw. habe auch hier 10 Möglichkeiten

das war für Montag, das ganze jetzt noch bis Sonntag.

In der Prefs steht
Montag
Monitor 1
6.00
Monitor1Montag1.jpg
10.00
Monitor1Montag2.jpg
12.00
Monitor1Montag3.jpg
... usw.

Monitor 2
6.00
Monitor2Montag1.jpg
10.00
Monitor2Montag2.jpg
12.00
Monitor2Montag3.jpg
... usw.

Monitor 3
6.00
Monitor3Montag1.jpg
10.00
Monitor3Montag2.jpg
12.00
Monitor3Montag3.jpg
... usw.

Monitor 4
6.00
Monitor4Montag1.jpg
10.00
Monitor4Montag2.jpg
12.00
Monitor4Montag3.jpg
... usw.

Wir würdet Ihr die Abfrage machen ?

Gruß
gnaps

Re: 4 TFTs von Mo-So mit verschieden Grafiken nach Zeit

Verfasst: 05.07.2012 07:24
von Macros
Ich würde das so machen:

Code: Alles auswählen

Structure S_Bild
  file.s
  time.i
EndStructure

;4 Monitore, 7 Tage, 10 Zeiten
Dim Images.S_Bild(3,6,9) 
; Einlesen, Zeiten werden in Sekunden umgewandelt, 
; d.h. 10:00 Uhr= 10*3600
;Achtung: Sonntag ist Tag 0!

; Abfrage wenn geprüft werden soll, welches Bild angezeigt wird.
currentDate=Date()
day=DayOfWeek(currentDate)
seconds_since_daystart=Hour(currentDate)*3600+Minute(currentDate)*60+Second(currentDate)
; für jeden Monitor
For monitor=0 To ArraySize(Images(),1)
  found=-1
  ; gehe alle eingetragenen Zeiten durch
  For bild=0 To ArraySize(Images(),3)
    If Images(monitor,day,bild)\time>seconds_since_daystart
      found=bild
    EndIf
  Next
  ; Falls wir ein Bild haben, das angezeigt werden soll
  If found>-1
    If getCurrentImage(monitor) <> Images(monitor,day,found)\file
      ChangeImage(monitor,Images(monitor,day,found)\file)
    EndIf
  EndIf
Next

Re: 4 TFTs von Mo-So mit verschieden Grafiken nach Zeit

Verfasst: 06.07.2012 15:31
von gnaps
Hallo,

wie bekomme ich die Uhrzeit in der .prefs richtig gespeichert z.B. 8:00
und wie lese ich diese wieder aus ?

wie prüfe ich ein Stringgadget ob hier das richtige Format
für die Uhrzeit eingegeben ist z.B. 8:00 ?

Danke im voraus

Gruß
gnaps

Re: 4 TFTs von Mo-So mit verschieden Grafiken nach Zeit

Verfasst: 06.07.2012 15:53
von ts-soft
Guck mal in die DateLib. Datum, bzw. Zeit wird als long gespeichert. Zur Zeiteingabe könnte man ein DateGadget nutzen.