Unzap/Code-Flags

From Lochraster

Jump to: navigation, search

Contents

[edit] Stand der Dinge

Momentan sind in der Datei codes.h nur – hauptsächlich vom tvbgone-Projekt übernommene – Ausschaltcodes für eine ganze Reihe von Fernsehern enthalten. Dennoch lassen sich einige weitere Infrarot-Geräte damit ausschalten, da sie zufälligerweise den gleichen Ausschaltcode verwenden.


[edit] Kategorisierung

Da das unzap schön erweiterbar ist, soll es Ausschaltcodes für Geräte der folgenden Kategorien enthalten:

  • Fernseher (mehr!)
  • Hifi-Geräte (Stereoanlagen, CD-Player, DVD-Player, Autoradios etc.)
  • Sat-Receiver und Set-Top-Boxen
  • Projektoren (Denglisch: Beamer)


[edit] Optimierung der Sendezeit durch Kategorisierung

Jedes Senden von Codes benötigt seine Zeit. Momentan werden 60 Sekunden für 95 Codes (unzap advanced) benötigt. Diese Zeit nimmt logischerweise proportional mit der Anzahl der zu sendenden Codes zu.

Da jedoch in der Regel nicht gewünscht ist, alle Ausschaltcodes der oben genannten Kategorien zu senden („Warum müssen erst alle Fernsehcodes durchgegangen werden, wenn nur ein Beamer ausgeschaltet werden soll?“), wäre eine Option die Codes mit Flags zu versehen und das unzap schlicht alle Codes zu überspringen, die nicht dem gewünschten Flag entsprechen. Praktisch sähe es so aus, dass aus dem Hauptmenü heraus durch Tasterdrucke die gewünschte Kategorie (z.B. mittels Taster 3) ausgewählt wird und deren Codes dann gesendet werden.

In den yaml-Dateien wird ein weiteres Feld für die Kategorie benötigt. An der Codebasis müsste dazu das binäre Format der Ausschaltcodes so modifiziert werden, dass ein Flag (wie viele Bits groß?) mit aufgenommen wird, das die Kategorie beschreibt. In der Firmware ist eine Abfrageroutine zu implementieren, die checkt, ob der zu sendende Ausschaltcode der gewünschten Kategorie entspricht, und diesen dann überspringt oder sendet.


[edit] Optimierung der Sendezeit durch Ländercodes

Eine weitere Optimierung kann durch das Senden von Ausschaltcodes geschehen, die dem gewünschten Einsatzland entsprechen. Beispielsweise sind in den USA andere Infrarotcodes verbreiteter als in der EU oder in Japan. Die unzap basic-Version hat z.B. nur EU-Codes gespeichert, was für den einfachen Einsatz hier in Deutschland voll ausreicht.

Die Umsetzung kann ebenso durch das Erweitern der yaml-Datei und dem Hinzufügen eines Flags in der binären Version der codes.h geschehen. Die Auswahl des Einsatzgebietes sollte durch einen Konfigurationsparameter vor dem Compilieren der Firmware gesetzt werden können oder auch durch Tastendrucke im Hauptmenü. Ausschaltcodes, die dem gewünschten Zielland nicht entsprechen, werden schlicht übersprungen.


[edit] Bruteforce Mode

Es sollte (über Taster) eingestellt werden können, dass schlicht alle Ausschaltcodes, egal welche Flags gesetzt sind, gesendet werden. Das könnte, je nach Anzahl der vorhandenen Ausschaltcodes, mehrere Minuten in Anspruch nehmen. Aber hinterher ist sich der Hacker sicher, dass er keinen Ausschaltcode übersprungen hat und das unzap dieses Gerät leider nicht kennt… ;-) (Oder der Infrarot-Empfänger am Gerät ist abgeklebt/abgeschaltet/defekt)