Seite 1 von 2

Codierung von Datum und Uhrzeit

Verfasst: Sa 9. Apr 2016, 17:54
von Gifhorner
Guten Tag!
Ich würde mir gerne ein Excel-Makro programmieren, mit dem ich vollautomatisch Datum und Uhrzeit, meiner auf externen Festplatten archivierten Videos vom "SRP-2100" und "CRP-2401 CI+ Conax" auslesen kann. Ich vermute dass sich das Datum und die Uhrzeit, als Hexadezimalzahlen codiert und relativ am Anfang der Dateien befindet, die mit ".rec.inf" enden. Falls jemand den Dateiaufbau und die genauen Positionen kennt, dann würde ich mich über diese Information freuen. Das selbst zu ermitteln, ist immer langwierig.
Den Quelltext für das Auslesen, werde ich dann hier posten. Vielleicht kann ich damit jemand anderem auch helfen.

Gruß von Martin

AW: Codierung von Datum und Uhrzeit

Verfasst: Sa 9. Apr 2016, 19:07
von Twilight
die daten stehen in derinf datei.

willkommen an board :)

twilight

AW: Codierung von Datum und Uhrzeit

Verfasst: Sa 9. Apr 2016, 20:22
von Gifhorner
Twilight hat geschrieben:die daten stehen in derinf datei.

willkommen an board :)

twilight


Danke! Dann werde ich mal versuchen ob ich die Daten auslesen kann. Für 24 Bit BMP-Dateien kann ich übrigens schon jetzt einen Quelltext anbieten, wenn den jemand haben möchte. Breite, Höhe und Zeilensprung (0x, 1x, 2x oder 3x $0) werden ausgelesen.

AW: Codierung von Datum und Uhrzeit

Verfasst: Sa 9. Apr 2016, 21:52
von jkIT
Die inf Dateien beginnen folgendermaßen:

Code: Alles auswählen

Werte in hex (little endian)
0x0000: 54 46 72 63       "TFrc"
0x0004: 00 80             = 0x8000
0x0006: 00 00
0x0008: 00                Minute
0x0009: 0F                Stunde, also 15:00 Uhr
0x000A: 44 DB             = 0xDB44 Modified Julian Date 24.07.2012
zum Modified Julian Date siehe auch EN 300 468 Annex C

AW: Codierung von Datum und Uhrzeit

Verfasst: So 10. Apr 2016, 00:55
von Gifhorner
Beim Datum komme ich leider nicht weiter... Ich habe keine Ahnung wie ich das umrechnen soll. Der Link von jkIT bringt mich auch nicht weiter. Alles auf Englisch und man weis nicht, wo sich die eigentliche Information befindet.

Das Datum wird durch das 12. + 11. Byte codiert:
DF6E = 57198 = 1101111101101110 = 25.6.2015
E08A = 57482 = 1110000010001010 = 4.4.2016
E08B = 57483 = 1110000010001011 = 5.4.2016
E08C = 57484 = 1110000010001100 = 6.4.2016

Weis hier jemand weiter? Ich kann das leider nicht umrechnen und weis nicht wie ich auf das Datum komme.

Bei den ersten drei Bits bin ich mir relativ sicher, dass sie die Jahreszahl codieren.
In diesem Fall: 2009 + 7 = 2016

AW: Codierung von Datum und Uhrzeit

Verfasst: So 10. Apr 2016, 09:39
von FireBird
Das MJD ist die Anzahl der Tage seit dem 17.11.1858. Wenn Du beispielsweise 0xe08c Tage addierst, kommst Du auf den 6.4.2016.

Gifhorner hat geschrieben:Alles auf Englisch und man weis nicht, wo sich die eigentliche Information befindet.

So ist das mit den Normen. Aber nach ca. 20000 Lesen hat man einen guten Überblick. :wink:

AW: Codierung von Datum und Uhrzeit

Verfasst: So 10. Apr 2016, 10:12
von wohliks
FireBird hat geschrieben:Das MJD ist die Anzahl der Tage seit dem 17.11.1858. Wenn Du beispielsweise 0xe08c Tage addierst, kommst Du auf den 6.4.2016.
Also so was ähnliches - oder genau dasselbe? - wie in Excel? :thinker:

AW: Codierung von Datum und Uhrzeit

Verfasst: So 10. Apr 2016, 10:46
von FireBird
Es gibt nur wenige Tage, die als Nullpunkt verwendet werden. Ob Excel auch den 17.11. nimmt, weiß ich auch nicht auswendig.

AW: Codierung von Datum und Uhrzeit

Verfasst: So 10. Apr 2016, 10:52
von wohliks
[quote="FireBird"]Es gibt nur wenige Tage, die als Nullpunkt verwendet werden. Ob Excel auch den 17.11. nimmt, weiß ich auch nicht auswendig.[/quote]Excel hab' ich nicht zur Hand, aber ich habe gerade mal in LibreOffice-Calc nachgesehen: Dort ist der Nullpunkt einstellbar: "Standard" ist der 30.12.1899, man kann aber auch den 01.01.1900 ("StarCalc") oder den 01.01.1904 einstellen.

AW: Codierung von Datum und Uhrzeit

Verfasst: So 10. Apr 2016, 11:32
von TV-Junkie

AW: Codierung von Datum und Uhrzeit

Verfasst: So 10. Apr 2016, 12:20
von jkIT
FireBird hat geschrieben:Das MJD ist die Anzahl der Tage seit dem 17.11.1858. Wenn Du beispielsweise 0xe08c Tage addierst, kommst Du auf den 6.4.2016.

Das klingt einfach :D

AW: Codierung von Datum und Uhrzeit

Verfasst: So 10. Apr 2016, 14:46
von Gifhorner
Also wenn dieses Doppelbyte wirklich für die vergangenen Tage seit "X" steht, dann muss man das wie folgt rechnen:

Beim SRP-2100:
Vergangene Tage seit dem 15.2.2002

Beim CRP-2401 CI+ Conax:
Vergangene Tage seit dem 1.1.1900 - 15019

Es gibt dann also keine einheitliche Berechnung für alle Receiver. Warum hat Topfield das nur so umständlich gemacht? Ich hätte das Datum entweder gleich als Klartext hinterlegt, oder dafür zumindest ein Doppelwort verwendet, also ein Byte für Tag und Monat und zwei weitere für das Jahr in Form einer Hexadezimalzahl.

AW: Codierung von Datum und Uhrzeit

Verfasst: So 10. Apr 2016, 15:05
von FireBird
Gifhorner hat geschrieben:Also Beim SRP-2100:
Vergangene Tage seit dem 15.2.2002

Keine Ahnung, wie Du darauf kommst.
Beim CRP-2401 CI+ Conax:
Vergangene Tage seit dem 1.1.1900 - 15019
Und welcher Tag ist das? :u:
Es gibt dann also keine einheitliche Berechnung für alle Receiver.
Der Schluss ist definitiv falsch.

AW: Codierung von Datum und Uhrzeit

Verfasst: So 10. Apr 2016, 15:08
von wohliks
[quote="FireBird"]Der Schluss ist definitiv falsch.[/quote]Ich hätte jetzt vermutet, dass das Datum schon so im DVB-Stream steckt und vom Topfield unverändert in die Datei übernommen wird.

EDIT: Meine Vermutung bestätigt sich beim Überfliegen der von jkIT verlinkten EN - die befasst sich ja eben mit den Service-Informationen im DVB-Standard.

AW: Codierung von Datum und Uhrzeit

Verfasst: So 10. Apr 2016, 15:16
von FireBird
Stimmt, Topfield übernimmt das MJD aus dem DVB-Stream, nur bei der Uhrzeit verwenden sie eine Binärform, wo im DVB-Stream BCD-codierte Zeiten stehen. Also 10.04.2016 20:15 ist bei TF "E0 90 14 0F", im DVB-Stream "E0 90 20 15".

AW: Codierung von Datum und Uhrzeit

Verfasst: So 10. Apr 2016, 15:20
von Gifhorner
FireBird hat geschrieben:Keine Ahnung, wie Du darauf kommst.


Und welcher Tag ist das? :u:


Der Schluss ist definitiv falsch.


Teste doch mal mit Excel...

SRP-2100:
5.9.2011 = 3489 (Wert in REC.INF.Datei)
15.2.2002 + 3489 Tage = 5.9.2011


CRP-2401 CI+ Conax:
4.4.2016 = 57482 (Wert in REC.INF.Datei)
1.1.1900 + 57482 Tage - 15019 Tage = 4.4.2016

AW: Codierung von Datum und Uhrzeit

Verfasst: So 10. Apr 2016, 15:23
von FireBird
Da brauch' ich kein Excel, denn
[quote="Gifhorner"]3489[/quote]
hat sicher nichts mit einem Datum zu tun.

AW: Codierung von Datum und Uhrzeit

Verfasst: So 10. Apr 2016, 15:51
von Gifhorner
[quote="FireBird"]Da brauch' ich kein Excel, denn

hat sicher nichts mit einem Datum zu tun.[/quote]


Ich werde mein Makro erstmal so programmieren, das es eine Dateiliste erstellt und hinter jedem Dateinamen das ausgelesene Datum setzt. Ich werde mit einer Festplatte mit 598 Videos anfangen. Mal sehen ob meine beiden Formeln richtig waren.

AW: Codierung von Datum und Uhrzeit

Verfasst: So 10. Apr 2016, 16:09
von wohliks
Gifhorner hat geschrieben:Ich werde mein Makro erstmal so programmieren, das es eine Dateiliste erstellt und hinter jedem Dateinamen das ausgelesene Datum setzt. Ich werde mit einer Festplatte mit 598 Videos anfangen. Mal sehen ob meine beiden Formeln richtig waren.
Ohne jetzt tiefer in die Materie einzudringen:
Ich nehme mit meinen beiden Toppis (2100 und 2401) regelmäßig dieselbe Sendung auf - eine nähere Betrachtung der zugehörigen .rec.inf-Dateien zeigt: Es gibt im Format der Darstellung von Datum und Uhrzeit keinen Unterschied zwischen den beiden Receivern - die Dateiköpfe sehen exakt gleich aus... :thinker:

Bist Du bei der Betrachtung Deiner 2100-Datei vielleicht irgendwie "verrutscht"?

AW: Codierung von Datum und Uhrzeit

Verfasst: So 10. Apr 2016, 16:15
von wolfi133
jkIT hat geschrieben:Die inf Dateien beginnen folgendermaßen:

Code: Alles auswählen

Werte in hex (little endian)
0x0000: 54 46 72 63       "TFrc"
0x0004: 00 80             = 0x8000
0x0006: 00 00
0x0008: 00                Minute
0x0009: 0F                Stunde, also 15:00 Uhr
0x000A: 44 DB             = 0xDB44 Modified Julian Date 24.07.2012
zum Modified Julian Date siehe auch EN 300 468 Annex C


Hi jkIT

:shock: Danke für den Hinweis zum Modified Julian Date in der INF-Datei!!!
Dadurch kann ich jetzt wahrscheinlich auch mit einen Script die Zeiten, Dauer,usw... auslesen!
Ich muss noch einiges testen, aber wenn das klappt und die Zeiten stimmen, dann kommt das ins SmartSeriesRename Tap :hello:

:? : Eine Frage noch, weiß wer wie das mit der Sommer und Winterzeit ist, stimmt die in der Inf-Datei oder muss man, da noch extra Handanlegen?


@Gifhorner
Mit dem Excel Makro kann ich dir nicht weiterhelfen, aber ich kann dir das untere Script anbieten, welches die Dateinamen, Datum, Dauer, Tv-Sender,... in eine CSV-Datei schreibt. (Ich habe auch ein paar Kommentare dazugeschrieben damit es hoffentlich verständlich ist.)

@All
Wenn wer ein paar Verbesserungsvorschläge hat, dann immer her damit :D

Zum Ausführen auf dem Topf benötigt man auch noch das TMSTelnet Tap und die busybox.

Dann einfach die "RecFileList.sh" Datei mit FTP in den ProgramFiles Ordner verschieben und mittels den Telnet Befehl "sh /mnt/hd/ProgramFiles/RecFileList.sh" starten.
Dadurch wird im ProgramFiles Verzeichnis die "RecFileList.csv" Datei mit den Inhalten erstellt.

Oder auch zuerst mit "chmod a+rwx /mnt/hd/ProgramFiles/RecFileList.sh" die Rechte freigeben damit du es dann mittels dem SmartFiler Tap auf Knopfdruck mit der Fernbedienung starten kannst.

Alle Angaben ohne Gewä(e)hr, also bitte nicht schießen falls es nicht so funktioniert, das ist nur mal ein kleiner Funktionstest von mir was bisher möglich wäre!!! :u:

lg Wolfgang