[Unzap] Abschaltcodes

Stefan Uhl s.uhl at gmx.net
Wed Oct 15 18:07:00 CEST 2008


* Stefan Uhl <s.uhl at gmx.net> [081015 17:11]:
> 
> Es wär fein, mit ein paar Zahlen den Code zu beschreiben, also:
> Typ (Puls/Pausenlängencodiert, Manchester etc), Länge der Pulse/Pausen,
> Ornamente (Header, Footer...), Länge in Bits...
> Um dann nur noch zu sagen, was für ein Bitmuster übertragen werden
> soll...
> 
> Ich denke, wenn man das richtig macht, kriegt man alle Codes merklich
> kompakter hin. Die Frage ist, wie man die Abstraktion richtig macht.
> Entweder man programmiert mehr Spezialfälle (bisher: raw, rc5, pause, nec)
> und kriegt die speziellen Codes kürzer, oder generischer (3 Sendefunktionen 
> sollten reichen: pwm, nrz (Manchester) und raw) und braucht dafür mehr 
> Informationen zur Beschreibung des Codes...

Ich hab mal weiterüberlegt. Man könnte folgendes machen:

3 Bit Codetyp, 5 Bit Anzahl der Wiederholungen, 8Bit Zähler. Da kann man
noch mehr reinstopfen, ich weiß nur noch nicht was...

Typ:

raw. Zähler sagt Anzahl der Pulse+Pausen.
pwm pulse. Zähler: Anzahl zu übertragende Bits.
pwm pause. Anzahl der Bits.
pwm allgemein. Anzahl der Bits.
nrz gleichmäßig. Anzahl der Bits.
nrz ungleichmäßig. Anzahl der Bits.
nrz total ungleichmäßig. Anzahl der Bits.
composit. Anzahl der Blöcke.

Ist der Widerholzähler ungleich null, kommt ein Wort mit der Pause
zwischen den Widerholungen, oder besser für jede Wiederholung ein
eigenes Wort, da die Pausen nicht immer gleich sind...

Zur Codebeschreibung:

Bei pulse/pause kommen 3 Worte: puls/pauselänge 0, puls/pauselänge 1, 
        pause/pulslänge
Für allgemein braucht man 4 Worte: pulse 1, pause 1, pulse 0, pause 0
nrz gleichmäßig braucht 1 Wort: puls/pauselänge,
nrz unglm. braucht 2 Worte: pulslänge, pausenlänge
nrz total unglm. braucht 4 Worte: puls 1, pause 1, pause 0, puls 0

Dann kommen wie bisher die zu übertragenden Bits, bzw bei raw die
pulse/pausenzeiten...

Der Parser muß dann die pulse/pause-Angaben in 4 Worte übersetzen und
diese zusammen mit Anzahl der Bits/Signale und Adresse in der Tabelle an
eine von drei Sendefunktionen (raw, nrz, pwm) übergeben...

Damit sähe tvbgone055 so aus:

composit, 1 Wiederholung, 2 Blöcke, Wiederholungspause:  29590
pause 7bit, 530, 2370, 8120, 0x2a
pause 7bit, 530, 2370, 5240, 0x43

macht zusammen 12 Worte statt weit über 30.

Und dabei handelt es sich um einen recht kurzen und komplexen Code...

Vielleicht findet sich noch ne schicke Methode, wie man die 
Wiederholungen invertieren kann (für nec-codes etc). 


Die einzige Scheiße ist, daß ich recht wenig C beherrsche (ich versteh
den bestehenden Code grade so) und eigentlich nicht mal Zeit für die
Analyse der Codes haben sollte....

Grüße,
        Stefan



More information about the unzap mailing list